搜索

第 34 章 使用简单类型

download PDF

摘要

XML Schema 简单类型是 XML 架构原语类型,如 xsd:int,或使用 simpleType 元素定义。它们用于指定不包含任何子对象或属性的元素。它们通常映射到原生 Java 构造,不需要生成特殊类来实施它们。Enumerated simple 类型不会导致生成的代码,因为它们被映射到 Java enum 类型。

34.1. 原语类型

概述

当使用 XML Schema 原语类型定义消息部分时,生成的参数的类型映射到对应的 Java 原生类型。在映射复杂类型范围中定义的元素时,使用相同的模式。生成的字段是对应的 Java 原生类型。

映射

表 34.1 “XML Schema 原语类型到 Java 原生类型映射” 列出 XML 架构原语类型和 Java 原生类型之间的映射。

表 34.1. XML Schema 原语类型到 Java 原生类型映射
XML Schema TypeJava 类型

xsd:string

字符串

xsd:integer

BigInteger

xsd:int

int

xsd:long

long

xsd:short

short

xsd:decimal

BigDecimal

xsd:float

浮点值

xsd:double

double

xsd:boolean

布尔值

xsd:byte

byte

xsd:QName

qname

xsd:dateTime

XMLGregorianCalendar

xsd:base64Binary

byte[]

xsd:hexBinary

byte[]

xsd:unsignedInt

long

xsd:unsignedShort

int

xsd:unsignedByte

short

xsd:time

XMLGregorianCalendar

xsd:date

XMLGregorianCalendar

xsd:g

XMLGregorianCalendar

xsd:anySimpleType [a]

对象

xsd:anySimpleType [b]

字符串

xsd:duration

Duration

xsd:NOTATION

qname

[a] 对于这种类型的元素。
[b] 对于此类型的属性。

wrapper 类

将 XML 架构类型映射到 Java 原语类型不适用于所有可能的 XML 架构结构。一些情况要求 XML 架构原语类型映射到 Java 原语类型对应的打包程序类型。这些情况包括:

  • 一个 元素,它的 nillable 属性设置为 true,如下所示:

    <element name="finned" type="xsd:boolean"
             nillable="true" />
  • 一个 元素,其 minOccurs 属性设置为 0, 它的 maxOccurs 属性设置为 1,或者其 maxOccurs 属性未指定,如下所示:

    <element name="plane" type="xsd:string" minOccurs="0" />
  • 一个 attribute 元素,其 use 属性设置为 optional,或未指定,且没有其默认属性及其 固定 属性,如下所示:

    <element name="date">
      <complexType>
        <sequence/>
        <attribute name="calType" type="xsd:string"
                   use="optional" />
      </complexType>
    </element>

表 34.2 “Primitive Schema Type to Java Wrapper Class Mapping” 展示了 XML 架构原语类型如何映射到 Java 打包程序类。

表 34.2. Primitive Schema Type to Java Wrapper Class Mapping
模式类型Java 类型

xsd:int

java.lang.Integer

xsd:long

java.lang.Long

xsd:short

java.lang.Short

xsd:float

java.lang.Float

xsd:double

java.lang.Double

xsd:boolean

java.lang.Boolean

xsd:byte

java.lang.Byte

xsd:unsignedByte

java.lang.Short

xsd:unsignedShort

java.lang.Integer

xsd:unsignedInt

java.lang.Long

xsd:unsignedLong

java.math.BigInteger

xsd:duration

java.lang.String

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.