224 DBMS_XMLSCHEMA_ANNOTATE

DBMS_XMLSCHEMA_ANNOTATEパッケージは、主に事前登録スキーマ注釈を使用して、構造化記憶域モデルを管理および構成するためのインタフェースを提供します。

この章のトピックは、次のとおりです:

224.1 DBMS_XMLSCHEMA_ANNOTATEの概要

DBMS_XMLSCHEMA_ANNOTATEパッケージには、主に事前登録スキーマ注釈を使用して、構造化記憶域モデルを管理および構成するためのプロシージャが含まれています。

スキーマ注釈は、XMLデータの格納方法に影響します。たとえば、デフォルトの表の注釈では、データベースでシステム名を生成できるようにするのではなく、ユーザー指定の名前がXML要素に割り当てられます。したがって、問合せ計画が読み取りやすくなり、表に対する制約も容易に作成できます。

224.2 DBMS_XMLSCHEMA_ANNOTATEのセキュリティ・モデル

DBMS_XMLSCHEMA_ANNOTATEパッケージは、XDBが所有しているため、SYSまたはXDBによって作成される必要があります。EXECUTE権限は、PUBLICに付与されます。このパッケージ内のサブプログラムは、現行のユーザーの権限を使用して実行されます。

224.3 DBMS_XMLSCHEMA_ANNOTATEサブプログラムの要約

この表は、DBMS_XMLSCHEMA_ANNOTATEパッケージのサブプログラムについて説明しています。

表224-1 DBMS_XMLSCHEMA_ANNOTATEパッケージのサブプログラム

サブプログラム 説明

ADDXDBNAMESPACEプロシージャ

XDB注釈に必要なXDB名前空間を追加します。

DISABLEDEFAULTTABLECREATIONプロシージャ

空の値を持つデフォルトの表属性を最上位レベルの要素に追加することによって、その要素に表が作成されないようにします。

DISABLEMAINTAINDOMプロシージャ

DOMの忠実度属性をFALSEに設定します。

ENABLEDEFAULTTABLECREATIONプロシージャ

空のデフォルトの表名の注釈を削除することによって、最上位レベルの表をすべて(ALL)作成できるようにします。

ENABLEMAINTAINDOMプロシージャ

DOMの忠実度属性をTRUEに設定します。

GETSCHEMAANNOTATIONSファンクション

注釈付きXMLスキーマと元のXMLスキーマとの差分ドキュメントを作成します。

GETSIDXDEFFROMVIEWファンクション

XMLTABLEビュー定義をxmltype列または表に取り込み、CLOBを戻します。これをパラメータとして使用し、XMLTABLEビューをリレーショナル表としてバックアップする構造化xmlindexを作成することができます。

PRINTWARNINGSプロシージャ

XMLスキーマでノードにマップされた注釈がない場合に、ユーザーが警告を発したり、警告を非表示にできるようにします。

REMOVEANYSTORAGEプロシージャ

指定された名前を持つ複合タイプの任意(ANY)の子から、SQLタイプの設定を削除します。

REMOVEDEFAULTTABLEプロシージャ

要素に指定されたデフォルトの表属性を削除します。このプロシージャをコールした後で、表名が生成されます。

REMOVEMAINTAINDOMプロシージャ

DOMのメンテナンスに使用したすべての注釈を、指定したスキーマから削除します。

REMOVEOUTOFLINEプロシージャ

表外に格納されないようにするために、既存のすべてのSQLInline属性を削除します。

REMOVESQLCOLLTYPEプロシージャ

SQLコレクション・タイプを削除します。

REMOVESQLNAMEプロシージャ

グローバル要素からSQLNAMEを削除します。

REMOVESQLTYPEプロシージャ

SQLタイプを削除します。

REMOVESQLTYPEMAPPINGプロシージャ

指定されたスキーマ・タイプのSQLタイプのマッピングを削除します。

REMOVETABLEPROPSプロシージャ

CREATE TABLE文から表記憶域のプロパティを削除します。

REMOVETIMESTAMPWITHTIMEZONEプロシージャ

TimeStampWithTimeZoneデータ・タイプの設定を、XMLスキーマ内のすべてのdateTimeタイプの要素から削除します。

SETANYSTORAGEプロシージャ

指定された名前を持つ複合タイプの任意(ANY)の子に、SQLデータ・タイプを割り当てます。

SETDEFAULTTABLEプロシージャ

指定されたグローバル要素の表名を設定します。

SETOUTOFLINEプロシージャ

SQLInline属性をFALSEに設定します。

SETSCHEMAANNOTATATIONSプロシージャ

DBMS_XMLSCHEMA_ANNOTATE.GETSCHEMAANNOTATIONSをコールした結果として生じた注釈付き差分を取り込み、それを指定されたXMLスキーマにパッチ適用します。

SETSQLCOLLTYPEプロシージャ

コレクションのSQLタイプの名前を割り当てます。

SETSQLNAMEプロシージャ

XMLスキーマで定義された要素に対応する名前を、SQL属性に割り当てます。

SETSQLTYPEプロシージャ

グローバル・オブジェクトにSQLタイプを割り当てます。

SETSQLTYPEMAPPINGプロシージャ

スキーマ・タイプとSQLタイプのマッピングを定義します。

SETTABLEPROPSプロシージャ

デフォルトのCREATE TABLE文に追加されるTABLE記憶域の句に、プロパティを指定します。

SETTIMESTAMPWITHTIMEZONEプロシージャ

TIMESTAMPWITHTIMEZONEデータ・タイプを、XMLスキーマ内のすべてのdateTimeタイプの要素に設定します。

224.3.1 ADDXDBNAMESPACEプロシージャ

