2012-02-02 5 views
2

인라인 옵션은 다음과 같습니다.jaxb의 인라인 바인딩 사양

xjc -d. -b Derived.xsd

bindings.xjb 내 bindings.xsd 내가하고 싶은 모든 생각 NAMETYPE 온통 요구 사항의 중복을 방지하는 바인딩을 엄격하게 내부에

<bindings scd="~tns:NameType"> 
     <class ref="com.bcbsmt.eie.pojo.commontypes.NameType"/> 
</bindings> 

이 곳.

나는

<xs:element name="Name"> 
       <xs:annotation> 
        <xs:appinfo> 
         <jaxb:class implClass="com.bcbsmt.eie.pojo.commontypes.NameType"></jaxb:class> 
        </xs:appinfo> 
       </xs:annotation> 
      </xs:element> 

같은 Derived.xsd 무언가 시도하지만이 didnt 한 작업 out.Any 아이디어

+0

매우 흥미로운 바인딩. 당신은 그것을 만드는데 어떤 참조를 사용 했습니까? AFAIK, [''] (http://minitorn.tlu.ee/~jaagup/kool/java/abiinfo/javaeetutorial5/doc/JAXB9.html#wp103167) + [''] (http : // minitorn.tlu.ee/~jaagup/kool/java/abiinfo/javaeetutorial5/doc/JAXB9.html#wp103174) 사용자 정의. –

+0

안녕하세요. 제 바인딩의 일부분입니다. 바인딩 파일을 생성하지 못했습니다 .jaxb - xjc가 해냈습니다. – user1141359

답변

1

내가 아래에 나는 완전히 질문을 이해 모르겠지만,이 방법의 예입니다 jaxb:class 스키마 주석을 사용하여 기존 클래스를 가리킬 수 있습니다.

<?xml version="1.0" encoding="UTF-8"?> 
<xs:schema 
    xmlns:xs="http://www.w3.org/2001/XMLSchema" 
    xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" 
    jaxb:version="2.1"> 

    <xs:element name="foo"> 
     <xs:complexType> 
      <xs:sequence> 
       <xs:element ref="bar"/> 
      </xs:sequence> 
     </xs:complexType> 
    </xs:element> 

    <xs:element name="bar"> 
     <xs:complexType> 
      <xs:annotation> 
       <xs:appinfo> 
        <jaxb:class ref="example.BarImpl"></jaxb:class> 
       </xs:appinfo> 
      </xs:annotation> 
      <xs:sequence> 
       <xs:element name="name" type="xs:string"/> 
      </xs:sequence> 
     </xs:complexType> 
    </xs:element> 

</xs:schema> 

당신은 XML 스키마에서 생성 된 모든 유형을 다시 사용하려는 경우

, 당신은 찾을 수 있습니다 에피소드는 유용한 파일 :

+0

필자는 인라인 주석 명령으로 에피소드 파일의 기능을 수행해야합니다. 이제 파생 된 유형을 재사용하는 에피소드가 있습니다. 그러나 동일한 기능을 수행하기 위해 외부 에피소드를 제거하고 인라인 주석을 사용하려고합니다. – user1141359

+0

@ user1141359 - 필자가 대답 한 XML 스키마는 인라인 스키마 주석의 모양을 보여줍니다. –

+1

트릭의 미묘한 차이점을 놓치 셨습니다. 대신 .Didnt 답변을 처음 사용해보십시오. 엄청 고마워. – user1141359