Table of Contents
- List of Examples
- List of Figures
- List of Tables
- Title and Copyright Information
- Preface
-
Part I Oracle XML DB Basics
- 1 Introduction to Oracle XML DB
- 2 Getting Started with Oracle XML DB
-
3
Overview of How To Use Oracle XML DB
- Creating XMLType Tables and Columns
- Creating XMLType Columns in Shared and Duplicated Tables
- Creating Virtual Columns on XMLType Data Stored as Binary XML
- Partitioning Tables That Contain XMLType Data Stored as Binary XML
- Enforcing XML Data Integrity Using the Database
-
Loading XML Content into Oracle XML DB
- Loading XML Content Using SQL or PL/SQL
- Loading XML Content Using Java
- Loading XML Content Using C
- Loading Large XML Files that Contain Small XML Documents
- Loading Large XML Files Using SQL*Loader
- Loading XML Documents into the Repository Using DBMS_XDB_REPOS
- Loading Documents into the Repository Using Protocols
-
Querying XML Content Stored in Oracle XML DB
- PurchaseOrder XML Document Used in Examples
- Retrieving the Content of an XML Document Using Pseudocolumn OBJECT_VALUE
- Accessing Fragments or Nodes of an XML Document Using XMLQUERY
- Accessing Text Nodes and Attribute Values Using XMLCAST and XMLQUERY
- Searching an XML Document Using XMLEXISTS, XMLCAST, and XMLQUERY
- Performing SQL Operations on XMLType Fragments Using XMLTABLE
- Updating XML Content Stored in Oracle XML DB
- Generating XML Data from Relational Data
- Character Sets of XML Documents
- Migrating XMLType Data to Transportable Binary XML (TBX)
-
Part II Manipulation of XML Data in Oracle XML DB
-
4
XQuery and Oracle XML DB
- Overview of the XQuery Language
- Overview of XQuery in Oracle XML DB
- SQL/XML Functions XMLQUERY, XMLTABLE, XMLExists, and XMLCast
- URI Scheme oradb: Querying Table or View Data with XQuery
- Oracle XQuery Extension Functions
- Oracle XQuery Extension-Expression Pragmas
- XQuery Static Type-Checking in Oracle XML DB
- Oracle XML DB Support for XQuery
-
5
Query and Update of XML Data
- Using XQuery with Oracle XML DB
- Querying XML Data Using SQL and PL/SQL
- Using the SQL*Plus XQUERY Command
- Using XQuery with PL/SQL, JDBC, and ODP.NET to Access Database Data
- Updating XML Data
- Performance Tuning for XQuery
-
6
Indexes for XMLType Data
- Oracle XML DB Tasks Involving Indexes
- Overview of Indexing XMLType Data
-
XMLIndex
- Advantages of XMLIndex
- XMLIndex Components
- XMLIndex Structured Component
- Creating, Dropping, Altering, and Examining an XMLIndex Index
-
Use of XMLIndex with a Structured Component
- Using Namespaces and Storage Clauses with an XMLIndex Structured Component
- Adding a Structured Component to an XMLIndex Index
- Using Non-Blocking ALTER INDEX with an XMLIndex Structured Component
- Modifying the Data Type of a Structured XMLIndex Component
- Dropping an XMLIndex Structured Component
- Indexing the Relational Tables of a Structured XMLIndex Component
- How to Tell Whether XMLIndex is Used
- Turning Off Use of XMLIndex
- Guidelines for Using XMLIndex with a Structured Component
- XMLIndex Partitioning and Parallelism
- Collecting Statistics on XMLIndex Objects for the Cost-Based Optimizer
- Data Dictionary Static Public Views Related to XMLIndex
- PARAMETERS Clause for CREATE INDEX and ALTER INDEX
- XML Search Index: Indexing for Full Text Search and Ad-hoc Queries
- Indexing XMLType Data Stored Object-Relationally
- 7 Transformation and Validation of XMLType Data
-
4
XQuery and Oracle XML DB
-
Part III Relational Data To and From XML Data
-
8
Generation of XML Data from Relational Data
- Overview of Generating XML Data
- Generation of XML Data Using SQL Functions
- Generation of XML Data Using DBMS_XMLGEN
- SYS_XMLAGG Oracle SQL Function
- Ordering Query Results Before Aggregating, Using XMLAGG ORDER BY Clause
- Returning a Rowset Using XMLTABLE
- 9 Relational Views over XML Data
-
10
XMLType Views
- What Are XMLType Views?
- CREATE VIEW for XMLType Views: Syntax
- Creating Non-Schema-Based XMLType Views
- Creating XML Schema-Based XMLType Views
- Creating XMLType Views from XMLType Tables
- Referencing XMLType View Objects Using SQL Function REF
- Using DML (Data Manipulation Language) on XMLType Views
-
8
Generation of XML Data from Relational Data
-
Part IV XMLType APIs
-
11
PL/SQL APIs for XMLType
- Overview of PL/SQL APIs for XMLType
-
PL/SQL DOM API for XMLType (DBMS_XMLDOM)
- Overview of the W3C Document Object Model (DOM) Recommendation
- PL/SQL DOM API for XMLType (DBMS_XMLDOM): Features
- Application Design Using Oracle XML Developer's Kit and Oracle XML DB
- Preparing XML Data to Use the PL/SQL DOM API for XMLType
- XML Schema Types Are Mapped to SQL Object Types
- Wrap Existing Data as XML with XMLType Views
- DBMS_XMLDOM Methods Supported by Oracle XML DB
- PL/SQL DOM API for XMLType: Node Types
- PL/SQL Function NEWDOMDOCUMENT and DOMDOCUMENT Nodes
- DOM NodeList and NamedNodeMap Objects
- Overview of Using the PL/SQL DOM API for XMLType (DBMS_XMLDOM)
- PL/SQL DOM API for XMLType – Examples
- Large Node Handling Using DBMS_XMLDOM
- Get-Push Model for Large Node Handling
- Get-Pull Model for Large Node Handling
- Set-Pull Model for Large Node Handling
- Set-Push Model for Large Node Handling
- Determining Binary Stream or Character Stream for Large Node Handling
- PL/SQL Parser API for XMLType (DBMS_XMLPARSER)
- PL/SQL XSLT Processor for XMLType (DBMS_XSLPROCESSOR)
- 12 PL/SQL Package DBMS_XMLSTORE
-
13
Java DOM API for XMLType
- Overview of Java DOM API for XMLType
- Access to XMLType Data Using JDBC
- Manipulating XML Database Documents Using JDBC
- Loading a Large XML Document into the Database Using JDBC
- MS Windows Java Security Manager Permissions for Java DOM API with a Thick Connection
- Creating XML Schema-Based Documents
- XMLType Instance Representation in Java (JDBC or SQLJ)
- Classes of Java DOM API for XMLType
- Using the Java DOM API for XMLType
- Large XML Node Handling with Java
- Using the Java DOM API and JDBC with Binary XML
-
14
C DOM API for XMLType
- Overview of the C DOM API for XMLType
- Access to XMLType Data Stored in the Database Using OCI
- Creating XMLType Instances on the Client
- XML Context Parameter for C DOM API Functions
- Initializing and Terminating an XML Context
- Using the C API for XML with Binary XML
- Using the Oracle XML Developer's Kit Pull Parser with Oracle XML DB
- Common XMLType Operations in C
- 15 Oracle XML DB and Oracle Data Provider for .NET
-
11
PL/SQL APIs for XMLType
-
Part V XML Schema and Object-Relational XMLType
-
16
Choice of XMLType Storage and Indexing
- Introduction to Choosing an XMLType Storage Model and Indexing Approaches
- XMLType Use Case Spectrum: Data-Centric to Document-Centric
-
Common Use Cases for XML Data Stored as XMLType
- XMLType Use Case: No XML Fragment Updating or Querying
- XMLType Use Case: Data Integration from Diverse Sources with Different XML Schemas
- XMLType Use Case: Staged XML Data for ETL
- XMLType Use Case: Semi-Structured XML Data
- XMLType Use Case: Business Intelligence Queries
- XMLType Use Case: XML Queries Involving Full-Text Search
- XMLType Storage Model Considerations
- XMLType Indexing Considerations
- XMLType Storage Options: Relative Advantages
-
17
XML Schema Storage and Query: Basic
- Overview of XML Schema
- Overview of Using XML Schema with Oracle XML DB
-
XML Schema Registration with Oracle XML DB
- XML Schema Registration Actions
- Registering an XML Schema with Oracle XML DB
- SQL Types and Tables Created During XML Schema Registration
- Default Tables for Global Elements
- Database Objects That Depend on Registered XML Schemas
- Local and Global XML Schemas
- Fully Qualified XML Schema URLs
- Deletion of an XML Schema
- Listing All Registered XML Schemas
- Creation of XMLType Tables and Columns Based on XML Schemas
- Ways to Identify XML Schema Instance Documents
- XML Schema Data Types Are Mapped to Oracle XML DB Storage
-
18
XML Schema Storage and Query: Object-Relational Storage
-
Object-Relational Storage of XML Documents
- How Collections Are Stored for Object-Relational XMLType Storage
- SQL Types Created during XML Schema Registration for Object-Relational Storage
- Default Tables Created during XML Schema Registration
- Do Not Use Internal Constructs Generated during XML Schema Registration
- Generated Names are Case Sensitive
- SYS_XDBPD$ and DOM Fidelity for Object-Relational Storage
- Oracle XML Schema Annotations
- Use DBMS_XMLSCHEMA to Map XML Schema Data Types to SQL Data Types
- complexType Extensions and Restrictions in Oracle XML DB
- Creating XML Schema-Based XMLType Columns and Tables
- Overview of Partitioning XMLType Tables and Columns Stored Object-Relationally
- Specification of Relational Constraints on XMLType Tables and Columns
- Out-Of-Line Storage of XMLType Data
- Considerations for Working with Complex or Large XML Schemas
- Debugging XML Schema Registration for XML Data Stored Object-Relationally
-
Object-Relational Storage of XML Documents
-
19
XPath Rewrite for Object-Relational Storage
- Overview of XPath Rewrite for Object-Relational Storage
- Common XPath Expressions that Are Rewritten
- XPath Rewrite for Out-Of-Line Tables
-
Guidelines for Using Execution Plans to Analyze and Optimize XPath Queries
- Guideline: Look for underlying tables versus XML functions in execution plans
- Guideline: Name the object-relational tables, so you recognize them in execution plans
- Guideline: Create an index on a column targeted by a predicate
- Guideline: Create indexes on ordered collection tables
- Guideline: Use XMLOptimizationCheck to determine why a query is not rewritten
-
20
XML Schema Evolution
- Overview of XML Schema Evolution
-
Copy-Based Schema Evolution
- Scenario for Copy-Based Evolution
- COPYEVOLVE Parameters and Errors
- Limitations of Procedure COPYEVOLVE
-
Guidelines for Using Procedure COPYEVOLVE
- Top-Level Element Name Changes
- User-Created Virtual Columns of Tables Other Than Default Tables
- Ensure That the XML Schema and Dependents Are Not Used by Concurrent Sessions
- Rollback When Procedure DBMS_XMLSCHEMA.COPYEVOLVE Raises an Error
- Failed Rollback From Insufficient Privileges
- Privileges Needed for XML Schema Evolution
- Update of Existing XML Instance Documents Using an XSLT Stylesheet
- Examples of Using Procedure COPYEVOLVE
- In-Place XML Schema Evolution
-
16
Choice of XMLType Storage and Indexing
-
Part VI Oracle XML DB Repository
-
21
Access to Oracle XML DB Repository
Data
- Overview of Oracle XML DB Repository
- Repository Terminology and Supplied Resources
- Oracle XML DB Repository Resources
- Navigational or Path Access to Repository Resources
- Query-Based Access to Repository Resources
- Servlet Access to Repository Resources
- Operations on Repository Resources
- Accessing the Content of Repository Resources Using SQL
- Access to the Content of XML Schema-Based Documents
- Update of the Content of Repository Documents
- Querying Resources in RESOURCE_VIEW and PATH_VIEW
- Oracle XML DB Hierarchical Repository Index
- 22 Configuration of Oracle XML DB Repository
-
23
Use of XLink and XInclude with Oracle XML DB
- Overview of XLink and XInclude
- Link Types for XLink and XInclude
- XInclude: Compound Documents
- Oracle XML DB Support for XLink
- Oracle XML DB Support for XInclude
- Use View DOCUMENT_LINKS to Examine XLink and XInclude Links
-
Configuration of Repository Resources for XLink and XInclude
- Configure the Treatment of Unresolved Links: Attribute UnresolvedLink
- Configure the Type of Document Links to Create: Element LinkType
- Configure the Path Format for Retrieval: Element PathFormat
- Configure Conflict-Resolution for XInclude: Element ConflictRule
- Configure the Decomposition of Documents Using XInclude: Element SectionConfig
- XLink and XInclude Configuration Examples
- Manage XLink and XInclude Links Using DBMS_XDB_REPOS.processLinks
-
24
Repository Access Using RESOURCE_VIEW and PATH_VIEW
- Overview of Oracle XML DB RESOURCE_VIEW and PATH_VIEW
- Oracle SQL Functions That Use RESOURCE_VIEW and PATH_VIEW
- Accessing Repository Data Paths, Resources and Links: Examples
- Deleting Repository Resources: Examples
- Updating Repository Resources: Examples
- Working with Multiple Oracle XML DB Resources
- Performance Guidelines for Oracle XML DB Repository Operations
- Searching for Resources Using Oracle Text
- 25 Resource Versions
- 26 PL/SQL Access to Oracle XML DB Repository
-
27
Repository Access Control
- Access Control Concepts
- Database Privileges for Repository Operations
- Privileges
- ACLs and ACEs
-
Overview of Working with Access Control Lists (ACLs)
- Creating an ACL Using DBMS_XDB_REPOS.CREATERESOURCE
- Retrieving an ACL Document, Given its Repository Path
- Setting the ACL of a Resource
- Deleting an ACL
- Updating an ACL
- Retrieving the ACL Document that Protects a Given Resource
- Retrieving Privileges Granted to the Current User for a Particular Resource
- Checking Whether the Current User Has Privileges on a Resource
- Checking Whether a User Has Privileges Using the ACL and Resource Owner
- Retrieving the Path of the ACL that Protects a Given Resource
- Retrieving the Paths of All Resources Protected by a Given ACL
- ACL Caching
- Repository Resources and Database Table Security
- Integration Of Oracle XML DB with LDAP
-
28
Repository Access Using Protocols
- Overview of Oracle XML DB Protocol Server
-
Oracle XML DB Protocol Server Configuration Management
- Protocol Server Configuration Parameters
- Configuring Secure HTTP (HTTPS)
- Using Listener Status to Check Port Configuration
- Configuring Protocol Port Parameters after Database Consolidation
- Configuration and Management of Authentication Mechanisms for HTTP
- Oracle XML DB Repository and File-System Resources
- Protocol Server Handles XML Schema-Based or Non-Schema-Based XML Documents
- Event-Based Logging
- Auditing of HTTP and FTP Protocols
-
FTP and the Oracle XML DB Protocol Server
-
Oracle XML DB Protocol Server: FTP Features
- FTP Features That Are Not Supported
- Supported FTP Client Methods
- FTP Quote Methods
- Uploading Content to Oracle XML DB Repository Using FTP
- Using FTP with Oracle ASM Files
- Using FTP on the Standard Port Instead of the Oracle XML DB Default Port
- Using IPv6 IP Addresses with FTP
- FTP Server Session Management
- Handling Error 421. Modifying the Default Timeout Value of an FTP Session
- FTP Client Failure in Passive Mode
-
Oracle XML DB Protocol Server: FTP Features
-
HTTP(S) and Oracle XML DB Protocol Server
-
Oracle XML DB Protocol Server: HTTP(S) Features
- Supported HTTP(S) Client Methods
- Using HTTP(S) on a Standard Port Instead of an Oracle XML DB Default Port
- Use of IPv6 IP Addresses with HTTP(S)
- HTTPS: Support for Secure HTTP
- Control of URL Expiration Time
- Anonymous Access to Oracle XML DB Repository Using HTTP
- Use of Java Servlets with HTTP(S)
- Embedded PL/SQL Gateway
- Transmission of Multibyte Data From a Client
- Characters That Are Not ASCII in URLs
- Character Sets for HTTP(S)
-
Oracle XML DB Protocol Server: HTTP(S) Features
- WebDAV and Oracle XML DB
-
29
User-Defined Repository Metadata
- Overview of Metadata and XML
- Using XML Schemas to Define Resource Metadata
- Addition, Modification, and Deletion of Resource Metadata
- Querying XML Schema-Based Resource Metadata
- XML Image Metadata from Binary Image Metadata
- Adding Non-Schema-Based Resource Metadata
- PL/SQL Procedures Affecting Resource Metadata
- 30 Oracle XML DB Repository Events
-
31
Guidelines for Oracle XML DB Applications in Java
- Overview of Oracle XML DB Java Applications
- HTTP(S): Access Java Servlets or Directly Access XMLType Resources
- Use JDBC XMLType Support to Access Many XMLType Object Elements
- Use Servlets to Manipulate and Write Out Data Quickly as XML
- Oracle XML DB Java Servlet Support Restrictions
- Configuration of Oracle XML DB Servlets
- HTTP Request Processing for Oracle XML DB Servlets
- Session Pool and Oracle XML DB Servlets
- Native XML Stream Support
- Oracle XML DB Servlet APIs
- Oracle XML DB Servlet Example
-
32
Data Access Using URIs
- Overview of Oracle XML DB URI Features
- URIs and URLs
- URIType and its Subtypes
- Accessing Data Using URIType Instances
- XDBUris: Pointers to Repository Resources
- DBUris: Pointers to Database Data
- Create New Subtypes of URIType Using Package URIFACTORY
- SYS_DBURIGEN SQL Function
- DBUriServlet
- 33 Native Oracle XML DB Web Services
-
21
Access to Oracle XML DB Repository
Data
-
Part VII Oracle Tools that Support Oracle XML DB
-
34
Administration of Oracle XML DB
- Upgrade or Downgrade of an Existing Oracle XML DB Installation
- Administration of Oracle XML DB Using Oracle Enterprise Manager
-
Configuration of Oracle XML DB Using xdbconfig.xml
-
Oracle XML DB Configuration File, xdbconfig.xml
- Element xdbconfig (Top-Level)
- Element sysconfig (Child of xdbconfig)
- Element userconfig (Child of xdbconfig)
- Element protocolconfig (Child of sysconfig)
- Element httpconfig (Child of protocolconfig)
- Element servlet (Descendant of httpconfig)
- Oracle XML DB Configuration File Example
- Oracle XML DB Configuration API
- Configuration of Mappings from Default Namespace to Schema Location
- Configuration of XML File Extensions
-
Oracle XML DB Configuration File, xdbconfig.xml
- Oracle XML DB and Database Consolidation
- Package DBMS_XDB_ADMIN
- 35 How to Load XML Data
- 36 Export and Import of Oracle XML DB Data
-
37
XML Data Exchange Using Oracle Database Advanced Queuing
- XML and Oracle Database Advanced Queuing
- Oracle Database Advanced Queuing
- XMLType Attributes in Object Types
- Internet Data Access Presentation (iDAP): SOAP for AQ
- iDAP Architecture
-
Guidelines for Using XML and Oracle Database Advanced Queuing
- Store AQ XML Messages with Many PDFs as One Record
- Add New Recipients After Messages Are Enqueued
- Enqueue and Dequeue XML Messages
- Parse Messages with XML Content from AQ Queues
- Prevent the Listener from Stopping Until an XML Document Is Processed
- HTTPS with AQ
- Store XML in Oracle AQ Message Payloads
- iDAP and SOAP
-
34
Administration of Oracle XML DB
-
Appendixes
-
A
Oracle-Supplied XML Schemas and Examples
- XDBResource.xsd: XML Schema for Oracle XML DB Resources
- XDBResConfig.xsd: XML Schema for Resource Configuration
- acl.xsd: XML Schema for ACLs
- xdbconfig.xsd: XML Schema for Configuring Oracle XML DB
- xdiff.xsd: XML Schema for Comparing Schemas for In-Place Evolution
- Purchase-Order XML Schemas
- XSLT Stylesheet Example, PurchaseOrder.xsl
- Loading XML Data Using C (OCI)
- Initializing and Terminating an XML Context (OCI)
- B Oracle XML DB Restrictions
-
C
XMLIndex Unstructured Component
- Guidelines for Using XMLIndex with an Unstructured Component
- Ignore the Path Table – It Is Transparent
- Column VALUE of an XMLIndex Path Table
- Secondary Indexes on Column VALUE
- XPath Expressions That Are Not Indexed by an XMLIndex Unstructured Component
- Using XMLIndex with an Unstructured Component
- Asynchronous (Deferred) Maintenance of XMLIndex Indexes
- Advantages of Unstructured XMLIndex
- XMLIndex Path Subsetting: Specifying the Paths You Want to Index
- PARAMETERS Clause for CREATE INDEX and ALTER INDEX in Unstructured Index
- D Indexing XML Data for Full-Text Queries (pre-23ai)
-
A
Oracle-Supplied XML Schemas and Examples
- Index