我的 xml 文件有一个带有属性“containsValue”的标签,其中包含您可以在主题中看到的“特殊”字符:
<original_msg_body id="msgBodySpecialCharsRule" containsValue=";ìè+òàù-<^èç°§_>!£$%&/()=?~`'#;" />
在我的 xml 架构中,该属性具有 xs:string:
<xs:attribute name="containsValue" type="xs:string" />
我在一个 Java 软件中使用这个值,它检查这个值是否包含在另一个字符串中。
但我总是得到这个例外:
javax.xml.bind.UnmarshalException
- with linked exception:
[org.xml.sax.SAXParseException: The value of attribute "containsValue" associated with an element type "original_msg_body" must not contain the '<' character.]
我该如何解决?我尝试将属性类型更改为 xs:NMTOKEN,但我得到了同样的异常。还有其他类型吗?
我想我可以更改字符编码,例如使用 HTML 表示,如 <,但对于字符串比较可能会很棘手......