org.lixm.core.common
インタフェース XMLModelizer


public interface XMLModelizer

XML文書をモデライズしXMLDocumentListを 生成します。

名前空間宣言のモデライズ

名前空間宣言の実体は特殊な属性とその値です。
モデライザが名前空間宣言をモデライズするかは実装依存です。

しかし、LIXMはElementModelAttributeModelが自分の名前空間に対する 情報を保持できるのでアプリケーションによってはこれで十分です。

そのため、低レベルでありポータブルである事を目指すLIXMはそれ以上の状況に対処しません。
その理由は以下の通りです。

  1. LIXMモデライザは既存のパーサーを利用して実装される事が予測されるが 既存のパーサは名前空間宣言を発見した属性として報告しなかったり、 また、名前空間宣言自体をサポートしないかもしれない。
  2. モデライズ行程はモデルを利用する直前に行われるものであり モデライズ済みモデルは既に利用可能な状態と見なし名前空間宣言に対する 特殊な処理はプリプロセス行程で行う。

既存のパーサーに対する配慮

一番目の問題は名前空間をサポートしていない既存パーサを利用して LIXMを実装したとき、
LIXM側の仕様で名前空間に対する処理を 定義してしまった場合にその部分を新たに実装しなければならなくなり非効率です。

ElementModel#getNamespace()ElementModel#getPefix() といったメソッドは名前空間に関する情報を持たない場合常にnull となるので不必要な実装もせずこれらのメソッドでnullを返すだけで済みます。

プリプロセッシングとモデライズ

二番目の問題はモデライズ済みのモデルは既に利用可のであるため、その時点で利用に必要な全ての処理が 完了していなければなりません。
このためアプリケーション独自の名前空間宣言処理も完了している必要があります。 でなければモデルを正しく扱えない可能性があります。

このため一般的には名前空間宣言の処理はプリプロセス行程で行います。

導入されたバージョン:
1.5
作成者:
tasogare

メソッドの概要
 XMLDocumentList<? extends XMLModel> getList()
          このモデライザに関連付けられた XMLDocumentListを取得します。
 void modelize(java.lang.String name)
          モデライズフェーズを開始します。
 

メソッドの詳細

modelize

void modelize(java.lang.String name)
              throws LIXMPhaseException

モデライズフェーズを開始します。 先に何らかの方法でXMLDocumentListを 関連付けておく必要があります。

パラメータ:
name - XML文章のパス
例外:
LIXMPhaseException - モデライズ中に何らかの例外が 発生した場合投げられます。 他の例外をラップしている可能性があります。
関連項目:
XMLDocumentList

getList

XMLDocumentList<? extends XMLModel> getList()

このモデライザに関連付けられた XMLDocumentListを取得します。 モデルリストを関連付ける方法は任意ですがモデライズ前には必ず 関連付けておく必要があります。

戻り値:
関連付けられたモデルリスト
関連項目:
XMLDocumentList