Skip Headers

Oracle® XML DB Developer's Guide
10g Release 1 (10.1)

Part Number B10790-01
Go to Documentation Home
Go to Book List
Book List
Go to Table of Contents
Go to Index
Go to Master Index
Master Index
Go to Feedback page

Go to previous page
Go to next page
View PDF

I Oracle XML DB Feature Summary

This appendix describes the Oracle XML DB feature summary.

This appendix contains these topics:

Oracle XML DB Feature Summary

This Oracle XML DB feature list includes XML features available in the database since Oracle9i release 1 (9.0.1).

XMLType Features

The Oracle XML DB native datatype XMLType helps store and manipulate XML. Multiple storage options (Character Large Object (CLOB) or structured XML) are available with XMLType, and administrators can choose a storage that meets their requirements. CLOB storage is an un-decomposed storage that is like an image of the original XML.

With XMLType, you can perform SQL operations such as:

  • Queries, OLAP function invocations, and so on, on XML data, as well as XML operations

  • XPath searches, XSL transformations, and so on, on SQL data

You can build regular SQL indexes or Oracle Text indexes on XMLType for high performance for a very broad spectrum of applications. See Chapter 4, " XMLType Operations ".

DOM Fidelity

DOM fidelity means that your programs can manipulate exactly the same XML data that you got, and the process of storage does not affect the order of elements, the presence of namespaces and so on. Document Object Model (DOM) fidelity does not, however, imply maintenance of whitespace; if you want to preserve the exact layout of XML, including whitespace, you can use CLOB storage. See Chapter 3, " Using Oracle XML DB" and Chapter 5, " XML Schema Storage and Query: The Basics".

Document Fidelity

For applications that need to store XML while maintaining complete fidelity to the original, including whitespace characters, the CLOB storage option is available.

XML Schema

You can constrain XML documents to W3C XML Schemas. This provides a standard data model for all your data (structured and unstructured). You can use the database to enforce this data model. See Chapter 5, " XML Schema Storage and Query: The Basics" and Appendix B, " XML Schema Primer".

  • XML schema storage with DOM fidelity. Use structured storage (object-relational) columns, VARRAYs, nested tables, and LOBs to store any element or element-subtree in your XML schema and still maintain DOM fidelity (DOM stored == DOM retrieved). See Chapter 5, " XML Schema Storage and Query: The Basics". Note: If you choose CLOB storage option, available with XMLType since Oracle9i release 1 (9.0.1), you can preserve whitespace.

XML Piecewise Updates

In Oracle XML DB you can use XPath to specify individual elements and attributes of your document during updates, without rewriting the entire document. This is more efficient, especially for large XML documents. See Chapter 5, " XML Schema Storage and Query: The Basics".

XPath Search

Use XPath syntax (embedded in a SQL statement or as part of an HTTP request) to query XML content in the database. See Chapter 4, " XMLType Operations " and Chapter 9, " Full Text Search Over XML".

XML Indexes

Use XPath to specify parts of your document to create indexes for XPath searches. Enables fast access to XML documents. See Chapter 4, " XMLType Operations ".

SQL/XML Operators

SQL/XML operators comply with the emerging ANSI standard. For example, XMLElement() to create XML elements on the fly, to make XML queries and on-the-fly XML generation easy. These render SQL and XML metaphors interoperable.See Chapter 15, " Generating XML Data from the Database".

XSL Transformations for XMLType

Use XSLT to transform XML documents through a SQL operator. Database-resident, high-performance XSL transformations. See Chapter 8, " Transforming and Validating XMLType Data" and Appendix D, " XSLT Primer ".

Lazy XML Loading

Oracle XML DB provides a virtual DOM; it only loads rows of data as they are requested, throwing away previously referenced sections of the document if memory usage grows too large. Use this for high scalability when many concurrent users are dealing with large XML documents. The virtual DOM is available through Java interfaces running in a Java execution environment at the client or with the server. See Chapter 10, " PL/SQL API for XMLType ".

