#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;}

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS