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