4

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)

どこに問題があるのか​​わからないので、いろいろ試してみましたが、わかりません..

4

1 に答える 1