如何在春季启动时修复UnmarshalException意外元素?

时间:2019-12-26 18:09:19

标签: java xml spring-boot

我正在尝试使用Java中的JAXB解析和读取xml文件。但是,当我编译并运行代码时,会收到一条UnmarshalException : unexpected element消息。我意识到这是因为在我的Java类中,我具有与xml相关的变量名,但是它们具有引发Java编译器的符号和空格。因此,当我添加它时,我假设Java认为我在代码中犯了一个错误。

这些变量名出现错误

   private String _xmlns: coll;
    private String _xmlns: xsi;
    private String _xsi: schemaLocation;

我相信它与变量名中的冒号有关。我还认为可以使用@XmlElement(name=" string")解决这个问题,但我不确定。

XML:

<?xml version="1.0" encoding="UTF-8"?>
<results
        xmlns="urn:www-collation-com:1.0"
        xmlns:coll="urn:www-collation-com:1.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="urn:www-collation-com:1.0
urn:www-collation-com:1.0/results.xsd">

    <IIsWebServiceImpl array="1"
        guid="063D0DD72D5F3A46B118D7A963306361" xsi:type="coll:com.platform.model.topology.app.web.klm.KLMWebService">
        <modules array="1" guid="FBVRKJNR75858NND2UJ3J2IC9C9R" xsi:type="coll:com.collation.platform.model.topology.app.web.klm.KLMModule">
            <fileName>D:\pubKSRF</fileName>
            <isPlaceholder>false</isPlaceholder>
            <displayName/>
            <hierarchyDomain>app.web.klm</hierarchyDomain>
            <hierarchyType>KLMModule</hierarchyType>
        </modules>
        <modules array="2" guid="IJECI89585U5FJIDNVU3FI2NF" xsi:type="coll:com.platform.model.topology.app.web.klm.KLMModule">
            <fileName>d:\SRFdata</fileName>
            <isPlaceholder>false</isPlaceholder>
            <displayName/>
            <hierarchyDomain>app.web.klm</hierarchyDomain>
            <hierarchyType>KLMModule</hierarchyType>
        </modules>
        <modules array="3" guid="VNJFVFV8238DNCNCJ3J4JNDIEJC875" xsi:type="coll:com.platform.model.topology.app.web.klm.KLMModule">
            <fileName>D:\srfData</fileName>
            <isPlaceholder>false</isPlaceholder>
            <displayName/>
            <hierarchyDomain>app.web.klm</hierarchyDomain>
            <hierarchyType>KLMModule</hierarchyType>
        </modules>
        <isPlaceholder>false</isPlaceholder>
        <displayName/>
        <hierarchyDomain>app.web.klm</hierarchyDomain>
        <hierarchyType>KLMWebService</hierarchyType>
    </IIsWebServiceImpl>
</results>

Java类:


public class Results {
    IIsWebServiceImpl IIsWebServiceImplObject;
    private String _xmlns;
    private String _xmlns: coll;
    private String _xmlns: xsi;
    private String _xsi: schemaLocation;


    // Getter Methods

    public IIsWebServiceImpl getIIsWebServiceImpl() {
        return IIsWebServiceImplObject;
    }

    public String get_xmlns() {
        return _xmlns;
    }

    public String get_xmlns: coll() {
        return _xmlns: coll;
    }

    public String get_xmlns: xsi() {
        return _xmlns: xsi;
    }

    public String get_xsi: schemaLocation() {
        return _xsi: schemaLocation;
    }

    // Setter Methods

    public void setIIsWebServiceImpl(IIsWebServiceImpl IIsWebServiceImplObject) {
        this.IIsWebServiceImplObject = IIsWebServiceImplObject;
    }

    public void set_xmlns(String _xmlns) {
        this._xmlns = _xmlns;
    }

    public void set_xmlns: coll(String _xmlns: coll) {
        this._xmlns: coll = _xmlns: coll;
    }

    public void set_xmlns: xsi(String _xmlns: xsi) {
        this._xmlns: xsi = _xmlns: xsi;
    }

    public void set_xsi: schemaLocation(String _xsi: schemaLocation) {
        this._xsi: schemaLocation = _xsi: schemaLocation;
    }
}

错误:

javax.xml.bind.UnmarshalException: unexpected element (uri:"urn:www-collation-com:1.0", local:"results"). Expected elements are <{}IIsWebServiceImpl>,<{}modules>,<{}results>
    at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.handleEvent(UnmarshallingContext.java:714)
    at com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java:232)
    at com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportError(Loader.java:227)
    at com.sun.xml.bind.v2.runtime.unmarshaller.Loader.reportUnexpectedChildElement(Loader.java:94)
    at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext$DefaultRootLoader.childElement(UnmarshallingContext.java:1119)
    at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext._startElement(UnmarshallingContext.java:544)
    at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.startElement(UnmarshallingContext.java:526)
    at com.sun.xml.bind.v2.runtime.unmarshaller.SAXConnector.startElement(SAXConnector.java:138)
    at java.xml/com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:509)
    at java.xml/com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:374)
    at java.xml/com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl$NSContentDriver.scanRootElementHook(XMLNSDocumentScannerImpl.java:613)
    at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:3058)
    at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:821)
    at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:602)
    at java.xml/com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:112)
    at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:532)
    at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:888)
    at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:824)
    at java.xml/com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
    at java.xml/com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213)
    at java.xml/com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:635)
    at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:228)
    at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:199)
    at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:170)
    at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:209)
    at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:194)
    at Driver.main(Driver.java:23)

0 个答案:

没有答案
相关问题