[英]XSD: default value of a missing element
是否可以在XML Schema中为缺少的元素定义默认值。 我有以下代码段:
<xs:element name="protocol" nillable="false" minOccurs="0" default="ftp">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="ftp"/>
<xs:enumeration value="webdav"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
如果我有XML文件
<protocol>ftp</protocol>
要么
<protocol>webdav</protocol>
它验证并获得正确的价值。 如果我有XML文件
<protocol></protocol>
它也验证并获得默认值ftp。
我的搜索显示默认属性值在缺少属性时应用,默认元素值在元素为空时应用。 是否可以为缺少的元素设置默认值?
问候
rambius
没有.XSD没有规定。
您可以指定元素的默认值。 但是一旦它丢失(当它的父元素的内容模型允许时),对该元素的任何请求都将返回空字符串或null(或只是一个错误)。 缺少的元素是不存在的元素!
对于属性,它是可能的,因为属性要简单得多。 元素的所有属性都有效地构成了一组无序的命名简单值。 附加到父元素的属性树(具有可变结构)没有某种属性树。
但是元素的东西要复杂得多。 如果允许某些关于缺失元素的“默认”,那将导致很多歧义。 例如,必须指定某种“默认内容”,这将是一些自动引发的元素序列代替空虚......甚至当只有一些元素时,每个都会引发一些可能的“默认内容”明确指定,其他人必须隐式补充它们(默认情况下)。 ....好吧,如果你进一步思考,事情就变得令人难以置信了。 那么就必须创建另一种语言! 但出于什么目的?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.