我已经使用XJC工具从XSD派生了我的Java类。 Unmarshaling在默认设置下工作正常。但是我已经切换到SAX解析器实现(来自SAXSource这里:http://docs.oracle.com/javase/6/docs/api/index.html?javax/xml/bind/JAXBContext.html),现在unnmarshalling当然快2倍,但XML属性没有被解组。它表示定义为
的属性@XmlAttribute(required=true)
@XmlSchemaType(name = "anySimpleType")
protected String messageId;
设置为null
。在XML中我有
<Message messageId="123">
...
</Message>
其他所有内容都可以正确解组。 我对使用属性的所有对象都有这个问题。
我有SAX解析器的Apache Xerces实现。
答案 0 :(得分:2)
似乎JAXB无法与SAX解析器一起正常工作,除非将解析器设置为名称空间感知并设置了正确的名称空间。 DOM解析器可以正常工作,并将名称空间感知属性设置为false。