首页 > 解决方案 > XSD 架构验证错误:不得包含“<”字符

问题描述

我的 XSD 文件:

<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified"
           xmlns:xs="http://www.w3.org/2001/XMLSchema">

<xs:element name="sample">
        <xs:complexType>
            <xs:attribute type="xs:string" name="synopsis"/>
            <xs:attribute type="xs:string" name="genre"/>
        </xs:complexType>
    </xs:element>
</xs:schema>

XML 文件:

<asset 
synopsis="A romantic affair.<br><br>Contains one use of stronand moderate sex<br><br>Buy it" genre="Drama"/>

Java 代码:

// javax.xml.validation.Validator;
validator.validate(new StreamSource(new ByteArrayInputStream(xmlContent.getBytes(UTF_8))));

收到以下错误:

java.lang.AssertionError: XML Validation Error :The value of attribute "synopsis" associated with an element type "asset" must not contain the '<' character.

任何线索如何允许xml 属性值中的<和字符?>

标签: javaxmlxsd

解决方案


在 XML 属性值中<转义。&lt;

可选地,为了对称,>&gt;XML 属性值中转义。

另请参阅简化的 XML 转义


推荐阅读