JAXB를 사용하여 XML로 변형 된 끔찍한 긴 이름의 클래스가 있습니다. @XmlRootElement(name="nicername")
을 사용하여 외부 XML 태그의 이름을 <nicername>
으로 바꿀 수 있습니다.JAXB 이름 바꾸기 속성
클래스의 추악한 이름을 가진 개별 속성의 이름을 멋진 이름으로 변경하려면 어떻게해야합니까?
JAXB를 사용하여 XML로 변형 된 끔찍한 긴 이름의 클래스가 있습니다. @XmlRootElement(name="nicername")
을 사용하여 외부 XML 태그의 이름을 <nicername>
으로 바꿀 수 있습니다.JAXB 이름 바꾸기 속성
클래스의 추악한 이름을 가진 개별 속성의 이름을 멋진 이름으로 변경하려면 어떻게해야합니까?
당신은 사용하여 객체 속성에 대한 대체 이름을 정의 할 수 있습니다 :
XMLAttribute
주석으로 매핑 할 수있는 요소@XmlElement (name = "better")를 시도했지만 해당 setter 함수의 공식 매개 변수 이름이 개인 데이터 멤버와 같지 않은 경우에만 작동합니다. 흠. 엄청 이상해. 하지만 .. 속성이 두 번, 못생긴 이름이 한 번, 멋진 이름이 한 번 나타납니다. 무슨 일이야 ?? –
맞지 않을 것입니다. 메소드 매개 변수 이름은 직렬화 프로세스에 영향을 미치지 않습니다. 코드 샘플을 사용하여 질문을 확장 할 수 있습니다. – Perception
이것은 저에게 효과적입니다. 즉, 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; } } –
모두 @XmlAttribute 및 @XmlElement 주석의 속성
XMLElement
주석에 대한 이름은 @XmlRootElement 주석과 동일한 구문을 사용합니다. 따라서 매핑 된 각 필드/속성에 관련 주석을 첨부하고 "이름"에 대한 인수를 제공하십시오.Thx, 위의 비고 참조 –
@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;
}
}
매우 귀중하고 유익한 답변을 주셔서 감사합니다 :-) 그것은 작동합니다 !! 대단히 감사합니다. –
모두 감사합니다,이 질문에 대답한다. 트릭은 @XmlAccessorType (XmlAccessType.FIELD)을 사용하는 것입니다. –