2.2. 将数据映射到逻辑数据单元
概述
用于实施服务的接口定义了代表操作参数的数据,作为 XML 文档。如果您要为已经实施的服务定义接口,您必须将实施操作的数据类型转换为可编译到消息的 XML 元素中。如果您从头开始,您必须确定构建您的消息的构建块,以便在实施角度有意义。
用于定义服务单元的可用类型
根据 WSDL 规范,您可以使用任意类型系统在 WSDL 合同中定义数据类型。但是,W3C 规范指出 XML Schema 是 WSDL 文档的首选规范类型系统。因此,XML Schema 是 Apache CXF 中的内部类型系统。
XML Schema 作为类型系统
XML Schema 用于定义 XML 文档的结构。这可以通过定义组成文档的元素来完成。这些元素可以使用原生 XML Schema 类型,如 xsd:int
,也可以使用用户定义的类型。用户定义的类型使用 XML 元素的组合构建,或者通过限制现有类型来定义。通过组合类型定义和元素定义,您可以创建包含复杂数据的指示 XML 文档。
在 WSDL XML Schema 中使用时,定义包含用于与服务交互数据的 XML 文档的结构。在定义服务使用的数据单元时,您可以将它们定义为指定消息部分结构的类型。您还可以将数据单元定义为组成消息部分的元素。
创建数据单元的注意事项
您可能只考虑创建在实施服务时直接映射到您部门类型的逻辑数据单元。虽然这种方法有效,并且密切遵循构建 RPC 风格应用程序的模型,但并非构建面向服务的架构的理想选择。
Web 服务互操作性组织的 WS-I 基本配置集提供了多个定义数据单元的准则,可通过 http://www.ws-i.org/Profiles/BasicProfile-1.1-2004-08-24.html#WSDLTYPES 访问。另外,W3C 还提供了以下使用 XML Schema 来代表 WSDL 文档中的数据类型的准则:
- 使用元素,而不是属性。
- 不要使用特定于协议的类型作为基本类型。