JAXB2解组xsd:anyType错误

JAXB2解组xsd:anyType错误,jaxb,unmarshalling,jaxb2,Jaxb,Unmarshalling,Jaxb2,在对包含xsd:anyType(ur-type)对象的数据进行解组时遇到问题,例如: <xsd:element name="Options" minOccurs="0"> <xsd:complexType> <xsd:sequence> <xsd:element name="Key" minOccurs="0"/> <xsd:ele

在对包含xsd:anyType(ur-type)对象的数据进行解组时遇到问题,例如:

    <xsd:element name="Options" minOccurs="0">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element name="Key" minOccurs="0"/>
                <xsd:element name="Next" minOccurs="0"/>
            </xsd:sequence>
        </xsd:complexType>
    </xsd:element>
编组可以工作,但在解编组时,它抛出以下异常:

    org.w3c.dom.DOMException: NAMESPACE_ERR: An attempt is made to create or change an object in a way which is incorrect with regard to namespaces.
        at org.apache.xerces.dom.CoreDocumentImpl.checkNamespaceWF(Unknown Source)
        at org.apache.xerces.dom.ElementNSImpl.setName(Unknown Source)
        at org.apache.xerces.dom.ElementNSImpl.<init>(Unknown Source)
        at org.apache.xerces.dom.CoreDocumentImpl.createElementNS(Unknown Source)
        at org.apache.xml.utils.DOMBuilder.startElement(DOMBuilder.java:322)
        at org.apache.xalan.transformer.TransformerIdentityImpl.startElement(TransformerIdentityImpl.java:1072)
        at com.sun.xml.bind.v2.runtime.unmarshaller.DomLoader.startElement(DomLoader.java:118)
        at com.sun.xml.bind.v2.runtime.unmarshaller.XsiTypeLoader.startElement(XsiTypeLoader.java:73)
        at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext._startElement(UnmarshallingContext.java:455)
        at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.startElement(UnmarshallingContext.java:433)
        at com.sun.xml.bind.v2.runtime.unmarshaller.InterningXmlVisitor.startElement(InterningXmlVisitor.java:71)
        at com.sun.xml.bind.v2.runtime.unmarshaller.SAXConnector.startElement(SAXConnector.java:137)
        at com.sun.xml.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:240)
        at com.sun.xml.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:277)
        at com.sun.xml.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:246)
        at com.sun.xml.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:277)
        at com.sun.xml.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:246)
        at com.sun.xml.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:277)
        at com.sun.xml.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:246)
        at com.sun.xml.bind.unmarshaller.DOMScanner.scan(DOMScanner.java:123)
        at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:314)
        at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:297)
        at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:107)
        at org.springframework.oxm.jaxb.Jaxb2Marshaller.unmarshal(Jaxb2Marshaller.java:581)
        at org.springframework.oxm.jaxb.Jaxb2Marshaller.unmarshal(Jaxb2Marshaller.java:568)
...
谢谢


Henry Kim

您不需要包含JAXB JAR,它已经包含在Java6中。这可能是Metro JAXB的一个bug。您是否尝试过另一个JAXB impl,如EclipseLink MOXy JAXB(我是技术负责人):嗨,您解决了这个问题了吗?
    org.w3c.dom.DOMException: NAMESPACE_ERR: An attempt is made to create or change an object in a way which is incorrect with regard to namespaces.
        at org.apache.xerces.dom.CoreDocumentImpl.checkNamespaceWF(Unknown Source)
        at org.apache.xerces.dom.ElementNSImpl.setName(Unknown Source)
        at org.apache.xerces.dom.ElementNSImpl.<init>(Unknown Source)
        at org.apache.xerces.dom.CoreDocumentImpl.createElementNS(Unknown Source)
        at org.apache.xml.utils.DOMBuilder.startElement(DOMBuilder.java:322)
        at org.apache.xalan.transformer.TransformerIdentityImpl.startElement(TransformerIdentityImpl.java:1072)
        at com.sun.xml.bind.v2.runtime.unmarshaller.DomLoader.startElement(DomLoader.java:118)
        at com.sun.xml.bind.v2.runtime.unmarshaller.XsiTypeLoader.startElement(XsiTypeLoader.java:73)
        at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext._startElement(UnmarshallingContext.java:455)
        at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallingContext.startElement(UnmarshallingContext.java:433)
        at com.sun.xml.bind.v2.runtime.unmarshaller.InterningXmlVisitor.startElement(InterningXmlVisitor.java:71)
        at com.sun.xml.bind.v2.runtime.unmarshaller.SAXConnector.startElement(SAXConnector.java:137)
        at com.sun.xml.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:240)
        at com.sun.xml.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:277)
        at com.sun.xml.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:246)
        at com.sun.xml.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:277)
        at com.sun.xml.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:246)
        at com.sun.xml.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:277)
        at com.sun.xml.bind.unmarshaller.DOMScanner.visit(DOMScanner.java:246)
        at com.sun.xml.bind.unmarshaller.DOMScanner.scan(DOMScanner.java:123)
        at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:314)
        at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:297)
        at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(AbstractUnmarshallerImpl.java:107)
        at org.springframework.oxm.jaxb.Jaxb2Marshaller.unmarshal(Jaxb2Marshaller.java:581)
        at org.springframework.oxm.jaxb.Jaxb2Marshaller.unmarshal(Jaxb2Marshaller.java:568)
...
JDK 1.6.0_19
spring-oxm-3.0.5.RELEASE.jar
jaxb-impl-2.1.7.jar
jaxb-api-2.1.jar
com.springsource.org.apache.xalan-2.7.0.jar
com.springsource.org.apache.xerces-2.8.1.jar