#topicpath
----
//ここにコンテンツを記述します。
#contents

***XMLファイルへの参照を取得する。
***XMLファイルへの参照を取得する。 [#ca33b1fa]
Relax NGのスキーマファイル(*.rng)からあらかじめjavaファイルを作成しておきます。
ルートノードがhogeだとすると
 Hoge hoge=new Hoge([ファイルパス]);
としてインスタンスを作成すれば、xmlファイルへの参照の作成は完了です。

***文字列を取得する。
***文字列を取得する。 [#be7928af]
DOMを用いていると、XMLの内容をコンソールに書き出すだけでも面倒ですが、Relaxerでは一つのメソッドでStringインスタンスを取得することができます。
 System.out.println(hoge.makeTextDocument());

***XMLの内容をファイルに書き出す
***XMLの内容をファイルに書き出す [#j7cc7f62]
 BufferedWriter writer =
  new BufferedWriter(
   new OutputStreamWriter(
    new FileOutputStream(new File([パス])),"EUC-JP"));
 writer.write(URelaxer.doc2String4Print(hoge.makeDocument(), "EUC-JP"));
 writer.close();

**文法覚え書き [#j68fcd6e]
***0 or 1 (optional) [#r93b8a03]
基本的に要素の個数の定義は、その定義を
 <optional>
 <zeroOrMore>
 <oneOrMore>
などでくくってあげることで表現する。たとえば
 <element name="menubar">
   <zeroOrMore>     <- ココ
     <ref name="menu"/>
   </zeroOrMore>    <- ココ
 </element>
などのように。

***参考にしたサイト
あってもなくてもよい要素(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(おもしろかった,そうでもない)

#comment
#topicpath


SIZE(10){現在のアクセス:&counter;}


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS