|
LIXM 1.6.1M5 | |||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
E
- AbstractModelpublic interface XMLModelList<E extends XMLModel>
現在のXMLModelList
は
Java Collections Frameworkとの親和性を導入するために変更されています。
XMLModelList実装はこのインターフェイスと同時にコレクションインタフェースを 実装する事によりJavaプログラマに馴染みのある方法でXMLにアクセスする事ができます。
このインターフェイスの実装はRandomAccess
でマークすることを奨めます。
このセクションはバージョン1.5.5
より明文化されるLIXMの仕様です。
このリストには整形式または妥当なXMLのみが格納されます。
つまり実装ではモデライズの時点で整形式または妥当なXMLである事を確認し、
生成されるリストではそのどちらかである事を保障しなければいけません。
LIXMではXMLにおける参照はモデライズの際に解決しておかなければいけません。
リストの中に実体参照が出てきてはいけないと言う事です。
しかし、外部実体の扱いはこの仕様では未定義です。
その理由は以下の通りです。
実体参照はXML内に直接含める事の出来ない特殊文字を現すための仕組みであり、 XMLにアクセスし実体参照を取得するという事はつまりは、 その実体参照が現している文字そのものが必要であるという事です。
このため、XMLを扱う過程で最終的にXMLの必要な情報にアクセスする段階では 特殊文字とその他の文字を区別する必要はありません。
さらに、単なる文字一つを取得するために実体参照から文字への変換を取得するコードを 逐一挿入していては煩雑で見通しの悪いソースコードが出来上がってしまうでしょう。
このため、LIXMでは実体参照は扱いません。
このような弱点はDOMにもあります。
DOMにはプラットフォーム中立性ためにノードと呼ばれる独自の概念が存在します。
このノードはLIXMではモデルに該当しますが、DOMはこの任意のノードの取得方法が
とても直感的ではなく、かつ煩雑になりがちです。
LIXMはDOMとは違ったアプローチによりXML内の情報へ 直感的に低レベルで一般的なアクセスを可能とする事が目的です。
LIXMでは文書型やカタログは特別にモデル化しないという事です。 結果的に文書型モデルやカタログモデルはリストには存在しないという事です。
これらのモデル化が必要なのはバリデータや高レベルなものではスキーマコンパイラ等になるでしょう。
メソッドの概要 | |
---|---|
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>
内の add
model
- 追加するモデル
java.lang.UnsupportedOperationException
boolean isEmpty()
java.util.Collection<E extends XMLModel>
内の isEmpty
int size()
java.util.Collection<E extends XMLModel>
内の size
java.util.Iterator<E> iterator() throws java.lang.UnsupportedOperationException
java.util.Collection<E extends XMLModel>
内の iterator
java.lang.Iterable<E extends XMLModel>
内の iterator
java.lang.UnsupportedOperationException
- サポートしない場合
|
LIXM 1.6.1M5 | |||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |