2012-08-30 7 views
2

에 네임 스페이스를 추가 할 주석을 생성 위의 주석을 편집하고 아래의 유형으로 annox를 사용하여 이름 공간을 추가하십시오.편집 JAXB는</p> <pre><code>@XmlType(name = "MessageInfoType", propOrder = { "debugTraceBoolean", "clientHostnameString", "endUserIPAddress" }) </code></pre> <p>가 필요로되는 사용자 정의 binding..ie와 JAXB 클래스에 다음 주석을 생산하기 위해 필요 내가 JAXB 생성 된 클래스에 다음과 같은 주석을 할 annox을 사용하고 PARAM

 @XmlType(name = "MessageInfoType", propOrder = { 
      "debugTraceBoolean", 
      "clientHostnameString", 
      "endUserIPAddress" 
     }, namespace="urn:expedia:e3:data:messagetypes:defn:v4") 

내 xjb 파일은 다음과 같습니다

<jaxb:bindings schemaLocation="../../serviceDescription/atlantis/common/com.expedia.e3.data.messagetypes.v4.xsd"> 

    <jaxb:bindings node="//xs:complexType[@name='MessageInfoType']"> 
     <annox:annotate target="field"> 
      <annox:annotate annox:class="javax.xml.bind.annotation.XmlType" 
        namespace="urn:expedia:e3:data:messagetypes:defn:v4"/> 
     </annox:annotate> 
    </jaxb:bindings> 
    </jaxb:bindings> 
+0

JAXB 생성 클래스의 기존 주석을 무시하거나 사용자 정의 바인딩 파일에서 annox를 사용하여 제거해야합니다. 나를 도와주세요. – user1631733

답변

4

제휴 면책 조항 : 나는 Annotate Plugin의 저자입니다.

이미 존재하는 주석 (동일한 위치, 동일한 주석 클래스)을 추가하려고하면 두 번째 주석을 추가하지 않고 기존 주석을 수정합니다. 나는 이것이 모든 속성을 오버라이드하거나 새로운 것을 합치는지 확실하지 않지만, 시도해 볼만한 가치가있다.

업데이트 :

나는 이것을 다시 검사했다. 사실, 그것은 구현되었습니다 (버전 0.6.4이어야합니다, 나는 0.6.5-SNAPSHOT으로 점검했습니다).

확인이 샘플 :이 바인딩이있는 경우, 당신은 얻을 것이다

<jaxb:bindings node="xs:complexType[@name='issueJIIB39CType']/xs:attribute[@name='test']"> 
     <annox:annotate target="field"> 
      <annox:annotate annox:class="javax.xml.bind.annotation.XmlAttribute" required="false"/> 
     </annox:annotate> 
    </jaxb:bindings> 

:

@XmlAttribute(name = "test", required = false) 
protected String test; 

하지가 않을 경우 여기

https://svn.java.net/svn/jaxb2-commons~svn/basics/trunk/tests/annotate/src/main/resources/bindings.xjb

바인딩입니다 다음과 같이하십시오 :

따라서 동일한 장소와 동일한 클래스에 특수 효과를 추가하면 병합됩니다.

+1

JAXB2-basics-annotate 0.6.4, JAXB2-basics-ant를 설치했습니다. 0.6.4, JAXB2-basics-tools 0.6.4 그리고 나머지는 입니다. jaxb-api, jaxb-impl 및 jaxb-xjc jar (이들 jar의 버전은 무엇인지 알 수 없습니다). 0.6.4 버전의 jar 파일을 사용하고 나면 아래의 대담한 오류가 발생하고 일부 버전이 일치하지 않기 때문입니다. JDK 1.6.0.29를 사용하고 있으며 0.6.4는 JDK 1.7에서만 사용됩니다. 내가 사용해야하는 다른 모든 병의 버전이 무엇인지 말해 줄 수 있습니까? 아래 오류가 발생하기 때문에 java.lang.NoSuchMethodError : com.sun.codemodel.JAnnotatable.annotations() Ljava/util/Collection ; – user1631733

+0

안녕하세요 lexicore - 위에 붙여 넣은 Annotate Plugin 문서에 대한 링크가 끊어진 이유는 무엇입니까? 일시적인 문제입니까 아니면 프로젝트가 중단 되었습니까? –

+0

시간이 지나면 서버가 다운됩니다. 다시 온라인으로. – lexicore