|
LixM SE 1.2u1(1.7.1) | ||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | ||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | ||||||||
E - AbstractModelpublic interface XMLModelList<E extends XMLModel>
このインターフェイスの実装はRandomAccessでマークすることを奨めます。
このリストには整形式または妥当なXMLのみが格納されます。
つまり実装ではモデライズの時点で整形式または妥当なXMLである事を確認し、
生成されるリストではそのどちらかである事を保障しなければいけません。
LIXMではXMLにおける参照はモデライズの際に解決しておかなければいけません。
リストの中に実体参照が出てきてはいけないと言う事です。
しかし、外部実体の扱いはこの仕様では未定義です。
その理由は以下の通りです。
実体参照はXML内に直接含める事の出来ない特殊文字を現すための仕組みであり、 XMLにアクセスし実体参照を取得するという事はつまりは、 その実体参照が現している文字そのものが必要であるという事です。
このため、XMLを扱う過程で最終的にXMLの必要な情報にアクセスする段階では 特殊文字とその他の文字を区別する必要はありません。
さらに、単なる文字一つを取得するために実体参照から文字への変換を取得するコードを 逐一挿入していては煩雑で見通しの悪いソースコードが出来上がってしまうでしょう。
このため、LIXMでは実体参照は扱いません。
このような弱点はDOMにもあります。
DOMにはプラットフォーム中立性ためにノードと呼ばれる独自の概念が存在します。
このノードはLIXMではモデルに該当しますが、DOMはこの任意のノードの取得方法が
とても直感的ではなく、かつ煩雑になりがちです。
LIXMはDOMとは違ったアプローチによりXML内の情報へ 直感的に低レベルで一般的なアクセスを可能とする事が目的です。
LIXMでは文書型やカタログは特別にモデル化しないという事です。 結果的に文書型モデルやカタログモデルはリストには存在しないという事です。
これらのモデル化が必要なのはバリデータや高レベルなものではスキーマコンパイラ等になるでしょう。
Dynamic Modelとは1.6系統になって導入された新しい概念で、 モデルの内容を動的に変更できる仕様です。
1.5系(未公開)のLixMまでモデルの内容を変更する事は出来ませんでした。 従来のLixMではXML構成要素のメタな情報にアクセスする事が目的であったため、 構成要素の内容変更はフットプリントの点からサポートはされませんでした。
しかし、これでは既存のXML文章以外の入力からのモデライズしか対応は困難です。 これはつまり、事前に記憶装置にXML文章が存在している必要があります。 たとえばメモリ上に新たなXML文章を構築する場合ではこれは不便な事です。
そのような目的を達成するためにDynamic Model(動的モデル)仕様が追加されました。
Dinamic Modelの詳しい仕様は
こちらを参照してください。
| メソッドの概要 | |
|---|---|
boolean |
add(E model)
リストの指定位置にモデルを追加 |
E |
get(int index)
リストの指定した位置のモデルを取得 |
boolean |
isEmpty()
リストにモデルが格納されているか? |
java.util.Iterator<E> |
iterator()
イテレータを返します。 |
void |
set(E model,
int index)
リストの指定した位置のモデルを設定 |
int |
size()
リスト内の総モデル数を返します。 |
| インタフェース java.util.Collection から継承されたメソッド |
|---|
addAll, clear, contains, containsAll, equals, hashCode, remove, removeAll, retainAll, toArray, toArray |
| インタフェース org.lixm.optional.v15.model.dynamic.DynamicModel から継承されたメソッド |
|---|
isSealed, setSeal |
| メソッドの詳細 |
|---|
E get(int index)
index - 取得するモデルのリスト内での絶対位置
void set(E model,
int index)
throws java.lang.IllegalArgumentException,
java.lang.ArrayIndexOutOfBoundsException,
java.lang.IllegalStateException
リストの指定した位置のモデルを設定
model - 設定するモデルindex - 位置
java.lang.IllegalArgumentException - 不正なモデルが渡された場合
java.lang.ArrayIndexOutOfBoundsException - 引数indexがsize()の範囲外の場合
java.lang.IllegalStateException - モデルがシールされている場合
boolean add(E model)
throws java.lang.UnsupportedOperationException
java.util.Collection<E extends XMLModel> 内の addmodel - 追加するモデル
java.lang.UnsupportedOperationExceptionboolean isEmpty()
java.util.Collection<E extends XMLModel> 内の isEmptyint size()
java.util.Collection<E extends XMLModel> 内の size
java.util.Iterator<E> iterator()
throws java.lang.UnsupportedOperationException
java.util.Collection<E extends XMLModel> 内の iteratorjava.lang.Iterable<E extends XMLModel> 内の iteratorjava.lang.UnsupportedOperationException - サポートしない場合
|
LixM SE 1.2u1(1.7.1) | ||||||||
| 前のクラス 次のクラス | フレームあり フレームなし | ||||||||
| 概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド | ||||||||