Oracle® Database PL/SQL Packages and Types Reference 10g Release 2 (10.2) Part Number B14258-01 |
|
|
View PDF |
DBMS_XMLSCHEMA
package provides procedures to manage XML schemas. It is created by script dbmsxsch.sql
during Oracle database installation.
This chapter contains the following topics:
Overview
Constants
Views
This section contains topics which relate to using the DBMS_XMLSCHEMA
package.
This package provides subprograms to
Register an XML schema
Delete a previously registered XML schema
Re-compile a previously registered XML schema
Generate an XML schema
Evolves an XML schema
The DBMS_XMLSCHEMA
package uses the constants shown in following tables.
Table 129-1 DBMS_XMLSCHEMA Constants - Delete Option
Constant | Type | Value | Description |
---|---|---|---|
DELETE_RESTRICT |
NUMBER |
1 |
Deletion of an XML schema fails if there are any tables or XML schemas that depend on it |
DELETE_INVALIDATE |
NUMBER |
2 |
Deletion of an XML schema does not fail if there are tables or XML schemas that depend on it. All dependent tables and schemas are invalidated. |
DELETE_CASCADE |
NUMBER |
3 |
Deletion of an XML schema also drops all SQL types and default tables associated with it. SQL types are dropped only if gentypes argument was set to TRUE during registration of the XML schema. However, deletion of the XML schema fails if there are any instance documents conforming to the schema or any dependent XML schemas. |
DELETE_CASCADE_FORCE |
NUMBER |
4 |
This option is similar to DELETE_CASCADE except that it does not check for any stored instance documents conforming to the schema or any dependent XML schemas. Also, it ignores any errors. |
Table 129-2 DBMS_XMLSCHEMA Constants - Enable Hierarchy
Constant | Type | Value | Description |
---|---|---|---|
ENABLE_HIERARCHY_NONE |
PLS_INTEGER |
1 |
The ENABLE_HIERARCHY procedure of the DBMS_XDBZ package will not be called on any tables created while registering that schema |
ENABLE_HIERARCHY_CONTENTS |
PLS_INTEGER |
2 |
The ENABLE_HIERARCHY procedure of the DBMS_XDBZ package will be called for all tables created during schema registration with hierarchy_type as DBMS_XDBZ .ENABLE_CONTENTS |
ENABLE_HIERARCHY_RESMETADATA |
PLS_INTEGER |
3 |
The ENABLE_HIERARCHY procedure of the DBMS_XDBZ package will be called on all tables created during schema registration with hierarchy_type as DBMS_XDBZ .ENABLE_RESMETADATA . Users should pass in DBMS_XMLSCHEMA .ENABLE_RESMETADATA for schemas they intend to use as resource metadata tables. |
Table 129-3 DBMS_XMLSCHEMA Constants - Register CSID
Constant | Type | Value | Description |
---|---|---|---|
REGISTER_NODOCID |
NUMBER |
1 |
If a schema is registered for metadata use (using the value ENABLE_HIER_RESMETADATA for parameter enablehierarchy during registration), a column named DOCID is added to all tables created during schema registration. This constant can be used in the options argument of REGISTERSCHEMA to prevent the creation of this column if the user wishes to optimize on storage |
REGISTER_CSID_NULL |
NUMBER |
-1 |
If user wishes to not specify the character set of the input schema document when invoking REGISTERSCHEMA , this value can be used for the csid parameter |
The DBMS_XMLSCHEMA
package uses the views shown in Table 129-4. The columns of these views are described in detail in the Oracle Database Reference.
Table 129-4 Summary of Views used by DBMS_XMLSCHEMA
Schema | Description |
---|---|
USER_XML_SCHEMAS |
All registered XML Schemas owned by the user |
ALL_XML_SCHEMAS |
All registered XML Schemas usable by the current user |
DBA_XML_SCHEMAS |
All registered XML Schemas in the database |
DBA_XML_TABLES |
All XMLType tables in the system |
USER_XML_TABLES |
All XMLType tables owned by the current user |
ALL_XML_TABLES |
All XMLType tables usable by the current user |
DBA_XML_TAB_COLS |
All XMLType table columns in the system |
USER_XML_TAB_COLS |
All XMLType table columns in tables owned by the current user |
ALL_XML_TAB_COLS |
All XMLType table columns in tables usable by the current user |
DBA_XML_VIEWS |
All XMLType views in the system |
USER_XML_VIEWS |
All XMlType views owned by the current user |
ALL_XML_VIEWS |
All XMLType views usable by the current user |
DBA_XML_VIEW_COLS |
All XMLType view columns in the system |
USER_XML_VIEW_COLS |
All XMLType view columns in views owned by the current user |
ALL_XML_VIEW_COLS |
All XMLType view columns in views usable by the current user |
Table 129-5 DBMS_XMLSCHEMA Package Subprograms
Method | Description |
---|---|
COMPILESCHEMA Procedure |
Used to re-compile an already registered XML schema. This is useful for bringing a schema in an invalid state to a valid state. |
COPYEVOLVE Procedure |
Evolves registered schemas so that existing XML instances remain valid |
DELETESCHEMA Procedure |
Removes the schema from the database |
GENERATEBEAN Procedure |
Generates the Java bean code corresponding to a registered XML schema |
GENERATESCHEMA Function |
Generates an XML schema from an oracle type name |
GENERATESCHEMAS Function |
Generates several XML schemas from an oracle type name |
REGISTERSCHEMA Procedures |
Registers the specified schema for use by Oracle. This schema can then be used to store documents conforming to this. |
REGISTERURI Procedure |
Registers an XML schema specified by a URI name |
This procedure can be used to re-compile an already registered XML schema. This is useful for bringing a schema in an invalid state to a valid state. Can result in a ORA-31001
exception: invalid resource handle or path name.
Syntax
DBMS_XMLSCHEMA.COMPILESCHEMA( schemaurl IN VARCHAR2);
Parameters
Table 129-6 COMPILESCHEMA Procedure Parameters
Parameter | Description |
---|---|
schemaurl |
URL identifying the schema |
This procedure evolves registered schemas so that existing XML instances remain valid.
This procedure is accomplished in according to the following basic scenario (alternative actions are controlled by the procedure's parameters):
copies data in schema based XMLType
tables to temporary table storage
drops old tables
deletes old schemas
registers new schemas
creates new XMLType
tables
Populates new tables with data in temporary storage; auxiliary structures (constraints, triggers, indexes, and others) are not preserved
drops temporary tables
See Also:
|
Syntax
DBMS_XMLSCHEMA.COPYEVOLVE( schemaurls IN XDB$STRUBG_LIST_T, newschemas IN XMLSequenceType, transforms IN XMLSequenceType :=NULL, preserveolddocs IN BOOLEAN :=FALSE, maptablename IN VARCHAR2 :=NULL, generatetables IN BOOLEAN :=TRUE, force IN BOOLEAN :=FALSE, schemaowners IN XDB$STRING_LIST_T :=NULL);
Parameters
Table 129-7 COPYEVOLVE Procedure Parameters
Parameter | Description |
---|---|
schemaurls |
VARRAY of URLs of all schemas to be evolved. Should include the dependent schemas. Unless the FORCE parameter is TRUE , URLs should be in the order of dependency. |
newschemas |
VARRAY of new schema documents. Should be specified in same order as the corresponding URLs. |
transforms |
VARRAY of transforming XSL documents to be applied to schema-based documents. Should be specified in same order as the corresponding URLs. Optional if no transformations are required. |
preserveolddocs |
Default is FALSE , and temporary tables with old data are dropped. If TRUE , these table are still available after schema evolution is complete. |
maptabname |
Specifies the name of the table mapping permanent to temporary tables during the evolution process. Valid columns are:
|
generatetables |
Default is TRUE , and new tables will be generated.
If
|
force |
Default is FALSE .
If |
schemaowners |
VARRAY of names of schema owners. Should be specified in same order as the corresponding URLs. Default is NULL, assuming that all schemas are owned by the current user. |
Usage Notes
You should back up all schemas and documents prior to invocation because COPYEVOLVE Procedure deletes all conforming documents prior to implementing the schema evolution.
This procedure deletes the XML Schema specified by the URL.
Syntax
DBMS_XMLSCHEMA.DELETESCHEMA( schemaurl IN VARCHAR2, delete_option IN PLS_INTEGER := DELETE_RESTRICT);
Parameters
Table 129-8 DELETESCHEMA Procedure Parameters
Parameter | Description |
---|---|
schemaurl |
URL identifying the schema to be deleted |
Exceptions
Table 129-9 DELETESCHEMA Procedure Exceptions
Exception | Description |
---|---|
ORA-31001 |
Invalid resource handle or path name |
This procedure can be used to generate the Java bean code corresponding to a registered XML schema.
Syntax
DBMS_XMLSCHEMA.GENERATEBEAN( schemaurl IN VARCHAR2);
Parameters
Table 129-10 GENERATEBEAN Procedure Parameters
Parameter | Description |
---|---|
schemaurl |
Name identifying a registered XML schema |
Exceptions
Table 129-11 GENERATEBEAN Procedure Exceptions
Exception | Description |
---|---|
ORA-31001 |
Invalid resource handle or path name |
Usage Notes
Note that there is also an option to generate the beans as part of the registration procedure itself (see the genbean
parameter of the REGISTERSCHEMA Procedures).
This function generates XML schema(s) from an Oracle type name. It inlines all in one schema (XMLType
).
Syntax
DBMS_XMLSCHEMA.GENERATESCHEMA( schemaname IN VARCHAR2, typename IN VARCHAR2, elementname IN VARCHAR2 := NULL, recurse IN BOOLEAN := TRUE, annotate IN BOOLEAN := TRUE, embedcoll IN BOOLEAN := TRUE) RETURN SYS.XMLTYPE;
Parameters
Table 129-12 GENERATESCHEMA Function Parameters
Parameter | Description |
---|---|
schemaname |
Name of the database schema containing the type |
typename |
Name of the Oracle type |
elementname |
The name of the top level element in the XML Schema. Defaults to typename . |
recurse |
Whether or not to also generate schema for all types referred to by the type specified |
annotate |
Whether or not to put the SQL annotations in the XML Schema |
embedcoll |
Determines whether the collections should be embedded in the type which refers to them, or create a complextype . Cannot be FALSE if annotations are turned on |
Exceptions
Table 129-13 GENERATESCHEMA Procedure Exceptions
Exception | Description |
---|---|
ORA-31001 |
Invalid resource handle or path name |
This function generates XML schema(s) from an Oracle type name. It returns a collection of XMLType
s, one XML Schema document for each database schema.
Syntax
DBMS_XMLSCHEMA.GENERATESCHEMAS( schemaname IN VARCHAR2, typename IN VARCHAR2, elementname IN VARCHAR2 := NULL, schemaurl IN VARCHAR2 := NULL, annotate IN BOOLEAN := TRUE, embedcoll IN BOOLEAN := TRUE ) RETURN SYS.XMLTYPE;
Parameters
Table 129-14 GENERATESCHEMAS Procedure Parameters
Parameter | Description |
---|---|
schemaname |
Name of the database schema containing the type |
typename |
Name of the Oracle type |
elementname |
The name of the top level element in the XML Schema defaults to typeName |
schemaurl |
Specifies base URL where schemas will be stored, needed by top level schema for import statement |
annotate |
Whether or not to put the SQL annotations in the XML Schema |
embedcoll |
Determines whether the collections be embedded in the type which refers to them, or create a complextype . Cannot be FALSE if annotations are turned on |
Exceptions
Table 129-15 GENERATESCHEMAS Procedure Exceptions
Exception | Description |
---|---|
ORA-31001 |
Invalid resource handle or path name |
This procedure registers the specified schema for use by the database. The procedure is overloaded. The different functionality of each form of syntax is presented along with the definition.
Syntax
Registers a schema specified as a VARCHAR2
:
DBMS_XMLSCHEMA.REGISTERSCHEMA( schemaurl IN VARCHAR2, schemadoc IN VARCHAR2, local IN BOOLEAN := TRUE, gentypes IN BOOLEAN := TRUE, genbean IN BOOLEAN := FALSE, gentables IN BOOLEAN := TRUE, force IN BOOLEAN := FALSE, owner IN VARCHAR2 := NULL, enablehierarchy IN PLS_INTEGER := DBMS_XMLSCHEMA.ENABLE_CONTENTS, options IN PLS_INTEGER := 0);
Registers the schema specified as a BFILE
. The contents of the schema document must be in the database character set:
DBMS_XMLSCHEMA.REGISTERSCHEMA( schemaurl IN VARCHAR2, schemadoc IN BFILE, local IN BOOLEAN := TRUE, gentypes IN BOOLEAN := TRUE, genbean IN BOOLEAN := FALSE, force IN BOOLEAN := FALSE, owner IN VARCHAR2 := NULL, enablehierarchy IN PLS_INTEGER := DBMS_XMLSCHEMA.ENABLE_CONTENTS, options IN PLS_INTEGER := 0);
Registers the schema specified as a BFILE
and identifies the character set id of the schema document:
DBMS_XMLSCHEMA.REGISTERSCHEMA( schemaurl IN VARCHAR2, schemadoc IN BFILE, local IN BOOLEAN := TRUE, gentypes IN BOOLEAN := TRUE, genbean IN BOOLEAN := TRUE, gentables IN BOOLEAN := TRUE, force IN BOOLEAN := TRUE, owner IN VARCHAR2 := '', csid IN NUMBER, enablehierarchy IN PLS_INTEGER := DBMS_XMLSCHEMA.ENABLE_CONTENTS, options IN PLS_INTEGER := 0);
Registers the schema specified as a BLOB
. The contents of the schema document must be in the database character set:
DBMS_XMLSCHEMA.REGISTERSCHEMA( schemaurl IN VARCHAR2, schemadoc IN BLOB, local IN BOOLEAN := TRUE, genTypes IN BOOLEAN := TRUE, genBean IN BOOLEAN := FASLE, force IN BOOLEAN := FALSE, owner IN VARCHAR2 := NULL, enablehierarchy IN PLS_INTEGER := DBMS_XMLSCHEMA.ENABLE_CONTENTS, options IN PLS_INTEGER := 0);
Registers the schema specified as a BLOB
and identifies the character set id of the schema document:
DBMS_XMLSCHEMA.REGISTERSCHEMA( schemaurl IN VARCHAR2, schemadoc IN BLOB, local IN BOOLEAN := TRUE, gentypes IN BOOLEAN := TRUE, genbean IN BOOLEAN := TRUE, gentables IN BOOLEAN := TRUE, force IN BOOLEAN := TRUE, owner IN VARCHAR2 := '', csid IN NUMBER, enablehierarchy IN PLS_INTEGER := DBMS_XMLSCHEMA.ENABLE_CONTENTS, options IN PLS_INTEGER := 0);
Registers the schema specified as a CLOB
DBMS_XMLSCHEMA.REGISTERSCHEMA( schemaurl IN VARCHAR2, schemadoc IN CLOB, local IN BOOLEAN := TRUE, gentypes IN BOOLEAN := TRUE, genbean IN BOOLEAN := FALSE, force IN BOOLEAN := FALSE, owner IN VARCHAR2 := NULL, options IN PLS_INTEGER := 0);
Registers the schema specified as an XMLTYPE
.
DBMS_XMLSCHEMA.REGISTERSCHEMA( schemaurl IN VARCHAR2, schemadoc IN SYS.XMLTYPE, local IN BOOLEAN := TRUE, gentypes IN BOOLEAN := TRUE, genbean IN BOOLEAN := FALSE, force IN BOOLEAN := FALSE, owner IN VARCHAR2 := NULL, enablehierarchy IN PLS_INTEGER := DBMS_XMLSCHEMA.ENABLE_CONTENTS, options IN PLS_INTEGER := 0);
Registers the schema specified as a BLOB
. The contents of the schema document must be in the database character set:
DBMS_XMLSCHEMA.REGISTERSCHEMA( schemaurl IN VARCHAR2, schemadoc IN SYS.URIType, local IN BOOLEAN := TRUE, gentypes IN BOOLEAN := TRUE, genbean IN BOOLEAN := FALSE, force IN BOOLEAN := FALSE, owner IN VARCHAR2 := NULL, enablehierarchy IN PLS_INTEGER := DBMS_XMLSCHEMA.ENABLE_CONTENTS, options IN PLS_INTEGER := 0);
Parameters
Table 129-16 REGSITERSCHEMA Procedure Parameters
Parameter | Description |
---|---|
schemaurl |
URL that uniquely identifies the schema document. This value is used to derive the path name of the schema document within the database hierarchy. Can be used inside schemalocation attribute of XML Schema import element. |
schemadoc |
A valid XML schema document |
local |
Is this a local or global schema?
You need write privileges on the directory to be able to register a schema as global. |
gentypes |
Determines whether the schema compiler generates object types. By default, TRUE. |
genbean |
Determines whether the schema compiler generates Java beans. By default, FALSE . |
gentables |
Determines whether the schema compiler generates default tables. By default, TRUE |
force |
If this parameter is set to TRUE , the schema registration will not raise errors. Instead, it creates an invalid XML schema object in case of any errors. By default, the value of this parameter is FALSE . |
owner |
This parameter specifies the name of the database user owning the XML schema object. By default, the user registering the schema owns the XML schema object. This parameter can be used to register a XML schema to be owned by a different database user. |
csid |
Identifies the character set of the input schema document. If this value is 0 , the schema document's encoding is determined by the current rule for "text/xml" MIME type. |
enablehierarchy |
|
options |
Additional options to specify how the schema should be registered. The various options are represented as bits of an integer and the options parameter should be constructed by doing a BITOR of the desired bits. Possible bits:
|
This procedure registers an XML Schema specified by a URI name.
Syntax
DBMS_XMLSCHEMA.REGISTERURI( schemaurl IN VARCHAR2, schemadocuri IN VARCHAR2, local IN BOOLEAN := TRUE, gentypes IN BOOLEAN := TRUE, genbean IN BOOLEAN := FALSE, gentables IN BOOLEAN := TRUE, force IN BOOLEAN := FALSE, owner IN VARCHAR2 := NULL, options IN PLS_INTEGER := 0);
Parameters
Table 129-17 REGISTERURI Procedure Parameters
Parameter | Description |
---|---|
schemaurl |
Uniquely identifies the schema document. Can be used inside schemaLocation attribute of XML Schema import element. |
schemadocuri |
Pathname (URI) corresponding to the physical location of the schema document. The URI path could be based on HTTP, FTP, DB or Oracle XML DB protocols. This function constructs a URIType instance using the urifactory - and invokes the REGISTERSCHEMA Procedures function. |
local |
Determines whether this is a local or global schema. By default, all schemas are registered as local schemas, under /sys/schemas/ <username>/... If a schema is registered as global, it is added under /sys/schemas/PUBLIC/... The user needs write privileges on the directory to register a global schema. |
gentypes |
Determines whether the compiler generate object types. By default, TRUE . |
genbean |
Determines whether the compiler generate Java beans. By default, FALSE . |
gentables |
Determines whether the compiler generate default tables. TRUE by default. |
force |
TRUE: schema registration will not raise errors. Instead, it creates an invalid XML schema object in case of any errors. By default, the value of this parameter is FALSE . |
owner |
This parameter specifies the name of the database user owning the XML schema object. By default, the user registering the schema owns the XML schema object. This parameter can be used to register a XML schema to be owned by a different database user. |
options |
Additional options to specify how the schema should be registered. The various options are represented as bits of an integer and the options parameter should be constructed by doing a BITOR of the desired bits. Possible bits:
|