如果與 Identity Manager Driver for SOAP 搭配使用的應用程式使用 XML 格式以外的資料,則可以建立 Java 延伸功能,將非 XML 格式的資料轉換成 XML 資料。 此外,您可能還會變更各種通訊協定,包括 XML 和 HTTP。 例如,可能會取代預設的 HTTP。 這些 Java 延伸功能可以用於運作資料,且它們必須用於將非 XML 格式的資料轉換為 XML 資料。如下圖所示,共有十一個點可以延伸功能:
SOAP 驅動程式的設計相當靈活並可延伸。 對於想要延伸或修改驅動程式功能的 Java 程式設計人員,還有程式設計介面可供使用。 這些介面只能在無法根據規則或樣式表進行所需的轉換時使用。
Javadoc 對這些介面進行了描述。
可以用於延伸或自定驅動程式行為的 Java 介面有五個。 它們分別是 DocumentModifiers、ByteArrayModifiers、PublisherTransport、SubscriberTransport 和 SchemaReporter。
Figure A-1 如何使用 Java 延伸功能
DocumentModifiers 和 ByteArrayModifiers 的用途類似,因此二者選其一即可。 如有必要,它們都可以用於存取及修改經由驅動程式 Shim 傳送的指令和事件。 DocumentModifiers 可讓您存取 XML DOM 文件等資料。 ByteArrayModifiers 可讓您存取相同資料,但是會將資料序列化為位元組陣列。
PublisherTransport 介面可讓您將驅動程式在「發行者」通道上使用的預設 HTTP 監聽程式取代掉。 PublisherTransport 實作可以由事件驅動,也可以按指定的間隔輪詢。
如果想要取代掉驅動程式在「訂閱者」通道上使用的 HTTP 或 HTTPS 連接,則應實作 SubscriberTransport。
如果您能以程式設計方式決定遠端 Web 服務使用的類別和屬性,則可以使用最後一種介面 SchemaReporter。 使用這個介面的優勢在於,如果可以動態決定綱要,則建立綱要映射規則就更為容易。