|Oracle® XML DB Developer's Guide
10g Release 1 (10.1)
Part Number B10790-01
This appendix describes the Oracle XML DB feature summary.
This appendix contains these topics:
This Oracle XML DB feature list includes XML features available in the database since Oracle9i release 1 (9.0.1).
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.
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 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".
For applications that need to store XML while maintaining complete fidelity to the original, including whitespace characters, the CLOB storage option is available.
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 schema validation. While storing XML documents in Oracle XML DB you can optionally ensure that their structure complies (is "valid" against) with specific XML Schema. See Chapter 8, " Transforming and Validating XMLType Data".
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".
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 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".
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 ".
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 ".
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".
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".
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".
Use SQL operators such as
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 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
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 ".
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".
Oracle XML DB supports major XML, SQL, Java, and Internet standards:
W3C XML Schema 1.0 Recommendation
W3C XPath 1.0 Recommendation
W3C XSL 1.0 Recommendation
W3C DOM Recommendation Levels 1.0 and 2.0 Core
Protocol support: HTTP, FTP, IETF WebDAV, as well as Oracle Net
Java Servlet version 2.2, (except that the Servlet WAR file, web.xml is not supported in its entirety, and only one ServletContext and one web-app are currently supported, and stateful servlets are not supported)
Web Services and Simple Object Access Protocol (SOAP). You can access XML stored in the server from SOAP requests
ISO-ANSI Working Draft for XML-Related Specifications (SQL/XML) [ISO/IEC 9075 Part 14 and ANSI]. Emerging ANSI SQL/XML functions to query XML from SQL. The task force defining these specifications falls under the auspices of the International Committee for Information Technology Standards (INCITS). The SQL/XML specification will be fully aligned with SQL:2003
Java Database Connectivity (JDBC)
The following lists Oracle XML DB limitations:
Oracle XML DB does not support replication of
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.
Oracle does not currently support references within a scalar,
XMLType, or LOB data column.
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.
Oracle XML DB does not support
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
NCHAR. Also, if you provide your own type you should not use these datatypes.
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.