首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XML联合忽略whiteSpace属性

XML联合忽略whiteSpace属性
EN

Stack Overflow用户
提问于 2014-12-05 02:39:16
回答 1查看 1.1K关注 0票数 1

根据空格的XML规范

对于所有的数据类型·派生·by·union·whiteSpace并不直接适用,但是,的规范化行为是由whiteSpace值控制的,而·union·types·对其进行了成功的验证。

用于字符串,whiteSpace的值是保存

基于该的,下面的示例不应该有效,因为应该保留字符串的空格,并且不应该满足模式。然而,它是有效的。所以,我的查询是,为什么这个XML对这个模式有效?

XML (请注意白色感受器):

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8" ?>
<elem>  Hello           world</elem>

XML (注意模式限制):

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:simpleType name="myUnion">
        <xs:union memberTypes="xs:string">
        </xs:union>
    </xs:simpleType>

    <xs:element name="elem">
        <xs:simpleType>
            <xs:restriction base="myUnion">
                <xs:pattern value="Hello world" />
            </xs:restriction>
        </xs:simpleType>
    </xs:element>
</xs:schema>

编辑: Xerces说它有效,Saxon说它无效。那似乎是Xerces的一个bug。

然而,如果我们这样定义工会:

代码语言:javascript
复制
<xs:simpleType name="myUnion">
    <xs:union>
        <xs:simpleType>
            <xs:restriction base="xs:string">
                <xs:whiteSpace value="collapse"/>
            </xs:restriction>
        </xs:simpleType>
    </xs:union>
</xs:simpleType>

再次,Xerces说它有效,Saxon说它无效。但这一次,它似乎是一个Saxon (因为空白应该被折叠,模式应该得到满足)。你觉得呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-05 10:59:08

谁说它是有效的?

撒克逊说:

代码语言:javascript
复制
Processing file:/Users/mike/Desktop/temp/test.xml
Validation error on line 2 of test.xml:
  XSD: The content "  Hello           world" of element <elem> does not match the required
  simple type. Value "  Hello           world" contravenes the pattern facet "Hello world"
  of the type of element elem
  Validating /elem[1]
  See http://www.w3.org/TR/xmlschema11-2/#cvc-datatype-valid clause 1
Validation error on line 2 column 37 of test.xml:
  XSD: One or more validation errors were reported
Validation unsuccessful

而撒克逊人通常是对的-)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27307880

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档