におけるJavaのXMLのための構造を確認してくださいJAXB:これは私のXMLファイルであるJAXB
<BADFM>
<Given>
<Ord>
<Bag IDC="DM" />
</Ord>
</Given>
</BADFM>
これはこれはMyMessage
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement(name="BADFM")
public class MyMessage
{
@XmlElement(name="Given")
private Given given;
public Given getGiven() {
return given;
}
public void setGiven(Given given) {
this.given = given;
}
}
ある
import java.io.File;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.Unmarshaller;
public class Test {
public static void main(String args[]) throws Exception {
File file = new File("D:\\BADML.xml");
JAXBContext jaxbContext = JAXBContext
.newInstance(MyMessage.class);
Unmarshaller jaxbUnmarshaller = jaxbContext.createUnmarshaller();
MyMessage authentifyResult = (MyMessage) jaxbUnmarshaller
.unmarshal(file);
System.out.println(authentifyResult.getGiven().getOrd().getBag().getIDC());
}
}
私ParserクラスでありますこれはGivenです.java
import javax.xml.bind.annotation.XmlElement;
public class Given {
private Ord ord;
@XmlElement(name = "Ord")
public Ord getOrd() {
return ord;
}
public void setOrd(Ord ord) {
this.ord = ord;
}
}
これは私があなたのために@XmlAttribute
を使用する必要が
Exception in thread "main" com.sun.xml.internal.bind.v2.runtime.IllegalAnnotationsException: 1 counts of IllegalAnnotationExceptions
Class has two properties of the same name "IDC"
this problem is related to the following location:
at public java.lang.String Bag.getIDC()
at Bag
at public Bag Ord.getBag()
at Ord
at public Ord Given.getOrd()
at Given
at public Given MyMessage.getGiven()
at MyMessage
this problem is related to the following location:
at private java.lang.String Bag.IDC
at Bag
at public Bag Ord.getBag()
at Ord
at public Ord Given.getOrd()
at Given
at public Given MyMessage.getGiven()
at MyMessage
at com.sun.xml.internal.bind.v2.runtime.IllegalAnnotationsException$Builder.check(Unknown Source)
at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.getTypeInfoSet(Unknown Source)
at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl.<init>(Unknown Source)
at com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl$JAXBContextBuilder.build(Unknown Source)
at com.sun.xml.internal.bind.v2.ContextFactory.createContext(Unknown Source)
at com.sun.xml.internal.bind.v2.ContextFactory.createContext(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at javax.xml.bind.ContextFinder.newInstance(Unknown Source)
at javax.xml.bind.ContextFinder.find(Unknown Source)
at javax.xml.bind.JAXBContext.newInstance(Unknown Source)
at javax.xml.bind.JAXBContext.newInstance(Unknown Source)
at Test.main(Test.java:11)
どうもありがとう、私はIDCのため@XmlAttributeを使用する場合のコードは、このXML <バッグIDC = "DM" /> のために動作しますしますので、 –
Pawan
はい。私はそれを明確にするために答えを更新しました。 –
こんにちは、速やかな応答ありがとう、私はそれを実行したとき、私はIllegalAnnotationExceptionsの2つのカウントを取得している、私は質問を更新した何か間違って教えてください – Pawan