我不明白爲什麼元素的順序是重要的,但不屬性的情況。XML模式的任何好理由「元素的順序是重要的」規則?
任何一個都可以提供合理的理由嗎?
element addressBook {
element card {
attribute name { text },
attribute email { text }
}*
}
在XML中,屬性的順序傳統上不重要。 RELAX NG遵循這一傳統。上述模式將匹配兩者
<card name="John Smith" email="[email protected]"/>
和
<card email="[email protected]" name="John Smith"/>
相反,元素的順序是顯著。該模式
element card {
element name { text },
element email { text }
}
將不匹配
<card><email>[email protected]</email><name>John Smith</name></card>
什麼這一個:
如果一個元素或屬性的孩子匹配的數據類型的模式,則該元素的完整內容或屬性必須與該數據類型模式匹配。不允許有一種模式允許部分內容匹配數據類型模式,另一部分匹配另一種模式。例如,下面的模式是不允許的:
element bad {
xsd:int,
element note { text }
}
然而,這將是罰款:
element ok {
xsd:int,
attribute note { text }
}
請注意,此限制並不適用於文本模式。
您是否想要對您的「子元素」聲明做出某種回覆?如果是這樣,請在某處填寫問題。 – 2009-06-03 22:38:13