A.1 概述

如果用于 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 接口。

如果能够以编程的方式来确定远程万维网服务使用的类和特性,那么可以使用最后一个接口 SchemaReporter。使用该接口的优点在于:如果可以动态确定纲要,则创建纲要映射规则就会更容易一些。