このプロシージャは、XDB注釈に必要なXDB名前空間を追加します。

構文

DBMS_XMLSCHEMA_ANNOTATE.ADDXDBNAMESPACE (
   xmlschema      IN OUT XMLTYPE);

パラメータ

表224-2 ADDXDBNAMESPACEプロシージャのパラメータ

パラメータ 説明

xmschema

XMLスキーマをXMLTYPEとして取得し、注釈を実行してそれを戻します。

使用上のノート

このプロシージャは、スキーマの注釈を追加する別のプロシージャによって暗黙的にコールされます。他の注釈を付けずにXDB名前空間を追加する理由がないため、このプロシージャは通常、ユーザーが直接コールするのではなく、別の注釈プロシージャによってコールされます。

224.3.2 DISABLEDEFAULTTABLECREATIONプロシージャ

このプロシージャは、空の値を持つデフォルトの表属性を最上位レベルの要素に追加することによって、その要素に表が作成されないようにします。最初のオーバーロードは指定された最上位レベル要素に適用され、2回目のオーバーロードはすべての最上位レベル要素に適用されます。このプロシージャは常に上書きします。これは、最上位レベル要素または要素にスキーマ注釈xdb:defaultTable=""を使用するのと同じです。

構文

DBMS_XMLSCHEMA_ANNOTATE.DISABLEDEFAULTTABLECREATION (
   xmlschema         IN OUT XMLType,  
   globalElementName IN VARCHAR2);

DBMS_XMLSCHEMA_ANNOTATE.DISABLEDEFAULTTABLECREATION (
   xmlschema         IN OUT XMLType);

パラメータ

表224-3 DISABLEDEFAULTTABLECREATIONプロシージャのパラメータ

パラメータ 説明

xmlschema

注釈を付けるXMLスキーマ

globalElementName

スキーマ内のグローバル要素の名前

purchaseOrder要素には、xdb:defaultTable=""と同様の注釈が付けられます。

DECLARE
   xml_schema   XMLTYPE;
BEGIN
   SELECT out INTO xml_schema FROM annotation_tab;
   DBMS_XMLSCHEMA_ANNOTATE.DISABLEDEFAULTTABLECREATION(xml_schema,
                                            'purchaseOrder');
   UPDATE annotation_tab SET out = xml_schema;
END;
/

224.3.3 DISABLEMAINTAINDOMプロシージャ

このプロシージャは、DOMの忠実度属性をFALSEに設定します。

2つのオーバーロードがあります。DOMの忠実度属性は、最初はすべての複合タイプに対してFALSEに設定され、2回目は指定された複合タイプに対してFALSEに設定されます。これは、すべての、または指定された複合タイプに対してそれぞれxdb:maintainDOM="false"を追加するのと同じです。

構文

DBMS_XMLSCHEMA_ANNOTATE.DISABLEMAINTAINDOM (
   xmlschema       IN OUT XMLType, 
   overwrite       IN BOOLEAN default TRUE);

DBMS_XMLSCHEMA_ANNOTATE.DISABLEMAINTAINDOM (
   xmlschema       IN OUT XMLType, 
   complexTypeName IN VARCHAR2,  
   overwrite       IN BOOLEAN default TRUE);

パラメータ

表224-4 DISABLEMAINTAINDOMプロシージャのパラメータ

パラメータ 説明

xmlschema

注釈を付けるXMLスキーマ

complexTypeName

複合タイプの名前

overwrite

プロシージャによって要素の属性が上書きされるかどうかを指定するブール値。デフォルトはTRUEです

224.3.4 ENABLEDEFAULTTABLECREATIONプロシージャ

このプロシージャは、空のデフォルトの表名の注釈を削除することによって、最上位レベルの表をすべて作成できるようにします。

構文

DBMS_XMLSCHEMA_ANNOTATE.ENABLEDEFAULTTABLECREATION (
   xmlschema            IN OUT  XMLTYPE);

DBMS_XMLSCHEMA_ANNOTATE.ENABLEDEFAULTTABLECREATION (
   xmlschema            IN OUT  XMLTYPE,
   globalElementName    IN      VARCHAR2););

パラメータ

表224-5 ENABLEDEFAULTTABLECREATIONプロシージャのパラメータ

パラメータ 説明

xmlschema

注釈を付けるXMLスキーマ

gloablElementName

スキーマ内のグローバル要素の名前

使用上のノート

このプロシージャは、デフォルトの表名を持つ要素には影響しません。

224.3.5 ENABLEMAINTAINDOMプロシージャ

このオーバーロードしたプロシージャは、DOMの忠実度属性をTRUEに設定します。

2つのオーバーロードがあります。DOMの忠実度属性は、最初はすべての複合タイプに対してTRUEに設定され、2回目は指定された複合タイプに対してTRUEに設定されます。

構文

DBMS_XMLSCHEMA_ANNOTATE.ENABLEMAINTAINDOM (
   xmlschema       IN OUT XMLType, 
   overwrite       IN BOOLEAN default TRUE);

DBMS_XMLSCHEMA_ANNOTATE.ENABLEMAINTAINDOM (
   xmlschema        IN OUT XMLType, 
   complexTypeName  IN VARCHAR2,  
   overwrite        IN BOOLEAN default TRUE);

パラメータ

表224-6 ENABLEMAINTAINDOMプロシージャのパラメータ

パラメータ 説明

xmlschema

注釈を付けるXMLスキーマ

complexTypeName

複合タイプの名前

overwrite

プロシージャによって要素の属性が上書きされるかどうかを指定するブール値。デフォルトはTRUEです

224.3.6 GETSCHEMAANNOTATIONSファンクション

