1

我想验证以下 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> 
4

2 回答 2

1

尝试这样的事情:

<!ELEMENT branch (office,(manager|accountant)*)>

这意味着恰好一个office后跟零或多个manageraccountant

顺序与manager或无关,accountant因为|.

于 2013-01-27T22:32:26.870 回答
0

您可能不知道内容模型可以在其中嵌套模型。所以这样的事情应该有效

<!ELEMENT branch (office, (manager | accountant )*) > 

但是,作为一项规则,不将重复元素分组到一个不同的容器元素中是一种糟糕的设计:如果这样做,您会发现处理更容易管理。

<!ELEMENT branch (office, staff) >
<!ELEMENT staff (manager|accountant)*>
于 2013-01-28T16:56:12.353 回答