2014-05-11 8 views
1

저는 schemagen을 사용하여 autmATED 생성 된 XSD 파일과 조금 어려움을 겪고 있습니다. 우선, 나는 대학에서 프로젝트를 위해 일하고 있고 자바 클래스의 코드에서 아무 것도 바꾸지 말고 주석을 달지 말아야한다는 것을 말해야한다. ...JAXB Schemagen (v. 7.0.450.18) : XmlElement 이름과 XmlType을 변경하십시오 (propOrder = {...})

그래서 기본적으로 내가해야 할 일은 내 XmlElements 중 일부의 이름을 바꾸고 특정 Order로 가져와야합니다. XmlAccessorType에의

@XmlType(propOrder = { "email", "id", "name", "publication" }) 
public class Author { 
    ... 
    private List<Publication> publications = new LinkedList<>(); 
    ... 
    @XmlElement(name = "publication") 
    public List<Publication> getPublications() { 
    return publications; 
} 
    public void setPublications(List<Publication> publications) { 
    this.publications = publications; 
} 

기본값은 @XmlAccessorType(XmlAccessType.PUBLIC_MEMBER)입니다 : 난 내가 그런 식으로이 문제를 해결할 수있는, 생각했다. 그러나 나는 (... 이클립스와 명령 줄에서)에서는 schemagen을 사용하여 XML 스키마를 생성 할 때, 나는 다음과 같은 오류 얻을 : 나이에

Property publications is present but not specified in @XmlType.propOrder 

하고 그래서

Property publication appears in @XmlType.propOrder, but no such property exists. Maybe you meant publications? 

을, 조금 모순 된 소리가 들리네. schemagen이 completly 내가 지정한 것을 무시하는 것 같아. 아무도 문제가 어디 있는지 말해 줄 수 있니?

고맙습니다.

답변

0

propOrder은 매핑 된 필드/속성 이름을 기반으로하며 XML 특성 또는 요소의 이름을 기반으로하지 않습니다.

+0

답해 주셔서 감사합니다. 그래서 당신은 @XmlElement (name = "publication")가 내 propOrder를 무시한다는 것을 의미합니까? 같은 클래스에서 순서를 변경하고 순서를 변경하는 등 둘 다 어떻게 수행 할 수 있습니까? – user3005072

+0

@ user3005072 -'propOrder'는 속성 이름 (발행물)을 기반으로하며'@XmlElement'를 사용하여 주석을 추가할지 여부와는 완전히 독립적입니다. –