[英]Is an empty element valid in XSD?
今天繼續我的XSD問題 :
在XSD文檔中,以下內容是:
<element />
一個有效的構造? 也就是說,它是一個沒有名稱,類型和任何內容的元素。 完全匿名。
如果這是有效的XSD,那意味着什么? 這樣的元素將如何出現在XML中?
@name
屬性必須出現在全局XSD元素聲明中。 請參閱3.3.2元素聲明架構組件的XML表示 ,包括其聲明的位置(添加了重點):
請注意,以上允許為未指定的類型定義提供兩個默認級別。 沒有引用或包含的類型定義的
<element>
將對應於一個元素聲明,如果它標識一個,則該元素聲明與其替換組的頭部具有相同的類型定義,否則標識為•ur-type定義。 這具有重要的后果,即最小的有效元素聲明(即僅具有名稱屬性而沒有內容的聲明)也是(幾乎)最通用的 ,它驗證文本和元素內容的任何組合並允許任何屬性,並提供盡可能進行遞歸驗證。
如果您希望允許任何元素,請考慮使用通配符,例如xs:any
。 但是請注意,您至少需要命名一個根元素。
取決於放置位置。
在xs:appInfo
或xs:documentation
(以及其他一些構造)中,任何內容都可能有效。
接下來這個元素:
<element />
不指定名稱空間。 因此,它要么位於錯誤的名稱空間中,要么在上下文中某個地方存在xmlns="http://www.w3.org/2001/XMLSchema"
。
假設后者可能是全局( topLevelElement
)或局部( localElement
)元素定義。
在兩種情況下均無效:
2如果項目的父項不是,則以下所有條件必須為true:
2.1 ref或name之一必須存在,但不能同時存在。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.