このファンクションは、注釈付きXMLスキーマと元のXMLスキーマとの差分ドキュメントを作成します。

構文

DBMS_XMLSCHEMA_ANNOTATE.GETSCHEMAANNOTATIONS (
   xmlschema IN xmlType) 
  RETURN XMLType;

パラメータ

表224-7 GETSCHEMAANNOTATIONSファンクションのパラメータ

パラメータ 説明

xmlschema

元のXMLスキーマ

戻り値

このファンクションは、ドキュメントannotations.xmlXMLTypeとして戻します。

使用上のノート

このファンクションは、すべての注釈を1つのドキュメントに保存してannotationsという名前を付け、それを戻します。このドキュメントにより、DBMS_XMLSCHEMA_ANNOTATE.GETSCHEMAANNOTATIONSを使用して、注釈のないスキーマにすべての注釈を適用することができます。

DBMS_XMLSCHEMA_ANNOTATE.GETSCHEMAANNOTATIONSは、Oracle Databaseリリース10.2では使用できません(Oracle Databaseリリース11.xのみ)。

DBMS_XMLSCHEMA_ANNOTATE.GETSCHEMAANNOTATIONSの例は、「SETSCHEMAANNOTATATIONSプロシージャ」の例を参照してください。

224.3.7 GETSIDXDEFFROMVIEWファンクション

このファンクションは、XMLTABLEビュー定義をxmltype列または表に取り込み、CLOBを戻します。これをパラメータとして使用し、XMLTABLEビューをリレーショナル表としてバックアップする構造化xmlindexを作成することができます。

構文

DBMS_XMLSCHEMA_ANNOTATE.GETSIDXDEFFROMVIEW (
   viewName   IN xmlType) 
  RETURN CLOB;

パラメータ

表224-8 GETSIDXDEFFROMVIEWファンクションのパラメータ

パラメータ 説明

viewName

元のXMLスキーマ

戻り値

このファンクションはCLOBを戻します。これをパラメータとして使用して、XMLTABLEビューをリレーショナル表としてバックアップする構造化xmlindexを作成することができます。

224.3.8 PRINTWARNINGSプロシージャ

このプロシージャは、XMLスキーマでノードにマップされた注釈がない場合に、ユーザーが警告を発したり、警告を非表示にできるようにします。

構文

DBMS_XMLSCHEMA_ANNOTATE.PRINTWARNINGS (
   value       IN   BOOLEAN DEFAULT TRUE);

パラメータ

表224-9 PRINTWARNINGSプロシージャのパラメータ

パラメータ 説明

val

NO MATCHING ELEMENTS FOUNDエラー・メッセージが表示されるには、valTRUEに設定する必要があります。この警告を非表示にする場合は、FALSEに設定してください。

使用上のノート

注釈がXMLスキーマ内の複数のノードにマップしている場合は、エラーANNOTATION MAPS TO MULTIPLE ELEMENTSが発生します。この場合、注釈は実行されません。ユーザーは、XMLスキーマ内で一意のノードが参照されるようにプロシージャ・コールのパラメータを修正する必要があります。

224.3.9 REMOVEANYSTORAGEプロシージャ

このプロシージャは、指定された名前を持つ複合タイプの任意(ANY)の子から、SQLタイプの設定を削除します。

構文

DBMS_XMLSCHEMA_ANNOTATE.REMOVEANYSTORAGE (
   xmlschema       IN OUT XMLType, 
   complexTypeName IN VARCHAR2);

パラメータ

表224-10 REMOVEANYSTORAGEプロシージャのパラメータ

パラメータ 説明

xmlschema

注釈対象のXML Schema。

complexTypeName

複合タイプの名前

使用上のノート

このプロシージャは、SETANYSTORAGEプロシージャとは逆の処理をします。

224.3.10 REMOVEDEFAULTTABLEプロシージャ

このプロシージャは、要素に指定されたデフォルトの表属性をすべて削除します。

このプロシージャをコールした後で、表名が生成されます。このプロシージャは常に上書きします。

構文

DBMS_XMLSCHEMA_ANNOTATE.REMOVEDEFAULTTABLE (
   xmlschema          IN OUT XMLTYPE, 
   globalElementName  IN     VARCHAR2);

パラメータ

表224-11 REMOVEDEFAULTTABLEプロシージャのパラメータ

パラメータ 説明

xmlschema

注釈を付けるXMLスキーマ

globalElementName

スキーマ内のグローバル要素の名前

注釈は、"select out from annotation_tab"を使用していつでも検証できます。

 
--The purchaseOrder element will have no annotation for defaultTable.
DECLARE
   xml_schema XMLTYPE;
BEGIN
   SELECT out INTO xml_schema FROM annotation_tab;
   DBMS_XMLSCHEMA_ANNOTATE.REMOVEDEFAULTTABLE(xml_schema,
                                            'purchaseOrder');
   UPDATE annotation_tab SET out = xml_schema;
END;
/

224.3.11 REMOVEMAINTAINDOMプロシージャ

このプロシージャは、DOMのメンテナンスに使用されたすべての注釈を、指定したスキーマから削除します。

構文

DBMS_XMLSCHEMA_ANNOTATE.REMOVEMAINTAINDOM (
   xmlschema    IN OUT XMLType);

パラメータ

表224-12 REMOVEMAINTAINDOMプロシージャのパラメータ

パラメータ 説明

xmlschema

注釈を付けるXMLスキーマ

224.3.12 REMOVEOUTOFLINEプロシージャ

このプロシージャは、表外に格納されないようにするために、既存のすべてのSQLInline属性を削除します。

3回のオーバーロードが行われます。

構文

指定された要素のSQLInline属性を削除します。

