给定XML元素
<shoesize country="france">35</shoesize>
我想为其整数简单内容设置默认值。
现在,上面的示例来自w3schools,它带有以下XSD:
<xs:element name="shoesize" type="shoetype"/>
<xs:complexType name="shoetype">
<xs:simpleContent>
<xs:extension base="xs:integer">
<xs:attribute name="country" type="xs:string" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
尽管我知道默认值“只能在元素的内容只是简单类型或文本时使用”,而 shoesize 是 complexType ,我要么努力相信我不能将这样的默认值设置为 shoesize 或找到实际操作的方法。
在我的试验中,我在shoeize xs:元素中设置了一个默认值,xs:simpleContent和xs:extension;没有验证。
答案 0 :(得分:1)
我也没有意识到只使用XML Schema设置超出上述情况的默认值的方法(一如既往,我很乐意被证明是错误的。)
基本原理是元素类型由其内容及其属性组成。在鞋跟化示例中,从语义角度来看,仅为内容设置默认值的能力可能导致该默认值与国家/地区属性之间的不一致,如果文档指定国家但没有大小(例如,41填充为默认值)对于美国大小)。
但是,当然可以将文档更改为整个XML使用链的一部分,即使用XQuery或XSLT,并以编程方式设置默认值。