是否有XSD数据类型从XML实例中的字符串中排除HTML实体和其他控制字符?
答案 0 :(得分:1)
不,没有内置的XSD数据类型可以排除HTML字符实体或控制字符,但是你可能不需要一个,因为XML的良构法则 已经排除了< / EM> 强>
文档中未定义但未定义的字符实体 predefined:
<!ENTITY lt "&#60;"> <!ENTITY gt ">"> <!ENTITY amp "&#38;"> <!ENTITY apos "'"> <!ENTITY quot """>
Unicode characters,这些产品不允许这样做:
Char::= #x9 | #xA | #xD | [#x20-#xD7FF]|[#xE000-#xFFFD]|[#x10000-#x10FFFF]
如果您仍希望排除其他字符,可以定义一种限制xs:string
的类型,例如,排除Unicode general category 其他类别,这将排除所有以下类别:
C Other Cc | Cf | Cs | Co | Cn Cc Control a C0 or C1 control code Cf Format a format control character Cs Surrogate a surrogate code point Co Private_Use a private-use character Cn Unassigned a reserved unassigned code point or a noncharacter
通过此XSD类型:
<xs:simpleType name="NoUnicodeOtherCodePointsString">
<xs:restriction base="xs:string">
<xs:pattern value="[\P{C}]*"/>
</xs:restriction>
</xs:simpleType>