DBMS_XMLSCHEMA_ANNOTATE.REMOVEOUTOFLINE (
   xmlschema           IN OUT  XMLType, 
   elementName         IN      VARCHAR2, 
   elementType         IN      VARCHAR2, 
   overwrite           IN      BOOLEAN default TRUE);

グローバル・オブジェクトとローカル要素名によって指定されたオブジェクトのSQLInline属性を削除します。

DBMS_XMLSCHEMA_ANNOTATE.REMOVEOUTOFLINE (
   xmlschema          IN OUT  XMLType, 
   globalObject       IN      VARCHAR2, 
   globalObjectName   IN      VARCHAR2, 
   localElementName   IN      VARCHAR2);

参照されたグローバル要素のSQLInline属性が削除されます。

DBMS_XMLSCHEMA_ANNOTATE.REMOVEOUTOFLINE (
   xmlschema         IN OUT  XMLType,
   reference         IN      VARCHAR2);

パラメータ

表224-13 REMOVEOUTOFLINEプロシージャのパラメータ

パラメータ 説明

xmlschema

注釈を付けるXMLスキーマ

elementName

要素名。

elementType

要素タイプ。

globalObject

グローバル・オブジェクト(グローバル複合タイプまたはグローバル要素)

globalObjectName

グローバル・オブジェクトの名前

localElementName

グローバル要素の下位のローカル要素の名前

reference

グローバル要素の参照

overwrite

プロシージャによって要素の属性が上書きされるかどうかを指定するブール値。デフォルトはTRUEです。

使用上のノート

このプロシージャは、SETOUTOFLINEプロシージャとは逆の処理をします。

224.3.13 REMOVESQLCOLLTYPEプロシージャ

このプロシージャは、SQLコレクション・タイプを削除します。

最初のオーバーロードでは指定された要素に対応するSQLコレクション・タイプが削除され、2回目のオーバーロードでは複合タイプの内部にあるXML要素からそのタイプが削除されます。

構文

DBMS_XMLSCHEMA_ANNOTATE.REMOVESQLCOLLTYPE (
   xmlschema   IN OUT XMLType, 
   elementName IN VARCHAR2);
DBMS_XMLSCHEMA_ANNOTATE.REMOVESQLCOLLTYPE (
   xmlschema        IN OUT XMLType, 
   globalObject     IN VARCHAR2, 
   globalName       IN VARCHAR2, 
   localElementName IN VARCHAR2);

パラメータ

表224-14 REMOVESQLCOLLTYPEプロシージャのパラメータ

パラメータ 説明

xmlschema

注釈を付けるXMLスキーマ

elementName

要素名。

globalObject

グローバル・オブジェクト(グローバル複合タイプまたはグローバル要素)

globalName

グローバル・オブジェクトの名前

localElementName

グローバル要素の下位のローカル要素の名前

使用上のノート

このプロシージャは、SETSQLCOLLTYPEプロシージャとは逆の処理をします。

224.3.14 REMOVESQLNAMEプロシージャ

このプロシージャは、グローバル要素からSQLNAMEを削除します。

構文

DBMS_XMLSCHEMA_ANNOTATE.REMOVESQLNAME (
   xmlschema          IN OUT  XMLType,
   globalObject       IN      VARCHAR2, 
   globalObjectName   IN      VARCHAR2,
   localObject        IN      VARCHAR2, 
   localObjectName    IN      VARCHAR2, 
   sqlName            IN      VARCHAR2, 
   overwrite          IN      BOOLEAN DEFAULT TRUE);

パラメータ

表224-15 REMOVESQLNAMEプロシージャのパラメータ

パラメータ 説明

xmlschema

注釈を付けるXMLスキーマ

globalObject

グローバル・オブジェクト(グローバル複合タイプまたはグローバル要素)

globalObjectName

グローバル・オブジェクトの名前

localObject

グローバル・オブジェクトの下位オブジェクト

localObjectName

ローカル・オブジェクトの名前

sqlName

XMLスキーマで定義された要素に対応するSQL属性の名前

overwrite

プロシージャによって要素の属性が上書きされるかどうかを指定するブール値。デフォルトはTRUEです。

shipTo要素には、xdb:SQLName="SHIPTO_SQLNAME"と同様の注釈が付けられます。

DECLARE
   xml_schema   XMLTYPE;
BEGIN
   SELECT out INTO xml_schema FROM annotation_tab;
   DBMS_XMLSCHEMA_ANNOTATE.SETSQLNAME (xml_schema, 
                                        'element', 'purchaseOrder', 
                                        'element', 'shipTo',
                                        'SHIPTO_SQLNAME');   
   UPDATE annotation_tab SET out = xml_schema;
END;
/

224.3.15 REMOVESQLTYPEプロシージャ

このプロシージャはSQLタイプを削除します。

最初のオーバーロードではグローバル要素からSQLタイプが削除され、2回目のオーバーロードでは複合タイプの内部にあるグローバル要素からそのタイプが削除されます。

構文

DBMS_XMLSCHEMA_ANNOTATE.REMOVESQLTYPE (
   xmlschema in out XMLType,  
   globalElementName   IN      VARCHAR2);
DBMS_XMLSCHEMA_ANNOTATE.REMOVESQLTYPE (
   xmlschema           IN OUT  XMLTYPE, 
   globalObject        IN      VARCHAR2, 
   globalObjectName    IN      VARCHAR2, 
   localObject         IN      VARCHAR2, 
   localObjectName     IN      VARCHAR2);

パラメータ

表224-16 REMOVESQLTYPEプロシージャのパラメータ

パラメータ 説明

xmlschema

注釈を付けるXMLスキーマ

globalObject

