3 XML C用のDOM APIパッケージ
この実装は、REC-DOM-Level-1-19981001に準拠しています。DOM標準はオブジェクト指向であるため、C言語用にいくつかの変更が行われました。
-
再利用される関数名を拡張する必要があります。
Attr
インタフェースのgetValue
には、DOM2のgetNodeValue
によって設定されるパターンと一致する一意の名前XmlDomGetAttrValue
があります。 -
標準を超えてDOMを拡張するために、関数が追加されました。その一例が、子ノードの数を戻す
XmlDomNumChildNodes
です。
data_encoding
パラメータがUTF-16に設定されている場合、APIはoratext
バイト配列ではなくwide-CHAR
配列を処理します。
3.1 DOM XML C APIのAttrインタフェース
次の表にDOM XML C APIのAttr
インタフェースで使用できるメソッドの概要を示します。
表3-1 XML C実装のAttr DOMメソッドの概要
関数 | 概要 |
---|---|
属性の名前空間のローカル名を、 |
|
属性の名前空間のローカル名を、長さがエンコードされた文字列として戻します。 |
|
属性の名前を、 |
|
属性の名前を、長さがエンコードされた文字列として戻します。 |
|
属性の名前空間の接頭辞を戻します。 |
|
属性が明示的に作成されたかどうかを示すフラグを戻します。 |
|
属性の名前空間URIを、 |
|
属性の名前空間URIを、長さがエンコードされた文字列として戻します。 |
|
属性の値を、 |
|
属性の値を、長さがエンコードされた文字列として戻します。 |
|
属性値のストリーム形式、つまりチャンクを取得します。 |
|
属性の元の要素を戻します。 |
|
属性の値を設定します。 |
|
属性値のストリーム形式(チャンク)を設定します。 |
3.1.1 XmlDomGetAttrLocal()
(データ・エンコーディングの)属性の名前空間のローカル名を戻します。属性名が完全に修飾されていない(接頭辞がない)場合、ローカル名は属性名と同じになります。
長さがエンコードされたバージョンは、XmlDomGetAttrURILen
として使用できます。これは、ローカル名をポインタおよび長さとして戻し、データがXMLType
バックエンドのデータストアを使用するとわかっている場合に使用します。
構文
oratext* XmlDomGetAttrLocal( xmlctx *xctx, xmlattrnode *attr);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
attr |
IN |
属性ノード |
戻り値
(oratext *)
属性のローカル名(データ・エンコーディング)。
3.1.2 XmlDomGetAttrLocalLen()
(データ・エンコーディングの)属性の名前空間のローカル名を戻します。属性名が完全に修飾されていない(接頭辞がない)場合、ローカル名は属性名と同じになります。
NULL
で終了するバージョンはXmlDomGetAttrLocal
として使用でき、これはローカル名をNULL
で終了する文字列として戻します。バッキング・ストアがXMLType
であるとわかっている場合、属性のデータは、長さがエンコードされたデータとして内部的に格納されます。長さに基づくGet
XXX
関数を使用すると、データをコピーしたり、データをNULL
で終了する必要がなくなります。
両方の入力バッファがNULL
以外で、入力バッファの長さが0(ゼロ)以外の場合、値は入力バッファに格納されます。それ以外の場合、実装は独自のバッファを戻します。
実際の長さがbuflen
より大きい場合、切り捨てられた値がバッファにコピーされ、lenが実際の長さを戻します。
構文
oratext* XmlDomGetAttrLocalLen( xmlctx *xctx, xmlattrnode *attr, oratext *buf, ub4 buflen, ub4 *len);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
attr |
IN |
属性ノード |
buf |
IN |
入力バッファ(オプション) |
buflen |
IN |
入力バッファ長(オプション) |
len |
OUT |
ローカル名の長さ(文字数) |
戻り値
(oratext *)
Attr
のローカル名(データ・エンコーディング)。
3.1.3 XmlDomGetAttrName()
(データ・エンコーディングの)属性の完全修飾名を、NULL
で終了する文字列として戻します。たとえば、bar\0
、foo:bar\0
などです。
長さがエンコードされたバージョンは、XmlDomGetAttrNameLen
として使用できます。これは、属性名をポインタおよび長さとして戻し、データがXMLType
バックエンドのデータストアを使用するとわかっている場合に使用します。
構文
oratext* XmlDomGetAttrName( xmlctx *xctx, xmlattrnode *attr);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
attr |
IN |
属性ノード |
戻り値
(oratext *)
属性名(データ・エンコーディング)。
3.1.4 XmlDomGetAttrNameLen()
(データ・エンコーディングの)属性の完全修飾名を、長さがエンコードされた文字列として戻します。たとえば、("bar", 3)
、("foo:bar", 7)
などです。
NULL
で終了するバージョンはXmlDomGetAttrName
として使用でき、これは属性名をNULL
で終了する文字列として戻します。バッキング・ストアがXMLType
であるとわかっている場合、属性のデータは、長さがエンコードされたデータとして内部的に格納されます。長さに基づくGet
XXX()
関数を使用すると、データをコピーしたり、データをNULL
で終了する必要がなくなります。
両方の入力バッファがNULL
以外で、入力バッファの長さが0(ゼロ)以外の場合、値は入力バッファに格納されます。それ以外の場合、実装は独自のバッファを戻します。
実際の長さがbuflen
より大きい場合、切り捨てられた値がバッファにコピーされ、len
が実際の長さを戻します。
構文
oratext* XmlDomGetAttrNameLen( xmlctx *xctx, xmlattrnode *attr, oratext *buf, ub4 buflen, ub4 *len);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
attr |
IN |
属性ノード |
buf |
IN |
入力バッファ(オプション) |
buflen |
IN |
入力バッファ長(オプション) |
len |
OUT |
ローカル名の長さ(文字数) |
戻り値
(oratext *)
属性名(データ・エンコーディング)。
3.1.5 XmlDomGetAttrPrefix()
(データ・エンコーディングの)属性の名前空間の接頭辞を戻します。属性名が完全に修飾されていない(接頭辞がない)場合は、NULL
を戻します。
構文
oratext* XmlDomGetAttrPrefix( xmlctx *xctx, xmlattrnode *attr);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
attr |
IN |
属性ノード |
戻り値
(oratext *)
属性の名前空間の接頭辞(データ・エンコーディング)またはNULL
。
3.1.6 XmlDomGetAttrSpecified()
属性の'specified'フラグを戻します。元のドキュメントで属性に値が明示的に指定されている場合はTRUE
、それ以外の場合はFALSE
を戻します。ノードが属性でない場合は、FALSE
を戻します。ユーザーがDOMを介して属性値を設定した場合、specifiedフラグはTRUE
となります。属性をデフォルト値(ある場合)に戻すには、属性を削除する必要があります。これにより、デフォルト値を使用して属性が自動的に再作成されます(specifiedはFALSE
になります)。
構文
boolean XmlDomGetAttrSpecified( xmlctx *xctx, xmlattrnode *attr);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
attr |
IN |
属性ノード |
戻り値
(boolean)
属性のspecifiedフラグ。
関連項目:
3.1.7 XmlDomGetAttrURI()
(データ・エンコーディングの)属性の名前空間URIを戻します。属性名が修飾されていない(名前空間の接頭辞が含まれない)場合は、ノードが作成されたときに、デフォルトの名前空間が使用されます(NULL
になる可能性があります)。
長さがエンコードされたバージョンは、XmlDomGetAttrURILen
として使用できます。これは、URIをポインタおよび長さとして戻し、データがXMLType
バックエンドのデータストアを使用するとわかっている場合に使用します。
構文
oratext* XmlDomGetAttrURI( xmlctx *xctx, xmlattrnode *attr);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
attr |
IN |
属性ノード |
戻り値
(oratext *)
属性の名前空間URI(データ・エンコーディング)またはNULL
。
3.1.8 XmlDomGetAttrURILen()
(データ・エンコーディングの)属性の名前空間URIを、長さがエンコードされた文字列として戻します。属性名が修飾されていない(名前空間の接頭辞が含まれない)場合は、ノードが作成されたときに、デフォルトの名前空間が使用されます(NULL
になる可能性があります)。
NULL
で終了するバージョンはXmlDomGetAttrURI
として使用でき、これはURIをNULL
で終了する文字列として戻します。バッキング・ストアがXMLType
であるとわかっている場合、属性のデータは、長さがエンコードされたデータとして内部的に格納されます。長さに基づくGet関数を使用すると、データをコピーしたり、データをNULL
で終了する必要がなくなります。
両方の入力バッファがNULL
以外で、入力バッファの長さが0(ゼロ)以外の場合、値は入力バッファに格納されます。それ以外の場合、実装は独自のバッファを戻します。
実際の長さがbuflenより大きい場合、切り捨てられた値がバッファにコピーされ、lenが実際の長さを戻します。
構文
oratext* XmlDomGetAttrURILen( xmlctx *xctx, xmlattrnode *attr, oratext *buf, ub4 buflen, ub4 *len);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
attr |
IN |
属性ノード |
buf |
IN |
入力バッファ(オプション) |
buflen |
IN |
入力バッファ長(オプション) |
len |
OUT |
URIの長さ(文字数) |
戻り値
(oratext *)
属性の名前空間URI(データ・エンコーディング)またはNULL
。
3.1.9 XmlDomGetAttrValue()
(データ・エンコーディング内の)属性の値(文字データ)を、NULL
で終了する文字列で戻します。文字および汎用エンティティが置換されています。
長さがエンコードされたバージョンは、XmlDomGetAttrValueLen
として使用できます。これは、属性値をポインタおよび長さとして戻し、データがXMLType
バックエンドのデータストアを使用するとわかっている場合に使用します。
構文
oratext* XmlDomGetAttrValue( xmlctx *xctx, xmlattrnode *attr);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
attr |
IN |
属性ノード |
戻り値
(oratext *)
属性値
3.1.10 XmlDomGetAttrValueLen()
(データ・エンコーディングの)属性の値(文字データ)を、長さがエンコードされた文字列として戻します。文字および汎用エンティティが置換されています。
NULL
で終了するバージョンはXmlDomGetAttrValue
として使用でき、これは属性値をNULL
で終了する文字列として戻します。バッキング・ストアがXMLType
であるとわかっている場合、属性のデータは、長さがエンコードされたデータとして内部的に格納されます。長さに基づくGet
XXX
()関数を使用すると、データをコピーしたり、データをNULL
で終了する必要がなくなります。
両方の入力バッファがNULL
以外で、入力バッファの長さが0(ゼロ)以外の場合、値は入力バッファに格納されます。それ以外の場合、実装は独自のバッファを戻します。
実際の長さがbuflenより大きい場合、切り捨てられた値がバッファにコピーされ、lenが実際の長さを戻します。
構文
oratext* XmlDomGetAttrValueLen( xmlctx *xctx, xmlattrnode *attr, oratext *buf, ub4 buflen, ub4 *len);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
attr |
IN |
属性ノード |
buf |
IN |
入力バッファ(オプション) |
buflen |
IN |
入力バッファ長(オプション) |
len |
OUT |
属性値の長さ(文字数) |
戻り値
(oratext *)
属性値
3.1.11 XmlDomGetAttrValueStream()
属性の大きい値(対応する文字データ)を戻し、分割してユーザーの出力ストリームに送信します。非常に大きいデータの場合、単一の連続するチャンクとして効率的に格納できるとはかぎりません。この関数は、そのタイプのチャンク・データへのアクセスに使用します。
構文
xmlerr XmlDomGetAttrValueStream( xmlctx *xctx, xmlnode *attr, xmlostream *ostream);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
attr |
IN |
属性ノード |
ostream |
IN |
出力ストリーム・オブジェクト |
戻り値
(xmlerr)
数値のエラー・コード、正常に終了した場合は、0
(ゼロ)を戻します。
3.1.12 XmlDomGetOwnerElem()
属性に対応するElement
ノードを戻します。各attrは要素(唯一の要素)に属するか、または分離されておりDOMツリーの一部ではありません。前者の場合は要素ノードが戻されます。attrが未割当の場合はNULL
が戻されます。
構文
xmlelemnode* XmlDomGetOwnerElem( xmlctx *xctx, xmlattrnode *attr);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
attr |
IN |
属性ノード |
戻り値
(xmlelemnode *)
属性の要素ノード(またはNULL
)。
関連項目:
3.1.13 XmlDomSetAttrValue()
指定された属性値をデータに設定します。ノードが属性ではない場合、処理は不要です。新しい値はデータ・エンコーディングに含まれている必要があります。これは検証、変換、確認されません。新しい値を設定した後、属性のspecifiedフラグはTRUE
になります。
構文
void XmlDomSetAttrValue( xmlctx *xctx, xmlattrnode *attr, oratext *value);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
attr |
IN |
属性ノード |
value |
IN |
新しい属性の値(データ・エンコーディング) |
関連項目:
3.1.14 XmlDomSetAttrValueStream()
属性の大きい値(対応する文字データ)を、入力ストリームとは別に設定します。非常に大きいデータの場合、単一の連続するチャンクとして効率的に格納できるとはかぎりません。この関数は、そのタイプのチャンク・データへのアクセスに使用します。
構文
xmlerr XmlDomSetAttrValueStream( xmlctx *xctx, xmlnode *attr, xmlistream *istream);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
attr |
IN |
属性ノード |
isream |
IN |
入力ストリーム |
戻り値
(xmlerr)
数値のエラー・コード、正常に終了した場合は、0
(ゼロ)を戻します。
3.2 DOM XML C APIのCharacterDataインタフェース
次の表にDOM XML C APIのCharacterData
インタフェースで使用できるメソッドの概要を示します。
表3-2 XML C実装のCharacterData DOMメソッドの概要
関数 | 概要 |
---|---|
ノードの現行データの最後にデータを追加します。 |
|
ノードのデータの一部を削除します。 |
|
ノードのデータを戻します。 |
|
ノードのデータの長さを戻します。 |
|
ノードの現行データに文字列を挿入します。 |
|
ノードのデータの一部を置換します。 |
|
ノードのデータを設定します。 |
|
ノードのデータの部分文字列を戻します。 |
3.2.1 XmlDomAppendData()
CharacterData
ノードのデータの最後に文字列を追加します。ノードがText
、Comment
またはCDATA
以外の場合、または追加する文字列がNULL
の場合、処理を行いません。追加するデータはデータ・エンコーディング内に含まれている必要があります。これは検証、変換、確認されません。
新しいノード・データはDOMによって割当ておよび管理されますが、前のノード値がユーザーによって割当ておよび管理されていた場合、新しいノード・データが前のノード値を解放します。これにより、前のノード値が戻されます。
構文
void XmlDomAppendData( xmlctx *xctx, xmlnode *node, oratext *data, oratext **old);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
node |
IN |
|
data |
IN |
追加するデータ(データ・エンコーディング) |
old |
OUT |
ノードの前のデータ(データ・エンコーディング) |
3.2.2 XmlDomDeleteData()
CharacterData
ノードのデータから一定範囲の文字を削除します。ノードがテキスト、コメントまたはCDATA
ではない場合、またはoffsetが元のデータの範囲外にある場合は、処理を行いません。offset
は0(ゼロ)から始まるため、データの先頭はoffset 0(ゼロ)で表されます。offset
およびcount
は、バイト数ではなく文字数です。offsetおよびcountの合計がデータ長を超える場合、offset
からデータの最後の文字までがすべて削除されます。
新しいノード・データはDOMによって割当ておよび管理されますが、前のノード値がユーザーによって割当ておよび管理されていた場合、新しいノード・データが前のノード値を解放します。これにより、前のノード値が戻されます。
構文
void XmlDomDeleteData( xmlctx *xctx, xmlnode *node, ub4 offset, ub4 count, oratext **old);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
node |
IN |
|
offset |
IN |
削除を開始する文字のオフセット |
count |
IN |
削除する文字数 |
old |
OUT |
ノードの前のデータ(データ・エンコーディング) |
3.2.3 XmlDomGetCharData()
データ・エンコーディングのCharacterData
ノードのデータ(テキスト、コメントまたはCDATA
の型)を戻します。ノードのタイプがそれ以外の場合、またはデータがない場合は、NULL
を戻します。
構文
oratext* XmlDomGetCharData( xmlctx *xctx, xmlnode *node);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
node |
IN |
|
戻り値
(oratext *)
ノードの文字データ(データ・エンコーディング)。
3.2.4 XmlDomGetCharDataLength()
CharacterData
ノードのデータ長およびタイプ(Text
、Comment
またはCDATA
)を、バイト数ではなく文字数で戻します。ノードのタイプがそれ以外の場合は、0(ゼロ)を戻します。
構文
ub4 XmlDomGetCharDataLength( xmlctx *xctx, xmlnode *cdata);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
node |
IN |
|
戻り値
(ub4)
ノードのデータの長さ(バイト数ではなく文字数)。
関連項目:
3.2.5 XmlDomInsertData()
CharacterData
ノードのデータの指定位置に文字列を挿入します。ノードがText
、Comment
またはCDATA
ではない場合や、挿入される文字列がNULL
の場合、またはオフセットが元のデータの範囲外にある場合は、処理を行いません。挿入されるデータはデータ・エンコーディングに含まれている必要があります。これは検証、変換、確認されません。オフセットは、バイト数ではなく文字数で指定されます。オフセットは0(ゼロ)から始まるため、オフセット0(ゼロ)の位置に挿入するとデータが先頭に付加されます。
新しいノード・データはDOMによって割当ておよび管理されますが、前のノード値がユーザーによって割当ておよび管理されていた場合、新しいノード・データが前のノード値を解放します。これにより、前のノード値が戻されます。
構文
void XmlDomInsertData( xmlctx *xctx, xmlnode *node, ub4 offset, oratext *arg, oratext **old);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
node |
IN |
|
offset |
IN |
挿入を開始する文字のオフセット |
arg |
IN |
挿入するデータ |
old |
OUT |
ノードの前のデータ(データ・エンコーディング) |
3.2.6 XmlDomReplaceData()
CharacterData
ノードのデータの一定範囲の文字を新規文字列で置換します。ノードがテキスト、コメントまたはCDATA
ではない場合や、オフセットが元のデータの範囲外にある場合、または置換文字列がNULL
の場合は、処理を行いません。countが0(ゼロ)の場合は、XmlDomInsertData
と同じように機能します。オフセットは0(ゼロ)から始まるため、データの先頭はオフセット0(ゼロ)で表されます。置換データはデータ・エンコーディングに含まれている必要があります。これは検証、変換、確認されません。オフセットおよびカウントはどちらも、バイト数ではなく文字数で表されます。オフセットとカウントの合計が長さを超える場合、データの最後までのすべての文字が置換されます。
新しいノード・データはDOMによって割当ておよび管理されますが、前のノード値がユーザーによって割当ておよび管理されていた場合、新しいノード・データが前のノード値を解放します。これにより、前のノード値が戻されます。
構文
void XmlDomReplaceData( xmlctx *xctx, xmlnode *node, ub4 offset, ub4 count, oratext *arg, oratext **old);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
node |
IN |
|
offset |
IN |
置換を開始する文字のオフセット |
count |
IN |
置換する文字数 |
arg |
IN |
置換する部分文字列(データ・エンコーディング) |
old |
OUT |
ノードの前のデータ(データ・エンコーディング) |
3.2.7 XmlDomSetCharData()
CharacterData
ノードのデータ(テキスト、コメントまたはCDATA
の型)を設定し、古いデータを置換します。ノードのタイプがそれ以外の場合は、処理を行いません。新しいデータは、検証、変換、確認は行われず、データ・エンコーディング内にある必要があります。
構文
void XmlDomSetCharData( xmlctx *xctx, xmlnode *node, oratext *data);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
node |
IN |
|
data |
IN |
ノードの新しいデータ |
関連項目:
3.2.8 XmlDomSubstringData()
CharacterData
ノードの文字データの範囲および型(Text
、Comment
またはCDATA
)を戻します。ノードのタイプがそれ以外の場合、またはcountが0(ゼロ)の場合は、NULL
を戻します。データはデータ・エンコーディングに含まれるため、オフセットおよびカウントはバイト数ではなく文字数で表されます。文字列の先頭は、offset 0
です。オフセットとカウントの合計が長さを超える場合、データの最後までのすべての文字が戻されます。
部分文字列は、ノードのドキュメントのメモリー・プール内に永続的に割り当てられます。部分文字列を解放するには、XmlDomFreeString
を使用します。
構文
oratext* XmlDomSubstringData( xmlctx *xctx, xmlnode *node, ub4 offset, ub4 count);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
node |
IN |
|
offset |
IN |
部分文字列の抽出を開始する文字のオフセット |
count |
IN |
抽出する文字数 |
戻り値
(oratext *)
指定された部分文字列。
3.3 DOM XML C APIのDocumentインタフェース
次の表にDOM XML C APIのDocument
インタフェースで使用できるメソッドの概要を示します。
表3-3 XML C実装のDocument DOMメソッドの概要
関数 | 概要 |
---|---|
属性ノードを作成します。 |
|
名前空間の情報を含む属性ノードを作成します。 |
|
|
|
コメント・ノードを作成します。 |
|
要素ノードを作成します。 |
|
名前空間の情報を含む要素ノードを作成します。 |
|
実体参照ノードを作成します。 |
|
ドキュメント・フラグメントを作成します。 |
|
PIノードを作成します。 |
|
テキスト・ノードを作成します。 |
|
|
|
ドキュメントのベースURIを戻します。 |
|
ドキュメントのDTDを取得します。 |
|
ドキュメントの |
|
ドキュメントの最上位要素を取得します。 |
|
ドキュメント要素に指定されたIDを取得します。 |
|
ドキュメント要素を取得します。 |
|
ドキュメント要素(名前空間認識バージョン)を取得します。 |
|
ドキュメントの最後のエラー・コードを戻します。 |
|
ドキュメントに対応するスキーマのURIを戻します。 |
|
別のDOMからノードをインポートします。 |
|
スキーマがドキュメントに対応するかどうかを示します。 |
|
ドキュメントのメモリー・プールに文字列を永続的に保存します。 |
|
ドキュメントのメモリー・プールにUnicode文字列を永続的に保存します。 |
|
ドキュメントのDTDを設定します。 |
|
すべてのノードのドキュメント順序を設定します。 |
|
ドキュメントの最後のエラー・コードを設定します。 |
|
ドキュメントの永続バージョンをそのDOMと同期化します。 |
3.3.1 XmlDomCreateAttr()
(データ・エンコーディングで)指定された名前と値を使用して、属性ノードを作成します。この関数は、属性の初期値を設定できないDOM仕様とは異なることに注意してください(XmlDomSetAttrValue
を参照)。名前は必須ですが、値はNULL
の可能性があり、どちらも検証、変換、確認は行われません。
これは、名前空間を認識しない関数です(XmlDomCreateAttrNS
を参照)。新しい属性には、NULL
の名前空間URIおよび接頭辞が設定され、指定された属性名が修飾名の場合でも、属性のローカル名は属性名と同じになります。
初期値が指定された場合、属性のspecifiedフラグはTRUE
になります。
新しいノードは、親がなく孤立しているため、XmlDomAppendChild
,などを使用して、DOMツリーに追加する必要があります。
1回の操作で属性を作成および追加する「XmlDomSetAttr
」を参照してください。
名前および値はコピーされず、ポインタのみが保存されます。ノードのデータの保持および解放は、ユーザーが行います。
構文
xmlattrnode* XmlDomCreateAttr( xmlctx *xctx, xmldocnode *doc, oratext *name, oratext *value);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
doc |
IN |
XML文書ノード |
name |
IN |
新しいノードの名前(データ・エンコーディング)。ユーザーが制御します。 |
value |
IN |
新しいノードの値(データ・エンコーディング)。ユーザーが制御します。 |
戻り値
(xmlattrnode *)
新しいAttr
ノード。
3.3.2 XmlDomCreateAttrNS()
指定された名前空間URIと修飾名を使用して属性ノードを作成します。これは、XmlDomCreateAttr
の名前空間を認識したバージョンです。この関数は、属性の初期値を設定できないDOM仕様とは異なることに注意してください(XmlDomSetAttrValue
を参照)。名前は必須ですが、値はNULL
の可能性があり、どちらも検証、変換、確認は行われません。
初期値が指定された場合、属性のspecifiedフラグはTRUE
になります。
新しいノードは、親がなく孤立しているため、XmlDomAppendChild
,などを使用して、DOMツリーに追加する必要があります。1回の操作で属性を作成および追加する「XmlDomSetAttr
」を参照してください。
URI、修飾名および値はコピーされず、ポインタのみが保存されます。ノードのデータの保持および解放は、ユーザーが行います。
構文
xmlattrnode* XmlDomCreateAttrNS( xmlctx *xctx, xmldocnode *doc, oratext *uri, oratext *qname, oratext *value);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
doc |
IN |
XML文書ノード |
uri |
IN |
ノードの名前空間URI(データ・エンコーディング)。ユーザーが制御します。 |
qname |
IN |
ノードの修飾名(データ・エンコーディング)。ユーザーが制御します。 |
value |
IN |
新しいノードの値(データ・エンコーディング)。ユーザーが制御します。 |
戻り値
(xmlattrnode *)
新しいAttr
ノード。
3.3.3 XmlDomCreateCDATA()
指定された初期データ(データ・エンコーディング内にある必要があります)を使用して、CDATASection
ノードを作成します。CDATASection
は逐語的とみなされ、解析されることはありません。正規化処理によって、隣接するText
ノードと結合されることもありません。初期データにNULL
が指定されている場合、検証、変換、確認は行われません。CDATA
ノードの名前は、常に「#cdata-section
」となります。
新しいノードは、親がなく孤立しているため、XmlDomAppendChild
などを使用して、DOMツリーに追加する必要があります。
CDATA
はコピーされず、ポインタのみが保存されます。ノードのデータの保持および解放は、ユーザーが行います。
構文
xmlcdatanode* XmlDomCreateCDATA( xmlctx *xctx, xmldocnode *doc, oratext *data);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
doc |
IN |
XML文書ノード |
data |
IN |
新しいノードの |
戻り値
(xmlcdatanode *)
新しいCDATA
ノード。
3.3.4 XmlDomCreateComment()
指定された初期データ(データ・エンコーディング内にある必要があります)を使用して、Comment
ノードを作成します。データにNULL
が指定されている場合、検証、変換、確認は行われません。Comment
ノードの名前は常に#comment
です。
新しいノードは、親がなく孤立しているため、XmlDomAppendChild
などを使用して、DOMツリーに追加する必要があります。
コメント・データはコピーされず、ポインタのみが保存されます。ノードのデータの保持および解放は、ユーザーが行います。
構文
xmlcommentnode* XmlDomCreateComment( xmlctx *xctx, xmldocnode *doc, oratext *data);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
doc |
IN |
XML文書ノード |
data |
IN |
新しいノードのコメント(データ・エンコーディング)。ユーザーが制御します。 |
戻り値
(xmlcommentnode *)
新しいComment
ノード。
3.3.5 XmlDomCreateElem()
指定されたタグ名(データ・エンコーディングに含まれている必要があります)を持つ要素ノードを作成します。要素のタグ名は大/小文字が区別されることに注意してください。これは、名前空間を認識しない関数です。したがって、新しいノードは、名前空間URIおよび接頭辞がNULL
となり、指定されたタグ名が修飾名である場合も、ノードのローカル名はノードのタグ名と同じになります。
新しいノードは、親がなく孤立しているため、XmlDomAppendChild
などを使用して、DOMツリーに追加する必要があります。
tagname
はコピーされず、ポインタのみが保存されます。ノードのデータの保持および解放は、ユーザーが行います。
構文
xmlelemnode* XmlDomCreateElem( xmlctx *xctx, xmldocnode *doc, oratext *tagname);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
doc |
IN |
XML文書ノード |
tagname |
IN |
新しいノードの名前(データ・エンコーディング)。ユーザーが制御します。 |
戻り値
(xmlelemnode *)
新しいElement
ノード。
3.3.6 XmlDomCreateElemNS()
指定された名前空間URIおよび修飾名を持つ要素を作成します。要素名では大/小文字が区別され、URIはNULL
にできますが、修飾名は必須であることに注意してください。修飾名は接頭辞とローカル部分に分割され、XmlDomGetNodePrefix
、XmlDomGetNodeLocal
などを使用して取得できます。tagNameは完全修飾名になります。
新しいノードは、親がなく孤立しているため、XmlDomAppendChild
などを使用して、DOMツリーに追加する必要があります。
URIおよび修飾名はコピーされず、ポインタのみが保存されます。ノードのデータの保持および解放は、ユーザーが行います。
構文
xmlelemnode* XmlDomCreateElemNS( xmlctx *xctx, xmldocnode *doc, oratext *uri, oratext *qname);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
doc |
IN |
XML文書ノード |
uri |
IN |
新しいノードの名前空間URI(データ・エンコーディング)。ユーザーが制御します。 |
qname |
IN |
新しいノードの修飾名(データ・エンコーディング)。ユーザーが制御します。 |
戻り値
(xmlelemnode *)
新しいElement
ノード。
3.3.7 XmlDomCreateEntityRef()
EntityReference
ノードを作成します。名前(データ・エンコーディング内にある必要があります)は、参照されるエンティティの名前です。名前付きの実体が存在する必要はありません。名前の検証、変換、確認は行われません。
EntityReference
ノードはパーサーによって生成されることはなく、実体参照が検出されたときに拡張されます。出力の際、実体参照ノードはスタイル参照の「&name;」に変換されます。
新しいノードは、親がなく孤立しているため、XmlDomAppendChild
,などを使用して、DOMツリーに追加する必要があります。
実体参照名はコピーされず、ポインタのみが保存されます。ノードのデータの保持および解放は、ユーザーが行います。
構文
xmlentrefnode* XmlDomCreateEntityRef( xmlctx *xctx, xmldocnode *doc, oratext *name);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
doc |
IN |
XML文書ノード |
name |
IN |
実体参照名(データ・エンコーディング)。ユーザーが制御します。 |
戻り値
(xmlentrefnode *)
新しいEntityReference
ノード。
3.3.8 XmlDomCreateFragment()
空のDocumentFragment
ノードを作成します。ドキュメント・フラグメントは、DOMツリーに挿入されると特殊な方法で処理されます。フラグメント・ノード自体ではなく、フラグメントの子が順番に挿入されます。挿入後、フラグメント・ノードは存続しますが、子はなくなります。「XmlDomInsertBefore
」、「XmlDomReplaceChild
」、「XmlDomAppendChild
」などを参照してください。フラグメント・ノードの名前は、常に「#document-fragment
」となります。
構文
xmlfragnode* XmlDomCreateFragment( xmlctx *xctx, xmldocnode *doc);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
doc |
IN |
XML文書ノード |
戻り値
(xmlfragnode *)
新しい空のDocumentFragment
ノード。
3.3.9 XmlDomCreatePI()
指定されたターゲットおよびデータ(データ・エンコーディング内にある必要があります)を使用して、ProcessingInstruction
ノードを作成します。データは、最初はNULL
で、(XmlDomSetPIData
を使用して)後で変更される可能性がありますが、ターゲットは必須で、変更できません。ターゲットは、検証、変換、確認は行われません。PIノードの名前は、ターゲットと同じです。
新しいノードは、親がなく孤立しているため、XmlDomAppendChild
などを使用して、DOMツリーに追加する必要があります。
PIのターゲットおよびデータはコピーされず、ポインタのみが保存されます。ノードのデータの保持および解放は、ユーザーが行います。
構文
xmlpinode* XmlDomCreatePI( xmlctx *xctx xmldocnode *doc, oratext *target, oratext *data);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
doc |
IN |
XML文書ノード |
target |
IN |
新しいノードのターゲット(データ・エンコーディング)。ユーザーが制御します。 |
data |
IN |
新しいノードのデータ(データ・エンコーディング)。ユーザーが制御します。 |
戻り値
(xmlpinode *)
新しいPIノード。
3.3.10 XmlDomCreateText()
指定された初期データ(非NULL
で、データ・エンコーディングに含まれている必要があります)を使用してText
ノードを作成します。データにNULL
が指定されている場合、検証、変換、確認は行われません(エンティティは拡張されません)。フラグメント・ノードの名前は、常に「#text
」となります。Text
ノードの新しいデータを設定できます。メソッドの編集については、CharacterData
インタフェースを参照してください。
新しいノードは、親がなく孤立しているため、XmlDomAppendChild
などを使用して、DOMツリーに追加する必要があります。
テキスト・データはコピーされず、ポインタのみが保存されます。ノードのデータの保持および解放は、ユーザーが行います。
構文
xmltextnode* XmlDomCreateText( xmlctx *xctx, xmldocnode *doc, oratext *data);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
doc |
IN |
XML文書ノード |
data |
IN |
新しいノードのテキスト(データ・エンコーディング)。ユーザーが制御します。 |
戻り値
3.3.11 XmlDomFreeString()
XmlDomSubstringData
または同様の関数によって割り当てられた文字列を解放します。XmlDomSaveString
を使用して明示的に保存された文字列は、個別に解放できません。
構文
void XmlDomFreeString( xmlctx *xctx, xmldocnode *doc, oratext *str);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
doc |
IN |
文字列が属するドキュメント |
str |
IN |
解放する文字列 |
3.3.12 XmlDomGetBaseURI()
ドキュメントのベースURIを戻します。通常は、URIからロードされたドキュメントにのみ、ベースURIが自動的に設定されます。他のソース(stdin
、バッファなど)からロードされたドキュメントには通常、ベースURIは設定されていませんが、相対URIを解決するために、XmlDomSetBaseURI
を使用してベースURIが設定されている場合もあります。
構文
oratext *XmlDomGetBaseURI( xmlctx *xctx, xmldocnode *doc);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
doc |
IN |
XML文書ノード |
戻り値
(oratext *)
ドキュメントのベースURI(またはNULL
)。
関連項目:
3.3.13 XmlDomGetDTD()
現在のドキュメントに対応するDTDノードを戻します。DTDがない場合は、NULL
を戻します。DTDは編集できませんが、他のノードのタイプについては、XmlDomGetChildNodes
を使用して子を取得できます。
構文
xmldtdnode* XmlDomGetDTD( xmlctx *xctx, xmldocnode *doc);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
doc |
IN |
XML文書ノード |
戻り値
(xmldtdnode *)
ドキュメントのDTDノード(またはNULL
)。
3.3.14 XmlDomGetDecl()
ドキュメントのXMLDecl
から情報を戻します。XMLDecl
が存在しない場合は、XMLERR_NO_DECL
を戻します。XMLバージョン#(1.0
また2.0
)、指定されたエンコーディングおよびスタンドアロン値が戻されます。エンコーディングが指定されていない場合は、NULL
が設定されます。スタンドアロン・フラグには3つの状態があります。スタンドアロンが指定されていない場合は< 0
、スタンドアロンが指定されていてFALSE
の場合は0
、スタンドアロンが指定されていてTRUE
の場合は> 0
になります。
構文
xmlerr XmlDomGetDecl( xmlctx *xctx, xmldocnode *doc, oratext **ver, oratext **enc, sb4 *std);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
doc |
IN |
XML文書ノード |
ver |
OUT |
XMLバージョン |
enc |
OUT |
エンコーディング仕様 |
std |
OUT |
スタンドアロン仕様 |
戻り値
(xmlerr)
XMLエラー・コード。バージョン/エンコーディング/スタンドアロンが設定されます。
3.3.15 XmlDomGetDocElem()
DOMツリーのルート要素(ノード)を戻します。ない場合はNULL
を戻します。各ドキュメントには、ルート要素と呼ばれる最上位のElement
ノードが1つのみあります。これは、ドキュメントが正常に解析された後に作成されるか、またはXmlDomCreateElem
、XmlDomAppendChild
などによって手動で作成されます。
構文
xmlelemnode* XmlDomGetDocElem( xmlctx *xctx, xmldocnode *doc);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
doc |
IN |
XML文書ノード |
戻り値
(xmlelemnode *)
ルート要素(またはNULL
)。
関連項目:
3.3.16 XmlDomGetDocElemByID()
指定されたIDを持つ要素ノードを戻します。このようなIDが定義されていない場合は、NULL
を戻します。名前がIDである属性が、自動的にID型になるわけではありません。ID属性(任意の名前を付けられます)は、DTDでID型として宣言する必要があります。
指定されたIDはデータ・エンコーディングに含まれている必要があります。そうでないと一致しない場合があります。
構文
xmlelemnode* XmlDomGetDocElemByID( xmlctx *xctx, xmldocnode *doc, oratext *id);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
doc |
IN |
XML文書ノード |
id |
IN |
要素の一意のID(データ・エンコーディング) |
戻り値
(xmlelemnode *)
一致する要素。
3.3.17 XmlDomGetDocElemsByTag()
指定されたタグ名を持つルート・ノードをルートとするドキュメント・ツリー内のすべての要素のリストを、ドキュメント順(ツリーの先行順走査で検出した順)に戻します。ルートがNULL
の場合は、ドキュメント全体を検索します。
特別な名前「*
」はすべてのタグ名と一致します。NULL
の名前に一致するものはありません。タグ名は大/小文字が区別されることに注意してください。また、データ・エンコーディングに含まれている必要があり、そうでないと不一致が生じる場合があります。
この関数は名前空間を認識しません。したがって、完全なタグ名が比較されます。同じURIにマップされる異なる接頭辞を持つ2つの修飾名を比較すると、比較は失敗します。名前空間を認識するバージョンについては、「XmlDomGetElemsByTagNS
」を参照してください。
リストが不要になった場合は、XmlDomFreeNodeList
を使用して解放する必要があります。
このリストは最新のものではなく、スナップショットです。つまり、リストが戻された後に、タグ名に一致する新しいノードがDOMに追加された場合、そのノードを含むようにリストが自動的に更新されることはありません。
構文
xmlnodelist* XmlDomGetDocElemsByTag( xmlctx *xctx, xmldocnode *doc, oratext *name);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
doc |
IN |
XML文書ノード |
name |
IN |
一致させるタグ名(データ・エンコーディング)。すべてのタグ名を一致させるには「 |
戻り値
(xmlnodelist *)
一致したすべてのElement
を含む、新しいNodeList
。
3.3.18 XmlDomGetDocElemsByTagNS()
指定された名前空間URIおよびローカル名を持つ(指定されたノードをルートとするドキュメント・ツリー内の)すべての要素のリストを、ツリーの先行順走査で検出した順に戻します。ルートがNULL
の場合は、ドキュメント全体を検索します。
URIとローカル名は、データ・エンコーディング内に含まれている必要があります。特殊なローカル名「*」はすべてのローカル名と一致します。NULL
のローカル名に一致するものはありません。名前空間URIは常に一致する必要がありますが、ワイルド・カードは使用できません。比較では、大/小文字が区別されます。名前空間を認識しないバージョンについては、「XmlDomGetDocElemsByTag
」を参照してください。
リストが不要になった場合は、XmlDomFreeNodeList
を使用して解放する必要があります。
このリストは最新のものではなく、スナップショットです。つまり、リストが戻された後に、タグ名に一致する新しいノードがDOMに追加された場合、そのノードを含むようにリストが自動的に更新されることはありません。
構文
xmlnodelist* XmlDomGetDocElemsByTagNS( xmlctx *xctx, xmldocnode *doc, oratext *uri, oratext *local);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
doc |
IN |
XML文書ノード |
uri |
IN |
一致させる名前空間URI(データ・エンコーディング)。すべての名前空間URIを一致させるには「 |
local |
IN |
一致させるローカル名(データ・エンコーディング)。すべてのローカル名と一致させるには「 |
戻り値
(xmlnodelist *)
一致したすべてのElement
を含む、新しいNodeList
。
3.3.19 XmlDomGetLastError()
指定されたドキュメントで最後に発生したエラーのエラー・コードを戻します。
構文
xmlerr XmlDomGetLastError( xmlctx *xctx, xmldocnode *doc);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
doc |
IN |
XML文書ノード |
戻り値
(xmlerr)
数値のエラー・コード。エラーがない場合は、0
(ゼロ)を戻します。
3.3.20 XmlDomGetSchema()
ドキュメントに対応するスキーマのURIを戻します。ない場合は、NULL
を戻します。XmlLoadDom
関数は、スキーマの場所のヒント(URI)を取得します。スキーマは、XMLType
データを効率的にレイアウトするために使用されます。スキーマがロード時に指定された場合、この関数はTRUE
を戻します。
構文
oratext* XmlDomGetSchema( xmlctx *xctx, xmldocnode *doc);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
doc |
IN |
XML文書ノード |
戻り値
(oratext *)
スキーマURIまたはNULL
。
3.3.21 XmlDomImportNode()
Document
から別のドキュメントにノードをインポートします。新しいノードは、親がなく孤立しているため、XmlDomAppendChild
などを使用して、DOMツリーに追加する必要があります。元のノードは、変更されたりドキュメントから削除されることはありません。かわりに、元のノードの修飾名、接頭辞、名前空間URIおよびローカル名をすべてコピーした新しいノードが作成されます。
XmlDomCloneNode
と同様に、ノードの子を再帰的にインポートするかどうかをdeepが制御します。FALSE
の場合、ノード自体のみがインポートされ、子は含まれません。TRUE
の場合、ノードのすべての子孫が同様にインポートされ、新しいサブツリー全体が作成されます。
Document
ノードおよびDocumentType
ノードはインポートできません。インポートされた属性のspecifiedフラグは、TRUE
に設定されます。要素には指定された属性のみがインポートされます。指定されていない(デフォルトの)属性は省略されます。その後、(インポート先ドキュメントの)新しいデフォルトの属性が追加されます。
構文
xmlnode* XmlDomImportNode( xmlctx *xctx, xmldocnode *doc, xmlctx *nctx, xmlnode *node, boolean deep);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
doc |
IN |
XML文書ノード |
nctx |
IN |
インポートされたノードのXMLコンテキスト |
node |
IN |
インポートするノード |
deep |
IN |
サブツリーを再帰的にインポートする場合は |
戻り値
(xmlnode *)
新しくインポートされたノード(このDocument
内)。
関連項目:
3.3.22 XmlDomIsSchemaBased()
このドキュメントに対応するスキーマがあるかどうかを指定するフラグを戻します。XmlLoadDom
関数は、スキーマの場所のヒント(URI)を取得します。スキーマは、XMLType
データを効率的にレイアウトするために使用されます。スキーマがロード時に指定された場合、この関数はTRUE
を戻します。
構文
boolean XmlDomIsSchemaBased( xmlctx *xctx, xmldocnode *doc);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
doc |
IN |
XML文書ノード |
戻り値
(boolean)
ドキュメントに対応するスキーマがある場合はTRUE
。
3.3.23 XmlDomSaveString()
指定された文字列をドキュメントのメモリー・プールにコピーすることで、ドキュメントが存続する間、存続するようにします。個別の文字列は解放できません。ドキュメント全体が解放されたときにのみ、記憶域が戻されます。シングルバイトまたはマルチバイト・エンコーディングで機能します。Unicode文字列の場合は、XmlDomSaveString2
を使用します。
構文
oratext* XmlDomSaveString( xmlctx *xctx, xmldocnode *doc, oratext *str);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
doc |
IN |
XML文書ノード |
str |
IN |
保存する文字列(データ・エンコーディング)。シングルバイトまたはマルチバイトのみです。 |
戻り値
(oratext *)
文字列の保存されたコピー。
3.3.24 XmlDomSaveString2()
指定された文字列をドキュメントのメモリー・プールにコピーすることで、ドキュメントが存続する間、存続するようにします。個別の文字列は解放できません。ドキュメント全体が解放されたときにのみ、記憶域が戻されます。Unicode文字列でのみ機能します。シングルバイトまたはマルチバイト文字列の場合は、XmlDomSaveString
を使用します。
構文
ub2* XmlDomSaveString2( xmlctx *xctx, xmldocnode *doc, ub2 *ustr);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
doc |
IN |
XML文書ノード |
ustr |
IN |
保存する文字列(データ・エンコーディング)。Unicodeのみです。 |
戻り値
(ub2 *)
文字列の保存されたコピー。
3.3.25 XmlDomSetBaseURI()
URIからロードされたドキュメントのみに、ベースURIが自動的に設定されます。他のソース(stdin、バッファなど)からロードされたドキュメントには、ベースURIは自動的には設定されません。したがって、相対URIを解決するために、このAPIを使用してベースURIを設定します。ベースURIは、データ・エンコーディング内にある必要があり、コピーが作成されます。
構文
xmlerr XmlDomSetBaseURI( xmlctx *xctx, xmldocnode *doc, oratext *uri);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
doc |
IN |
XML文書ノード |
uri |
IN |
設定されるベースURI(データ・エンコーディング) |
戻り値
(xmlerr)
XMLエラー・コード。
関連項目:
3.3.26 XmlDomSetDTD()
ドキュメントのDTDを設定します。このコールは、解析が行われる前に、空のドキュメントに対してのみ使用されます。1つのDTDを複数のドキュメントに対して設定できるため、DTDが設定されたドキュメントを解放しても、設定されたDTDは解放されません。
構文
xmlerr XmlDomSetDTD( xmlctx *xctx, xmldocnode *doc, xmldtdnode *dtdnode);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
doc |
IN |
XML文書ノード |
dtdnode |
IN |
設定される |
戻り値
(xmlerr)
数値のエラー・コード、正常に終了した場合は、0
(ゼロ)を戻します。
3.3.27 XmlDomSetDocOrder()
現行のドキュメントの各ノードに対してドキュメント順序を設定します。XSLT処理を行うには、最終ドキュメントに対してこの関数をコールする必要があります。この関数は、XSLTプロセッサによって自動的にコールされるため、ユーザーがこの関数をコールする必要はありません。
構文
ub4 XmlDomSetDocOrder( xmlctx *xctx, xmldocnode *doc, ub4 start_id);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
doc |
IN |
XML文書ノード |
start_id |
IN |
文字列のID番号 |
戻り値
(ub4)
割り当てられた最大の序数。
3.3.28 XmlDomSetLastError()
指定されたドキュメントの最後のエラー・コードを設定します。doc
がNULL
の場合は、XMLコンテキストのエラー・コードを設定します。
構文
xmlerr XmlDomSetLastError( xmlctx *xctx, xmldocnode *doc, xmlerr errcode);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
doc |
IN |
XML文書ノード |
errcode |
IN |
設定されるエラー・コード。エラーを消去するには |
戻り値
(xmlerr)
元のエラー・コード。
3.4 DOM XML C APIのDocumentTypeインタフェース
次の表にDOM XML C APIのDocumentType
インタフェースで使用できるメソッドの概要を示します。
表3-4 XML C実装のDocumentType DOMメソッドの概要
関数 | 概要 |
---|---|
DTDのエンティティを取得します。 |
|
DTDの内部サブセットを取得します。 |
|
DTDの名前を取得します。 |
|
DTDの表記法を取得します。 |
|
DTDの公開識別子を取得します。 |
|
DTDのシステム識別子を取得します。 |
3.4.1 XmlDomGetDTDEntities()
DTDによって定義された汎用エンティティの名前付きノード・マップを戻します。ノードがDTDではないか、または汎用エンティティを持っていない場合はNULL
を戻します。
構文
xmlnamedmap* XmlDomGetDTDEntities( xmlctx *xctx, xmldtdnode *dtd);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
dtd |
IN |
DTDノード |
戻り値
(xmlnamedmap *)
DTDで宣言されたエンティティを含む、名前付きノード・マップ。
3.4.2 XmlDomGetDTDInternalSubset()
要素のコンテンツ・モデルを戻します。DTDが存在しない場合、NULL
を戻します。
構文
xmlnode* XmlDomGetDTDInternalSubset( xmlctx *xctx, xmldtdnode *dtd, oratext *name);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
dtd |
IN |
DTDノード |
name |
IN |
|
戻り値
(xmlnode *)
コンテンツ・モデル・サブツリー。
3.4.3 XmlDomGetDTDName()
DTD名(DOCTYPE
キーワードの直後に指定されます)、またはノードのタイプがDTD以外の場合はNULL
を戻します。
構文
oratext* XmlDomGetDTDName( xmlctx *xctx, xmldtdnode *dtd);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
dtd |
IN |
DTDノード |
戻り値
(oratext*)
DTDの名前。
3.4.4 XmlDomGetDTDNotations()
DTDで宣言されている表記法の名前付きノード・マップを戻します。ノードがDTDではないか、またはNotation
を持っていない場合はNULL
を戻します。
構文
xmlnamedmap* XmlDomGetDTDNotations( xmlctx *xctx, xmldtdnode *dtd);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
dtd |
IN |
DTDノード |
戻り値
(xmlnamedmap *)
DTDで宣言された表記法を含む、名前付きノード・マップ。
3.4.5 XmlDomGetDTDPubID()
DTDの公開識別子を戻します。
構文
oratext* XmlDomGetDTDPubID( xmlctx *xctx, xmldtdnode *dtd);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
dtd |
IN |
DTDノード |
戻り値
(oratext *)
DTDの公開識別子(データ・エンコーディング)。
3.5 DOM XML C APIのElementインタフェース
次の表にDOM XML C APIのElement
インタフェースで使用できるメソッドの概要を示します。
表3-5 XML C実装のElement DOMメソッドの概要
関数 | 概要 |
---|---|
名前が指定された属性の値を戻します。 |
|
URIおよびローカル名が指定された属性の値を戻します。 |
|
属性名を持つ属性を取得します。 |
|
属性名を持つ属性(名前空間認識バージョン)を取得します。 |
|
指定されたタグ名(名前空間を認識しないバージョン)を持つ要素の子を戻します。 |
|
タグ名(名前空間認識バージョン)を持つ要素の子を戻します。 |
|
ドキュメント要素を取得します。 |
|
ドキュメント要素(名前空間認識バージョン)を取得します。 |
|
要素ノードのタグ名を戻します。 |
|
名前付き属性は存在しますか。 |
|
名前付き属性(名前空間認識バージョン)は存在しますか。 |
|
指定された名前を持つ属性を削除します。 |
|
指定されたURIおよびローカル名を持つ属性を削除します。 |
|
属性ノードを削除します。 |
|
要素の新しい属性を設定します。 |
|
要素の新しい属性(名前空間認識バージョン)を設定します。 |
|
属性ノードを設定します。 |
|
属性ノード(名前空間認識バージョン)を設定します。 |
3.5.1 XmlDomGetAttr()
名前で指定された要素の属性の値を戻します。属性の値には空の文字列を使用できますが、NULL
にはできません。要素に指定された名前を持つ属性がない場合は、NULL
が戻されます。
構文
oratext* XmlDomGetAttr( xmlctx *xctx, xmlelemnode *elem, oratext *name);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
elem |
IN |
要素ノード |
name |
IN |
属性の名前 |
戻り値
(oratext *)
名前付き属性の値(データ・エンコーディング。NULL
の可能性があります)。
3.5.2 XmlDomGetAttrNS()
URIおよびローカル名で指定された要素の属性の値を戻します。属性の値には空の文字列を使用できますが、NULL
にはできません。要素に指定された名前を持つ属性がない場合は、NULL
が戻されます。
構文
oratext* XmlDomGetAttrNS( xmlctx *xctx, xmlelemnode *elem, oratext *uri, oratext *local);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
elem |
IN |
要素ノード |
uri |
IN |
属性の名前空間URI(データ・エンコーディング) |
local |
IN |
属性のローカル名(データ・エンコーディング) |
戻り値
(oratext *)
名前付き属性の値(データ・エンコーディング。NULL
の可能性があります)。
3.5.3 XmlDomGetAttrNode()
名前で指定された要素の属性を戻します。ノードが要素ではないか、または名前付き属性が存在しない場合はNULL
を戻します。
構文
xmlattrnode* XmlDomGetAttrNode( xmlctx *xctx, xmlelemnode *elem, oratext *name);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
elem |
IN |
要素ノード |
name |
IN |
属性名(データ・エンコーディング) |
戻り値
(xmlattrnode *)
指定した名前を持つ属性(またはNULL
)。
3.5.4 XmlDomGetAttrNodeNS()
URIおよびローカル名で指定された要素の属性を戻します。ノードが要素ではないか、または名前付き属性が存在しない場合はNULL
を戻します。
構文
xmlattrnode* XmlDomGetAttrNodeNS( xmlctx *xctx, xmlelemnode *elem, oratext *uri, oratext *local);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
elem |
IN |
要素ノード |
uri |
IN |
属性の名前空間URI(データ・エンコーディング) |
local |
IN |
属性のローカル名(データ・エンコーディング) |
戻り値
(xmlattrnode *)
指定したURI/ローカル名を持つ属性ノード(またはNULL
)。
3.5.5 XmlDomGetChildrenByTag()
指定されたタグ名を持つ要素の子のリストを、ツリーの先行順走査で検出された順に戻します。タグ名は、データ・エンコーディング内に含まれている必要があります。特別な名前「*
」はすべてのタグ名と一致します。NULL
の名前に一致するものはありません。タグ名では大/小文字が区別されます。この関数は名前空間を認識しません。したがって、完全なタグ名が比較されます。同じURIにマップされる2つの接頭辞を比較すると、比較は失敗します。名前空間を認識するバージョンについては、「XmlDomGetChildrenByTagNS
」を参照してください。戻されるリストは、XmlDomFreeNodeList
を使用して解放できます。
構文
xmlnodelist* XmlDomGetChildrenByTag( xmlctx *xctx, xmlelemnode *elem, oratext *name);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
elem |
IN |
要素ノード |
name |
IN |
一致させるタグ名(データ・エンコーディング)。すべてのタグ名を一致させるには「 |
戻り値
(xmlnodelist *)
一致する子のノード・リスト。
3.5.6 XmlDomGetChildrenByTagNS()
指定されたURIおよびローカル名を持つ要素の子のリストを、ツリーの先行順走査で検出された順に戻します。URIとローカル名は、データ・エンコーディング内に含まれている必要があります。特殊な名前「*
」はすべてのURIまたはタグ名と一致します。NULL
の名前に一致するものはありません。名前では大/小文字が区別されます。名前空間を認識しないバージョンについては、「XmlDomGetChildrenByTag
」を参照してください。戻されるリストは、XmlDomFreeNodeList
を使用して解放できます。
構文
xmlnodelist* XmlDomGetChildrenByTagNS( xmlctx *xctx, xmlelemnode *elem, oratext *uri, oratext *local);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
elem |
IN |
要素ノード |
uri |
IN |
一致させる名前空間URI(データ・エンコーディング)。すべての名前空間URIを一致させるには「 |
local |
IN |
一致させるローカル名(データ・エンコーディング)。すべてのローカル名と一致させるには「*」を指定します。 |
戻り値
(xmlnodelist *)
一致する子のノード・リスト。
3.5.7 XmlDomGetElemsByTag()
指定されたタグ名を持つ(ルート・ノードをルートとするドキュメント・ツリー内の)すべての要素のリストを、ツリーの先行順走査で検出した順に戻します。ルートがNULL
の場合は、ドキュメント全体を検索します。タグ名は、データ・エンコーディング内に含まれている必要があります。特別な名前「*
」はすべてのタグ名と一致します。NULL
の名前に一致するものはありません。タグ名では大/小文字が区別されます。この関数は名前空間を認識しません。したがって、完全なタグ名が比較されます。同じURIにマップされる2つの接頭辞を比較すると、比較は失敗します。名前空間を認識するバージョンについては、「XmlDomGetElemsByTagNS
」を参照してください。戻されるリストは、XmlDomFreeNodeList
を使用して解放できます。
構文
xmlnodelist* XmlDomGetElemsByTag( xmlctx *xctx, xmlelemnode *elem, oratext *name);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
elem |
IN |
要素ノード |
name |
IN |
一致させるタグ名(データ・エンコーディング)。すべてのタグ名を一致させるには「 |
戻り値
(xmlnodelist *)
一致する要素のノード・リスト。
3.5.8 XmlDomGetElemsByTagNS()
指定されたURIおよびローカル名を持つ(ルート・ノードをルートとするドキュメント・ツリー内の)すべての要素のリストを、ツリーの先行順走査で検出した順に戻します。ルートがNULL
の場合は、ドキュメント全体を検索します。タグ名は、データ・エンコーディング内に含まれている必要があります。特別な名前「*
」はすべてのタグ名と一致します。NULL
の名前に一致するものはありません。タグ名では大/小文字が区別されます。この関数は名前空間を認識しません。したがって、完全なタグ名が比較されます。同じURIにマップされる2つの接頭辞を比較すると、比較は失敗します。戻されるリストは、XmlDomFreeNodeList
を使用して解放できます。
構文
xmlnodelist* XmlDomGetElemsByTagNS( xmlctx *xctx, xmlelemnode *elem, oratext *uri, oratext *local);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
elem |
IN |
要素ノード |
uri |
IN |
一致させる名前空間URI(データ・エンコーディング)。すべての名前空間URIを一致させるには「 |
local |
IN |
一致させるローカル名(データ・エンコーディング)。すべてのローカル名と一致させるには「 |
戻り値
(xmlnodelist *)
一致する要素のノード・リスト。
3.5.9 XmlDomGetTag()
ノードのtagName
を戻します。これはノードの名前と同じです。W3Cのワーキング・グループでは、DOM 1.0仕様について、「Node
インタフェースには汎用のnodeName
属性があるが、Element
インタフェース上にはtagName
属性がある。これらの2つの属性には同じ値が含まれている必要があるが、ワーキング・グループでは、DOM APIが様々なユーザー層のニーズを満たす必要があることを考慮し、両方をサポートする価値がある」と考えています。
構文
oratext* XmlDomGetTag( xmlctx *xctx, xmlelemnode *elem);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
elem |
IN |
|
戻り値
(oratext *)
要素名(データ・エンコーディング)。
関連項目:
3.5.10 XmlDomHasAttr()
要素に指定された名前を持つ属性があるかどうかを判別します。属性がある場合はTRUE
、ない場合はFALSE
を戻します。
構文
boolean XmlDomHasAttr( xmlctx *xctx, xmlelemnode *elem, oratext *name);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
elem |
IN |
|
name |
IN |
属性名(データ・エンコーディング) |
戻り値
(boolean)
指定された名前の属性を要素が持っている場合はTRUE
。
関連項目:
3.5.11 XmlDomHasAttrNS()
要素に指定されたURIおよびローカル名を持つ属性があるかどうかを判別します。属性がある場合はTRUE
、ない場合はFALSE
を戻します。
構文
boolean XmlDomHasAttrNS( xmlctx *xctx, xmlelemnode *elem, oratext *uri, oratext *local);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
elem |
IN |
|
uri |
IN |
属性の名前空間URI(データ・エンコーディング) |
local |
IN |
属性のローカル名(データ・エンコーディング) |
戻り値
(boolean)
要素に指定されたURI/ローカル名を持つ属性がある場合はTRUE
。
関連項目:
3.5.12 XmlDomRemoveAttr()
(名前で指定された)属性を削除します。削除された属性がデフォルト値を持つ場合は、そのデフォルト値を使用してすぐに再作成されます。属性は属性の要素のリストから削除されますが、属性ノード自体は破棄されません。
構文
void XmlDomRemoveAttr( xmlctx *xctx, xmlelemnode *elem, oratext *name);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
elem |
IN |
要素ノード |
name |
IN |
属性名(データ・エンコーディング) |
3.5.13 XmlDomRemoveAttrNS()
(URIおよびローカル名で指定された)属性を削除します。削除された属性がデフォルト値を持つ場合は、そのデフォルト値を使用してすぐに再作成されます。属性は属性の要素のリストから削除されますが、属性ノード自体は破棄されません。
構文
void XmlDomRemoveAttrNS( xmlctx *xctx, xmlelemnode *elem, oratext *uri, oratext *local);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
elem |
IN |
要素ノード |
uri |
IN |
属性の名前空間URI |
local |
IN |
属性のローカル名 |
3.5.14 XmlDomRemoveAttrNode()
要素から属性を削除します。属性がデフォルト値を持つ場合は、そのデフォルト値(FALSE
に設定されたSpecified)を使用してすぐに再作成されます。正常に終了した場合は削除された属性、エラーが発生した場合はNULL
を戻します。
構文
xmlattrnode* XmlDomRemoveAttrNode( xmlctx *xctx, xmlelemnode *elem, xmlattrnode *oldAttr);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
elem |
IN |
要素ノード |
oldAtrr |
IN |
削除する属性ノード |
戻り値
(xmlattrnode *)
置換された属性ノード(またはNULL
)。
関連項目:
3.5.15 XmlDomSetAttr()
指定された名前および値(データ・エンコーディングに含まれている必要があります)を持つ、要素の新しい属性を作成します。指定された属性名を持つ属性がすでに存在する場合は、単純にその値が置換されます。名前および値の検証、変換、確認は行われません。値は解析されないため、実体参照は展開されません。属性の指定されたフラグが設定されます。
構文
void XmlDomSetAttr( xmlctx *xctx, xmlelemnode *elem, oratext *name, oratext *value);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
elem |
IN |
要素ノード |
name |
IN |
属性名(データ・エンコーディング) |
value |
IN |
属性値(データ・エンコーディング) |
3.5.16 XmlDomSetAttrNS()
指定されたURI、ローカル名および値(データ・エンコーディング内にある必要があります)を使用して、要素の新しい属性を作成します。指定された属性名を持つ属性がすでに存在する場合は、単純にその値が置換されます。名前および値の検証、変換、確認は行われません。
値は解析されないため、実体参照は展開されません。
属性の指定されたフラグが設定されます。
構文
void XmlDomSetAttrNS( xmlctx *xctx, xmlelemnode *elem, oratext *uri, oratext *qname, oratext *value);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
elem |
IN |
要素ノード |
uri |
IN |
属性の名前空間URI(データ・エンコーディング) |
qname |
IN |
属性の修飾名(データ・エンコーディング) |
value |
IN |
属性値(データ・エンコーディング) |
3.5.17 XmlDomSetAttrNode()
要素に新しい属性を追加します。指定された名前を持つ属性がすでに存在する場合は、その属性が置換され、oldNode
によって古い属性が戻されます。新しい属性である場合、その属性が要素のリストに追加され、oldNode
がNULL
に設定されます。
構文
xmlattrnode* XmlDomSetAttrNode( xmlctx *xctx, xmlelemnode *elem, xmlattrnode *newAttr);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
elem |
IN |
要素ノード |
newAttr |
IN |
追加する属性ノード |
戻り値
(xmlattrnode *)
置換された属性ノード(またはNULL
)。
3.5.18 XmlDomSetAttrNodeNS()
要素に新しい属性を追加します。newNode
のURIおよびローカル名を持つ属性がすでに存在する場合は、その属性が置換され、oldNode
によって古い属性が戻されます。新しい属性である場合、その属性が要素のリストに追加され、oldNode
がNULL
に設定されます。
構文
xmlattrnode* XmlDomSetAttrNodeNS( xmlctx *xctx, xmlelemnode *elem, xmlattrnode *newAttr);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
elem |
IN |
要素ノード |
newAttr |
IN |
追加する属性ノード |
戻り値
(xmlattrnode *)
置換された属性ノード(またはNULL
)。
3.6 DOM XML C APIのEntityインタフェース
次の表にDOM XML C APIのEntity
インタフェースで使用できるメソッドの概要を示します。
表3-6 XML C実装のEntity DOMメソッドの概要
関数 | 概要 |
---|---|
エンティティの表記法を取得します。 |
|
エンティティの公開識別子を取得します。 |
|
エンティティのシステム識別子を取得します。 |
|
エンティティの型を取得します。 |
3.6.1 XmlDomGetEntityNotation()
解析対象外のエンティティの場合、データ・エンコーディング内の表記法の名前を戻します。解析対象エンティティおよびその他のノード・タイプの場合は、NULL
を戻します。
構文
oratext* XmlDomGetEntityNotation( xmlctx *xctx, xmlentnode *ent);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
ent |
IN |
エンティティ・ノード |
戻り値
(oratext *)
エンティティの表記法(データ・エンコーディング。NULL
の可能性があります)。
3.6.2 XmlDomGetEntityPubID()
エンティティの公開識別子(データ・エンコーディング内)を戻します。ノードがエンティティではないか、または定義済の公開識別子を持っていない場合はNULL
を戻します。
構文
oratext* XmlDomGetEntityPubID( xmlctx *xctx, xmlentnode *ent);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
ent |
IN |
エンティティ・ノード |
戻り値
(oratext *)
エンティティの公開識別子(データ・エンコーディング。NULL
の可能性があります)。
3.6.3 XmlDomGetEntitySysID()
エンティティのシステム識別子(データ・エンコーディング内)を戻します。ノードがエンティティではないか、または定義済のシステム識別子を持っていない場合はNULL
を戻します。
構文
oratext* XmlDomGetEntitySysID( xmlctx *xctx, xmlentnode *ent);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
ent |
IN |
エンティティ・ノード |
戻り値
(oratext *)
エンティティのシステム識別子(データ・エンコーディング。NULL
の可能性があります)。
3.7 DOM XML C APIのNamedNodeMapインタフェース
次の表にDOM XML C APIのNamedNodeMap
インタフェースで使用できるメソッドの概要を示します。
表3-7 XML C実装のNamedNodeMap DOMメソッドの概要
関数 | 概要 |
---|---|
リストから名前付きノードを戻します。 |
|
リスト(名前空間認識バージョン)から名前付きノードを戻します。 |
|
リスト内のn番目のノードを戻します。 |
|
名前付きノード・マップの長さを戻します。 |
|
名前付きノード・マップからノードを削除します。 |
|
名前付きノード・マップ(名前空間認識バージョン)からノードを削除します。 |
|
名前付きノード・リストのノードを設定します。 |
|
名前付きノード・マップ(名前空間認識バージョン)のノードを設定します。 |
3.7.1 XmlDomGetNamedItem()
名前(データ・エンコーディング内にある必要があります)で指定されたNamedNodeMap
から、項目を取得します。これは、名前空間を認識しない関数です。修飾名全体で(大/小文字を区別して)照合します。この関数は、一致する項目の索引も戻されるという点で、DOM仕様とは異なります。
構文
xmlnode* XmlDomGetNamedItem( xmlctx *xctx, xmlnamedmap *map, oratext *name);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
map |
IN |
|
name |
IN |
取得するノードの名前 |
戻り値
(xmlnode *)
指定した名前を持つNode
(またはNULL
)。
3.7.2 XmlDomGetNamedItemNS()
URIおよびローカル名(データ・エンコーディング内にある必要があります)で指定されたNamedNodeMap
から、項目を取得します。この関数は、一致する項目の索引も戻されるという点で、DOM仕様とは異なります。
構文
xmlnode* XmlDomGetNamedItemNS( xmlctx *xctx, xmlnamedmap *map, oratext *uri, oratext *local);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
map |
IN |
|
uri |
IN |
取得するノードの名前空間URI(データ・エンコーディング) |
local |
IN |
取得するノードのローカル名(データ・エンコーディング) |
戻り値
(xmlnode *)
指定したローカル名および名前空間URIを持つノード(またはNULL
)。
3.7.3 XmlDomGetNodeMapItem()
名前(データ・エンコーディング内にある必要があります)で指定されたNamedNodeMap
から、項目を取得します。これは、名前空間を認識しない関数です。修飾名全体で(大/小文字を区別して)照合します。この関数は、一致する項目の索引も戻されるという点で、DOM仕様とは異なります。W3C仕様の名前付き「項目」です。
構文
xmlnode* XmlDomGetNodeMapItem( xmlctx *xctx, xmlnamedmap *map, ub4 index);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
map |
IN |
|
index |
IN |
マップの |
戻り値
(xmlnode *)
マップ内のn番目の位置にあるノード(またはNULL
)。
3.7.4 XmlDomGetNodeMapLength()
NamedNodeMap
内のノードの数(長さ)を戻します。ノードは索引によって参照されるため、有効な索引の範囲は0
(ゼロ)からlength-1です。
構文
ub4 XmlDomGetNodeMapLength( xmlctx *xctx, xmlnamedmap *map);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
map |
IN |
|
戻り値
(ub4)
NamedNodeMap
内のノードの数。
3.7.5 XmlDomRemoveNamedItem()
名前で指定されたNamedNodeMap
からノードを削除します。これは、名前空間を認識しない関数です。修飾名全体で(大/小文字を区別して)照合します。削除されたノードが(指定されていない)デフォルト値を持つ属性の場合は、すぐに置換されます。削除されたノードが戻されます。削除が行われなかった場合は、NULL
が戻されます。
構文
xmlnode* XmlDomRemoveNamedItem( xmlctx *xctx, xmlnamedmap *map, oratext *name);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
map |
IN |
|
name |
IN |
削除するノードの名前 |
戻り値
(xmlnode *)
このマップから削除されたノード。
3.7.6 XmlDomRemoveNamedItemNS()
URIおよびローカル名で指定されたNamedNodeMap
からノードを削除します。削除されたノードが(指定されていない)デフォルト値を持つ属性の場合は、すぐに置換されます。削除されたノードが戻されます。削除が行われなかった場合は、NULL
が戻されます。
構文
xmlnode* XmlDomRemoveNamedItemNS( xmlctx *xctx, xmlnamedmap *map, oratext *uri, oratext *local);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
map |
IN |
|
uri |
IN |
削除されるノードの名前空間URI(データ・エンコーディング) |
local |
IN |
削除されるノードのローカル名(データ・エンコーディング) |
戻り値
(xmlnode *)
このマップから削除されたノード。
3.7.7 XmlDomSetNamedItem()
NamedNodeMap
に新しいノードを追加します。指定された名前を持つノードがすでに存在する場合、古いノードは置換され、戻されます。該当する名前付きノードが存在しない場合は、新しいノードがマップに追加され、古いノードがNULL
に設定されます。これは、名前空間を認識しない関数です。修飾名全体で(大/小文字を区別して)照合します。ノードのタイプによっては決まった名前(Text
、Comment
など)があるため、同じタイプに別の名前を設定しようとすると、常に置換が行われます。
構文
xmlnode* XmlDomSetNamedItem( xmlctx *xctx, xmlnamedmap *map, xmlnode *newNode);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
map |
IN |
|
newNode |
IN |
マップに格納される新しいノード |
戻り値
(xmlnode *)
置換されたノード(またはNULL
)。
3.7.8 XmlDomSetNamedItemNS()
NamedNodeMap
に新しいノードを追加します。指定されたURIおよびローカル名を持つノードがすでに存在する場合、古いノードは置換され、戻されます。該当する名前付きノードが存在しない場合は、新しいノードがマップに追加され、古いノードがNULL
に設定されます。ノードのタイプによっては決まった名前(Text
、Comment
など)があるため、同じタイプに別の名前を設定しようとすると、常に置換が行われます。
構文
xmlnode* XmlDomSetNamedItemNS( xmlctx *xctx, xmlnamedmap *map, xmlnode *newNode);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
map |
IN |
|
newNode |
IN |
マップに格納される新しいノード |
戻り値
(xmlnode *)
置換されたNode
(またはNULL
)。
3.8 DOM XML C APIのNodeインタフェース
次の表にDOM XML C APIのNode
インタフェースで使用できるメソッドの概要を示します。
表3-8 XML C実装のNode DOMメソッドの概要
関数 | 概要 |
---|---|
ノードの子リストに新しい子を追加します。 |
|
ノードを消去します(DOM割当てを解放します)。 |
|
ノードを複製します。 |
|
|
|
ノードの属性を戻します。 |
|
ノードの子を戻します。 |
|
ノードのデフォルトの名前空間を取得します。 |
|
ノードの最初の子ノードを戻します。 |
|
最初の接頭辞名前空間の組を取得します。 |
|
ノードの最後の子ノードを戻します。 |
|
後続の接頭辞名前空間の組を取得します。 |
|
ノードの直後の兄弟関係を戻します。 |
|
ノードの修飾名のローカル部分を、 |
|
ノードの修飾名のローカル部分を、長さがエンコードされた文字列として取得します。 |
|
ノード名を、 |
|
ノードの名前を、長さがエンコードされた文字列として取得します。 |
|
ノードの名前空間接頭辞を戻します。 |
|
ノードの数値型コードを取得します。 |
|
ノードの名前空間URIを、 |
|
ノードの名前空間URIを、長さがエンコードされた文字列として戻します。 |
|
ノードの値を、 |
|
ノードの値を、長さがエンコードされた文字列として取得します。 |
|
ノードの大きいデータを戻し、分割してユーザーの出力ストリームに送信します。 |
|
ノードの所有者ドキュメントを取得します。 |
|
親ノードを取得します。 |
|
ノードの直前の兄弟関係を戻します。 |
|
プル・パラダイムを使用してバイナリ・ストリームのアドレスを戻します。 |
|
プル・パラダイムを使用して文字ストリームのアドレスを戻します。 |
|
プッシュ・パラダイムを使用してバイナリ・ストリームのアドレスを |
|
プッシュ・パラダイムを使用して文字ストリームのアドレスを |
|
入力ファイルが外部エンティティの場合、エンティティ・ノードを戻します。 |
|
ノードのソース行番号を戻します。 |
|
ノードのソース位置(パス、URIなど)を戻します。 |
|
名前付き属性は存在しますか。 |
|
ノードが子ノードを持っているかどうかをテストします。 |
|
子ノード・リストに新しい子ノードを挿入します。 |
|
隣接するテキスト・ノードをマージしてノードを正規化します。 |
|
要素の属性の数を戻します。 |
|
ノードの子の数を戻します。 |
|
接頭辞の名前空間URIを取得します。 |
|
既存の子ノードを削除します。 |
|
要素ノードおよび属性ノードについてのみ、ノードの名前を更新します。 |
|
要素ノードおよび属性ノードについてのみ、ノードの名前とURIを更新します。 |
|
ノードの既存の子を置換します。 |
|
ノードのデフォルトの名前空間を設定します。 |
|
ノードの名前空間接頭辞を設定します。 |
|
ノード値を設定します。 |
|
ノードの値を、長さがエンコードされた文字列として設定します。 |
|
ノードの大きい値(文字データ)を、入力ストリームとは別に設定します。 |
|
プル・パラダイムを使用してバイナリ入力ストリームのアドレスを |
|
プル・パラダイムを使用して入力文字ストリームのアドレスを |
|
プッシュ・パラダイムを使用して入力バイナリ・ストリームのアドレスを戻します。 |
|
プッシュ・パラダイムを使用して文字ストリームのアドレスを戻します。 |
|
ノードを現行のDTDに対して検証します。 |
3.8.1 XmlDomAppendChild()
親の子リストの最後にノードを追加し、その新しいノードを戻します。newChild
がDocumentFragment
である場合、その子がすべて元の順序で追加されます。DocumentFragment
ノード自体は追加されません。
構文
xmlnode* XmlDomAppendChild( xmlctx *xctx, xmlnode *parent, xmlnode *newChild);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
parent |
IN |
新しいノードを受け取る親ノード |
newChild |
IN |
追加するノード |
戻り値
(xmlnode *)
追加されたノード
3.8.2 XmlDomCleanNode()
DOM自体によって割り当てられたノードの一部を解放しますが、子ノードに再帰したり、ノードの属性に影響することはありません。ノードの一部(名前など)を解放した後に、その一部(XmlDomGetNodeName
など)を取得するためのDOMコールは、NULL
ポインタを戻す必要があります。DOMによって制御されるノードの一部、およびユーザーによって制御されるノードの一部を管理するために使用されます。正常な解放をコールすると、すべての割当てはDOMによって行われ、ユーザーの割当てのみが残ります。ユーザーは、ユーザー自身の割当てを解放します。
構文
void XmlDomCleanNode( xmlctx *xctx, xmlnode *node);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
node |
IN |
消去されるノード |
関連項目:
3.8.3 XmlDomCloneNode()
ノードの複製を作成して戻します。複製ノードは親を持ちません。要素のクローニングによって、すべての属性とその値(デフォルトの属性を示すためにXMLプロセッサで生成された値を含む)がコピーされます。ただし、ディープ・クローンの場合を除き、格納されているテキストをコピーしません。これは、テキストが子のテキスト・ノードに格納されているためです。他のタイプのノードを複製すると、単にそのノードのコピーが戻されます。未指定の属性ノードの複製も指定されます。deepがTRUE
の場合、ノードの子はすべて再帰的に複製され、複製されたノードは複製された子を持ちます。非ディープ・クローンは子を持ちません。
構文
xmlnode* XmlDomCloneNode( xmlctx *xctx, xmlnode *node, boolean deep);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
node |
IN |
XMLノード |
deep |
IN |
子を再帰的に複製する場合は |
戻り値
(xmlnode *)
複製(クローン)ノード。
関連項目:
3.8.4 XmlDomFreeNode()
XmlDomCreate
XXX
を使用して割り当てられたノードを解放します。ノードに対応するすべてのリソースを解放してから、ノード自体を解放します。ノードには、DOMで制御される部分とユーザーが制御する部分があります。DOMは誰がどのノードを所有するかを追跡するフラグを保持し、DOM独自の割当てのみを解放します。ユーザーは、XmlDomFreeNodeをコールする前に、ノードのユーザー独自の割当て部分を解放します。
構文
void XmlDomFreeNode( xmlctx *xctx, xmlnode *node);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
node |
IN |
解放されるXMLノード |
関連項目:
3.8.5 XmlDomGetAttrs()
要素ノードの属性のNamedNodeMap
を戻します。属性がない場合はNULL
を戻します。ノードのタイプがそれ以外の場合は、NULL
が戻されます。要素に属性があった場合でも、すべて削除されている場合は、空のリストが戻されます。したがって、リストがあっても、要素に属性があるとはかぎりません。XmlDomNumAttrs
を使用してリストのサイズをチェックするか、先にXmlDomHasChildNodes
を使用する必要があります。
構文
xmlnamedmap* XmlDomGetAttrs( xmlctx *xctx, xmlelemnode *elem);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
elem |
IN |
XML要素ノード |
戻り値
(xmlnamedmap *)
ノードの属性のNamedNodeMap
。
3.8.6 XmlDomGetChildNodes()
ノードの子のリストを戻します。子がない場合はNULL
を戻します。子を持つ可能性があるのは、Element
、Document
、DTDおよびDocumentFragment
ノードのみです。それ以外のタイプはすべて、NULL
を戻します。
ノードに子があった場合でも、それらがすべて削除されている場合は、空のリストが戻される可能性があります。つまり、リストが存在しても、メンバーは存在しません。したがって、リストが存在するだけで、ノードに子があることを意味するわけではありません。XmlDomNumChildNodes
を使用してリストのサイズをチェックするか、先にXmlDomHasChildNodes
を使用する必要があります。
xmlnodelist構造体は不透明なため、NodeList
インタフェース内の関数でのみ操作できます。
戻されるリストは最新です。元のノードへのすべての変更が、すぐに反映されます。
構文
xmlnodelist* XmlDomGetChildNodes( xmlctx *xctx, xmlnode *node);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
node |
IN |
XMLノード |
戻り値
(xmlnodelist *)
ノードのすべての子を含む、最新のNodeList
。
3.8.7 XmlDomGetDefaultNS()
ノードのデフォルトの名前空間を取得します。
構文
oratext* XmlDomGetDefaultNS( xmlctx *xctx, xmlnode *node);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
node |
IN |
要素または属性DOMノード |
戻り値
(oratext *)
ノードのデフォルトの名前空間(データ・エンコーディング。NULL
の可能性があります)。
3.8.8 XmlDomGetFirstChild()
ノードの最初の子ノードを返します。ノードに子ノードがない場合はNULL
を戻します。子を持つ可能性があるのは、Element
、Document
、DTDおよびDocumentFragment
ノードのみです。それ以外のタイプはすべて、NULL
を戻します。
構文
xmlnode* XmlDomGetFirstChild( xmlctx *xctx, xmlnode *node);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
node |
IN |
XMLノード |
戻り値
(xmlnode *)
ノードの最初の子ノード。
3.8.9 XmlDomGetFirstPfnsPair()
この関数を使用すると、実装では指定されたノードで使用できるすべての使用可能なURIの接頭辞バインドの反復を高速化できます。これにより、最初のURIの接頭辞マッピングの状態構造、接頭辞およびURIが戻されます。状態構造は、残りの組のXmlDomGetNextPfnsPair
に渡される必要があります。
構文
xmlpfnspair* XmlDomGetFirstPfnsPair( xmlctx *xctx, xmlnode *node, oratext **prefix, oratext **uri);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
node |
IN |
XMLノード |
prefix |
OUT |
最初のマッピングの接頭辞(データ・エンコーディング) |
uri |
OUT |
最初のマッピングのURI(データ・エンコーディング) |
戻り値
(xmlpfnspair *)
反復オブジェクト。接頭辞がない場合はNULL
を戻します。
3.8.10 XmlDomGetLastChild()
ノードの最後の子ノードを返します。ノードに子ノードがない場合はNULL
を戻します。子を持つ可能性があるのは、Element
、Document
、DTDおよびDocumentFragment
ノードのみです。それ以外のタイプはすべて、NULL
を戻します。
構文
xmlnode* XmlDomGetLastChild( xmlctx *xctx, xmlnode *node);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
node |
IN |
XMLノード |
戻り値
(xmlnode *)
ノードの最後の子ノード。
3.8.11 XmlDomGetNextPfnsPair()
この関数を使用すると、実装では指定されたノードで使用できるすべての使用可能なURIの接頭辞バインドの反復を高速化できます。XmlDomGetFirstPfnsPair
からイテレータ構造を指定すると、次のURIの接頭辞マッピングが戻されます。NULL
が戻されるまで、XmlDomGetNextPfnsPair
のコールを繰り返します。
構文
xmlpfnspair* XmlDomGetNextPfnsPair( xmlctx *xctx xmlpfnspair *pfns, oratext **prefix, oratext **uri);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
node |
IN |
XMLノード |
prefix |
OUT |
次のマッピングの接頭辞(データ・エンコーディング) |
uri |
OUT |
次のマッピングのURI(データ・エンコーディング) |
戻り値
(xmlpfnspair *)
反復オブジェクト。組がなくなった場合はNULL
を戻します。
3.8.12 XmlDomGetNextSibling()
DOMツリーの同じレベルにあるノードに続いて、ノードを戻します。つまり、親ノードの子ノードごとに、その子ノードの直後の兄弟関係が、その子ノードに続く子ノードになります。子ノードが親ノードの最後の子ノードである場合、または子ノードが親ノードを持たない場合は、NULL
を戻します。
構文
xmlnode* XmlDomGetNextSibling( xmlctx *xctx, xmlnode *node);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
node |
IN |
XMLノード |
戻り値
(xmlnode *)
同レベルにある次のノード。
関連項目:
3.8.13 XmlDomGetNodeLocal()
ノードの名前空間のローカル名を、NULL
で終了する文字列として戻します。ノード名が完全に修飾されていない(接頭辞がない)場合、ローカル名はノード名と同じになります。
長さがエンコードされたバージョンは、XmlDomGetNodeLocalLen
として使用できます。これは、ローカル名をポインタおよび長さとして戻し、データがXMLType
バックエンドのデータストアを使用するとわかっている場合に使用します。
構文
oratext* XmlDomGetNodeLocal( xmlctx *xctx, xmlnode *node);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
node |
IN |
XMLノード |
戻り値
(oratext *)
ノードのローカル名(データ・エンコーディング)。
3.8.14 XmlDomGetNodeLocalLen()
ノードの名前空間のローカル名を、長さがエンコードされた文字列として戻します。ノード名が完全に修飾されていない(接頭辞がない)場合、ローカル名はノード名と同じになります。
NULL
で終了するバージョンはXmlDomGetNodeLocal
として使用でき、これはローカル名をNULL
で終了する文字列として戻します。バッキング・ストアがXMLType
であるとわかっている場合、ノードのデータは、長さがエンコードされたデータとして内部的に格納されます。長さに基づくGet関数を使用すると、データをコピーしたり、データをNULL
で終了する必要がなくなります。
両方の入力バッファがNULL
以外で、入力バッファの長さが0(ゼロ)以外の場合、値は入力バッファに格納されます。それ以外の場合、実装は独自のバッファを戻します。
実際の長さがbuflenより大きい場合、切り捨てられた値がバッファにコピーされ、lenが実際の長さを戻します。
構文
oratext* XmlDomGetNodeLocalLen( xmlctx *xctx, xmlnode *node, oratext *buf, ub4 buflen, ub4 *len);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
node |
IN |
XMLノード |
buf |
IN |
入力バッファ(オプション) |
buflen |
IN |
入力バッファ長(オプション) |
len |
OUT |
ローカル名の長さ(文字数) |
戻り値
(oratext *)
ノードのローカル名(データ・エンコーディング)。
3.8.15 XmlDomGetNodeName()
(データ・エンコーディングの)ノードの完全修飾名を、NULL
で終了する文字列として戻します。たとえば、bar\0
、foo:bar\0
などです。
ノードのタイプによっては、「#text
」、「#cdata-section
」、「#comment
」、「#document
」、「#document-fragment
」などの決まった名前があります。
ノード名は1度作成すると変更できないため、一致するSetNodeName
関数はありません。
長さに基づくバージョンは、XmlDomGetNodeNameLen
として使用できます。これは、ノード名をポインタおよび長さとして戻し、データがXMLType
バックエンドのデータストアを使用するとわかっている場合に使用します。
構文
oratext* XmlDomGetNodeName( xmlctx *xctx, xmlnode *node);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
node |
IN |
XMLノード |
戻り値
(oratext *)
ノード名(データ・エンコーディング)。
関連項目:
3.8.16 XmlDomGetNodeNameLen()
(データ・エンコーディングの)ノードの(完全修飾された)名前を、長さがエンコードされた文字列として戻します。たとえば、"bar", 3
、"foo:bar", 7
などです。
ノードのタイプによっては、「#text
」、「#cdata-section
」、「#comment
」、「#document
」、「#document-fragment
」などの決まった名前があります。
ノード名は1度作成すると変更できないため、一致するSetNodeName関数はありません。
NULL
で終了するバージョンはXmlDomGetNodeNameとして使用でき、これはノード名をNULL
で終了する文字列として戻します。バッキング・ストアがXMLType
であるとわかっている場合、ノードの名前は、長さがエンコードされたデータとして内部的に格納されます。長さがエンコードされたGet
XXX()
関数を使用すると、データをコピーしたり、名前をNULL
で終了する必要がなくなります。
両方の入力バッファがNULL
以外で、入力バッファの長さが0(ゼロ)以外の場合、値は入力バッファに格納されます。それ以外の場合、実装は独自のバッファを戻します。
実際の長さがbuflenより大きい場合、切り捨てられた値がバッファにコピーされ、len
が実際の長さを戻します。
構文
oratext* XmlDomGetNodeNameLen( xmlctx *xctx, xmlnode *node, oratext *buf, ub4 buflen, ub4 *len);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
node |
IN |
XMLノード |
buf |
IN |
入力バッファ(オプション) |
buflen |
IN |
入力バッファ長(オプション) |
len |
OUT |
名前の長さ(文字数) |
戻り値
(oratext *)
ノードの名前。名前の長さはlenで設定されます。
関連項目:
3.8.17 XmlDomGetNodePrefix()
ノードの名前空間接頭辞を(NULL
で終了する文字列として)戻します。ノード名が完全に修飾されていない(接頭辞がない)場合は、NULL
を戻します。
構文
oratext* XmlDomGetNodePrefix( xmlctx *xctx, xmlnode *node);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
node |
IN |
XMLノード |
戻り値
(oratext *)
ノードの名前空間の接頭辞(データ・エンコーディング。NULL
の可能性があります)。
3.8.18 XmlDomGetNodeType()
ノードの型コードを戻します。型の名前および数値はDOM仕様に適合します。
-
ELEMENT_NODE=1
-
ATTRIBUTE_NODE=2
-
TEXT_NODE=3
-
CDATA_SECTION_NODE=4
-
ENTITY_REFERENCE_NODE=5
-
ENTITY_NODE=6
-
PROCESSING_INSTRUCTION_NODE=7
-
COMMENT_NODE=8
-
DOCUMENT_NODE=9
-
DOCUMENT_TYPE_NODE=10
-
DOCUMENT_FRAGMENT_NODE=11
-
NOTATION_NODE=12
Oracle拡張機能のその他のノードの型は、次のとおりです。
-
ELEMENT_DECL_NODE
-
ATTR_DECL_NODE
-
CP_ELEMENT_NODE
-
CP_CHOICE_NODE
-
CP_PCDATA_NODE
-
CP_STAR_NODE
-
CP_PLUS_NODE
-
CP_OPT_NODE
構文
xmlnodetype XmlDomGetNodeType( xmlctx *xctx, xmlnode *node);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
node |
IN |
XMLノード |
戻り値
(xmlnodetype)
ノードの数値型コード。
3.8.19 XmlDomGetNodeURI()
(データ・エンコーディングの)ノードの名前空間URIを、NULL
で終了する文字列として戻します。ノードの名前が修飾されていない(名前空間接頭辞が含まれない)場合は、ノードの作成時に有効だったデフォルトの名前空間が含まれます(ただしNULL
の場合があります)。
長さがエンコードされたバージョンは、XmlDomGetNodeURILen
として使用できます。これは、URIをポインタおよび長さとして戻し、データがXMLType
バックエンドのデータストアを使用するとわかっている場合に使用します。
構文
oratext* XmlDomGetNodeURI( xmlctx *xctx, xmlnode *node);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
node |
IN |
XMLノード |
戻り値
(oratext *)
ノードの名前空間URI(データ・エンコーディング。NULL
の可能性があります)。
3.8.20 XmlDomGetNodeURILen()
(データ・エンコーディングの)ノードの名前空間URIを、長さがエンコードされた文字列として戻します。ノードの名前が修飾されていない(名前空間接頭辞が含まれない)場合は、ノードの作成時に有効だったデフォルトの名前空間が含まれます(ただしNULL
の場合があります)。
NULL
で終了するバージョンはXmlDomGetNodeURI
として使用でき、これはURI値をNULL
で終了する文字列として戻します。バッキング・ストアがXMLType
であるとわかっている場合、ノードのデータは、長さがエンコードされたデータとして内部的に格納されます。長さに基づくGet関数を使用すると、データをコピーしたり、データをNULL
で終了する必要がなくなります。
両方の入力バッファがNULL
以外で、入力バッファの長さが0(ゼロ)以外の場合、値は入力バッファに格納されます。それ以外の場合、実装は独自のバッファを戻します。
実際の長さがbuflenより大きい場合、切り捨てられた値がバッファにコピーされ、len
が実際の長さを戻します。
構文
oratext* XmlDomGetNodeURILen( xmlctx *xctx, xmlnode *node, oratext *buf, ub4 buflen, ub4 *len);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
node |
IN |
XMLノード |
buf |
IN |
入力バッファ(オプション) |
buflen |
IN |
入力バッファ長(オプション) |
len |
OUT |
URIの長さ(文字数) |
戻り値
(oratext *)
ノードの名前空間URI(データ・エンコーディング。NULL
の可能性があります)。
3.8.21 XmlDomGetNodeValue()
ノードの値(対応する文字データ)を、NULL
で終了する文字列で戻します。文字および汎用エンティティが置換されています。値が設定されているのは、Attr
、CDATA
、Comment
、ProcessingInstruction
およびText
ノードのみで、他のすべてのノード・タイプにはNULL
値が設定されています。
長さがエンコードされたバージョンは、XmlDomGetNodeValueLen
として使用できます。これは、ノード値をポインタおよび長さとして戻し、データがXMLType
バックエンドのデータストアを使用するとわかっている場合に使用します。
構文
oratext* XmlDomGetNodeValue( xmlctx *xctx, xmlnode *node);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
node |
IN |
XMLノード |
戻り値
(oratext *)
ノードの値。
3.8.22 XmlDomGetNodeValueLen()
ノードの(文字データに対応する)値を、長さがエンコードされた文字列として戻します。文字および汎用エンティティが置換されています。値が設定されているのは、Attr
、CDATA
、Comment
、PIおよびText
ノードのみで、他のすべてのノード・タイプにはNULL
値が設定されています。
NULL
で終了するバージョンはXmlDomGetNodeValue
として使用でき、これはノード値をNULL
で終了する文字列として戻します。バッキング・ストアがXMLType
であるとわかっている場合、ノードのデータは、長さがエンコードされたデータとして内部的に格納されます。長さに基づくGet関数を使用すると、データをコピーしたり、データをNULL
で終了する必要がなくなります。
両方の入力バッファがNULL
以外で、入力バッファの長さが0(ゼロ)以外の場合、値は入力バッファに格納されます。それ以外の場合、実装は独自のバッファを戻します。
実際の長さがbuflen
より大きい場合、切り捨てられた値がバッファにコピーされ、lenが実際の長さを戻します。
構文
oratext* XmlDomGetNodeValueLen( xmlctx *xctx, xmlnode *node, oratext *buf, ub4 buflen, ub4 *len);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
node |
IN |
XMLノード |
buf |
IN |
入力バッファ(オプション) |
buflen |
IN |
入力バッファ長(オプション) |
len |
OUT |
値の長さ(バイト数) |
戻り値
(oratext *)
ノードの値。
3.8.23 XmlDomGetNodeValueStream()
ノードの大きいデータを戻し、分割してユーザーの出力ストリームに送信します。非常に大きいデータの場合、単一の連続するチャンクとして効率的に格納できるとはかぎりません。この関数は、そのタイプのチャンク・データへのアクセスに使用します。XMLType
のみがデータを(場合によって)チャンクします。XDKのデータは常に連続しています。
構文
xmlerr XmlDomGetNodeValueStream( xmlctx *xctx, xmlnode *node, xmlostream *ostream);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
node |
IN |
XMLノード |
ostream |
IN |
出力ストリーム・オブジェクト |
戻り値
(xmlerr)
数値のエラー・コード、正常に終了した場合は、0
(ゼロ)を戻します。
3.8.24 XmlDomGetOwnerDocument()
ノードに対応するDocument
ノードを戻します。各ノードは1つのドキュメントのみに属する場合もあれば、どのドキュメントにも対応しない場合もあります(XmlDomCreateElem
の直後など)。元のドキュメント[ノード]が戻されます。孤立したノードの場合は、NULL
が戻されます。
構文
xmldocnode* XmlDomGetOwnerDocument( xmlctx *xctx, xmlnode *node);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
node |
IN |
XMLノード |
戻り値
(xmldocnode *)
ドキュメント・ノードが存在します。
3.8.25 XmlDomGetParentNode()
ノードの親ノードを戻します。Attr
、Document
、DocumentFragment
、Entity
およびNotation
以外のノードのタイプはすべて、親を持ちます(この5つの例外は、常にNULL
の親を持ちます)。ノードが作成された直後で、DOMツリーにまだ追加されていない場合、またはノードがDOMツリーから削除されている場合は、親もNULL
になります。
構文
xmlnode* XmlDomGetParentNode( xmlctx *xctx, xmlnode *node);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
node |
IN |
XMLノード |
戻り値
(xmlnode *)
ノードの親ノード。
3.8.26 XmlDomGetPrevSibling()
DOMツリーの同じレベルにあるノードの直前のノードを戻します。つまり、親ノードの子ノードごとに、その子ノードの直前の兄弟関係が、その子ノードの前の子ノードになります。ノードが親ノードの最初の子ノードの場合は、NULL
を戻します。
構文
xmlnode* XmlDomGetPrevSibling( xmlctx *xctx, xmlnode *node);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
node |
IN |
XMLノード |
戻り値
(xmlnode *)
同レベルにある次のノード。
関連項目:
3.8.27 XmlDomGetPullNodeAsBinaryStream()
プル・パラダイムを使用してバイナリ・ストリームのアドレスを戻します。
構文
orastream *XmlDomGetPullNodeAsBinaryStream( xmlctx *xctx, xmlnode *node);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
node |
IN |
XMLノード( |
戻り値
(orastream *)
判別可能なバイナリ・ストリーム、出力ではOraStreamReadChar()
ではなくOraStreamRead()
を使用。
3.8.28 XmlDomGetPullNodeAsCharacterStream()
プル・パラダイムを使用して文字ストリームのアドレスを戻します。
構文
orastream *XmlDomGetPullNodeAsCharacterStream( xmlctx *xctx, xmlnode *node);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
node |
IN |
XMLノード(XML DBによってサポートされる任意のタイプ) |
戻り値
(orastream *)
判別可能な文字ストリーム、出力ではOraStreamRead()
ではなくOraStreamReadChar()
を使用。
3.8.29 XmlDomGetPushNodeAsBinaryStream()
プッシュ・パラダイムを使用してバイナリ・ストリームのアドレスをOUT ostream
パラメータとして戻します。
構文
xmlerr XmlDomGetPushNodeAsBinaryStream( xmlctx *xctx, xmlnode *node, orastream *ostream);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
node |
IN |
XMLノード( |
ostream |
OUT |
|
戻り値
(xmlerr *)
エラー・コード。正常に終了した場合は、XMLERR_OK []
を戻します。
3.8.30 XmlDomGetPushNodeAsCharacterStream()
プッシュ・パラダイムを使用して文字ストリームのアドレスをOUT ostream
パラメータとして戻します。
構文
xmlerr XmlDomGetPushNodeAsCharacterStream( xmlctx *xctx, xmlnode *node, orastream *ostream);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
node |
IN |
XMLノード(XML DBによってサポートされる任意のタイプ) |
ostream |
IN |
|
戻り値
(xmlerr *)
エラー・コード。正常に終了した場合は、XMLERR_OK []
を戻します。
3.8.31 XmlDomGetSourceEntity()
包含によって特定のノードが作成される外部エンティティ・ノードを戻します。
構文
xmlentnode* XmlDomGetSourceEntity( xmlctx *xctx, xmlnode *node);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
node |
IN |
XMLノード |
戻り値
(xmlentnode *)
入力が外部エンティティから行われる場合は、エンティティ・ノードを戻します。
3.8.32 XmlDomGetSourceLine()
ノードが開始された元のソースの行番号を戻します。すべての入力で、最初の行は行番号1になります。
構文
ub4 XmlDomGetSourceLine( xmlctx *xctx, xmlnode *node);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
node |
IN |
XMLノード |
戻り値
(ub4)
元の入力ソースのノードの行番号。
3.8.33 XmlDomGetSourceLocation()
ノードのソース位置(パス、URIなど)を戻します。これは、データ・エンコーディング内ではなくコンパイラ・エンコーディング内にあります。
構文
oratext* XmlDomGetSourceLocation( xmlctx *xctx, xmlnode *node);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
node |
IN |
XMLノード |
戻り値
(oratext *)
入力ソースのフルパス(コンパイラ・エンコーディング)。
3.8.34 XmlDomHasAttrs()
要素が属性を持っているかどうかをテストします。ソートの属性(名前空間または標準)が定義されている場合はTRUE
を戻します。
構文
boolean XmlDomHasAttrs( xmlctx *xctx, xmlelemnode *elem);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
elem |
IN |
XML要素ノード |
戻り値
(boolean)
要素が属性が持つ場合はTRUE
。
3.8.35 XmlDomHasChildNodes()
ノードが子ノードを持っているかどうかをテストします。子を持つ可能性があるのは、Element
、Document
、DTDおよびDocumentFragment
ノードのみです。XmlDomGetChildNodes
がリストを戻した場合でも、ノードが実際に子ノードを持っているとはかぎりません。リストが空の場合もあるため、XmlDomGetChildNodes
からのNULL
以外の戻り値は、テストとして使用できません。
構文
boolean XmlDomHasChildNodes( xmlctx *xctx, xmlnode *node);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
node |
IN |
XMLノード |
戻り値
(boolean)
ノードが子を持つ場合はTRUE
。
3.8.36 XmlDomInsertBefore()
親ノード内の既存の子ノードrefChild
の前にノードnewChild
を挿入します。refChild
がNULL
の場合は、XmlDomAppendChild
ごとに親の子ノードに追加されます。それ以外の場合は、指定された親の子ノードである必要があります。newChild
がDocumentFragment
である場合、その子はすべてrefChild
の前に(同じ順序で)挿入されます。DocumentFragment
ノード自体は挿入されません。newChild
がDOMツリー内にすでに存在する場合、最初に現在の位置から削除されます。
構文
xmlnode* XmlDomInsertBefore( xmlctx *xctx, xmlnode *parent, xmlnode *newChild, xmlnode *refChild);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
parent |
IN |
新しい子ノードを受け取る親ノード |
newChild |
IN |
挿入するノード |
refChild |
IN |
参照ノード |
戻り値
(xmlnode *)
挿入されるノード。
3.8.37 XmlDomNormalize()
要素をルートとしたサブツリーを正規化して、隣接するText
ノードの要素の子をマージします。隣接したText
ノードは通常の解析中には作成されず、DOMコールによるドキュメントの操作後にのみ作成されることに注意してください。
構文
void XmlDomNormalize( xmlctx *xctx, xmlnode *node);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
node |
IN |
XMLノード |
3.8.38 XmlDomNumAttrs()
要素の属性の数を戻します。XmlDomGetAttrs
によってリストが戻される場合でも、属性が含まれているとはかぎりません。長さが0(ゼロ)の空のリストの場合もあります。
構文
ub4 XmlDomNumAttrs( xmlctx *xctx, xmlelemnode *elem);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
elem |
IN |
XML要素ノード |
戻り値
(ub4)
ノードの属性の数。
3.8.39 XmlDomNumChildNodes()
ノードの子ノードの数を戻します。子を持つ可能性があるのは、Element
、Document
、DTDおよびDocumentFragment
ノードのみです。それ以外のタイプはすべて、0(ゼロ)を戻します。XmlDomGetChildNodes
によってリストが戻される場合でも、子が含まれているとはかぎりません。長さが0(ゼロ)の空のリストの場合もあります。
構文
ub4 XmlDomNumChildNodes( xmlctx *xctx, xmlnode *node);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
node |
IN |
XMLノード |
戻り値
(ub4)
ノードの子ノードの数。
3.8.40 XmlDomPrefixToURI()
名前空間接頭辞およびノードを指定すると、その接頭辞にマップされた名前空間URIを戻します。指定されたノードが一致する接頭辞を持たない場合は、その親ノードが試行されます。次に、その親ノードの親ノードが試行され、ルート・ノードまで繰り返し試行されます。接頭辞が定義されていない場合は、NULL
を戻します。
構文
oratext* XmlDomPrefixToURI( xmlctx *xctx, xmlnode *node, oratext *prefix);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
node |
IN |
XMLノード |
prefix |
IN |
マップされる接頭辞 |
戻り値
(oratext *)
接頭辞のURI(データ・エンコーディング。一致しない場合はNULL
を戻します)。
3.8.41 XmlDomRemoveChild()
親ノードの子ノード・リストからノードを削除して、戻します。このノードは孤立した子です。削除後、親ノードはNULL
となります。
構文
xmlnode* XmlDomRemoveChild( xmlctx *xctx, xmlnode *oldChild);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
oldChild |
IN |
削除するノード |
戻り値
(xmlnode *)
削除されたノード
3.8.42 XmlDomRenameNode()
要素ノードおよび属性ノードについてのみ、ノードの名前を更新します。
接頭辞に現在のマッピングがない場合、xmlns
属性を作成し、XmlDomSetAttrNodeNS()XmlDomSetAttrNodeNS()をコールしてこの要素ノードに関連付けることで、マッピングを追加する必要があります。名前空間属性ノードは変更できません。
構文
xmlnode* XmlDomRenameNode( xmlctx *xctx, xmlnode *node, oratext *tagname);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
node |
IN |
XMLノード |
tagname |
IN |
新しいタグ名 |
戻り値
(xmlnode *)
変更されたノード
関連項目:
3.8.43 XmlDomRenameNodeNS()
要素ノードおよび属性ノードについてのみ、ノードの名前とURIを更新します。
接頭辞に現在のマッピングがない場合、xmlns
属性を作成し、XmlDomSetAttrNodeNS()XmlDomSetAttrNodeNS()をコールしてこの要素ノードに関連付けることで、マッピングを追加する必要があります。名前空間属性ノードは変更できません。
構文
xmlnode* XmlDomRenameNodeNS( xmlctx *xctx, xmlnode *node, oratext *uri, oratext *tagname);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
node |
IN |
XMLノード |
uri |
IN |
新しいURI。 |
tagname |
IN |
新しいタグ名 |
戻り値
(xmlnode *)
変更されたノード。
関連項目:
3.8.44 XmlDomReplaceChild()
oldChild
の親の子ノードoldChild
を新しいノードnewChild
で置換し、oldChild
(NULL
の親を持ち、孤立しています)を戻します。newChild
がDocumentFragment
である場合、その子がすべてoldChild
のかわりに挿入されます。DocumentFragment
ノード自体は挿入されません。newChild
がDOMツリー内にすでに存在する場合、最初に現在の位置から削除されます。
構文
xmlnode* XmlDomReplaceChild( xmlctx *xctx, xmlnode *newChild, xmlnode *oldChild);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
newChild |
IN |
置換される新しいノード |
oldChild |
IN |
置換される古いノード |
戻り値
(xmlnode *)
置換されたノード
3.8.45 XmlDomSetDefaultNS()
ノードのデフォルトの名前空間を設定します。
構文
void XmlDomSetDefaultNS( xmlctx *xctx, xmlnode *node, oratext *defns);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
node |
IN |
要素または属性DOMノード |
defns |
IN |
ノードの新しいデフォルトの名前空間 |
3.8.46 XmlDomSetNodePrefix()
ノードの名前空間接頭辞を(NULL
で終了する文字列として)設定します。接頭辞が定義されているかどうかは検証しません。新しい接頭辞と古いローカル名から、新しい修飾名が作成されます。新しい修飾名はDOMで制御され、ユーザーは管理できません。
構文
void XmlDomSetNodePrefix( xmlctx *xctx, xmlnode *node, oratext *prefix);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
node |
IN |
XMLノード |
prefix |
OUT |
新しい名前空間接頭辞 |
3.8.47 XmlDomSetNodeValue()
ノードの値(文字データ)をNULL
で終了する文字列として設定します。値をNULL
に設定することはできません。値が設定されているのは、Attr
、CDATA
、Comment
、PIおよびText
ノードのみで、それ以外のタイプのノードの値を設定しようとしても、動作しません。新しい値はデータ・エンコーディングに含まれている必要があります。これは検証、変換、確認されません。
値はコピーされず、ポインタのみが保存されます。ノードのデータの保持および解放は、ユーザーが行います。
構文
xmlerr XmlDomSetNodeValue( xmlctx *xctx, xmlnode *node, oratext *value);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
node |
IN |
XMLノード |
value |
IN |
ノードの新しい値(データ・エンコーディング)。ユーザーが制御します。 |
戻り値
(xmlerr)
数値のエラー・コード、正常に終了した場合は、0
(ゼロ)を戻します。
3.8.48 XmlDomSetNodeValueLen()
ノードの(文字データに対応する)値を、長さがエンコードされた文字列として設定します。
NULL
で終了するバージョンはXmlDomSetNodeValue
として使用でき、これはノード値をNULL
で終了する文字列として取ります。バッキング・ストアがXMLType
であるとわかっている場合、ノードのデータは、長さがエンコードされたデータとして内部的に格納されます。長さに基づくSet関数を使用すると、データをコピーしたり、データをNULL
で終了する必要がなくなります。
構文
xmlerr XmlDomSetNodeValueLen( xmlctx *xctx, xmlnode *node, oratext *value, ub4 len);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
node |
IN |
XMLノード |
value |
IN |
ノードの新しい値(データ・エンコーディング)。ユーザーが制御します。 |
len |
IN |
値の長さ(バイト数) |
戻り値
(xmlerr)
数値のエラー・コード、正常に終了した場合は、0
(ゼロ)を戻します。
3.8.49 XmlDomSetNodeValueStream()
ノードの大きい値(文字データ)を、入力ストリームとは別に設定します。非常に大きいデータの場合、単一の連続するチャンクとして効率的に格納できるとはかぎりません。この関数は、そのタイプのチャンク・データを格納するために使用されます。XMLType
データのみに使用され、XDKのデータは常に連続しています。
構文
xmlerr XmlDomSetNodeValueStream( xmlctx *xctx, xmlnode *node, xmlistream *istream);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
node |
IN |
XMLノード |
istream |
IN |
入力ストリーム・オブジェクト |
戻り値
(xmlerr)
数値のエラー・コード、正常に終了した場合は、0
(ゼロ)を戻します。
3.8.50 XmlDomSetPullNodeAsBinaryStream()
プル・パラダイムを使用してバイナリ入力ストリームのアドレスをOUT istream
パラメータとして戻します。
構文
xmlerr *XmlDomSetPullNodeAsBinaryStream( xmlctx *xctx, xmlnode *node orastream *istream);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
node |
IN |
XMLノード( |
istream |
OUT |
入力ストリーム・オブジェクト。この値の読込みには |
戻り値
(xmlerr *)
エラー・コード。正常に終了した場合は、XMLERR_OK []
を戻します。
3.8.51 XmlDomSetPullNodeAsCharacterStream()
プル・パラダイムを使用して入力文字ストリームのアドレスをOUT istream
パラメータとして戻します。
構文
xmlerr *XmlDomSetPullNodeAsCharacterStream( xmlctx *xctx, xmlnode *node orcharacterinputstream *istream);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
node |
IN |
XMLノード(XML DBによってサポートされる任意のタイプ) |
istream |
OUT |
入力ストリーム・オブジェクト。この値の読込みには |
戻り値
(xmlerr *)
エラー・コード。正常に終了した場合は、XMLERR_OK []
を戻します。
3.8.52 XmlDomSetPushNodeAsBinaryStream()
プッシュ・パラダイムを使用して入力バイナリ・ストリームのアドレスを戻します。
構文
orastream* XmlDomSetPushNodeAsBinaryStream( xmlctx *xctx, xmlnode *node);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
node |
IN |
XMLノード( |
戻り値
(orastream *)
バイナリ・ストリーム。出力の読込みにはOraStreamWriteChar()
ではなくOraStreamWrite()
を使用。
3.8.53 XmlDomSetPushNodeAsCharacterStream()
プッシュ・パラダイムを使用して文字ストリームのアドレスを戻します。
構文
orastream *XmlDomSetPushNodeAsCharacterStream( xmlctx *xctx, xmlnode *node);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
node |
IN |
XMLノード(XML DBによってサポートされる任意のタイプ) |
戻り値
(orastream *)
文字ストリーム。出力の読込みにはOraStreamWrite()
ではなくOraStreamWriteChar()
を使用。
3.9 DOM XML C APIのNodeListインタフェース
次の表にDOM XML C APIのNodeList
インタフェースで使用できるメソッドの概要を示します。
表3-9 XML C実装のNodeList DOMメソッドの概要
関数 | 概要 |
---|---|
XmlDomGetElemsByTagなどによって戻されるノード・リストを解放します。 |
|
リスト内のn番目のノードを戻します。 |
|
ノード・リストの長さを戻します。 |
3.9.1 XmlDomFreeNodeList()
XmlDomGetElemsByTag
または関連する関数によって戻されたノード・リストを解放して、対応するすべてのリソースを解放します。DOM固有のノード・リストの一部(ノードの子など)を指定すると、処理は行われません。
構文
void XmlDomFreeNodeList( xmlctx *xctx, xmlnodelist *list);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
list |
IN |
解放する |
3.9.2 XmlDomGetNodeListItem()
ノード・リストのn番目のノードを戻します。最初の項目は、索引0
です。
構文
xmlnode* XmlDomGetNodeListItem( xmlctx *xctx, xmlnodelist *list, ub4 index);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
list |
IN |
|
index |
IN |
|
戻り値
(xmlnode *)
ノード・リスト内のn番目の位置にあるノード(またはNULL
)。
3.10 DOM XML C APIのNotationインタフェース
次の表にDOM XML C APIのNotation
インタフェースで使用できるメソッドの概要を示します。
表3-10 XML C実装のNodeList DOMメソッドの概要
関数 | 概要 |
---|---|
表記法の公開識別子を取得します。 |
|
表記法のシステム識別子を取得します。 |
3.10.1 XmlDomGetNotationPubID()
(データ・エンコーディングの)表記法の公開識別子を戻します。
構文
oratext* XmlDomGetNotationPubID( xmlctx *xctx, xmlnotenode *note);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
note |
IN |
|
戻り値
(oratext *)
表記法の公開識別子(データ・エンコーディング。NULL
の可能性があります)。
関連項目:
3.11 DOM XML C APIのProcessingInstructionインタフェース
次の表にDOM XML C APIのProcessingInstruction
インタフェースで使用できるメソッドの概要を示します。
表3-11 XML C実装のProcessingInstruction DOMパッケージ・メソッドの概要
関数 | 概要 |
---|---|
処理命令のデータを取得します。 |
|
PIのターゲットを取得します。 |
|
処理命令のデータを設定します。 |
3.11.1 XmlDomGetPIData()
(データ・エンコーディングの)処理命令のコンテンツ(データ)を戻します。ノードがProcessingInstruction
ではない場合は、NULL
を戻します。コンテンツは、ターゲットの後の最初の空白以外の文字から、最後の「?>
」までの部分です。
構文
oratext* XmlDomGetPIData( xmlctx *xctx, xmlpinode *pi);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
pi |
IN |
|
戻り値
(oratext *)
処理命令のデータ(データ・エンコーディング)。
3.11.2 XmlDomGetPITarget()
処理命令のターゲット文字列を戻します。ノードがProcessingInstruction
ではない場合は、NULL
を戻します。ターゲットは、ProcessingInstruction
を開始するマークアップの後に続く最初のトークンです。すべてのProcessingInstruction
にはターゲットが必須ですが、データ部分はオプションです。
構文
oratext* XmlDomGetPITarget( xmlctx *xctx, xmlpinode *pi);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
pi |
IN |
|
戻り値
(oratext *)
処理命令のターゲット(データ・エンコーディング)。
3.11.3 XmlDomSetPIData()
ProcessingInstruction
のコンテンツ(データ・エンコーディング内にある必要があります)を設定します。データをNULL
に設定することはできません。ノードがProcessingInstruction
ではない場合、処理は行われません。新しいデータの検証、変換、確認は行われません。
構文
void XmlDomSetPIData( xmlctx *xctx, xmlpinode *pi, oratext *data);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
pi |
IN |
|
data |
IN |
|
3.12 DOM XML C APIのTextインタフェース
次の表にDOM XML C APIのText
インタフェースで使用できるメソッドの概要を示します。
表3-12 XML C実装のText DOMメソッドの概要
関数 | 概要 |
---|---|
テキスト・ノードを2つに分割します。 |
3.12.1 XmlDomSplitText()
1つのテキスト・ノードを2つに分割します。元のデータは、2つのノードに分割されます。指定されたノードのタイプがテキストではないか、またはオフセットが元のデータの範囲外にある場合は、処理を行わずにNULL
を戻します。オフセットはゼロ・ベースで、バイト数ではなく文字数で表されます。元のノードは保持され、そのデータが切り捨てられます。元のデータの残りの部分を含む新しいテキスト・ノードが作成され、元のデータの次の兄弟として挿入されます。新しいテキスト・ノードが戻されます。
構文
xmltextnode* XmlDomSplitText( xmlctx *xctx, xmltextnode *textnode, ub4 offset);
パラメータ | In/Out | 説明 |
---|---|---|
xctx |
IN |
XMLコンテキスト |
textnode |
IN |
|
offset |
IN |
|
戻り値
(xmltextnode *)
新しいテキスト・ノード。