LixM SE 1.1u2(1.6.2)

org.lixm.core.list
インタフェース XMLModelList<E extends XMLModel>

型パラメータ:
E - AbstractModel
すべてのスーパーインタフェース:
java.util.Collection<E>, DynamicModel, java.lang.Iterable<E>
既知のサブインタフェースの一覧:
XMLDocumentList<E>
既知の実装クラスの一覧:
AttributesList

public interface XMLModelList<E extends XMLModel>
extends java.util.Collection<E>, java.lang.Iterable<E>, DynamicModel

現在のXMLModelListJava 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では文書型やカタログは特別にモデル化しないという事です。 結果的に文書型モデルやカタログモデルはリストには存在しないという事です。

これらのモデル化が必要なのはバリデータや高レベルなものではスキーマコンパイラ等になるでしょう。

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

メソッドの概要
 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
 

メソッドの詳細

get

E get(int index)
リストの指定した位置のモデルを取得

パラメータ:
index - 取得するモデルのリスト内での絶対位置
戻り値:
E 指定した位置に存在するモデル

set

void set(E model,
         int index)
         throws java.lang.IllegalArgumentException,
                java.lang.ArrayIndexOutOfBoundsException,
                java.lang.IllegalStateException

リストの指定した位置のモデルを設定

パラメータ:
model - 設定するモデル
index - 位置
例外:
java.lang.IllegalArgumentException - 不正なモデルが渡された場合
java.lang.ArrayIndexOutOfBoundsException - 引数indexsize()の範囲外の場合
java.lang.IllegalStateException - モデルがシールされている場合
導入されたバージョン:
1.6.1

add

boolean add(E model)
            throws java.lang.UnsupportedOperationException
リストの指定位置にモデルを追加

定義:
インタフェース java.util.Collection<E extends XMLModel> 内の add
パラメータ:
model - 追加するモデル
例外:
java.lang.UnsupportedOperationException

isEmpty

boolean isEmpty()
リストにモデルが格納されているか?

定義:
インタフェース java.util.Collection<E extends XMLModel> 内の isEmpty
戻り値:
空の場合は真、そうでない場合は偽を返します。

size

int size()
リスト内の総モデル数を返します。

定義:
インタフェース java.util.Collection<E extends XMLModel> 内の size
戻り値:
実際に存在するモデル数より1大きい数値が返ります。

iterator

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 SE 1.1u2(1.6.2)

Copyright © 2005-2008 tasogare. All rights reserved.