34.4. 列表
概述 复制链接链接已复制到粘贴板!
XML Schema 支持通过一种机制来定义数据类型,这些数据类型是以空格分隔的简单类型的空间列表。例 34.7 “列出类型示例” 中显示了一个元素 primeList
。
例 34.7. 列出类型示例
<primeList>1 3 5 7 9 11 13<\primeList>
<primeList>1 3 5 7 9 11 13<\primeList>
XML Schema 列表类型通常映射到 Java List<T>
对象。此模式的唯一变体是消息部分直接映射到 XML Schema 列表类型的实例。
在 XML Schema 中定义列表类型 复制链接链接已复制到粘贴板!
XML Schema 列表类型是简单类型,比如使用 simpleType
元素来定义。例 34.8 “XML Schema 列表类型的语法” 中显示了用于定义列表类型的最常用语法。
例 34.8. XML Schema 列表类型的语法
为 atomicType 指定的值定义列表中的元素类型。它只能是 XML Schema atomic 类型中的一个,如 xsd:int
或 xsd:string
,也可以是不是列表的用户定义的简单类型。
除了定义列表类型中列出的元素类型外,您还可以使用 facets 来进一步限制列表类型的属性。表 34.3 “列出类型 Facets” 显示列表类型所使用的问题。
facet | 效果 |
---|---|
| 定义列表类型的实例中元素的数量。 |
| 定义列表类型的实例中允许的最小元素数量。 |
| 定义列表类型实例中允许的最大元素数。 |
| 在列表类型的实例中定义元素的允许值。 |
| 在列表类型的实例中定义元素的 lexical 形式。使用正则表达式来定义模式。 |
例如,例 34.7 “列出类型示例” 中显示的 简单List
元素的定义显示在 例 34.9 “列表类型的定义” 中。
例 34.9. 列表类型的定义
<simpleType name="primeListType"> <list itemType="int"/> </simpleType> <element name="primeList" type="primeListType"/>
<simpleType name="primeListType">
<list itemType="int"/>
</simpleType>
<element name="primeList" type="primeListType"/>
除了 例 34.8 “XML Schema 列表类型的语法” 中显示的语法外,您还可以使用 例 34.10 “列表类型的替代语法” 中显示的常见语法来定义列表类型。
例 34.10. 列表类型的替代语法
将列表类型元素映射到 Java 复制链接链接已复制到粘贴板!
当元素定义了列表类型时,列表类型映射到 collection 属性。collection 属性是 Java List<T>
对象。List<T>
使用的模板类是从列表的基本类型映射的打包程序类。例如,例 34.9 “列表类型的定义” 中定义的列表类型映射到 List<Integer>
。
有关 wrapper 类型映射的详情,请参考 “打包程序类”一节。
将列表类型参数映射到 Java 复制链接链接已复制到粘贴板!
当消息部分定义为列表类型,或映射到列表类型的元素时,生成的方法参数会映射到数组,而不是 List<T>
; 对象。数组的基本类型是列表类型的基本类。
例如,例 34.11 “带有列表类型消息的 WSDL 部分” 中的 WSDL 片段会导致方法签名在 例 34.12 “带有列表类型参数的 Java 方法” 中。
例 34.11. 带有列表类型消息的 WSDL 部分
例 34.12. 带有列表类型参数的 Java 方法