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