XML Views

Create XML views to create permanent aggregations of various XML document fragments or relational tables. You can also create views over heterogeneous data sources using Oracle Gateways. See Chapter 16, " XMLType Views".

PL/SQL, Java, and OCI Interfaces

Use DOM-based and other Application Program Interfaces for accessing and manipulating XML data. You can get static and dynamic access to XML. See Chapter 10, " PL/SQL API for XMLType ", Chapter 12, " Java API for XMLType ", and Chapter 13, " Using C API for XML With Oracle XML DB".

Schema Caching

Structural information (such as element tags, datatypes, and storage location) is kept in a special schema cache, to minimize access time and storage costs. See Chapter 5, " XML Schema Storage and Query: The Basics".

Generating XML

Use SQL operators such as SYS_XMLGEN and SYS_XMLAGG provide native for high-performance generation of XML from SQL queries. SQL/XML operators such as XMLElement() create XML tables and elements on the fly and make XML generation more flexible. See Chapter 15, " Generating XML Data from the Database".

Oracle XML DB Repository Features

Oracle XML DB repository is an XML repository built in the database for foldering. The repository structure enables you to view XML content stored in Oracle XML DB as a hierarchy of directory-like folders. See Chapter 18, " Accessing Oracle XML DB Repository Data".

  • The repository supports access control lists (ACLs) for any XMLType object, and lets you define your own privileges in addition to providing certain system-defined ones. See Chapter 23, " Oracle XML DB Resource Security".

  • Use the repository to view XML content as navigable directories through a number of popular clients and desktop tools. Items managed by the repository are called resources.

  • Hierarchical indexing is enabled on the repository. Oracle XML DB provides a special hierarchical index to speed folder search. Additionally, you can automatically map hierarchical data in relational tables into folders (where the hierarchy is defined by existing relational information, such as with CONNECT BY).

Searching the Repository Using SQL

You can search the XML repository using SQL. Operators like UNDER_PATH and DEPTH allow applications to search folders, XML file metadata (such as owner and creation date), and XML file content. See Chapter 20, " SQL Access Using RESOURCE_VIEW and PATH_VIEW ".

Accessing Repository Data Using WebDAV, HTTP, and FTP

You can access any foldered XMLType row using WebDAV and FTP. Users manipulating XML data in the database can use HTTP. See Chapter 24, " FTP, HTTP, and WebDAV Access to Repository Data".


Oracle XML DB provides versioning and version-management capabilities over resources managed by the XML repository. See Chapter 19, " Managing Oracle XML DB Resource Versions".

Standards Supported

Oracle XML DB supports major XML, SQL, Java, and Internet standards:

Oracle XML DB Limitations

The following lists Oracle XML DB limitations:


Oracle XML DB does not support replication of XMLType tables.

Extending Resource Metadata Properties

In the current release, you cannot extend the resource schema. However, you can set and access custom properties belonging to other namespaces, other than XDBResource.xsd, using DOM operations on the <Resource document.

References Within Scalars

Oracle does not currently support references within a scalar, XMLType, or LOB data column.

Thin JDBC Driver is Not Supported by All XMLType Functions

extract(), transform(), and existsNode() methods only work with the Thick JDBC driver. Not all oracle.xdb.XMLType functions are supported by the Thin JDBC driver. However, if you do not use oracle.xdb.XMLType classes and OCI driver, you could lose performance benefits associated with the intelligent handling of XML.

NVARCHAR and NCHAR SQLTypes are Not Supported

Oracle XML DB does not support NVARCHAR or NCHAR as a SQLType when registering an XML schema. In other words in the XML schema .xsd file you cannot specify that an element should be of type NVARCHAR or NCHAR. Also, if you provide your own type you should not use these datatypes.

SubstitutionGroup Limited to 2048 Elements

If a schema document uses more than 2048 substitutable elements for a given head element, error ORA-31160 occurs. Rewrite the schema to use less than 2048 substitutable elements for each head element.