Xml 如何编写避免元素顺序的DTD?

Xml 如何编写避免元素顺序的DTD?,xml,dtd,Xml,Dtd,我想验证以下XML。分行可以没有或有多个经理和/或会计师。他们的顺序是随机的。我的尝试如下: <!ELEMENT branch (office, manager*, accountant*)> 但我犯了一个错误,我知道上面的说法是在严格执行命令。我怎样才能避免经理和会计的命令 XML: <branch name = "south"> <office> <addr>St. 32, Downtown</addr> </

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

街32号,市中心
针织风琴
约翰史密斯
杰尼弗
云雀
市区328街
罗格宾特利
温迪玛利亚

尝试以下方法:

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

这意味着只有一个
办公室
,后面跟着零个或多个
经理
会计


订单与
经理
会计
无关,因为

请尝试以下操作:

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

这意味着只有一个
办公室
,后面跟着零个或多个
经理
会计


顺序与
经理
会计
无关,因为
|

您可能不知道内容模型中可以嵌套模型。所以像这样的事情应该行得通

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

但是,通常情况下,不将重复元素分组到不同的容器元素中是很糟糕的设计:如果这样做,您会发现处理过程更容易管理

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

您可能不知道内容模型中可以嵌套模型。所以像这样的事情应该行得通

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

但是,通常情况下,不将重复元素分组到不同的容器元素中是很糟糕的设计:如果这样做,您会发现处理过程更容易管理

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