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)*)>

これは、正確に 1 つofficeに 0 個以上のmanagerorが続くことを意味しますaccountant

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 に答える