[英]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.