2011-07-27 4 views
1

jaxb2-maven-plugin 1.3 개체의 특성을 건너 뜁니다. XSD을 수정할 수 없습니다.JAXB (jaxb2-maven-plugin)가이 속성을 건너 뛴 이유는 무엇입니까?

<?xml version="1.0" encoding="ISO-8859-1" ?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> 

    <xs:element name="classA" type="classA" substitutionGroup="classSubA"/> 

    <xs:complexType name="complexClassA" mixed="true"> 

    <xs:attribute name="attA"> 
     <xs:annotation> 
      <xs:appinfo> 
       <moProperty value="classA:attA"/> 
       <label value="Attribute A" default="true"/> 
       <externAccess value="readWrite"/> 
      <description value="NO COMMENTS"/> 
     </xs:appinfo> 
    </xs:annotation> 
    <xs:simpleType> 
     <xs:restriction base="xs:string"> 
      <xs:enumeration value="off"/> 
      <xs:enumeration value="on"/> 
     </xs:restriction> 
    </xs:simpleType> 
</xs:attribute> 

<xs:attribute name="id" type="xs:unsignedInt"> 
    <xs:annotation> 
     <xs:appinfo> 
      <moProperty value="myClassB:id"/> 
      <label value="Id" default="true"/> 
      <externAccess value="readWrite"/> 
      <description value="NO COMMENTS"/> 
     </xs:appinfo> 
    </xs:annotation> 
</xs:attribute> 
</xs:schema> 

결과 Java Object (단편) 다음 XSD (단편)에서

public class ComplexClassA { 
    @XmlSchemaType(name = "unsignedInt") 
    protected Long id; 
} 

이유는 그것이 attA 발생 부재되지?

인라인 열거가 발생할 수 있습니까?

감사합니다.

우도.

답변

1

는 잘 작동한다.

감사합니다.

1

문제를 나타내는 완전한 XML 스키마를 제공 할 수 있습니까? 선 아래에는 내가 시도한 것이고 모든 것이 예상대로 작동하는 것처럼 보입니다.


나는 다음과 같은 XML 스키마에서 XJC를 실행하면 예상대로

<?xml version="1.0" encoding="UTF-8"?> 
<xs:schema 
    xmlns:xs="http://www.w3.org/2001/XMLSchema" 
    targetNamespace="http://www.example.org/Foo" xmlns="http://www.example.org/Foo" 
    elementFormDefault="qualified"> 

    <xs:complexType name="complexClassA" mixed="true"> 

     <xs:attribute name="attA"> 
      <xs:annotation> 
       <xs:appinfo> 
        <moProperty value="classA:attA"/> 
        <label value="Attribute A" default="true"/> 
        <externAccess value="readWrite"/> 
        <description value="NO COMMENTS"/> 
       </xs:appinfo> 
      </xs:annotation> 
      <xs:simpleType> 
       <xs:restriction base="xs:string"> 
       <xs:enumeration value="off"/> 
       <xs:enumeration value="on"/> 
       </xs:restriction> 
      </xs:simpleType> 
     </xs:attribute> 

     <xs:attribute name="id" type="xs:unsignedInt"> 
      <xs:annotation> 
       <xs:appinfo> 
        <moProperty value="myClassB:id"/> 
        <label value="Id" default="true"/> 
        <externAccess value="readWrite"/> 
        <description value="NO COMMENTS"/> 
       </xs:appinfo> 
      </xs:annotation> 
     </xs:attribute> 

    </xs:complexType> 

</xs:schema> 

내가 다음 클래스를 얻을 : 당신이

package org.example.foo; 

import javax.xml.bind.annotation.XmlAccessType; 
import javax.xml.bind.annotation.XmlAccessorType; 
import javax.xml.bind.annotation.XmlAttribute; 
import javax.xml.bind.annotation.XmlSchemaType; 
import javax.xml.bind.annotation.XmlType; 
import javax.xml.bind.annotation.XmlValue; 

@XmlAccessorType(XmlAccessType.FIELD) 
@XmlType(name = "complexClassA", propOrder = { 
    "content" 
}) 
public class ComplexClassA { 

    @XmlValue 
    protected String content; 
    @XmlAttribute 
    protected String attA; 
    @XmlAttribute 
    @XmlSchemaType(name = "unsignedInt") 
    protected Long id; 

    public String getContent() { 
     return content; 
    } 

    public void setContent(String value) { 
     this.content = value; 
    } 

    public String getAttA() { 
     return attA; 
    } 

    public void setAttA(String value) { 
     this.attA = value; 
    } 

    public Long getId() { 
     return id; 
    } 

    public void setId(Long value) { 
     this.id = value; 
    } 

} 
+0

인라인 열거 형은 어떻게됩니까? 곳은? 죄송하지만 XSD를 공개 할 수는 없습니다. 나는 내일 사무실에서보다 의미있는 예를 들어 보겠습니다. 시간 내 주셔서 감사합니다. – ssedano

0

을 사용하고있는 JAXB 버전? 인라인 열거 형을 Java 열거 형으로 올바르게 변환해야합니다.

속성 정의 밖에서 simpleType을 정의하면 아마도 도움이 될 수 있습니다.

org.jvnet.jaxb2.maven2 받는다는-JAXB2 - 플러그인

모든가는 후

+0

답장을 보내 주셔서 감사합니다. 파일을 수정할 수 없습니다. – ssedano