是否有XSD数据类型从XML实例中的字符串中排除HTML实体和其他控制字符?
不,没有排除 HTML 字符实体或控件字符的内置 XSD 数据类型,但您可能不需要,因为 XML 的格式良好定律已经排除
了文档中未定义且未定义的字符实体 预定 义:
<!ENTITY lt "&#60;"> <!ENTITY gt ">"> <!ENTITY amp "&#38;"> <!ENTITY apos "'"> <!ENTITY quot """>
代理项块、FFEE 和 FFFF 中的 Unicode 字符,此制作不允许:
Char::= #x9 | #xA | #xD | [#x20-#xD7FF]|[#xE000-#xFFFD]|[#x10000-#x10FFFF]
如果仍希望排除其他字符,可以定义一个类型,将xs:string
限制为排除 Unicode 常规类别"其他"类别,这将排除以下所有类别:
通过
此 XSD 类型
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
:
<xs:simpleType name="NoUnicodeOtherCodePointsString">
<xs:restriction base="xs:string">
<xs:pattern value="[P{C}]*"/>
</xs:restriction>
</xs:simpleType>