2.2. 将数据映射到逻辑数据单元
概述
用于实现服务的接口将代表操作参数的数据定义为 XML 文档。如果您要为已实现的服务定义接口,您必须将实施操作的数据类型转换为可汇编为消息的 XML 元素。如果您要从头开始,您必须确定从中构建消息的构建块,以便它们对实施角度有意义。
用于定义服务数据单元的可用类型系统
根据 WSDL 规范,您可以使用您选择的任何类型系统来定义 WSDL 合同中的数据类型。但是,W3C 规范指出 XML Schema 是 WSDL 文档的首选规范类型系统。因此,XML Schema 是 Apache CXF 中的内部类型系统。
XML Schema 作为类型系统
XML 架构用于定义 XML 文档的结构。这可以通过定义组成文档的元素来完成。这些元素可以使用原生 XML 架构类型,如 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 架构来代表 WSDL 文档中的数据类型:
- 使用元素而不是属性。
- 不要使用特定于协议的类型作为基本类型。