38.3. Simple Types을 위한 Java 클래스 생성
38.3.1. 개요
기본적으로 명명된 단순 형식은 열거형이 아닌 한 생성된 형식을 가져오지 않습니다.By default, named simple types do not result in generated types unless they are enumerations. 간단한 유형을 사용하여 정의된 요소는 Java 기본 유형의 속성에 매핑됩니다.
Java 클래스에 간단한 유형이 생성되어야 하는 경우가 있습니다(예: 유형 대체를 사용하려는 경우).
전역적으로 정의된 모든 간단한 유형에 대한 클래스를 생성하도록 코드 생성기에 지시하려면 globalBindings
사용자 지정 요소의 mapSimpleTypeDef
를 true
로 설정합니다.
38.3.2. 사용자 정의 추가
코드 생성기가 간단한 유형의 Java 클래스를 생성하도록 지시하기 위해 globalBinding
요소의 mapSimpleTypeDef
특성을 추가하고 해당 값을 true
로 설정합니다.
예 38.13. “SimpleTypes에 대한 Java 클래스 생성을 위한 인라인 사용자 지정” 코드 생성기가 이름이 지정된 간단한 유형에 대해 Java 클래스를 생성하도록 강제 적용하는 인 줄 사용자 지정을 보여줍니다.
예 38.13. SimpleTypes에 대한 Java 클래스 생성을 위한 인라인 사용자 지정
<schema targetNamespace="http://widget.com/types/widgetTypes" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" jaxb:version="2.0"> <annotation> <appinfo> <jaxb:globalBindings mapSimpleTypeDef="true" /> </appinfo> </annotation> ... </schema>
예 38.14. “파일의 강제 적용에 파일 바인딩” 간단한 형식의 생성을 사용자 지정하는 외부 바인딩 파일을 보여줍니다.
예 38.14. 파일의 강제 적용에 파일 바인딩
<jaxb:bindings xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" xmlns:xsd="http://www.w3.org/2001/XMLSchema" jaxb:version="2.0"> <jaxb:bindings schemaLocation="types.xsd"> <jaxb:globalBindings mapSimpleTypeDef="true" /> <jaxb:bindings> <jaxb:bindings>
이 사용자 지정은 전역 범위에 정의된 간단한 유형만 영향을 미 칩니다.
38.3.3. 생성된 클래스
단순 형식에 대해 생성된 클래스에는 value
라는 하나의 속성이 있습니다. value
속성은 34.1절. “기본 유형” 의 매핑에 의해 정의된 Java 유형 중 하나입니다. 생성된 클래스에는 value
속성의 getter 및 setter가 있습니다.
예 38.16. “간단한 유형의 사용자 지정 매핑” 는 예 38.15. “사용자 지정 매핑을 위한 간단한 유형” 에 정의된 간단한 유형에 대해 생성된 Java 클래스를 보여줍니다.
예 38.15. 사용자 지정 매핑을 위한 간단한 유형
<simpleType name="simpleton"> <restriction base="xsd:string"> <maxLength value="10"/> </restriction> </simpleType>
예 38.16. 간단한 유형의 사용자 지정 매핑
@XmlAccessorType(XmlAccessType.FIELD) @XmlType(name = "simpleton", propOrder = {"value"}) public class Simpleton { @XmlValue protected String value; public String getValue() { return value; } public void setValue(String value) { this.value = value; } }