グローバル・オブジェクト(グローバル複合タイプまたはグローバル要素)

globalElementName

グローバル要素の名前

globalObjectName

グローバル・オブジェクトの名前

localObject

グローバル・オブジェクトの下位オブジェクト

localObjectName

ローカル・オブジェクトの名前

使用上のノート

このプロシージャは、SETSQLTYPEプロシージャとは逆の処理をします。

224.3.16 REMOVESQLTYPEMAPPINGプロシージャ

このプロシージャは、指定されたスキーマ・タイプのSQLタイプのマッピングを削除します。

構文

DBMS_XMLSCHEMA_ANNOTATE.REMOVESQLTYPEMAPPING (
   xmlschema        IN OUT  XMLTYPE,
   schemaTypeName   IN      VARCHAR2);

パラメータ

表224-17 REMOVESQLTYPEMAPPINGプロシージャのパラメータ

パラメータ 説明

xmlschema

注釈を付けるXMLスキーマ

schemaTypeName

スキーマ・タイプの名前

使用上のノート

このプロシージャは、SETSQLTYPEMAPPINGプロシージャとは逆の処理をします。

224.3.17 REMOVETABLEPROPSプロシージャ

このプロシージャは、CREATE TABLE文から表記憶域のプロパティを削除します。

このプロシージャはオーバーロードされています。各オーバーロードには、それぞれ異なるパラメータ要件が指定どおりに割り当てられています。

構文

DBMS_XMLSCHEMA_ANNOTATE.REMOVETABLEPROPS (
   xmlschema            IN OUT  XMLTYPE,
   globalElementName    IN      VARCHAR2);
DBMS_XMLSCHEMA_ANNOTATE.REMOVETABLEPROPS (
   xmlschema            IN OUT  XMLTYPE, 
   globalObject         IN      VARCHAR2, 
   globalObjectName     IN      VARCHAR2, 
   localElementName     IN      VARCHAR2);

パラメータ

表224-18 REMOVETABLEPROPSプロシージャのパラメータ

パラメータ 説明

xmlschema

注釈を付けるXMLスキーマ

globalElementName

スキーマ内のグローバル要素の名前

globalObject

グローバル・オブジェクト(グローバル複合タイプまたはグローバル要素)

globalObjectName

グローバル・オブジェクトの名前

localElementName

グローバル要素の下位のローカル要素の名前

使用上のノート

このプロシージャは、SETTABLEPROPSプロシージャとは逆の処理をします。

224.3.18 REMOVETIMESTAMPWITHTIMEZONEプロシージャ

このプロシージャは、XMLスキーマ内のすべてのdateTimeタイプの要素からTimeStampWithTimeZoneデータ・タイプの設定を削除します。

構文

DBMS_XMLSCHEMA_ANNOTATE.REMOVETIMESTAMPWITHTIMEZONE (
   xmlschema          IN OUT  XMLTYPE);

DBMS_XMLSCHEMA_ANNOTATE.REMOVETIMESTAMPWITHTIMEZONE (
   xmlschema         IN OUT  XMLTYPE,
   schemaTypeName    IN      VARCHAR2);

パラメータ

表224-19 REMOVETIMESTAMPWITHTIMEZONEプロシージャのパラメータ

パラメータ 説明

xmlschema

注釈を付けるXMLスキーマ

schemaTypeName

スキーマ・タイプの名前

使用上のノート

このプロシージャは、SETTIMESTAMPWITHTIMEZONEプロシージャとは逆の処理をします。

224.3.19 SETANYSTORAGEプロシージャ

このプロシージャは、指定された名前を持つ複合タイプの任意(ANY)の子に、SQLデータ・タイプを割り当てます。

構文

DBMS_XMLSCHEMA_ANNOTATE.SETANYSTORAGE )
   xmlschema       IN OUT  XMLType,
   complexTypeName IN      VARCHAR2,
   sqlTypeName     IN      VARCHAR2, 
   overwrite       IN      BOOLEAN DEFAULT TRUE);

パラメータ

表224-20 SETANYSTORAGEプロシージャのパラメータ

パラメータ 説明

xmlschema

注釈を付けるXMLスキーマ

complexTypeName

複合タイプの名前

sqlTypeName

SQLタイプの名前

overwrite

プロシージャによって要素の属性が上書きされるかどうかを指定するブール値。デフォルトはTRUEです。

複合タイプItemsxsd:any childに、xdb:SQLType="VARCHAR"と同様の注釈が割り当てられます。

DECLARE   xml_schema  XMLTYPE;BEGIN   SELECT out INTO xml_schema FROM annotation_tab;   DBMS_XMLSCHEMA_ANNOTATE.setAnyStorage (xml_schema,                                        'Items',                                         'VARCHAR');   UPDATE annotation_tab SET out = xml_schema;END;
/

224.3.20 SETDEFAULTTABLEプロシージャ

このプロシージャは、指定されたグローバル要素に表の名前を設定します。これは、最上位レベルの要素にスキーマ注釈xdb:defaultTable="<default_table_name>"を使用するのと同じです。

構文

DBMS_XMLSCHEMA_ANNOTATE.SETDEFAULTTABLE (
   xmlschema           IN  OUT  XMLTYPE,
   globalElementName   IN       VARCHAR2, 
   tableName           IN       VARCHAR2, 
   overwrite           IN       BOOLEAN   DEFAULT TRUE);

パラメータ

表224-21 SETDEFAULTTABLEプロシージャのパラメータ

パラメータ 説明

xmlschema

注釈を付けるXMLスキーマ

globalElementName

スキーマ内のグローバル要素の名前

tableName

表に割り当てられる名前

overwrite

