XSD的xs:whiteSpace facet怎么控制空白处理

admin 百科 9
xs:whiteSpace facet 用于控制XML元素文本中空白字符的处理,仅适用于simpleType且须配合xs:restriction;取值为preserve(原样保留)、replace(换行制表符转空格)、collapse(默认,先replace再压缩首尾及连续空白)。

XSD的xs:whiteSpace facet怎么控制空白处理-第1张图片-佛山资讯网

xs:whiteSpace facet 用于控制 XML 元素文本内容中空白字符(空格、制表符、换行符等)的处理方式,它只适用于简单类型(simpleType),且必须配合 xs:restriction 使用。

三种取值及其效果

xs:whiteSpace 只接受以下三个字符串值,每种都会改变解析器对空白的“保留”或“归一化”行为:

  • preserve:原样保留所有空白字符,包括开头、中间、结尾的空格和换行。适合需要精确格式的场景,比如代码块、诗歌、日志行。
  • replace:把所有制表符(\t)、换行(\n\r)统一替换成空格,但不合并或删减空格数量。
  • collapse:先执行 replace,再将连续多个空白字符(含空格)压缩成单个空格,并自动去掉首尾空白。这是默认行为(即使不显式声明,也等效于 collapse)。

实际写法示例

下面定义一个姓名字段,要求严格保留用户输入的换行和缩进:

<xs:element name="bio">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:whiteSpace value="preserve"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

登录后复制

而如果用于普通地址字段,希望忽略多余空格,可显式写为:

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~