JAXB Unmarshaller用空格

时间:2016-01-05 10:02:25

标签: regex xsd jaxb sax xerces

使用JAXB解析XML文件时遇到一种非常奇怪的行为。 Google之前不会找到其他任何人遇到此问题。

在我的XSD文件中,我得到了以下限制模式:

    <xsd:restriction base="xoev-lc:String.Latin">
        <xsd:whiteSpace value="preserve"/>
        <xsd:pattern value="([^\n\r\t])*"/>
    </xsd:restriction>

在我的测试XML文件中,我收到了街道“My Street”的邮政地址,我得到了这样的解析错误:

  

[org.xml.sax.SAXParseException; lineNumber:23; columnNumber:53; cvc-pattern-valid:Wert“My Street”ist nicht Facet-gültig在Bezug auf Muster“([^ \ n \ r])*”fürTyp“AdressBestandteilType”。]

表示该值在模式上不是facet-valid。 请注意,模式中的\ t已被空格替换!如果我将街道更改为没有空格的“MyStreet”,则我的XML文件有效。

为什么JAXB用空格替换选项卡?任何提示如何解决这个问题而不改变XSD?

0 个答案:

没有答案