プロシージャによって要素の属性が上書きされるかどうかを指定するブール値。デフォルトはTRUEです。

224.3.21 SETOUTOFLINEプロシージャ

このプロシージャは、SQLInline属性をFALSEに設定します。つまり、xdb:SQLInLine=FALSEを設定します。

これにより、XDBは、XMLドキュメントの対応する要素を別のXMLType表の行として表外に強制的に格納します。XDBは、XMLType表の各行への参照を、メイン表によりメンテナンスされるリンク表に格納します。

このプロシージャでは、表外の表が問合せのドライバとして動作する場合に、パフォーマンスを改善できることがあります。また、要素を表内および表外に格納することによって元表の列数が削減されるため、XMLスキーマ登録時に、一部の要素に複合タイプ(多数の要素からなる)が存在する場合でも、'4096 column limit'エラーを回避することができます。

関連項目:

Oracle XML DB開発者ガイド

3回のオーバーロードが行われます。

構文

SQLInline属性をFALSEに設定して、指定された要素の表外格納を強制します。

DBMS_XMLSCHEMA_ANNOTATE.SETOUTOFLINE (
   xmlschema          IN OUT  XMLType,  
   elementName        IN      VARCHAR2, 
   elementType        IN      VARCHAR2, 
   defaultTableName   IN      VARCHAR2, 
   overwrite          IN      BOOLEAN DEFAULT TRUE);

SQLInline属性をFALSEに設定して、ローカル名とグローバル名によって指定された要素の表外格納を強制します。

DBMS_XMLSCHEMA_ANNOTATE.SETOUTOFLINE (
   xmlschema          IN OUT  XMLType,
   globalObject       IN      VARCHAR2,
   globalObjectName   IN      VARCHAR2, 
   localElementName   IN      VARCHAR2, 
   defaultTableName   IN      VARCHAR2, 
   overwrite          IN      BOOLEAN DEFAULT TRUE);

SQLInline属性をFALSEに設定して表外格納を強制し、特定のグローバル要素へのすべての参照でデフォルト名を設定します。

DBMS_XMLSCHEMA_ANNOTATE.SETOUTOFLINE (
   xmlschema         IN OUT  XMLType, 
   reference         IN      VARCHAR2, 
   defaultTableName  IN      VARCHAR2, 
   overwrite         IN      BOOLEAN DEFAULT TRUE);

パラメータ

表224-22 SETOUTOFLINEプロシージャのパラメータ

パラメータ 説明

xmlschema

注釈対象のXML Schema。

elementName

要素名。

elementType

要素タイプ。

defaultTableName

デフォルト表の名前。

globalObject

グローバル・オブジェクト(グローバル複合タイプまたはグローバル要素)

globalObjectName

グローバル・オブジェクトの名前

localElementName

グローバル要素の下位のローカル要素の名前。

reference

グローバル要素の参照

overwrite

プロシージャによって要素の属性が上書きされるかどうかを指定するブール値。デフォルトはTRUEです。

使用上のノート

XMLスキーマ登録後のXMLインスタンス・データのロード前に、DBMS_XMLSTORAGE_MANAGE.SCOPEXMLREFERENCES()を使用して、参照範囲を表外の表にのみ設定してください。こうすることで、その後の問合せのパフォーマンスが向上します。

次の例に、3番目のオーバーロード方式を示します。要素のコメントには、xdb:defaultTable="CMMNT_DEFAULT_TABLE"と同様の注釈が付けられます。

DECLARE
   xml_schema xmltype;
BEGIN
SELECT OUT INTO xml_schema FROM annotation_tab;
 
DBMS_XMLSCHEMA_ANNOTATE.SETOUTOFLINE (xml_schema,
                                       'ipo:comment', 
                                       'CMMNT_DEFAULT_TABLE');
UPDATE annotation_tab SET OUT = xml_schema;
END;
/

224.3.22 SETSCHEMAANNOTATATIONSプロシージャ

このプロシージャはDBMS_XMLSCHEMA_ANNOTATE.GETSCHEMAANNOTATIONSをコールした結果として生じた注釈付き差分を取り込み、それを指定されたXMLスキーマにパッチ適用します。

構文

DBMS_XMLSCHEMA_ANNOTATE.SETSCHEMAANNOTATIONS (
   xmlschema     IN OUT xmlType,
   annotations   IN VARCHAR2);

パラメータ

表224-23 SETSCHEMAANNOTATIONSプロシージャのパラメータ

パラメータ 説明

xmlschema

パッチ適用されるXMLスキーマ。

annotations

元のXMLスキーマと注釈付きXMLスキーマに対してDBMS_XMLSCHEMA_ANNOTATE.GETSCHEMAANNOTATIONSをコールすることで作成された差分ドキュメント。

使用上のノート

DBMS_XMLSCHEMA_ANNOTATE.SETSCHEMAANNOTATATIONSは、Oracle Databaseリリース10.2では使用できません(Oracle Databaseリリース11.xのみ)。

次の例では、DBMS_XMLSCHEMA_ANNOTATE.SETSCHEMAANNOTATIONSGETSCHEMAANNOTATIONSファンクションを示します。

-- test getannotations and apply them
declare
 xml_schema xmltype;
 xml_schema2 xmltype;
 annotations xmltype;
begin
   select out into xml_schema from annotation_tab;
 
   -- get the annotations from the schema
   annotations := DBMS_XMLSCHEMA_ANNOTATE.getSchemaAnnotations (xml_schema);
 
   -- apply the annotations to the schema
   select inp into xml_schema2 from annotation_tab;
 
   DBMS_XMLSCHEMA_ANNOTATE.setSchemaAnnotations(xml_schema2, annotations);
 
   update annotation_tab t set t.out = xml_schema2;
