DBMS_XMLDOM システムパッケージは、XMLType オブジェクトにアクセスし、ドキュメントオブジェクトモデル(DOM)を実装するために使用されます。DOMは、HTMLおよびXMLドキュメント向けのアプリケーションプログラミングインターフェース(API)です。DOMは、ドキュメントの論理構造と、ドキュメントへのアクセスおよび操作方法を定義します。
DOM仕様では、「ドキュメント」という用語は広い意味で使用されています。XMLは、さまざまなシステムに保存される多様な情報を表現できます。これらの情報は従来はデータと見なされることが多いですが、XMLではこれらの情報もドキュメントとして表されます。
機能の適用範囲
この内容はOceanBaseデータベースEnterprise版にのみ適用されます。OceanBaseデータベースCommunity版はMySQLモードのみを提供します。
説明
V4.4.2系では、このシステムパッケージはOceanBaseデータベースV4.4.2 BP2から導入されました。
DBMS_XMLDOM権限の説明
DBMS_XMLDOM システムパッケージの EXECUTE 権限は PUBLIC に付与されています。現在のユーザーは、このパッケージ内のサブプログラムを使用する権限を持っています。
DBMS_XMLDOMの使用方法
DBMS_XMLPARSER から DBMS_XMLDOM.DOMDOCUMENT ハンドルを取得した後、このパッケージ内のサブプログラムを使用してDOMツリーを走査し、要素やノードの値を読み取ります。解析からリソースの解放までの一連の手順については、DBMS_XMLPARSERの使用方法 を参照してください。
一般的な処理の流れは次のとおりです。
- DBMS_XMLPARSER でXMLを解析するか、
NEWDOMDOCUMENTで空のドキュメントを作成し、DBMS_XMLDOM.DOMDOCUMENTハンドルを取得します。 GETELEMENTSBYTAGNAME、ITEM、GETLENGTH、GETFIRSTCHILDなどを使用してノードを走査するか、CREATEELEMENT、CREATETEXTNODE、APPENDCHILD、SETATTRIBUTEなどを使用してDOMツリーを構築および変更します。GETNODEVALUE、GETDATA、GETNODENAMEなどを使用してノード情報を読み取ります。必要に応じて、GETXMLTYPE、WRITETOBUFFER、WRITETOCLOBを使用して出力します。FREEDOCUMENTを呼び出してドキュメントリソースを解放します。
OceanBaseデータベースの現在のバージョンでサポートされている DBMS_XMLDOM サブプログラムの詳細については、以下の DBMS_XMLDOMサブプログラム一覧 を参照してください。
XMLType の作成と変換については、XMLTypeの概要 を参照してください。
DBMS_XMLDOMサブプログラム一覧
次の表は、OceanBaseデータベースの現在のバージョンでサポートされているDBMS_XMLDOMサブプログラムとその簡潔な説明です。
サブプログラム |
説明 |
|---|---|
| DOMDOCUMENT | XMLドキュメントを識別します |
| DOMNODE | DOMノードを識別します |
| DOMNODELIST | ノードリストを識別します |
| DOMATTR | DOM属性ノードを識別します(V4.4.2 BP3以降サポート)。 |
| DOMELEMENT | DOM要素ノードを識別します(V4.4.2 BP3以降サポート)。 |
| DOMTEXT | DOMテキストノードを識別します(V4.4.2 BP3以降サポート)。 |
| DOMCHARACTERDATA | DOM文字データノードを識別します(V4.4.2 BP3以降サポート)。 |
| FREEDOCUMENT | DOMドキュメントを解放します |
| GETCHILDNODES | 子ノードリストを取得します |
| GETELEMENTSBYTAGNAME | タグ名で要素を取得します (name='*' は任意の要素に一致することを表します) |
| GETLENGTH | ノード数を取得します |
| GETNODEVALUE | ノード値を取得します |
| ITEM | インデックスでノードを取得します |
| NEWDOMDOCUMENT | 新しい空のDOMドキュメントを作成します(V4.4.2 BP3以降サポート) |
| CREATEELEMENT | 要素ノードを作成します(V4.4.2 BP3以降サポート) |
| CREATETEXTNODE | テキストノードを作成します(V4.4.2 BP3以降サポート) |
| MAKENODE | 具体的なDOMオブジェクトを汎用ノードに変換します(V4.4.2 BP3以降サポート) |
| MAKECHARACTERDATA | ノードを文字データハンドルに変換します(V4.4.2 BP3以降サポート) |
| APPENDCHILD | 子ノードを追加します(V4.4.2 BP3以降サポート) |
| REMOVECHILD | 子ノードを取り除きます(V4.4.2 BP3以降サポート) |
| GETFIRSTCHILD | 最初の子ノードを取得します(V4.4.2 BP3以降サポート) |
| GETDOCUMENTELEMENT | ドキュメントのルート要素を取得します(V4.4.2 BP3以降サポート) |
| GETNODENAME | ノード名を取得します(V4.4.2 BP3以降サポート) |
| GETLOCALNAME | ノードのローカル名を取得します(V4.4.2 BP3以降サポート) |
| GETNODETYPE | ノード型を取得します(V4.4.2 BP3以降サポート) |
| GETDATA | 文字データの内容を取得します(V4.4.2 BP3以降サポート) |
| ISNULL | DOMハンドルがNULLかどうかを判断します(V4.4.2 BP3以降サポート) |
| SETATTRIBUTE | 要素の属性を設定します(V4.4.2 BP3以降サポート) |
| SETCHARSET | ドキュメントの文字セットを設定します(V4.4.2 BP3以降サポート) |
| SETVERSION | ドキュメントのXMLバージョンを設定します(V4.4.2 BP3以降サポート) |
| WRITETOBUFFER | ドキュメントまたはノードをVARCHAR2バッファに書き込みます(V4.4.2 BP3以降サポート) |
| WRITETOCLOB | ドキュメントまたはノードをCLOBに書き込みます(V4.4.2 BP3以降サポート) |
| GETXMLTYPE | DOMドキュメントをXMLTYPEに変換します(V4.4.2 BP3以降サポート) |