Webアプリ開発エンジニアのための技術情報サイト「テックスコア」

7. RDFの出力(RDFWriter)

2006.02.07 株式会社四次元データ 中井隆史

7.1. RDFWriterを使った出力処理

com.hp.hpl.jena.rdf.model.RDFWriter は RDF モデルを出力するためのインタフェースです。 RDFWriter のオブジェクトは、 Model の getWriter() メソッドを使って取得します。 以下は RDFWriter を使って、 RDF を出力するサンプルプログラムです。

1:  import com.hp.hpl.jena.rdf.model.Model;
2:  import com.hp.hpl.jena.rdf.model.ModelFactory;
3:  import com.hp.hpl.jena.rdf.model.RDFWriter;
4:
5:  public class OutputSample2 {
6:    public static void main(String[] args) {
7:      try{
8:        Model model = ModelFactory.createDefaultModel();
9:        model.read("http://www.techscore.com/rss/rss.rdf");
10:
11:       RDFWriter writer = model.getWriter("RDF/XML-ABBREV");
12:       writer.setProperty("showXMLDeclaration","true");
13:       writer.write(model,System.out,"");
14:     }catch(Exception e){
15:       e.printStackTrace();
16:     }
17:   }
18: }

11行目で getWriter() メソッドを使用することで、model から RDFWriter のオブジェクトを取得しています。 RDFWriter のオブジェクトが出力する RDF の構文は getWriter() メソッドの引数で決定されます。 次の行では writer のプロパティを変更しています。 このサンプルコードの場合は XML 宣言を必ず出力するように設定しています。 そして13行目で実際に出力しています。 RDFWriter のオブジェクトは model から得ていますが、出力する際にも引数として与える必要があることに注意が必要です。 RDFWriter のメソッドには次のようなものがあります。

 
メソッド 内容
public RDFErrorHandler setErrorHandler(RDFErrorHandler errHandler) エラー処理をするハンドラをセットする。
public java.lang.Object setProperty(java.lang.String propName, java.lang.Object propValue) RDFWriter の動作を変えるプロパティを設定する。
public void write(Model model, java.io.OutputStream out, java.lang.String base) model の内容を out に出力する。base はモデル中で解決されない相対 URI の解決に使う。
public void write(Model model, java.io.Writer out, java.lang.String base) model の内容を out に出力する。base はモデル中で解決されない相対 URI の解決に使う。

上記のうち、 Writer を引数にとるときに文字コードなどに注意が必要なのは、 Model の write メソッドと同様です。 RDFWriter の特徴として、その挙動を setProperty メソッドを使うことによって、変更することが挙げられます。 ただし変更できるのは、出力する構文が RDF/XML もしくは RDF/XML-ABBREV の時のみです。 変更はプロパティを変更することで実現します。 変更可能なプロパティには例えば次のようなものがあります。

setProperty() メソッドで設定できるプロパティの例

プロパティ 内容 デフォルト値
showXmlDeclaration true のときは確実に XML 宣言が出力されます。 false のときは出力されません。 default のときは OutputStreamWriter によって UTF-8 と UTF-16 以外の文字コードが指定されたときのみ XML 宣言が出力されます。 true,false,default の何れかの文字列 default
xmlbase 出力する XML の基底 URI として用いる URI を指定します。 String null
tab 出力する XML のインデントに使用する空白の数を指定します。 StringまたはInteger 2

例えばインデントとして 3 個の空白を用いて、かつ基底 URI を"http://tech.4dd.co.jp/"にするには次のようにします。

writer.setProperty("tab","3");
writer.setProperty("xmlbase","http://tech.4dd.co.jp/");


前のページへ TECHSCOREのTOPページへ 次のページへ
TECHSCORE PR
PR
PR
PR
PR
PR

techscore(トップページへ)
TECHSCORE書店
TECHSCOREトップページJavaSQLXMLリッチクライアントモデリングセマンティックWebその他技術Tuigwaa