我使用JAXB创建以下架构类(在Web服务中使用):XML属性没有空格
<xs:complexType name="ExceptionType">
<xs:attribute name="errorCode" type="xs:positiveInteger" use="required"/>
<xs:attribute name="outcomeType" use="required">
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="rejectFile"/>
<xs:enumeration value="rejectSubmission"/>
<xs:enumeration value="continue"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:complexType>
虽然他们会发送实际的XML是
<Exception errorCode="1503"outcomeType="continue">
(带没有“1503”和outcomeType的空格)。
现在,我与<Exception errorCode="\1" outcomeType
整个XML响应更换<Exception errorCode="(\d*)"outcomeType
将其送入JAXB解组之前和它的作品,但我不知道一些其他的XML响应都会有这样的“错误”。
有没有更简单的方法让JAXB接受这个attr1="value"attr2
错误的XML标签?或者也许使用一些自定义的XMLFilterImpl?
我会接受这一个作为答案,因为它是一个更好解决方法比我目前的一个。尽管我不会使用它,因为当前流包含多个XML文档,并且我已经有了一个自定义过滤器来将它们分开,以便JAXB正确处理它们,从而导致错误的行和列号。另外,可能有多个ExceptionType元素,都包含这个bug,这需要一个循环来修复所有这些,这是一个很大的性能影响,而不是快速替换每个匹配。谢谢! – 2011-12-19 17:17:30