基本的に要素の個数の定義は、その定義を
<optional> <zeroOrMore> <oneOrMore>
などでくくってあげることで表現する。たとえば
<element name="menubar"> <zeroOrMore> <- ココ <ref name="menu"/> </zeroOrMore> <- ココ </element>
などのように。
あってもなくてもよい要素(0 or 1) (DTDの?)は
<optional>
でくくればよい。
0...n の要素 (DTDの*)は
<zeroOrMore>
でくくればよい。
1...n の要素 (DTDの+)は
<oneOrMore>
でくくればよい。
属性は
<element name="item"> <attribute name="className"> <data type="token"/> </attribute> <data type="token"/> </element>
と書く。*1
要素と同様、
<element name="item"> <optional> <attribute name="className"> <data type="token"/> </attribute> </optional> <data type="token"/> </element>
optionalでくくるだけ。簡単。
たとえばmenuタグでもitemタグでもどちらでもよいとき、つまり
<!ELEMENT menu (title, (item | menu)*)>
は
<define name="menu"> <element name="menu"> <element name="title"> <data type="token"/> </element> <zeroOrMore> <choice> <-選択 <ref name="menu"/> <- menu か <element name="item"> <- item のどちらか <data type="token"/> </element> </choice> </zeroOrMore> </element> </define>
とかく。
http://www.atmarkit.co.jp/fxml/rensai2/xmltool04/02.html
この記事は
現在のアクセス:5552