Changes in This Release for Oracle XML DB Developer's Guide

This preface contains descriptions of changes in Oracle XML DB for the last two major database releases.

Changes in Oracle Database 12c Release 2 ( for Oracle XML DB

The following are changes in Oracle Database 12c Release 2 ( for Oracle XML DB.

New Features

The following features are new in this release.

Improved Partitioning Support for XMLIndex

The use of partitioned XMLType data with XMLIndex indexing has been improved.

  • You can now create an XMLIndex index on XMLType data in a table that is interval-partitioned or reference-partitioned.

  • New PL/SQL procedures in package DBMS_XMLSTORAGE_MANAGE perform exchange partitioning for reference-partitioned tables that use XMLIndex: refPartitionExchangeIn and refPartitionExchangeOut.

  • You can now specify TABLESPACE for XMLIndex at the index level, as well as at the table level and the partition level.

Client-Side Decoding of Binary XML Data

You can now specify client-side decoding for binary XML data, using property ORACLE.XDB.XMLType.decode_on_client on a JDBC connection. By default, client-side decoding is enabled. To disable it, set the property value to FALSE using method setClientInfo.

Change XMLType Storage Model Using Online Redefinition

You can now use online redefinition to move XMLType data to or from the binary XML storage format.

XML Pushdown with Exadata

When XML data is stored using a SecureFiles LOB of less than 4K bytes, the evaluation in a SQL WHERE clause of Oracle SQL condition XMLExists or Oracle SQL function XMLCast applied to the return value of Oracle SQL function XMLQuery can sometimes be offloaded to an Exadata Storage Server.

Hierarchy-Enabled Table Support for Replication

Hierarchy-enabled XMLType tables are now supported for Oracle Data Guard SQL Apply (logical standby) and Oracle GoldenGate replication.

SCAN Listener Balances HTTP Requests Across Nodes of a RAC Cluster

A Single Client Access Name (SCAN) Listener now balances HTTP requests across the nodes of a RAC Cluster. However, you cannot use privileged ports (port number less than 1024) with a SCAN Listener.

Load Subdocuments From XML Documents Using Access Driver ORACLE_LOADER

You can now use the XMLTAG clause of access driver ORACLE_LOADER to specify XML tags that are used to load subdocuments from an XML document.

Deprecated Features

The following features are deprecated in this release, and may be desupported in a future release.

  • Oracle XQuery function ora:contains. Use XQuery Full Text instead. See Migrating from Using Oracle Text Index to XML Search Index.

  • Oracle SQL function XMLRoot. Use SQL/XML function XMLSerialize() with a version number instead.

  • Nested tables stored as index-ordered tables (IOTs). This includes both the use of option DBMS_XMLSCHEMA.REGISTER_NT_AS_IOT and the use of clause NESTED TABLE N STORE AS ... (ORGANIZATION INDEX) when creating a table with nested-table column N.

    Instead, store nested-table columns using heap storage (the default behavior for PL/SQL procedure DBMS_XMLSCHEMA.registerSchema).
  • PL/SQL procedure DBMS_XSLPROCESSOR.CLOB2FILE. Use the new procedure DBMS_LOB.CLOB2FILE instead.


  • Use of XLink with Oracle XML DB. See Use of XLink and XInclude with Oracle XML DB

  • Oracle XML DB Content Connector, which implements Content Repository API for Java (also known as JCR), a Java API standard developed by the Java community as JSR-170. See Deprecated Content Repository API for Java.

  • The XMLType Java constructors and methods that are listed in Table -1.

Table -1 XMLType Java Constructors and Methods Deprecated in Oracle Database 12c Release 2 (

Deprecated XMLType Constructor or Method Replacement
createXML(java.sql.Connection conn,
          java.lang.String xmlval
java.sql.Connection conn;
SQLXML newXML = conn.createSQLXML();
createXML(Connection conn,
          Document dom)
java.sql.Connection conn;
SQLXML newXML = conn.createSQLXML();
DOMResult dom = newXML.setResult(DOMResult.class);
DOMSource ds;
Document doc = (Document) ds.getNode();
String str = sx.getString();
existsNode(java.lang.String xpath,
           java.lang.String nsmap)


extract(java.lang.String xpath,
        java.lang.String nsmap)

No replacement.


No replacement.


Desupported Features

The following features are desupported in this release.

  • Oracle XPath function ora:instanceof – Use XQuery operator instance of instead.

  • Oracle XPath function ora:instanceof-only – Use XML Schema attribute xsi:type instead.

  • Oracle XQuery function ora:view – Use XQuery functions fn:doc and fn:collection instead.

  • XMLIndex index on CLOB XMLType data that is embedded within object-relational XMLType data.

  • Function-based indexes on XMLType – Use XMLIndex index with a structured component instead.

  • XML Schema annotation (attribute) csx:encodingType.

  • The Java classes in package oracle.xdb.dom.

  • The following PL/SQL procedures in package DBMS_XDB_ADMIN:

    • createRepositoryXMLIndex

    • XMLIndexAddPath

    • XMLIndexRemovePath

    • dropRepositoryXMLIndex

Changes in Oracle Database 12c Release 1 ( for Oracle XML DB

The following are changes in Oracle Database 12c Release 1 ( for Oracle XML DB.

New Features

The following features are new in this release.

JSON Support

Oracle Database now supports JavaScript Object Notation (JSON).

PL/SQL Subprograms For Realm Configuration

PL/SQL subprograms getHTTPConfigRealm and setHTTPConfigRealm have been added to package DBMS_XDB_CONFIG.

Changes in Oracle Database 12c Release 1 ( for Oracle XML DB

The following are changes in Oracle XML DB Developer's Guide for Oracle Database 12c Release 1 (

New Features

The following features are new in this release.

Oracle XML DB is Mandatory – You Cannot Uninstall it

Oracle XML DB is now a mandatory component of Oracle Database. You cannot uninstall it, and there is no option not to include it when you create Oracle Database. It is automatically installed when you create a new database or when you upgrade an existing database to Oracle Database 12c.

See also Automatic Installation of Oracle XML DB.

XQuery Update Support

Oracle XML DB now supports XQuery Update. The Oracle-specific SQL functions for updating XML data are deprecated.

See Also:

XQuery Full Text Support

Oracle XML DB now supports XQuery Full Text.

New XQuery Extension-Expression Pragmas

New XQuery extension-expression pragmas are described.

The following XQuery extension-expression pragmas are new:

  • (#ora:child-element-name name #) – Specify the name to use for a child element that is inserted.

  • (#ora:no_schema #) – Do not raise an error if an XQuery Full Text expression is used with XML Schema-based XMLType data.

  • (#ora:use_xmltext_idx #) – Use an XML search index, if available, to evaluate the query. Do not use an XMLIndex index or streaming evaluation.

Replication and Rolling Upgrade Support

The following new features provide better support for replication and rolling upgrade.

Oracle GoldenGate and Oracle Data Guard SQL Apply Support for XMLType

Oracle GoldenGate replication and Oracle Data Guard SQL Apply (logical standby) are now supported for all XMLType storage models.

See Also:

Rolling Upgrade Supports Oracle XML DB Repository

When you perform a rolling upgrade, Oracle XML DB Repository operations are applied on the standby database as part of the SQL apply step.

See Upgrade or Downgrade of an Existing Oracle XML DB Installation for applicable restrictions.

Parallel DML Support for XMLType

Support for parallel DML has been improved for XMLType storage model binary XML using SecureFiles LOBs. The performance and scalability have been improved for both CREATE TABLE AS SELECT and INSERT AS SELECT.

XMLIndex Improvements

Indexing XML data using XMLIndex has been improved in the following ways.

XMLIndex Index Synchronization Improvements

XMLIndex index synchronization has been improved in two ways.

  • Less undo space is used.

  • If an error is raised during indexing then most of the index synchronization work is saved.

XMLIndex Support for Hash Partitioning

You can create a locally partitioned XMLindex index on XMLType tables and columns that you have partitioned using hash partitioning (in addition to range and list partitioning).

PL/SQL Package DBMS_XDB Is Split

The subprograms and constants of PL/SQL package DBMS_XDB have been divided among the following packages:




Packages DBMS_XDB_CONFIG and DBMS_XDB_REPOS are new in Oracle Database 12c Release 1 ( Package DBMS_XDB continues to exist for backward compatibility.

See Also:

Access to the Repository Using Digest Access Authentication

Users can now access Oracle XML DB Repository using digest access authentication (also known as digest authentication), in addition to basic authentication. This provides encryption of user credentials (name, password, etc.) without the overhead of complete data encryption.

User credentials are case-sensitive. In particular, a user name to be authenticated must exactly match the name as it was created (which by default is all uppercase).

See Also:

DBFS Support

You can now access Oracle Database File System (DBFS) files and folders from Oracle XML DB Repository, under the repository path /dbfs. This new feature provides you with FTP and HTTP(S)/WebDAV access to DBFS files and folders.

XQuery API for Java (XQJ) Support

You can now use Oracle XML Developer's Kit and XQuery API for Java (XQJ) to access XML data in the database using XQuery expressions from Java programs. In particular, you can access XML data stored in remote databases from a local Java program.

Deprecated Features

The following features are deprecated in this release, and may be desupported in a future release.

  • CLOB storage of XMLType, also known as unstructured storage, is deprecated. Use binary XML storage of XMLType instead.

    If you need to preserve insignificant whitespace then store two copies of your original XML document: one as an XMLType instance for database use and XML processing, the other as a CLOB instance to provide document fidelity.

  • Creation of an XMLIndex index over an XML fragment stored as a CLOB instance embedded in object-relational XMLType data is deprecated. If you need to index the data in such a fragment then store the document using binary XML storage, not object-relational storage.

  • The following PL/SQL subprograms in package DBMS_XMLSCHEMA are deprecated:

    • generateSchema

    • generateSchemas

    There are no replacements for these constructs and there is no workaround for this change.

  • PL/SQL package DBMS_XDB_CONFIG is new. All Oracle XML DB configuration functions, procedures, and constants have been moved from package DBMS_XDB to DBMS_XDB_CONFIG. They are deprecated for package DBMS_XDB. Oracle recommends that you use them in package DBMS_XDB_CONFIG instead.

    These are the subprograms that are deprecated in package DBMS_XDB:








    • CFG_GET

















    These are the constants that are deprecated in package DBMS_XDB:





    See Also:

    Oracle Database PL/SQL Packages and Types Reference, Chapter "DBMS_XDB_CONFIG"

  • All Oracle SQL functions for updating XML data are deprecated. Oracle recommends that you use XQuery Update instead. These are the deprecated XML updating functions:

    • updateXML

    • insertChildXML

    • insertChildXMLbefore

    • insertChildXMLafter

    • insertXMLbefore

    • insertXMLafter

    • appendChildXML

    • deleteXML

  • Oracle SQL function sys_xmlgen is deprecated. Oracle recommends that you use the SQL/XML generation functions instead.

  • The following Oracle XQuery functions are deprecated. Use the corresponding standard XQuery functions instead, that is, the functions with the same names but with namespace prefix fn.

    • ora:matches – use fn:matches instead

    • ora:replace – use fn:replace instead

  • The following Oracle constructs that provide support for XML translations are deprecated.


    • Oracle XPath function ora:translate

    • XML Schema annotations xdb:maxOccurs, xdb:srclang, and xdb:translate

    There are no replacements for these constructs and there is no workaround for this change.

  • The following XML Schema annotations are deprecated:

    • xdb:defaultTableSchema

    • xdb:maintainOrder

    • xdb:mapUnboundedStringToLob

    • xdb:maxOccursFoot 1

    • xdb:SQLCollSchema

    • xdb:SQLSchema

    • xdb:srclangFootref 1

    • xdb:storeVarrayAsTable

    • xdb:translateFootref 1

    There are no replacements for these constructs, and there is no workaround for this change.

  • The value xml_clobs for export parameter data_options is deprecated starting with Oracle Database 12c Release 1 (12.1).

Desupported Features

The following features are no longer supported by Oracle.

See Oracle Database Upgrade Guide for a complete list of desupported features in this release.

  • CTXSYS.CTXXPATH index is desupported. Use XMLIndex indexes instead

Footnote Legend

Footnote 1:

See also Deprecated Features regarding deprecated support for XML translations.