end;
/

224.3.23 SETSQLCOLLTYPEプロシージャ

このプロシージャは、コレクションのSQLタイプ名を割り当てます。コレクションは、maxOccurs>1のグローバル要素またはローカル要素です。

XDBは、このプロシージャを使用して、指定されたユーザー定義の名前を持つSQLTypeを作成します。

2つのオーバーロードがあります。最初にXML要素に対応するSQLコレクション・タイプの名前が設定され、2番目で、指定された複合タイプの内部にあるXML要素に対応するSQLコレクション・タイプの名前が設定されます。

構文

DBMS_XMLSCHEMA_ANNOTATE.SETSQLCOLLTYPE (
   xmlschema          IN OUT   XMLTYPE, 
   elementName        IN       VARCHAR2, 
   sqlCollType        IN       VARCHAR2, 
   overwrite          IN       BOOLEAN DEFAULT TRUE);
DBMS_XMLSCHEMA_ANNOTATE.SETSQLCOLLTYPE (
   xmlschema          IN OUT XMLType,
   globalObject       IN VARCHAR2, 
   globalObjectName   IN VARCHAR2, 
   localElementName   IN VARCHAR2, 
   sqlCollType        IN VARCHAR2, 
   overwrite          IN BOOLEAN default TRUE );

パラメータ

表224-24 SETSQLCOLLTYPEプロシージャのパラメータ

パラメータ 説明

xmlschema

注釈を付けるXMLスキーマ

elementName

要素名。

sqlCollType

SQLコレクション・タイプ

globalObject

グローバル・オブジェクト(グローバル複合タイプまたはグローバル要素)

globalObjectName

グローバル・オブジェクトの名前

localElementName

グローバル要素の下位のローカル要素の名前

overwrite

プロシージャによって要素の属性が上書きされるかどうかを指定するブール値。デフォルトはTRUEです。

item要素には、xdb:SQLCollType="ITEM_SQL_COL_TYPE"と同様の注釈が付けられます。

declare
   xml_schema xmltype;
begin
   SELECT out INTO xml_schema FROM annotation_tab;
   DBMS_XMLSCHEMA_ANNOTATE.setSQLCollType (xml_schema,
                                        'item', 
                                        'ITEM_SQL_COL_TYPE',TRUE);
   UPDATE annotation_tab SET out = xml_schema;
end;

224.3.24 SETSQLNAMEプロシージャ

このプロシージャは、XMLスキーマで定義された要素に対応する名前をSQL属性に割り当てます。

構文

DBMS_XMLSCHEMA_ANNOTATE.SETSQLNAME (
   xmlschema          IN OUT  XMLType,
   globalObject       IN      VARCHAR2, 
   globalObjectName   IN      VARCHAR2,
   localObject        IN      VARCHAR2, 
   localObjectName    IN      VARCHAR2, 
   sqlName            IN      VARCHAR2, 
   overwrite          IN      BOOLEAN DEFAULT TRUE);

パラメータ

表224-25 SETSQLNAMEプロシージャのパラメータ

パラメータ 説明

xmlschema

注釈を付けるXMLスキーマ

globalObject

グローバル・オブジェクト(グローバル複合タイプまたはグローバル要素)

globalObjectName

グローバル・オブジェクトの名前

localObject

グローバル・オブジェクトの下位オブジェクト

localObjectName

ローカル・オブジェクトの名前

sqlName

XMLスキーマで定義された要素に対応するSQL属性の名前

overwrite

プロシージャによって要素の属性が上書きされるかどうかを指定するブール値。デフォルトはTRUEです。

shipTo要素には、xdb:SQLName="SHIPTO_SQLNAME"と同様の注釈が付けられます。

DECLARE
   xml_schema   XMLTYPE;
BEGIN
   SELECT out INTO xml_schema FROM annotation_tab;
   DBMS_XMLSCHEMA_ANNOTATE.SETSQLNAME (xml_schema, 
                                        'element', 'purchaseOrder', 
                                        'element', 'shipTo',
                                        'SHIPTO_SQLNAME');   
   UPDATE annotation_tab SET out = xml_schema;
END;
/

224.3.25 SETSQLTYPEプロシージャ

このプロシージャは、SQLタイプをグローバル・オブジェクトに割り当てます。

2つのオーバーロードがあります。最初のオーバーロードではSQLタイプがグローバル・オブジェクト(グローバル要素またはグローバル複合タイプなど)に割り当てられ、2回目のオーバーロードではローカル・オブジェクトに割り当てられます。

構文

DBMS_XMLSCHEMA_ANNOTATE.SETSQLTYPE (
   xmlschema            IN OUT   XMLTYPE,
   globalElementName    IN       VARCHAR2, 
   sqlType              IN       VARCHAR2, 
   overwrite            IN       BOOLEAN DEFAULT TRUE);

DBMS_XMLSCHEMA_ANNOTATE.SETSQLTYPE (
   xmlschema           IN OUT   XMLTYPE,
   globalObject        IN       VARCHAR2, 
   globalObjectName    IN       VARCHAR2, 
   localObject         IN       VARCHAR2, 
   localObjectName     IN       VARCHAR2,
   sqlType             IN       VARCHAR2, 
   overwrite           IN       BOOLEAN DEFAULT TRUE);

パラメータ

表224-26 SETSQLTYPEプロシージャのパラメータ

パラメータ 説明

xmlschema

注釈を付けるXMLスキーマ

globalObject

グローバル・オブジェクト(グローバル複合タイプまたはグローバル要素)

globalObjectName

グローバル・オブジェクトの名前

globalElementName

グローバル要素の名前

localObject

グローバル・オブジェクトの下位オブジェクト

