와 요소에서 클래스를 생성 :JAXB/XJC : 나는이 XJC를 사용하여 자바 클래스 다음 XSD에서 <code>SignResponse</code> 및 <code>AuthResponse</code>을 생성하고자하는 같은 복합 타입
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="SignResponse" type="tns:OrderResponseType"/>
<xsd:element name="AuthResponse" type="tns:OrderResponseType"/>
<xsd:complexType name="OrderResponseType">
<xsd:sequence>
<xsd:element name="orderRef" type="xsd:string"/>
<xsd:element name="autoStartToken" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
이 같은 복합 타입을 가진 요소에서 클래스를 생성하는 것을 의미한다. 위의 XSD를 입력으로 사용하면 XJC는 OrderResponseType
클래스를 생성하지만 SignResponse
및 AuthResponse
은 생성하지 않습니다. OrderResponseType
이 SignResponse
및 AuthResponse
내부를 정의 할 때, 모든 확인을 작동하기 때문에 type="tns:OrderResponseType"
는, XJC가 제대로 사용되지 않는 것 같다
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="SignResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="orderRef" type="xsd:string"/>
<xsd:element name="autoStartToken" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="AuthResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="orderRef" type="xsd:string"/>
<xsd:element name="autoStartToken" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
을 다음 XJB를 사용 type="tns:OrderResponseType"
실제로 사용되지만, 단 하나있는 경우에만이 작동 속성으로서 type="tns:OrderResponseType"
을 갖는 소자 :
<jxb:bindings version="1.0"
xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc">
<jxb:globalBindings>
<xjc:simple/>
</jxb:globalBindings>
</jxb:bindings>
이 <xjc:simple/>
XJB 결합 요소와 결합 된 복수의 요소를 사용하여 만 OrderResponseType
가 생성되도록 할 것이다.
사용하여 사용자 정의 바인딩 좋아 :
<jxb:bindings node="//xs:complexType[@name='OrderResponseType']">
<jxb:class name="SignResponse"/>
</jxb:bindings>
도 하나 개의 요소 만 작동합니다. 예를 들어 XJC를 사용하면 예외가 발생합니다. 예 :
<jxb:bindings node="//xs:complexType[@name='OrderResponseType']">
<jxb:class name="SignResponse"/>
</jxb:bindings>
<jxb:bindings node="//xs:complexType[@name='OrderResponseType']">
<jxb:class name="AuthResponse"/>
</jxb:bindings>
미리 감사드립니다.
우리는 대신 SignResponse 및 AuthResponse의 OrderResponseType를 사용하여 끝났다. – frevib