LixM SE 1.1u2(1.1.2)

org.lixm.core.list
クラス XMLModelList

java.lang.Object
  上位を拡張 org.lixm.core.list.XMLModelList

public class XMLModelList
extends java.lang.Object

格納されるべきモデル

このリストには整形式または妥当なXMLのみが格納されます。
つまり実装ではモデライズの時点で整形式または妥当なXMLである事を確認し、 生成されるリストではそのどちらかである事を保障しなければいけません。

参照

LIXMではXMLにおける参照はモデライズの際に解決しておかなければいけません。
リストの中に実体参照が出てきてはいけないと言う事です。 しかし、外部実体の扱いはこの仕様では未定義です。

その理由は以下の通りです。

本当に必要なものを直感的に扱える事

実体参照はXML内に直接含める事の出来ない特殊文字を現すための仕組みであり、 XMLにアクセスし実体参照を取得するという事はつまりは、 その実体参照が現している文字そのものが必要であるという事です。

このため、XMLを扱う過程で最終的にXMLの必要な情報にアクセスする段階では 特殊文字とその他の文字を区別する必要はありません。

さらに、単なる文字一つを取得するために実体参照から文字への変換を取得するコードを 逐一挿入していては煩雑で見通しの悪いソースコードが出来上がってしまうでしょう。

このため、LIXMでは実体参照は扱いません。

このような弱点はDOMにもあります。 DOMにはプラットフォーム中立性ためにノードと呼ばれる独自の概念が存在します。
このノードはLIXMではモデルに該当しますが、DOMはこの任意のノードの取得方法が とても直感的ではなく、かつ煩雑になりがちです。

LIXMはDOMとは違ったアプローチによりXML内の情報へ 直感的に低レベルで一般的なアクセスを可能とする事が目的です。

文書型やカタログはモデルとしてリストに含まない

LIXMでは文書型やカタログは特別にモデル化しないという事です。 結果的に文書型モデルやカタログモデルはリストには存在しないという事です。

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

バージョン:
1.1.2
作成者:
tasogare

コンストラクタの概要
XMLModelList()
          初期化します。
XMLModelList(AbstractModel[] array)
          AbstractModel 配列を利用して初期化します。
XMLModelList(int initialCapacity)
          モデル数を指定して初期化します。
 
メソッドの概要
 void add(AbstractModel model)
          リストの指定位置にモデルを追加
 void clear()
          このXMLモデルリストからすべての要素を削除します。
 AbstractModel get(int index)
          リストの指定した位置のモデルを取得
 XMLCursor getCursor()
          このリストに関連付けられているカーソルを返します。
 AbstractModel getRootEndTag()
          ルート要素の終了タグを取得
 AbstractModel getRootStartTag()
          ルート要素の開始タグを取得
 boolean isEmpty()
          リストにモデルが格納されているか?
 boolean remove(java.lang.Object model)
          指定されたモデルがあればそれをリストから削除します。
 void set(AbstractModel model, int index)
          リストの指定した位置のモデルを設定
 int size()
          リスト内の総モデル数を返します。
 
クラス java.lang.Object から継承されたメソッド
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

XMLModelList

public XMLModelList()
初期化します。


XMLModelList

public XMLModelList(int initialCapacity)
モデル数を指定して初期化します。

パラメータ:
initialCapacity - モデル数

XMLModelList

public XMLModelList(AbstractModel[] array)
AbstractModel 配列を利用して初期化します。

パラメータ:
array - モデルの配列
メソッドの詳細

get

public AbstractModel get(int index)

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

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

getRootStartTag

public AbstractModel getRootStartTag()

ルート要素の開始タグを取得

戻り値:

ルート要素のモデルを見つけた場合の 戻り値はStartTagModelです。 それ以外はnullです。
メソッドの戻り値の型は AbstractModel なので適切にキャストしてください。


getRootEndTag

public AbstractModel getRootEndTag()

ルート要素の終了タグを取得

戻り値:

ルート要素のモデルを見つけた場合の 戻り値はEndTagModelです。 それ以外はnullです。
メソッドの戻り値の型はAbstractModel なので適切にキャストしてください。


add

public void add(AbstractModel model)

リストの指定位置にモデルを追加

パラメータ:
model - 追加するモデル

isEmpty

public boolean isEmpty()

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

戻り値:
空の場合は真、そうでない場合は偽を返します。

size

public int size()

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

戻り値:
実際に存在するモデル数より1大きい数値が返ります。

getCursor

public XMLCursor getCursor()

このリストに関連付けられているカーソルを返します。

戻り値:
関連付けられているカーソル

clear

public void clear()

このXMLモデルリストからすべての要素を削除します。 このメソッドが戻ると、XMLモデルリストは空になります。

導入されたバージョン:
1.1.0

set

public void set(AbstractModel model,
                int index)
         throws java.lang.ArrayIndexOutOfBoundsException

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

パラメータ:
model - モデル
index - インデックス
例外:
java.lang.ArrayIndexOutOfBoundsException
導入されたバージョン:
1.1.0

remove

public boolean remove(java.lang.Object model)
               throws java.lang.ClassCastException,
                      java.lang.NullPointerException

指定されたモデルがあればそれをリストから削除します。

例外:
java.lang.ClassCastException - modelAbstractModel型ではない場合
java.lang.NullPointerException - モデルがnullの場合
導入されたバージョン:
1.1.0

LixM SE 1.1u2(1.1.2)

Copyright © 2005-2008 tasogare. All rights reserved.