XMLコンテンツは
<?xml version="1.0" encoding="UTF-8"?>
<COUNTRY xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.w3schools.com Country_Details.xsd">
<STATE name="AndhraPradesh">
<DISTRICT name="Chittoor">
<PHONENO>255258</PHONENO>
<ADDRESS>bazarr Street</ADDRESS>
</DISTRICT>
<DISTRICT name="Kadapa">
<PHONENO>24137457</PHONENO>
<ADDRESS>congtres Street</ADDRESS>
</DISTRICT>
</STATE>
<STATE>
...
</STATE>
</COUNTRY>
これは私の国のクラス Country.javaです
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = " ", propOrder = { "state" })
@XmlRootElement(name = "COUNTRY")
public class COUNTRY {
@XmlElement(name = "STATE", required = true)
protected List<Districts> state;
public List<Districts> getSTATE() {
if (state == null) {
state = new ArrayList<Districts>();
}
return this.state;
}
}
パッケージ情報:
@javax.xml.bind.annotation.XmlSchema(namespace = "http://www.w3schools.com",
elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
package com.kk;
メインクラス
public class App {
public static void main(String[] args) throws JAXBException {
JAXBContext context = JAXBContext.newInstance(AddressDetails.class,
COUNTRY.class, Details.class, Districts.class, ObjectFactory.class);
Unmarshaller um = context.createUnmarshaller();
JAXBElement<COUNTRY> jaxb = (JAXBElement<COUNTRY>) um
.unmarshal(new File("src//Country.xml"));
COUNTRY value = jaxb.getValue();
System.out.println(value);
}
次のようなエラーが発生しました。
Exception in thread "main"
javax.xml.bind.UnmarshalException:unexpected element(uri:"", local:"COUNTRY").
Expected elements are <{http://www.w3schools.com}COUNTRY>
at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.handleEvent
(UnmarshallingContext.java:642)
at com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java:254)
at com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java:249)
at com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportUnexpectedChildElement
(Loader.java:116)
at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext$DefaultRootLoader.childElement(UnmarshallingContext.java:1049)
at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext._startElement(UnmarshallingContext.java:478)
at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.startElement(UnmarshallingContext.java:459)
at com.sun.xml.bind.v2.runtime.unmarshaller.SAXConnector.startElement(SAXConnector.java:148)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(Unknown Source)
at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(Unknown Source)
at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(Unknown Source)
at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(Unknown Source)
at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(Unknown Source)
at App.main(App.java:20)
どこに問題があるのかわからないので、いろいろ試してみましたが、わかりません..