XML 架构:从字符串中排除 HTML 实体和控制字符



是否有XSD数据类型从XML实例中的字符串中排除HTML实体和其他控制字符?

不,没有排除 HTML 字符实体或控件字符的内置 XSD 数据类型,但您可能不需要,因为 XML 的格式良好定律已经排除

  1. 文档中未定义且未定义的字符实体 预定 义:

    <!ENTITY lt     "&#38;#60;">
    <!ENTITY gt     "&#62;">
    <!ENTITY amp    "&#38;#38;">
    <!ENTITY apos   "&#39;">
    <!ENTITY quot   "&#34;">
    
  2. 代理项块、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>

最新更新