我正在尝试使用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)