34장. 간단한 유형 사용

초록

XML 스키마 단순 유형은 xsd:int 와 같은 XML 스키마 기본 유형이거나 simpleType 요소를 사용하여 정의됩니다. 하위 또는 속성을 포함하지 않는 요소를 지정하는 데 사용됩니다. 일반적으로 네이티브 Java 구문에 매핑되며 구현하기 위해 특수 클래스 생성이 필요하지 않습니다. 열거된 단순 형식은 Java 열거형 형식에 매핑되므로 생성된 코드를 생성하지 않습니다.

34.1. 기본 유형

34.1.1. 개요

메시지 파트가 XML 스키마 기본 유형 중 하나를 사용하여 정의되면 생성된 매개 변수의 유형이 해당 Java 네이티브 유형에 매핑됩니다. 동일한 패턴은 복잡한 형식의 범위 내에 정의된 요소를 매핑할 때 사용됩니다. 결과 필드는 해당 Java 네이티브 유형입니다.

34.1.2. 매핑

표 34.1. “XML Schema Primitive Type to Java Native Type Mapping” XML 스키마 기본 유형과 Java 네이티브 유형 간의 매핑을 나열합니다.

표 34.1. XML Schema Primitive Type to Java Native Type Mapping

XML 스키마 유형Java Type

xsd:string

문자열

xsd:integer

BigInteger

xsd:int

int

xsd:long

long

xsd:short

short

xsd:decimal

BigDecimal

xsd:float

float

xsd:double

double

xsd:boolean

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

기간

xsd:NOTATION

QName

[a] 이 유형의 요소에 대해.
[b] 이 유형의 속성의 경우.

34.1.3. 래퍼 클래스

XML Schema 기본 유형을 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" />
  • use 특성선택적, 지정하지 않거나 지정하지 않고 기본 속성과 고정 특성이 지정되지 않은 특성 요소는 다음과 같습니다.

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

표 34.2. “Java Wrapper 클래스 매핑에 대한 기본 스키마 유형” 이러한 경우 XML 스키마 기본 유형이 Java 래퍼 클래스에 매핑되는 방법을 보여줍니다.

표 34.2. Java Wrapper 클래스 매핑에 대한 기본 스키마 유형

스키마 유형Java Type

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