與元件指定是肯定更冗長和令人厭煩,在另一方面,它是不可能具有屬性爲充分驗證。
如果你有兩個屬性,其中一個必須指定,可以驗證這一點,如果他們是在架構內的子元素,帶有屬性是否需要與否的屬性,你只能說。
從W3Schools Attributes頁:
一些使用屬性的問題是:
- 屬性不能包含多個值(元素可以)
- 屬性不能包含樹結構(元素可以)
- 屬性不易擴展(用於將來的更改)
在這個(略有人爲設計)的例子中,車輛可能有兩個機翼和車輪或某種組合,其中屬性我們不能強制至少有一個被定義,而對於元素,我們可以使用一個選擇元素minOccurs確保至少定義了一個元素。
name屬性始終是必需的,因此它可以是屬性或沒有驗證問題的元素。
<vehicle name="plane" wheels="3" wings="2"/>
<vehicle name="sled" runners="2"/>
<vehicle name="robin reliant" wheels="3"/>
<vehicle name="plane">
<wheels>3</wheels>
<wings>2</wings>
</vehicle>
<vehicle name="sled">
<runners>2</runners>
</vehicle>
<vehicle name="robin reliant">
<wheels>3</wheels>
</vehicle>
這個問題有很多很多重複的內容,例如:http://stackoverflow.com/questions/1096797,http://stackoverflow.com/questions/33746,http://stackoverflow.com/questions/ 241819和http://stackoverflow.com/questions/152313。 – 2009-08-20 13:48:19