34장. 간단한 유형 사용

초록

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

34.1. 기본 유형

34.1.1. 개요

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

34.1.2. 매핑

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

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

XML 스키마 유형Java 유형

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

duration

xsd:NOTATION

QName

[a] 이 유형의 요소입니다.
[b] 이 유형의 속성입니다.

34.1.3. 래퍼 클래스

XML 스키마 기본 유형을 Java 기본 유형에 매핑하면 가능한 모든 XML 스키마 구성에 대해 작동하지 않습니다. XML 스키마 기본 유형을 Java 기본 유형의 해당 래퍼 유형에 매핑해야 하는 경우가 많습니다. 이러한 경우는 다음과 같습니다.

  • 다음과 같이 nillable 속성이 true 로 설정된 요소:

    <element name="finned" type="xsd:boolean"
             nillable="true" />
  • min Cryostat 특성이 0 으로 설정된 요소 요소 및 max Cryostat 특성이 1 로 설정된 요소 요소 또는 표시된 대로 max Cryostat 속성이 지정되지 않았습니다.

    <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 래퍼 클래스 매핑에 기본 스키마 유형” 이 경우 XML Schema 기본 유형이 Java 래퍼 클래스에 매핑되는 방법을 보여줍니다.

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

스키마 유형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