개체가 두 개 있다고 가정 해 봅시다. 두 개, A와 B가 같은 클래스의 개체입니다. 나는 JAXB를 사용하여 이러한 개체를 마샬링 할 필요 출력 XML이 형식이어야합니다 :JAXB 출력 형식을 지정하는 데 도움이 필요합니다.
<Root>
<A>
<ID> an id </ID>
</A>
<B>
<ID> an id </ID>
</B>
</Root>
<!-- Then all A and B attributes must be listed !-->
<A>
<ID> an id </ID>
<attribute1> value </attribute1>
<attribute2> value </attribute2>
</A>
<B>
<ID> an id </ID>
<attribute1> value </attribute1>
<attribute2> value </attribute2>
</B>
어떻게 JAXB에서이 형식을 생성하기 위해? 어떤 도움을 주셔서 감사합니다.
업데이트 : 더 구체적으로, 우리는이 같은 인간의 클래스가 가정 :
@XmlRootElement
public class Human {
private String name;
private int age;
private Integer nationalID;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public Integer getNationalID() {
return nationalID;
}
public void setNationalID(Integer nationalID) {
this.nationalID = nationalID;
}
}
을 우리의 주요 클래스 것은 :
public class Main3 {
public static void main(String[] args) throws JAXBException {
Human human1 = new Human();
human1.setName("John");
human1.setAge(24);
human1.setNationalID(Integer.valueOf(123456789));
JAXBContext context = JAXBContext.newInstance(Human.class);
Marshaller m = context.createMarshaller();
m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
StringWriter stringWriter = new StringWriter();
m.marshal(human1, stringWriter);
System.out.println(stringWriter.toString());
}
}
그런 다음 출력은 다음과 같습니다
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<human>
<age>24</age>
<name>John</name>
<nationalID>123456789</nationalID>
</human>
출력이 필요합니다. 이 같은 :
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<human>
<nationalID>123456789</nationalID>
</human>
<human>
<nationalID>123456789</nationalID>
<age>24</age>
<name>John</name>
</human>
그리고이 날 (전용 ID로) 속성을 다음하지만 나무 아래의 모든 정의하지 않고 XML 객체의 트리를 그리는 데 도움이 될 것입니다. JAXB 또는 다른 구현을 사용하여이 작업을 수행 할 수 있습니까?
될 것입니다 불행하게도 이것이 내가 각 노드는 속성의 포함으로 이것은 XML을 생성 할 필요 없습니다. 나는 나에게 질문을 더 분명하게 업데이트했다. (나의 나쁜, 미안). –
jaxb를 사용하여 수행하려는 작업에 대한 솔루션이 없다고 생각합니다. 이름 지정이 너무 엄격하기 때문입니다. 어떻게 XML을 사용할 것인가? 아마도 다른 파서로 XML을 생성 할 수 있을지 모르지만, 최악의 시나리오에서는이 작업 만하는 파서를 직접 만들 수있다. 예상 한대로 만들려고했지만 추가 태그 및/또는 네임 스페이스에서만 가능합니다. – pXel
답장을 보내 주셔서 감사합니다. 내가 사용한 여분의 태그를 알려주십시오. 필요한 모든 태그를 사용할 수 있습니다. 또한 당신이 생각하는 다른 파서는이 문제를 해결하는 데 도움이 될 것입니다. 솔루션은 이름 지정에 엄격 할 필요는 없지만 ID 만 사용하여 개체 트리를 만들어야하며 개체의 특성이 트리 아래에 있어야합니다. 이것이 유일한 유일한 것입니다. 너에게 –