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

幻夢星雲
发布: 2025-12-14 23:28:03
原创
286人浏览过
xs:whiteSpace facet 用于控制XML元素文本中空白字符的处理,仅适用于simpleType且须配合xs:restriction;取值为preserve(原样保留)、replace(换行制表符转空格)、collapse(默认,先replace再压缩首尾及连续空白)。

xsd的xs:whitespace facet怎么控制空白处理

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>
登录后复制

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

Pinokio
Pinokio

Pinokio是一款开源的AI浏览器,可以安装运行各种AI模型和应用

Pinokio 232
查看详情 Pinokio
<xs:restriction base="xs:string">
  <xs:whiteSpace value="collapse"/>
</xs:restriction>
登录后复制

注意事项

这个 facet 不能用在属性上,仅限元素的内容;也不能和 xs:pattern 或其他 facet 冲突使用——例如,若已用 xs:pattern 要求“非空字符串”,又设 whiteSpace="collapse",那输入纯空白会被压缩为空串,导致校验失败。

另外,它影响的是验证阶段的值归一化行为,不是序列化输出格式。也就是说,XML 实际怎么存,还是看文档本身;XSD 只规定“解析时该怎么理解这些空白”。

基本上就这些。

以上就是XSD的xs:whiteSpace facet怎么控制空白处理的详细内容,更多请关注php中文网其它相关文章!

相关标签:
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门推荐
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号