【问题标题】:Collapse use in xml schema在 xml 架构中折叠使用
【发布时间】:2013-06-15 22:27:41
【问题描述】:

在 xml 架构中,我有以下元素

    <xs:whiteSpace value="collapse" />

我在 w3schools.com 看到的是

"whiteSpace 约束设置为"collapse",这意味着 XML 处理器将删除所有空白字符(换行符、制表符、空格、回车符被替换为空格,前导和尾随空格被删除,以及多个空格被缩减为一个空格)”

我发现在针对架构的 xml 验证期间(通过使用 stylus studio 和 Visual Studio),如果该元素有多个空格或换行符等,那么验证不会给出错误。那么折叠是什么意思?它是告诉元素不应该有多个空格、制表符等(但在验证中没有出现错误)还是别的什么?

更新: 那么这个collapse是否只用于xml的验证呢?

xml 解析器在处理时强制删除这些空间?

如果 xml 有多个空格字符并且为该元素指定了折叠,是否还有其他问题?

【问题讨论】:

    标签: xml validation xsd


    【解决方案1】:

    您可以指定在执行其他验证之前对字符串进行规范化或折叠空格。例如,您可以指定 facet &lt;xs:pattern value="\d{3}"/&gt;,如果将空格设置为折叠,则值 " 999 " 将是有效的,因为在针对该模式测试值之前会删除空格。

    【讨论】:

    • 我还有一些疑问。所以我更新了我的问题。所以请看一下。
    • 删除空格也会影响 PSVI 中保存的值。这是否会影响您取决于您​​处理数据的方式;例如,我不知道 JAXB 是呈现折叠值还是原始值。我可以给你一个 XPath/XSLT/XQuery 的答案(但这不是一个简单的答案,在某种程度上是实现定义的......)
    猜你喜欢
    • 2011-01-03
    • 1970-01-01
    • 2019-04-01
    • 2012-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多