2012-04-30 7 views
5

요소에 3 가지 속성이 필요한 XML 파일이 있습니다. 내가 원하는대로 거리, 우편 및 도시의 순서를 어떻게 만들 수 있습니까?JAXB를 사용하여 @XmlAttribute를 특별한 순서로 만들려면 어떻게해야합니까?

<address street="Big Street" zip="2012" city="Austin"> 
</address> 
@XmlType(name="Street) 
@XmlRootElement(name = "Street") 
public class Street { 

@XmlAttribute 
private String name; 

@XmlAttribute 
private String type; 

    ... set and get method 
} 

답변

5

당신은 순서를 적용하는 @XmlAccessorOrder (미리 정의 된 값) 또는 @XmlType를 사용 (속성 만 작동) 할 수 있습니다.

Samples

편집 :

아무것도 제공 나던 사용자 정의 주문 JAXB 사양의

하지만 JAXB 공급자가 당신에게 몇 가지 기능을 제공하는 경우 당신이 할 수 있습니다.

이 부분은 EclipseLink JAXB를 사용하여 주문하는 방법에 대해 설명하는 link입니다.

+0

그래, 우리는 아무 것도 할 수없는 것처럼 보입니다. – Chris

+0

제공자 코드로 복원하지 않는 한 – mprabhat

8

어쨌든 속성은 코드에서 언급 한 것과 반대 순서로 표시됩니다. 내 경우에는, 내가 두 변수 (이름 & 값)를 사용하고 있는데 내가 그들을 선언했다 : XML이 생성되면

// The inverse order of name & value seems to make them render in XML in name/value order 
@XmlAttribute 
protected String value; 
@XmlAttribute 
protected String name; 

, 그것은 다음과 같은 결과 :

<attribute name="nameValue" value="valueValue"/> 
+0

내 코드에서 동일한 것을 보지 못했습니다 ... – chama

+2

자바 6에서 사전 순으로 정렬되어 있고 Java 7에서 선언 순서대로 정렬되어있는 것 같습니다 (내장형 JDK JAXB 프로 바이더). – Andreas

+0

자바 7은'propOrder'를 고려한 것 같습니다. – Andreas

관련 문제