2014-02-11 2 views
0

XSD가 있고 일부 속성을 XmlTransient로 표시하여 속성이 Java에서 XJC에 의해 생성되고 JAXB에 의해 정렬 및 비 정렬로 무시됩니다.속성에 XJC를 사용하여 @XmlTransient 주석을 추가하는 방법

XSD를 수정할 수 있으며 JAXB 바인딩을 사용자 정의하기 위해 xs : annotation 태그에 넣어야 할 내용을 알지 못합니다.

다음은 지금까지

<?xml version="1.0" encoding="UTF-8"?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:hj="http://hyperjaxb3.jvnet.org/ejb/schemas/customizations" xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" xmlns:orm="http://java.sun.com/xml/ns/persistence/orm" jaxb:extensionBindingPrefixes="hj orm"> 
    <xs:complexType name="tripRegisterType"> 
    <xs:annotation> 
     <xs:appinfo> 
     <hj:entity> 
      <orm:table name="simplemaketripprocess_tripregistertype" /> 
     </hj:entity> 
     <hj:generated-id name="tripregistertypeid" /> 
     </xs:appinfo> 
    </xs:annotation> 
    <xs:sequence> 
     <xs:element name="startDate" type="xs:date"> 
     <xs:annotation> 
      <xs:appinfo> 
      <hj:basic> 
       <orm:column name="startDate" column-definition="timestamp" /> 
      </hj:basic> 
      </xs:appinfo> 
     </xs:annotation> 
     </xs:element> 
     <xs:element name="endDate" type="xs:date"> 
     <xs:annotation> 
      <xs:appinfo> 
      <hj:basic> 
       <orm:column name="endDate" column-definition="timestamp" /> 
      </hj:basic> 
      </xs:appinfo> 
     </xs:annotation> 
     </xs:element> 
     <xs:element name="want_flight" type="xs:boolean" /> 
     <xs:element name="want_hotel" type="xs:boolean" /> 
     <xs:element name="want_car" type="xs:boolean" /> 
     <xs:element name="payAccNumber" type="xs:string" /> 

     <!-- THE NEXT COLOUMS I'D LIKE TO BE XML TRANSIENT--> 

     <xs:element name="companyid" type="xs:long" /> 
     <xs:element name="groupid" type="xs:long" /> 
     <xs:element name="userid" type="xs:long" /> 
     <xs:element name="username" type="xs:string" /> 
     <xs:element name="createDate" type="xs:date"> 
     <xs:annotation> 
      <xs:appinfo> 
      <hj:basic> 
       <orm:column name="createDate" column-definition="timestamp" /> 
      </hj:basic> 
      </xs:appinfo> 
     </xs:annotation> 
     </xs:element> 
     <xs:element name="modifiedDate" type="xs:date"> 
     <xs:annotation> 
      <xs:appinfo> 
      <hj:basic> 
       <orm:column name="modifiedDate" column-definition="timestamp" /> 
      </hj:basic> 
      </xs:appinfo> 
     </xs:annotation> 
     </xs:element> 
    </xs:sequence> 
    </xs:complexType> 
</xs:schema> 
+2

스키마는 인스턴스의 구조를 나타내므로 스키마에 있으면 인스턴스에 있습니다. XML로 표현 된 데이터를 원하지 않으면 XSD에서 데이터를 제거하십시오. 생성 된 클래스의 하위 클래스를 만들고 XML에 유지되지 않는 @XmlTransient라는 태그가 추가 된 새 속성을 추가 할 수 있습니다. – helderdarocha

답변

1

내 XSD 이것에 대한 Annotate 플러그인을 시도합니다. (Diclaimer : 저는 저자입니다.) @XmlRootElement의 예가 있는데, @XmlTransient은 비슷합니다.

<annox:annotate target="class"> 
    <annox:annotate annox:class="javax.xml.bind.annotation.XmlRootElement" 
     namespace="someNamespace"/> 
</annox:annotate> 
+0

동일한 아이디어를 사용하여 필드 transient를 표시하려고합니다. 그러나 작동하지 않습니다. –

+0

@MandarKulkarni Unfortunatelly, 이것은 아무도 아무 것도 할 수없는 "작동하지 않는"댓글 유형입니다. 다른 질문을하거나 문제를 자세하게 설명하고 지금까지 시도한 것을 보여 주면 도움을받을 수 있습니다. 지금 "작동하지 않는 것"에 대한 대답은 아마 당신이 뭔가 잘못하고있는 것입니다. – lexicore

관련 문제