我想验证以下XML。分支机构可以没有或多个经理和/或会计师。他们的订单是随机的。我试过的内容如下:
<!ELEMENT branch (office, manager*, accountant*)>
但我收到错误,我知道上面的陈述是严格的命令。我怎样才能避免经理和会计师的命令。
XML:
<branch name = "south">
<office>
<addr>St. 32, Downtown</addr>
</office>
<manager>
<username>
knitemorgan
</username>
</manager>
<accountant>
<username>
johnsmith
</username>
</accountant>
<manager>
<username>
jenifer
</username>
</manager>
<accountant>
<username>
fclark
</username>
</accountant>
<branch>
<branch name = "north">
<office>
<addr>St. 328, Downtown</addr>
</office>
<accountant>
<username>
rogerbentley
</username>
</accountant>
<manager>
<username>
wendymaria
</username>
</manager>
<branch>
答案 0 :(得分:1)
尝试这样的事情:
<!ELEMENT branch (office,(manager|accountant)*)>
这意味着只有一个office
后跟零个或多个manager
或accountant
。
由于manager
,订单与accountant
或|
无关。
答案 1 :(得分:0)
您可能不知道内容模型可以嵌套在其中的模型。所以这样的事情应该有用
<!ELEMENT branch (office, (manager | accountant )*) >
但是,作为一项规则,设计不好不将重复元素分组到不同的容器元素中:如果这样做,您会发现处理更容易管理。
<!ELEMENT branch (office, staff) >
<!ELEMENT staff (manager|accountant)*>