Home of: [工房 "藤車"] > [SourceForge.net における SASAX]

SASAX とは何か

本ドキュメントでは、 SASAX がどのようなものであるかを説明します。

SASAX は構造化データを表現する XML 文書 (XML における "単純内容"/"複合内容" モデル)の解析用に設計されたものであり、 予期せずに適用可能かもしれませんが、 マークアップされた文書を表現する XML 文書 (XML における "混在内容" モデル)の解析用には設計されておりません。

文書構造の表現

SASAX を利用する場合、 解析対象の(期待される)文書構造は、 Java オブジェクトの構造として表現され、 それによって検証されます。

例えば '"int" 要素の解析' に示す "element" を用いることで、 XML 文書 "<int>123456</int>" を解析することが出来ます。

// 以下の XML 文書を解析するコード
// <int>
//   123456
// </int>

IntElement element =
    new IntElement(null, "", "int");

"int" 要素の解析

より複雑な XML 文書を用いた例を '"composite" 要素の解析' に示します。

// 以下の XML 文書を解析するコード
// <composite>
//   <int>123456</int>
//   <string>文字列値</string>
// </composite>

CompositeElement element =
    new CompositeElement(null, "", "composite");

IntElement intValue =
    new IntElement(element, "", "int");
element.addMustItem(intValue);

StringElement stringValue =
    new StringElement(element, "", "string");
element.addMustItem(stringValue);

"composite" 要素の解析

コンストラクタの第一引数が、 "親" 要素をあらわすことに気が付かれたかもしれません (ちなみに、 第二引数が要素の名前空間 URI で、 第三引数が要素の局所名です)。

前者の例では、 "int" と名付けられた要素は、 XML 文書のルート要素でありそれより高位の要素を持たないため、 "element" 変数により参照されるオブジェクトは、 "null" を親要素として生成されます。 後者の例では、 "composite" と名付けられた要素は、 同様の理由から "null" を親要素として生成されますが、 "int" あるいは "string" と名付けられた要素は "composite" を親として生成されます。


>> 次ページへ(2/3) (ページ先頭/末尾のナビゲーションバーからも移動できます)