第一个问题如上所述:我可以使用空格吗?
<xs:simpleType name="Testing">
<xs:restriction base="xs:string">
<xs:enumeration value="my sample spaced value"/>
<xs:enumeration value="my second spaced value"/>
<xs:enumeration value="myThirdValue"/>
<xs:enumeration value="myFourthValue"/>
</xs:restriction>
</xs:simpleType>
我发现的是:Specify a multi-word enumeration value in an XML/DTD
但另一方面,它说它可以是任何简单的类型:http://www.datypic.com/sc/xsd/e-xsd_enumeration.html
我是否可以解决这个问题,优先使用w3c规范中段落的链接?
第二个问题是当我选择多个答案时它如何验证,因此输出将如下:
<testing>myThirdValue myFourthValue</testing>
我得到了:
cvc-enumeration-valid:值&#39; myThirdValue myFourthValue&#39;对于枚举&#39; [我的样本间隔值,我的第二个间隔值,myThirdValue,myFourthValue]&#39;而言,它不是分面有效的。它必须是枚举中的值。
当空间用作分隔符并且值名称中有空格时,它怎么能不发疯呢?
<testing>my sample spaced value my second spaced value</testing>
我是否必须指定一个模式才能解析多个值?
谢谢!
答案 0 :(得分:0)
XML DTD!= XML Schema(XSD),因此您链接的SO问题/答案不适用于您的问题。
4.3.5.5枚举模式组件的约束
架构组件约束:枚举有效限制
如果{value}的任何成员不在{base的值空间中,那么这是一个错误 类型定义}。
因此,如果您的基类型是xs:string
(就像您的示例中那样),那么该值可以包含空格。
(如果我正确阅读规范。测试似乎支持我的理解。)
其他例子......
如果您的基本类型为xs:NMTOKEN
,那么您的值不能包含空格。
如果您的基本类型是xs:NMTOKENS
(复数),那么您的值可以包含空格。