折叠在xml模式中的使用

折叠在xml模式中的使用,xml,validation,xsd,Xml,Validation,Xsd,在XMLSchema中,我对一个元素进行了以下操作 <xs:whiteSpace value="collapse" /> 我在w3schools.com上看到的是 空白约束设置为“折叠”,这意味着XML处理器将删除所有空白字符(换行符、制表符、空格、回车替换为空格,删除前导空格和尾随空格,并将多个空格缩减为单个空格) 我发现在对模式进行xml验证期间(通过使用stylus studio和visual studio),如果该元素有多个空格或换行符提要等,那么验证不会给出错

在XMLSchema中,我对一个元素进行了以下操作

    <xs:whiteSpace value="collapse" />

我在w3schools.com上看到的是

空白约束设置为“折叠”,这意味着XML处理器将删除所有空白字符(换行符、制表符、空格、回车替换为空格,删除前导空格和尾随空格,并将多个空格缩减为单个空格)

我发现在对模式进行xml验证期间(通过使用stylus studio和visual studio),如果该元素有多个空格或换行符提要等,那么验证不会给出错误。那么崩溃意味着什么呢?它是告诉元素不应该有一个以上的空格、制表符等(但在验证中没有出现错误),还是它是其他东西

更新: 那么,这种折叠是否仅用于xml验证

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


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

您可以指定在执行其他验证之前,应规范化或折叠字符串的空格。例如,您可以指定facet
,如果将空格设置为折叠,则值
“999”
将有效,因为在根据模式测试值之前,空格将被删除。

我还有一些疑问。所以我更新了我的问题。所以请看一看,删除空格也会影响PSVI中的值。这是否会影响您取决于您处理数据的方式;例如,我不知道JAXB是显示折叠的值还是原始值。我可以为您提供XPath/XSLT/XQuery的答案(但这不是一个简单的答案,在某种程度上是实现定义的…)