2013-02-26 2 views
3

JAXB를 사용하여 XML로 변형 된 끔찍한 긴 이름의 클래스가 있습니다. @XmlRootElement(name="nicername")을 사용하여 외부 XML 태그의 이름을 <nicername>으로 바꿀 수 있습니다.JAXB 이름 바꾸기 속성

클래스의 추악한 이름을 가진 개별 속성의 이름을 멋진 이름으로 변경하려면 어떻게해야합니까?

+1

모두 감사합니다,이 질문에 대답한다. 트릭은 @XmlAccessorType (XmlAccessType.FIELD)을 사용하는 것입니다. –

답변

1

당신은 사용하여 객체 속성에 대한 대체 이름을 정의 할 수 있습니다 :

+0

@XmlElement (name = "better")를 시도했지만 해당 setter 함수의 공식 매개 변수 이름이 개인 데이터 멤버와 같지 않은 경우에만 작동합니다. 흠. 엄청 이상해. 하지만 .. 속성이 두 번, 못생긴 이름이 한 번, 멋진 이름이 한 번 나타납니다. 무슨 일이야 ?? –

+0

맞지 않을 것입니다. 메소드 매개 변수 이름은 직렬화 프로세스에 영향을 미치지 않습니다. 코드 샘플을 사용하여 질문을 확장 할 수 있습니다. – Perception

+0

이것은 저에게 효과적입니다. 즉, 1) 못생긴 개체 이름의 이름이 바뀌었지만 2) 원래 이름으로 결과가 복제되었습니다. @XmlRootElement (NAME = "niceclass")가 UblyServiceObject GeneralServiceObject 연장 Public 클래스 { 공개 UglyServiceObject() {} \t @XmlElement (NAME = "nicemember") 전용 SomeList someList1; public void setSomeList (SomeList someList2) {\t \t this.someList1 = someList2; } \t 공개 SomeList getSomeList() {\t \t \t 창 this.someList1; } } –

1

모두 @XmlAttribute 및 @XmlElement 주석의 속성

  • XMLElement 주석에 대한 이름은 @XmlRootElement 주석과 동일한 구문을 사용합니다. 따라서 매핑 된 각 필드/속성에 관련 주석을 첨부하고 "이름"에 대한 인수를 제공하십시오.

  • +0

    Thx, 위의 비고 참조 –

    5

    @XmlAttribute@XmlElement 주석을 사용하여 XML 이름을 변경할 수 있습니다.

    @XmlRootElement(name="nice-name") 
    @XmlAccessorType(XmlAccessType.FIELD) 
    public class UglyName { 
    
        @XmlElement(name="nice-element-name") 
        private String uglyElementName; 
    
        @XmlAttribute(name="nice-attribute-name") 
        private String uglyAttributeName; 
    
    } 
    

    아니면 속성을 주석을 달 수 있습니다 : 당신이 주석하는 경우 필드는 클래스에 @XmlAccessorType(XmlAccessType.FIELD) 주석을 사용하십시오

    @XmlRootElement(name="nice-name") 
    public class UglyName { 
    
        private String uglyElementName; 
        private String uglyAttributeName; 
    
        @XmlElement(name="nice-element-name") 
        public String getUglyElementName() { 
         return uglyElementName; 
        } 
    
        public void setUglyElementName(String name) { 
         this.uglyElementNamne = name; 
        } 
    
        @XmlAttribute(name="nice-attribute-name") 
        public String getUglyAttributeName() { 
         return uglyAttributeName; 
        } 
    
        public void setUglyAttributeName(String name) { 
         this.uglyAttributeNamne = name; 
        } 
    
    } 
    
    +1

    매우 귀중하고 유익한 답변을 주셔서 감사합니다 :-) 그것은 작동합니다 !! 대단히 감사합니다. –