- 追加された行はこの色です。
- 削除された行はこの色です。
#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;}