我不明白为什么元素的顺序是重要的,但不属性的情况。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