- 追加された行はこの色です。
- 削除された行はこの色です。
#author("2018-08-08T04:57:15+00:00","","")
#topicpath
----
//ここにコンテンツを記述します。
#contents
-[[RELAX NG 入門 部会承認済み仕様書:http://www.kohsuke.org/relaxng/tutorial.ja.html]]
**文法覚え書き [#j68fcd6e]
***繰り返しの書き方 [#p6d8bf0a]
基本的に要素の個数の定義は、その定義を
<optional>
<zeroOrMore>
<oneOrMore>
などでくくってあげることで表現する。たとえば
<element name="menubar">
<zeroOrMore> <- ココ
<ref name="menu"/>
</zeroOrMore> <- ココ
</element>
などのように。
***0 or 1 (optional) [#r93b8a03]
あってもなくてもよい要素(0 or 1) (DTDの?)は
<optional>
でくくればよい。
***0...n (zeroOrMore) [#tf290aba]
0...n の要素 (DTDの*)は
<zeroOrMore>
でくくればよい。
***1...n (oneOrMore) [#z63d447e]
1...n の要素 (DTDの+)は
<oneOrMore>
でくくればよい。
***属性の定義 [#r72ef7d7]
属性は
<element name="item">
<attribute name="className">
<data type="token"/>
</attribute>
<data type="token"/>
</element>
と書く。((要素の定義と同じだ。))
***あってもなくてもよい属性 [#p7421550]
要素と同様、
<element name="item">
<optional>
<attribute name="className">
<data type="token"/>
</attribute>
</optional>
<data type="token"/>
</element>
optionalでくくるだけ。簡単。
***要素の選択 [#ue889951]
たとえば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>
とかく。
***参考にしたサイト [#rd63e82a]
http://www.atmarkit.co.jp/fxml/rensai2/xmltool04/02.html
----
この記事は
#vote(おもしろかった,そうでもない)
#vote(おもしろかった[1],そうでもない[0])
#comment
#topicpath
SIZE(10){現在のアクセス:&counter;}