表2-21にNodeRefインタフェースで使用できるメソッドの概要を示します。
表2-21 NodeRefメソッドの概要: DOMパッケージ
| 関数 | 概要 |
|---|---|
|
|
コンストラクタです。 |
|
|
ノードの子リストに新しい子を追加します。 |
|
|
このノードを複製します。 |
|
|
このノードの属性を取得します。 |
|
|
このノードの子を取得します。 |
|
|
このノードの最初の子ノードを取得します。 |
|
|
このノードの最後の子ノードを取得します。 |
|
|
このノードのローカル名を取得します。 |
|
|
このノードの名前空間URIを、 |
|
|
このノードの直後の兄弟関係ノードを取得します。 |
|
|
このノードで変更が不許可かどうかをテストします。 |
|
|
ノード名を、 |
|
|
ノードのDOMNodeTypeを取得します。 |
|
|
ノードの値を、 |
|
|
このノードの所有者ドキュメントを取得します。 |
|
|
このノードの親ノードを取得します。 |
|
|
このノードの名前空間接頭辞を取得します。 |
|
|
このノードの直前の兄弟関係ノードを取得します。 |
|
|
このノードが属性を持つかどうかをテストします。 |
|
|
このノードが子を持つかどうかをテストします。 |
|
|
ノードの子リストに新しい子を挿入します。 |
|
|
指定された機能がこの実装でサポートされているかどうかをテストします。 |
|
|
参照されるノードを削除するためのマークを設定します。 |
|
|
隣接したテキスト・ノードをマージします。 |
|
|
既存の子ノードを削除します。 |
|
|
ノードの既存の子を置換します。 |
|
|
別のノードを参照するようにNodeRefをリセットします。 |
|
|
ノードの値を、 |
|
|
このノードの名前空間接頭辞を設定します。 |
|
|
デフォルトのパブリック・デストラクタです。 |
クラス・コンストラクタです。
| 構文 | 説明 |
|---|---|
NodeRef( const NodeRef< Node>& nref, Node* nptr); |
指定のノードまたは別のノードに対する少なくとも1つの参照がすでに使用可能である場合、この指定のノードに対する参照を作成します。ノード削除フラグはコピーされず、FALSEに設定されます。 |
NodeRef( const NodeRef< Node>& nref); |
コピー・コンストラクタです。少なくとも1つの参照がすでに使用可能である場合、ノードに対する追加参照を作成します。ノード削除フラグはコピーされず、FALSEに設定されます。 |
| パラメータ | 説明 |
|---|---|
node_ref |
コンテキストを提供するための参照 |
nptr |
参照されるノード |
戻り値
(NodeRef) Node参照オブジェクト。
このノードの子リストの最後にノードを追加し、新しいノードを戻します。newChildがDocumentFragmentである場合、その子がすべて元の順序で追加されます。DocumentFragmentノード自体は追加されません。newChildがすでにDOMツリー内に存在する場合は、最初に現在の位置から削除されます。
構文
Node* appendChild( NodeRef& newChild) throw (DOMException);
| パラメータ | 説明 |
|---|---|
newChild |
参照ノード |
戻り値
(Node*) 追加されたノード。
このノードの複製を作成して戻します。複製ノードは親を持ちません。要素を複製すると、XMLプロセッサによって生成されたデフォルト値の属性を含む、すべての属性およびその値がコピーされます。ただし、ノードに含まれるテキストは、子であるTextノードに含まれているため、ディープ・クローンの場合以外はコピーされません。他のタイプのノードを複製すると、単純にノードのコピーが戻されます。deepがTRUEの場合、ノードの子はすべて再帰的に複製され、複製されたノードは複製された子を持ちます。非ディープ・クローンは子を持ちません。複製されたノードが別のツリーまたはフラグメントに挿入されない場合、(ユーザーによる)削除のために、参照を介してマークされる必要があります。
構文
Node* cloneNode( boolean deep);
| パラメータ | 説明 |
|---|---|
deep |
ノードの下のノード階層全体を複製するか(TRUE)、またはノード自体のみを複製するか(FALSE) |
戻り値
(Node*) 複製(クローン)ノード。
このノードの属性のNamedNodeMapを戻します。属性が存在しない場合は、NULLを戻します。属性ノードを持つことができるのは、要素ノードのみです。その他の種類のノードでは、常にNULLが戻されます。現在の実装では、子ノードのノード・マップは最新のものです。元のノードにおけるすべての変更がすぐに反映されます。このため、一部のDOMツリー操作形式、特にマルチスレッド環境では副作用が出る場合があります。
構文
NamedNodeMap< Node>* getAttributes() const;
戻り値
(NamedNodeMap*) 属性のNamedNodeMap。
子ノードのリストを戻します。このノードに子ノードがない場合はNULLを戻します。子を持つ可能性があるのは、要素ノード、ドキュメント・ノード、DTDノードおよびDocumentFragmentノードのみです。他のすべての型ではNULLが戻されます。現在の実装では、子ノードのリストは最新のものです。元のノードにおけるすべての変更がすぐに反映されます。このため、一部のDOMツリー操作形式、特にマルチスレッド環境では副作用が出る場合があります。
構文
NodeList< Node>* getChildNodes() const;
戻り値
(NodeList*) 子ノードのリスト。
最初の子ノードを戻します。このノードに子ノードがない場合は、NULLを戻します。
構文
Node* getFirstChild() const;
戻り値
(Node*) 最初の子ノードまたはNULL。
最後の子ノードを戻します。このノードに子ノードがない場合は、NULLを戻します。
構文
Node* getLastChild() const;
戻り値
(Node*) 最後の子ノードまたはNULL。
このノード(データ・エンコーディング内)のローカル名(修飾名のローカル部分)を、NULLで終了する文字列で戻します。このノードの名前が完全修飾名でない(接頭辞がない)場合、ローカル名はこのノード名と同じです。
構文
oratext* getLocalName() const;
戻り値
(oratext*) このノードのローカル名。
このノードの名前空間URI(データ・エンコーディング内)を、NULLで終了する文字列で戻します。ノードの名前が修飾されていない(名前空間接頭辞が含まれない)場合は、ノードの作成時に有効だったデフォルトの名前空間が含まれます(ただしNULLの場合があります)。
構文
oratext* getNamespaceURI() const;
戻り値
(oratext*) このノードの名前空間URI。
直後の兄弟関係ノードを戻します。このノードに直後の兄弟関係が存在しない場合は、NULLを戻します。
構文
Node* getNextSibling() const;
戻り値
(Node*) 直後の兄弟関係ノードまたはNULL。
このノードおよびノードが属するDOMツリーで変更が不許可かどうかをテストします。このメンバー関数は、Oracleの拡張機能です。
構文
boolean getNoMod() const;
戻り値
(boolean) 変更が許可されていない場合はTRUE。
ノード(データ・エンコーディング内)の(完全修飾の)名前を、NULLで終了する文字列で戻します。「bar\0」または「foo:bar\0」などとなります。ノードの種類によっては、「#text」、「#cdata-section」、「#comment」、「#document」、「#document-fragment」といった固定ノード名が設定されています。ノードの名前は、作成後は変更できません。
構文
oratext* getNodeName() const;
戻り値
(oratext*) データ・エンコーディング内のノード名。
ノードのDOMNodeTypeを戻します。
構文
DOMNodeType getNodeType() const;
戻り値
ノードの(DOMNodeType)。
ノードの値(対応する文字データ)を、NULLで終了する文字列で戻します。文字および汎用エンティティが置換されています。値が設定されているのは、Attr、CDATA、Comment、ProcessingInstructionおよびTextノードのみで、他のすべてのノード・タイプにはNULL値が設定されています。
構文
oratext* getNodeValue() const;
戻り値
(oratext *) ノードの値。
このノードに対応するドキュメント・ノードを戻します。ドキュメント・ノードのタイプはノード・タイプから派生するものと想定されています。各ノードは1つのドキュメントにのみ属するか、どのドキュメントにも関連付けられていないこともあります。これは、ユーザーのリクエストで作成された直後などです。元のドキュメント(ノード)が戻されるか、またはWRONG_DOCUMENT_ERR例外がスローされます。
構文
Node* getOwnerDocument() const throw (DOMException);
戻り値
(Node*) 元のドキュメント・ノード。
親ノードを戻します。このノードに親ノードがない場合は、NULLを戻します。
構文
Node* getParentNode() const;
戻り値
(Node*) 親ノードまたはNULL。
このノードの名前空間接頭辞(データ・エンコーディング内)を、NULLで終了する文字列で戻します。このノードの名前が完全修飾名でない(接頭辞がない)場合、NULLが戻されます。
構文
oratext* getPrefix() const;
戻り値
(oratext*) このノードの名前空間接頭辞。
直前の兄弟関係ノードを戻します。このノードに直前の兄弟関係がない場合は、NULLを戻します。
構文
Node* getPreviousSibling() const;
戻り値
(Node*) 直前の兄弟関係ノードまたはNULL。
このノードに属性が含まれ、このノードが要素である場合は、TRUEを戻します。それ以外の場合はFALSEを戻します。要素でないノードの場合は、常にFALSEを戻す点に注意してください。
構文
boolean hasAttributes() const;
戻り値
(boolean) このノードが要素であり、属性を持つ場合はTRUE。
このノードが子を持つかどうかをテストします。子を持つ可能性があるのは、Element、Document、DTDおよびDocumentFragmentノードのみです。
構文
boolean hasChildNodes() const;
戻り値
(boolean) このノードが子を持つ場合はTRUE。
このノードの既存の子ノードrefChildの前にnewChildノードを挿入します。refChildはこのノードの子である必要があります。newChildがDocumentFragmentである場合、その子はすべてrefChildの前に(同じ順序で)挿入されます。DocumentFragmentノード自体は挿入されません。newChildがすでにDOMツリー内に存在する場合は、最初に現在の位置から削除されます。
構文
Node* insertBefore( NodeRef& newChild, NodeRef& refChild) throw (DOMException);
| パラメータ | 説明 |
|---|---|
newChild |
新しいノード |
refChild |
参照ノード |
戻り値
(Node*) 挿入されるノード。
引数によって指定された機能が、このノードのDOMインプリメンテーションによりサポートされているかどうかをテストします。
構文
boolean isSupported( oratext* feature, oratext* version) const;
| パラメータ | 説明 |
|---|---|
feature |
機能のパッケージ名 |
version |
パッケージのバージョン |
戻り値
(boolean) 指定された機能がサポートされている場合はTRUE。
参照されたノードが、この参照のデストラクタがコールされた時点で削除される必要があることを示すマークを設定します。このノードに対する他のすべての参照は無効になります。この動作は、他のすべての参照クラスによって継承されます。このメンバー関数は、Oracleの拡張機能です。
構文
void markToDelete();
要素をルートとしたサブツリーを正規化し、要素の隣接したText子ノードをマージします。隣接したTextノードは通常の解析中には作成されず、DOMコールによるドキュメントの操作後にのみ作成されることに注意してください。
構文
void normalize();
このノードの子リストからノードを削除し、削除されたノードを戻します。このノードは孤立した子です。削除後、親ノードはNULLとなります。
構文
Node* removeChild( NodeRef& oldChild) throw (DOMException);
| パラメータ | 説明 |
|---|---|
oldChild |
古いノード |
戻り値
(Node*) 削除されたノード。
このノードの子リストで、子ノードoldChildを新しいノードnewChildで置換し、oldChildを戻します(これは孤立した子となり、親はNULLです)。newChildがDocumentFragmentである場合、その子がすべてoldChildのかわりに挿入されます。DocumentFragmentノード自体は挿入されません。newChildがすでにDOMツリー内に存在する場合は、最初に現在の位置から削除されます。
構文
Node* replaceChild( NodeRef& newChild, NodeRef& oldChild) throw (DOMException);
| パラメータ | 説明 |
|---|---|
newChild |
新しいノード |
oldChild |
古いノード |
戻り値
(Node*) 置換されたノード。
この関数は、引数として指定されたNodeを参照するようにNodeRefをリセットします。
構文
void resetNode( Node* nptr);
| パラメータ | 説明 |
|---|---|
nptr |
参照ノード |
ノードの値(文字データ)をNULLで終了する文字列で設定します。値をNULLに設定することはできません。値を持つのは、Attr、CDATA、Comment、ProcessingInstructionおよびTextノードのみです。別の種類のノードの値を設定しようとしても動作しません。新しい値はデータ・エンコーディングに含まれている必要があります。これは検証、変換、確認されません。値はコピーされず、ポインタのみが保存されます。ノードのデータの保持および解放は、ユーザーが行います。
変更が許可されていない場合はNO_MODIFICATION_ALLOWED_ERR例外をスローし、実装で定義されたエラーの場合は、UNDEFINED_ERRおよび適切なOracle XMLエラー・コード(xml.hを参照)をスローします。
構文
void setNodeValue( oratext* data) throw (DOMException);
| パラメータ | 説明 |
|---|---|
data |
ノードの新しい値 |
このノードの名前空間接頭辞を、NULLで終了する文字列で設定します。接頭辞が定義済かどうかは検証されません。また、接頭辞が現在のデータ・エンコーディングに含まれているかどうかも検証されません。新しい接頭辞および古いローカル名から新しい修飾名を作成するのみです。
変更が許可されていない場合は、NO_MODIFICATION_ALLOWED_ERR例外をスローします。このノードのnamespaceURIがNULLである場合、または指定された接頭辞が「xml」で、このノードのnamespaceURIが「http://www.w3.org/XML/1998/namespace」と異なる場合、またはこのノードが属性で、指定された接頭辞が「xmlns」で、このノードのnamespaceURIが「http://www.w3.org/2000/xmlns/」と異なる場合、NAMESPACE_ERRをスローします。接頭辞の作成方法は確認されないため、INVALID_CHARACTER_ERR例外はスローされないことに注意してください。
構文
void setPrefix( oratext* prefix) throw (DOMException);
| パラメータ | 説明 |
|---|---|
prefix |
新しい名前空間接頭辞 |
これはデフォルトのデストラクタです。ノードに対する参照を消去し、ノードが削除用にマークされている場合はノードを削除します。ノードが深いレベルの削除用にマークされている場合は、ノードの下のツリーも削除(割当て解除)されます。通常は環境によってコールされます。ただし、必要に応じてユーザーが直接コールできます。
構文
~NodeRef();