localObjectName

ローカル・オブジェクトの名前

sqlType

指定したグローバル要素に割り当てられたSQLタイプ

overwrite

プロシージャによって要素の属性が上書きされるかどうかを指定するブール値。デフォルトはTRUEです。

purchaseOrder要素にはxdb:SQLType="PO_SQLTYPE"と同様の注釈が付けられ、shipTo要素にはxdb:SQLType="VARCHAR"と同様の注釈が付けられます。

DECLARE
   xml_schema  xmltype;
BEGIN
  SELECT out INTO xml_schema FROM annotation_tab;
  DBMS_XMLSCHEMA_ANNOTATE.setSQLType (xml_schema, 
                                        'purchaseOrder', 
                                        'PO_SQLTYPE');
  UPDATE annotation_tab SET out = xml_schema;
END;
/
 
DECLARE   xml_schema   xmltype;BEGIN  SELECT out INTO xml_schema FROM annotation_tab;  DBMS_XMLSCHEMA_ANNOTATE.setSQLType (xml_schema,                                         'element','purchaseOrder',                                         'element' ,'shipTo',                                        'VARCHAR');  UPDATE annotation_tab SET out = xml_schema;END;
/

224.3.26 SETSQLTYPEMAPPINGプロシージャ

このプロシージャは、スキーマ・タイプとSQLタイプのマッピングを定義します。

このプロシージャを使用する場合、スキーマ・タイプのすべてのインスタンスでSETSQLTYPEプロシージャをコールする必要はありません。かわりに、プロシージャがスキーマ全体を横断して、SQLタイプを自動的に割り当てます。

構文

DBMS_XMLSCHEMA_ANNOTATE.SETSQLTYPEMAPPING (
   xmlschema         IN OUT   XMLType, 
   schemaTypeName    IN       VARCHAR2, 
   sqlTypeName       IN       VARCHAR2, 
   overwrite         IN       BOOLEAN DEFAULT TRUE);

パラメータ

表224-27 SETSQLTYPEMAPPINGプロシージャのパラメータ

パラメータ 説明

xmlschema

注釈を付けるXMLスキーマ

schemaTypeName

スキーマ・タイプ。

sqlTypeName

SQLタイプの名前

overwrite

プロシージャによって要素の属性が上書きされるかどうかを指定するブール値。デフォルトはTRUEです

属性orderDateには、xdb:SQLType="DATE"と同様の注釈が付けられます。

declare   xml_schema xmltype;beginSELECT out INTO xml_schema FROM annotation_tab;DBMS_XMLSCHEMA_ANNOTATE.setSQLTypeMapping (xml_schema,                                         'date',                                         'DATE');UPDATE annotation_tab SET out = xml_schema;end;
/

224.3.27 SETTABLEPROPSプロシージャ

このプロシージャは、デフォルトのCREATE TABLE文に追加されるTABLE記憶域の句にプロパティを指定します。

次のように、異なるパラメータ要件を持つ2つのオーバーロードが存在します。

構文

DBMS_XMLSCHEMA_ANNOTATE.SETTABLEPROPS (
   xmlschema            IN OUT  XMLType, 
   globalElementName    IN      VARCHAR2, 
   tableProps           IN      VARCHAR2,    
   overwrite            IN      BOOLEAN DEFAULT TRUE);

DBMS_XMLSCHEMA_ANNOTATE.SETTABLEPROPS (
   xmlschema            IN OUT  XMLTYPE,
   globalObject         IN      VARCHAR2, 
   globalObjectName     IN      VARCHAR2, 
   localElementName     IN      VARCHAR2, 
   tableProps           IN      VARCHAR2, 
   overwrite            IN      BOOLEAN DEFAULT TRUE);

パラメータ

表224-28 SETTABLEPROPSプロシージャのパラメータ

パラメータ 説明

xmlschema

注釈を付けるXMLスキーマ

globalElementName

スキーマ内のグローバル要素の名前

tableProps

表のプロパティ。

globalObject

グローバル・オブジェクト(グローバル複合タイプまたはグローバル要素)

globalObjectName

グローバル・オブジェクトの名前

localElementName

グローバル要素の下位のローカル要素の名前

overwrite

プロシージャによって要素の属性が上書きされるかどうかを指定するブール値。デフォルトはTRUEです。

purchaseOrder要素には、xdb:tableProps="CACHE"と同様の注釈が付けられます。

DECLARE   xml_schema XMLTYPE;BEGIN   SELECT out INTO xml_schema FROM annotation_tab;   DBMS_XMLSCHEMA_ANNOTATE.SETTABLEPROPS(xml_schema,                                         'purchaseOrder' ,'CACHE');   UPDATE annotation_tab SET out = xml_schema;END;
/

224.3.28 SETTIMESTAMPWITHTIMEZONEプロシージャ

このプロシージャは、TIMESTAMPWITHTIMEZONEデータ・タイプを、XMLスキーマ内のすべてのdateTimeタイプの要素に設定します。

これは、xdb:SQLType="TIMESTAMP WITH TIME ZONE"をすべてのdateTimeオブジェクトに追加するのと同じです。

構文

DBMS_XMLSCHEMA_ANNOTATE.SETTIMESTAMPWITHTIMEZONE (
   xmlschema      IN OUT   XMLTYPE, 
   overwrite      IN       BOOLEAN DEFAULT TRUE);

パラメータ

表224-29 SETTIMESTAMPWITHTIMEZONEプロシージャのパラメータ

パラメータ 説明

xmlschema

注釈を付けるXMLスキーマ

overwrite

プロシージャによって要素の属性が上書きされるかどうかを指定するブール値。デフォルトはTRUEです。