Oracle® XML DB Developer's Guide 10g Release 1 (10.1) Part No. B10790-01 December 2003 This manual describes Oracle XML DB components and related tools, such as SQL*Loader and Oracle Enterprise Manager, and how to use them with Oracle XML DB. It includes guidelines and examples for managing, loading, storing, processing, accessing, generating, and searching XML data stored in Oracle Database. Oracle XML DB Developer's Guide, 10g Release 1 (10.1) Part No. B10790-01 Copyright © 2002, 2003, Oracle. All rights reserved. Primary Author: Shelley Higgins Contributing Author: Drew Adams, Nipun Agarwal, Abhay Agrawal, Omar Alonso, David Anniss, Sandeepan Banerjee, Mark Bauer, Ravinder Booreddy, Stephen Buxton, Yuen Chan, Sivasankaran Chandrasekar, Vincent Chao, Ravindranath Chennoju, Dan Chiba, Mark Drake, Fei Ge, Wenyun He, Thuvan Hoang, Sam Idicula, Namit Jain, Neema Jalali, Bhushan Khaladkar, Viswanathan Krishnamurthy, Muralidhar Krishnaprasad, Geoff Lee, Wesley Lin, Annie Liu, Anand Manikutty, Jack Melnick, Nicolas Montoya, Steve Muench, Ravi Murthy, Eric Paapanen, Syam Pannala, John Russell, Eric Sedlar, Vipul Shah, Cathy Shea, Asha Tarachandani, Tarvinder Singh, Simon Slack, Muralidhar Subramanian, Asha Tarachandani, Priya Vennapusa, James Warner Contributor: Reema Al-Shaikh, Harish Akali, Vikas Arora, Deanna Bradshaw, Paul Brandenstein, Lisa Eldridge, Craig Foch, Wei Hu, Reema Koo, Susan Kotsovolos, Sonia Kumar, Roza Leyderman, Zhen Hua Liu, Diana Lorentz, Yasuhiro Matsuda, Valarie Moore, Bhagat Nainani, Visar Nimani, Sunitha Patel, Denis Raphaely, Rebecca Reitmeyer, Ronen Wolf The Programs (which include both the software and documentation) contain proprietary information; they are provided under a license agreement containing restrictions on use and disclosure and are also protected by copyright, patent, and other intellectual and industrial property laws. Reverse engineering, disassembly, or decompilation of the Programs, except to the extent required to obtain interoperability with other independently created software or as specified by law, is prohibited. The information contained in this document is subject to change without notice. If you find any problems in the documentation, please report them to us in writing. This document is not warranted to be error-free. Except as may be expressly permitted in your license agreement for these Programs, no part of these Programs may be reproduced or transmitted in any form or by any means, electronic or mechanical, for any purpose. If the Programs are delivered to the United States Government or anyone licensing or using the Programs on behalf of the United States Government, the following notice is applicable: U.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation and technical data delivered to U.S. Government customers are "commercial computer software" or "commercial technical data" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, use, duplication, disclosure, modification, and adaptation of the Programs, including documentation and technical data, shall be subject to the licensing restrictions set forth in the applicable Oracle license agreement, and, to the extent applicable, the additional rights set forth in FAR 52.227-19, Commercial Computer Software Restricted Rights (June 1987). Oracle Corporation, 500 Oracle Parkway, Redwood City, CA 94065 The Programs are not intended for use in any nuclear, aviation, mass transit, medical, or other inherently dangerous applications. It shall be the licensee's responsibility to take all appropriate fail-safe, backup, redundancy and other measures to ensure the safe use of such applications if the Programs are used for such purposes, and we disclaim liability for any damages caused by such use of the Programs. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. The Programs may provide links to Web sites and access to content, products, and services from third parties. Oracle is not responsible for the availability of, or any content provided on, third-party Web sites. You bear all risks associated with the use of such content. If you choose to purchase any products or services from a third party, the relationship is directly between you and the third party. Oracle is not responsible for: (a) the quality of third-party products or services; or (b) fulfilling any of the terms of the agreement with the third party, including delivery of products or services and warranty obligations related to purchased products or services. Oracle is not responsible for any loss or damage of any sort that you may incur from dealing with any third party. iii Contents Send Us Your Comments xxvii Preface xxix Intended Audience xxix Documentation Accessibility xxix Structure xxx Related Documents xxxiv Conventions xxxv What's New In Oracle XML DB? xxxix Oracle XML DB: Oracle Database 10g Release 1 (10.1), Enhancements xxxix Oracle Text Enhancements xl Oracle Streams Advanced Queuing (AQ) Support xl Oracle XDK Support for XMLType xli Part I Introducing Oracle XML DB 1 Introducing Oracle XML DB Introducing Oracle XML DB 1-1 Oracle XML DB Architecture 1-2 XMLType Storage 1-3 Oracle XML DB Repository 1-4 APIs for Accessing and Manipulating XML 1-4 XML Services 1-5 XML Repository Architecture 1-6 How Does Oracle XML DB Repository Work? 1-7 Oracle XML DB Protocol Architecture 1-8 Programmatic Access to Oracle XML DB (Java, PL/SQL, and C) 1-9 Oracle XML DB Features 1-9 XMLType 1-10 XML Schema 1-11 Structured Versus Unstructured Storage 1-13 XML / SQL Duality 1-14 SQL/XML ICITS Standard Operators 1-15 XPath and XQuery Rewrite 1-16 iv Oracle XML DB Benefits 1-17 Unifying Data and Content with Oracle XML DB 1-18 Exploiting Database Capabilities 1-19 Exploiting XML Capabilities 1-20 Oracle XML DB Offers Faster Storage and Retrieval of Complex XML Documents 1-21 Oracle XML DB Helps You Integrate Applications 1-21 When Your Data Is Not XML You Can Use XMLType Views 1-21 Searching XML Data Stored in CLOBs Using Oracle Text 1-22 Building Messaging Applications using Oracle Streams Advanced Queuing 1-22 Managing Oracle XML DB Applications with Oracle Enterprise Manager 1-23 Requirements for Running Oracle XML DB 1-23 Standards Supported by Oracle XML DB 1-23 Oracle XML DB Technical Support 1-24 Oracle XML DB Examples Used in This Manual 1-24 Further Oracle XML DB Case Studies and Demonstrations 1-24 2 Getting Started with Oracle XML DB Installing Oracle XML DB 2-1 When to Use Oracle XML DB 2-1 Designing Your XML Application 2-2 Oracle XML DB Design Issues: Introduction 2-2 a. Data 2-2 b. Access 2-2 c. Application Language 2-3 d. Processing 2-3 e. Storage 2-3 Oracle XML DB Application Design: a. How Structured Is Your Data? 2-4 XML Schema-Based or Non-Schema-Based 2-4 Oracle XML DB Application Design: b. Access Models 2-5 Oracle XML DB Application Design: c. Application Language 2-6 Oracle XML DB Application Design: d. Processing Models 2-7 Messaging Options 2-7 Oracle XML DB Design: e. Storage Models 2-8 Using XMLType Tables 2-8 Using XMLType Views 2-9 Oracle XML DB Performance 2-9 XML Storage Requirements 2-10 XML Memory Management 2-10 XML Parsing Optimizations 2-11 Node-Searching Optimizations 2-11 XML Schema Optimizations 2-11 Load Balancing Through Cached XML Schema 2-12 Reduced Non-Native Code Bottlenecks 2-12 Reduced Java Type Conversion Bottlenecks 2-12 3 Using Oracle XML DB Storing XML as XMLType 3-2 v What is XMLType 3-2 Benefits of the XMLType Datatype and API 3-3 When to Use XMLType 3-3 There are Two Main Ways to Store XMLType Data: LOBs and Structured 3-4 Advantages and Disadvantages of XML Storage Options in Oracle XML DB 3-4 When to Use CLOB Storage for XMLType 3-4 Creating XMLType Tables and Columns 3-4 Loading XML Content Into Oracle XML DB 3-5 Loading XML Content into Oracle XML DB Using SQL or PL/SQL 3-5 Loading XML Content into Oracle XML DB Using Java 3-7 Loading XML Content into Oracle XML DB Using C 3-7 Loading Very Large XML Files of Smaller XML Documents into Oracle Database 3-12 Loading Large XML Files into Oracle Database Using SQL*Loader 3-12 Loading XML Documents into Oracle XML DB Repository 3-13 Loading Documents into Oracle XML DB Repository Using Protocols 3-13 Handling Non-ASCII XML Documents 3-14 XML Encoding Declaration 3-14 Loading Non-ASCII XML Documents 3-15 Retrieving Non-ASCII XML Documents 3-15 APIs Introduced in 10g Release 1 for Handling Non-ASCII Documents 3-16 Introducing the W3C XML Schema Recommendation 3-16 XML Instance Documents 3-16 The Schema for Schemas 3-17 Editing XML Schemas 3-17 XML Schema Features 3-17 Text Representation of the PurchaseOrder XML Schema 3-17 Graphical Representation of the PurchaseOrder XML Schema 3-20 XML Schema and Oracle XML DB 3-21 Why Use XML Schema With Oracle XML DB? 3-21 Validating Instance Documents with XML Schema 3-22 Constraining Instance Documents for Business Rules or Format Compliance 3-22 Defining How XMLType Contents Must be Stored in the Database 3-22 Structured Storage of XML Documents 3-22 Annotating an XML Schema to Control Naming, Mapping, and Storage 3-23 Controlling How XML Collections are Stored in the Database 3-23 Collections: Default Mapping 3-23 Declaring the Oracle XML DB Namespace 3-23 Registering an XML Schema with Oracle XML DB 3-28 SQL Types and Tables Created During XML Schema Registration 3-29 Working with Large XML Schemas 3-30 Working with Global Elements 3-31 Creating XML Schema-Based XMLType Columns and Tables 3-31 Default Tables 3-32 Identifying Instance Documents 3-33 noNamespaceSchemaLocation Attribute 3-33 schemaLocation Attribute 3-34 Dealing with Multiple Namespaces 3-34 vi Using the Database to Enforce XML Data Integrity 3-34 Comparing Partial to Full XML Schema Validation 3-35 Partial Validation 3-35 Full Validation 3-36 Full XML Schema Validation Costs CPU and Memory Usage 3-36 Using SQL Constraints to Enforce Referential Integrity 3-38 DML Operations on XML Content Using Oracle XML DB 3-42 XPath and Oracle XML 3-42 Querying XML Content Stored in Oracle XML DB 3-42 A PurchaseOrder XML Document 3-42 Retrieving the Content of an XML Document Using Object_Value 3-43 Accessing Fragments or Nodes of an XML Document Using extract() 3-44 Accessing Text Nodes and Attribute Values Using extractValue() 3-45 Invalid Use of extractValue() 3-46 Searching the Content of an XML Document Using existsNode() 3-47 Using extractValue() and existsNode() in the WHERE Clause 3-49 Using XMLSequence() to Perform SQL Operations on XMLType Fragments 3-50 Accessing and Updating XML Content in Oracle XML DB Repository 3-53 Relational Access to XML Content Stored in Oracle XML DB Using Views 3-55 Updating XML Content Stored in Oracle XML DB 3-58 Updating XML Schema-Based and Non-Schema-Based XML Documents 3-63 Namespace Support in Oracle XML DB 3-63 Processing XMLType Methods and XML-Specific SQL Functions 3-64 Understanding and Optimizing XPath Rewrite 3-64 Using the EXPLAIN Plan to Tune XPath Rewrites 3-65 Using Indexes to Tune Simple XPath-Based Operations 3-65 Using Indexes to Improve Performance of XPath-Based Functions 3-66 Optimizing Operations on Collections 3-67 Using Indexes to Tune Queries on Collections Stored as Nested Tables 3-67 EXPLAIN Plan Output with ACL-Based Security Enabled: SYS_CHECKACL() Filter 3-69 Accessing Relational Database Content Using XML 3-70 Generating XML From Relational Tables Using DBUriType 3-78 XSL Transformation 3-80 Using XSLT with Oracle XML DB 3-80 Using Oracle XML DB Repository 3-88 Installing and Uninstalling Oracle XML DB Repository 3-89 Oracle XML DB Provides Name-Level Not Folder-Level Locking 3-89 Use Protocols or SQL to Access and Process Repository Content 3-90 Using Standard Protocols to Store and Retrieve Content 3-90 Uploading Content Into Oracle XML DB Using FTP 3-91 Accessing Oracle XML DB Repository Programmatically 3-93 Accessing the Content of Documents Using SQL 3-93 Accessing the Content of XML Schema-Based Documents 3-95 Using the XMLRef Element in Joins to Access Resource Content in the Repository 3-95 Updating the Content of Documents Stored in Oracle XML DB Repository 3-97 Updating Repository Content Using Protocols 3-97 Updating Repository Content Using SQL 3-98 vii Updating XML Schema-Based Documents in the Repository 3-99 Controlling Access to Repository Data 3-99 XML DB Transactional Semantics 3-100 Querying Metadata and the Folder Hierarchy 3-100 Querying Resources Stored in RESOURCE_VIEW and PATH_VIEW 3-102 The Oracle XML DB Hierarchical Index 3-104 How Documents are Stored in Oracle XML DB Repository 3-105 Viewing Relational Data as XML From a Browser 3-106 Using DBUri Servlet to Access Any Table or View From a Browser 3-106 XSL Transformation Using DBUri Servlet 3-108 Part II Storing and Retrieving XML Data in Oracle XML DB 4 XMLType Operations Manipulating XML Data With SQL Member Functions 4-1 Selecting and Querying XML Data 4-1 Searching XML Documents With XPath Expressions 4-2 Oracle Extension XPath Function Support 4-2 Selecting XML Data Using XMLType Member Functions 4-2 Querying XML Data Using XMLType Functions 4-4 existsNode() XMLType Function 4-5 Using Indexes to Evaluate existsNode() 4-6 extract() XMLType Function 4-6 extractValue() XMLType Function 4-9 A Shortcut Function 4-9 extractValue() Characteristics 4-9 Querying XML Data With SQL 4-10 Updating XML Instances and XML Data in Tables 4-17 updateXML() XMLType Function 4-18 updateXML() and NULL Values 4-22 Updating the Same XML Node More Than Once 4-24 Guidelines For Preserving DOM Fidelity When Using updateXML() 4-24 When DOM Fidelity is Preserved 4-24 When DOM Fidelity is Not Preserved 4-24 Optimization of updateXML() 4-24 Creating Views of XML Data with updateXML() 4-26 Indexing XMLType Columns 4-26 XPATH REWRITE for indexes on Singleton Elements or Attributes 4-27 Creating B-Tree Indexes on the Contents of a Collection 4-27 Creating Function-Based Indexes on XMLType Tables and Columns 4-29 CTXXPath Indexes on XMLType Columns 4-32 CTXXPATH Indexing Features 4-32 Creating CTXXPATH Indexes 4-33 Creating CTXXPATH Storage Preferences With CTX_DDL. Statements 4-33 Performance Tuning a CTXXPATH Index: Synchronizing and Optimizing 4-34 Choosing the Right Plan: Using CTXXPATH Index in existsNode() Processing 4-35 viii CTXXPATH Indexes On XML Schema-Based XMLType Tables 4-35 Determining If an Index is Being Used: Tracing 4-37 CTXXPATH Indexing Depends on Storage Options and Document Size 4-37 Oracle Text Indexes on XMLType Columns 4-38 5 XML Schema Storage and Query: The Basics Introducing XML Schema 5-1 XML Schema and Oracle XML DB 5-2 Using Oracle XML DB and XML Schema 5-7 Why We Need XML Schema 5-8 XML Schema Provides Flexible XML-to-SQL Mapping Setup 5-8 XML Schema Allows XML Instance Validation 5-8 DTD Support in Oracle XML DB 5-9 Inline DTD Definitions 5-9 External DTD Definitions 5-9 Managing XML Schemas Using DBMS_XMLSCHEMA 5-9 Registering Your XML Schema 5-9 Storage and Access Infrastructure 5-10 Transactional Action of XML Schema Registration 5-10 Managing and Storing XML Schema 5-11 Debugging XML Schema Registration 5-11 SQL Object Types 5-11 Creating Default Tables During XML Schema Registration 5-12 Generated Names are Case Sensitive 5-13 Objects That Depend on Registered XML Schemas 5-13 How to Obtain a List of Registered XML Schemas 5-13 Deleting Your XML Schema Using DBMS_XMLSCHEMA 5-14 FORCE Mode 5-14 XML Schema-Related Methods of XMLType 5-15 Local and Global XML Schemas 5-15 Local XML Schema 5-15 Global XML Schema 5-16 DOM Fidelity 5-17 How Oracle XML DB Ensures DOM Fidelity with XML Schema 5-17 DOM Fidelity and SYS_XDBPD$ 5-18 Creating XMLType Tables and Columns Based on XML Schema 5-18 Specifying Unstructured (LOB-Based) Storage of Schema-Based XMLType 5-19 Specifying Storage Models for Structured Storage of Schema-Based XMLType 5-20 Specifying Relational Constraints on XMLType Tables and Columns 5-21 Oracle XML Schema Annotations 5-21 Querying a Registered XML Schema to Obtain Annotations 5-27 SQL Mapping Is Specified in the XML Schema During Registration 5-28 Mapping of Types Using DBMS_XMLSCHEMA 5-30 Setting Attribute Mapping Type Information 5-30 Overriding the SQLType Value in XML Schema When Declaring Attributes 5-31 Setting Element Mapping Type Information 5-31 Overriding the SQLType Value in XML Schema When Declaring Elements 5-31 ix Mapping simpleTypes to SQL 5-32 simpleType: Mapping XML Strings to SQL VARCHAR2 Versus CLOBs 5-34 Working with Time Zones 5-35 Mapping complexTypes to SQL 5-35 Specifying Attributes in a complexType XML Schema Declaration 5-36 XPath Rewrite with XML Schema-Based Structured Storage 5-37 What Is XPath Rewrite? 5-37 When Does XPath Rewrite Occur? 5-38 What XPath Expressions Are Rewritten? 5-38 Common XPath Constructs Supported in XPath Rewrite 5-40 Unsupported XPath Constructs in XPath Rewrite 5-40 Common XMLSchema constructs supported in XPath Rewrite 5-41 Unsupported XML Schema Constructs in XPath Rewrite 5-41 Common storage constructs supported in XPath Rewrite 5-41 Unsupported Storage Constructs in XPath Rewrite 5-41 Is there a difference in XPath logic with rewrite? 5-42 How are the XPaths Rewritten? 5-42 Rewriting XPath Expressions: Mapping Types and Path Expressions 5-44 Rewrite of SQL Functions 5-48 XPath Expression Rewrites for ExistsNode 5-48 Rewrite for extractValue 5-50 Rewrite of XMLSequence Function 5-52 Rewrite for extract() 5-53 Optimizing updates using updateXML() 5-55 Diagnosing XPath Rewrite 5-56 Using Explain Plans 5-56 Using Events 5-57 Turning off Functional Evaluation (Event 19021) 5-57 Tracing reasons for non-rewrite 5-58 6 XML Schema Storage and Query: Advanced Topics Generating XML Schema Using DBMS_XMLSCHEMA.generateSchema() 6-1 Adding Unique Constraints to An Attribute's Elements 6-3 Setting the SQLInLine Attribute to FALSE for Out-of-Line Storage 6-4 Query Rewrite For Out-Of-Line Tables 6-6 Storing Collections in Out-Of-Line Tables 6-7 Intermediate table for storing the list of references 6-9 Fully Qualified XML Schema URLs 6-11 Fully Qualified XML Schema URLs Permit Explicit Reference to XML Schema URLs 6-11 Mapping XML Fragments to Large Objects (LOBs) 6-11 Oracle XML DB complexType Extensions and Restrictions 6-12 complexType Declarations in XML Schema: Handling Inheritance 6-13 Mapping complexType: simpleContent to Object Types 6-15 Mapping complexType: Any and AnyAttributes 6-15 Inserting New Instances into XMLType Columns 6-16 Examining Type Information in Oracle XML DB 6-16 ora:instanceof() and ora:instanceof-only() 6-16 x Working With Circular and Cyclical Dependencies 6-18 For Circular Dependency Set GenTables Parameter to TRUE 6-18 Handling Cycling Between complexTypes in XML Schema 6-19 How a complexType Can Reference Itself 6-20 Oracle XML DB: XPath Expression Rewrites for existsNode() 6-21 existsNode Mapping with Document Order Maintained 6-21 existsNode Mapping Without Maintaining Document Order 6-23 Oracle XML DB: Rewrite for extractValue() 6-23 Oracle XML DB: Rewrite for extract() 6-25 Extract Mapping with Document Order Maintained 6-25 Extract Mapping Without Maintaining Document Order 6-26 Optimizing Updates Using updateXML() 6-26 Cyclical References Between XML Schemas 6-27 Guidelines for Using XML Schema and Oracle XML DB 6-29 Using Bind Variables in XPath Expressions 6-29 Creating Constraints on Repetitive Elements in Schema-Based XML Instance Documents . 6-31 Guidelines for Loading and Retrieving Large Documents with Collections 6-32 Guidelines for Setting xdbcore Parameters 6-34 Updating Your XML Schema Using Schema Evolution 6-34 7 XML Schema Evolution Introducing XML Schema Evolution 7-1 Limitations of CopyEvolve() 7-1 Example XML Schema 7-2 Guidelines for Using DBMS_XMLSCHEMA.CopyEvolve() 7-3 Top-Level Element Name Changes 7-3 Ensure that the XML Schema and Dependents are Not Used by Concurrent Sessions 7-4 What Happens When CopyEvolve() Raises an Error? Rollback 7-4 Failed Rollback From Insufficient Privileges 7-4 Using CopyEvolve(): Privileges Needed 7-4 DBMS_XMLSCHEMA.CopyEvolve() Syntax 7-5 How DBMS_XMLSCHEMA.CopyEvolve() Works 7-7 8 Transforming and Validating XMLType Data Transforming XMLType Instances 8-1 XMLTransform() and XMLType.transform() 8-2 XMLTransform() Examples 8-2 Validating XMLType Instances 8-6 XMLIsValid() 8-7 schemaValidate 8-7 isSchemaValidated() 8-7 setSchemaValidated() 8-7 isSchemaValid() 8-8 Validating XML Data Stored as XMLType: Examples 8-8 [...]... Using C API for XML With Oracle XML DB Introducing the C API for XML (XDK and Oracle XML DB) Using OCI and the C API for XML with Oracle XML DB XML Context OCIXmlDbFreeXmlCtx() Syntax OCIXmlDbInitXmlCtx() Syntax How to Use Oracle XML DB Functions OCI Usage 13-1 13-2 13-2 13-2 13-2 13-3 13-4 xiii Accessing XMLType Data... Configuring the Oracle XML DB Example Servlet 25-9 Testing the Example Servlet 25-9 Part VI 26 Oracle Tools that Support Oracle XML DB Managing Oracle XML DB Using Oracle Enterprise Manager Introducing Oracle XML DB and Oracle Enterprise Manager Getting Started with Oracle Enterprise Manager and Oracle XML DB Enterprise Manager: Installing Oracle XML DB You Must... Multiple Oracle XML DB Resources Simultaneously Performance Tuning of XML DB Searching for Resources Using Oracle Text 21 PL/SQL Access and Management of Data Using DBMS_XDB Introducing Oracle XML DB Resource API for PL/SQL Overview of DBMS_XDB DBMS_XDB: Oracle XML DB Resource Management Using DBMS_XDB to Manage Resources, Calling Sequence DBMS_XDB:... how you can use Oracle XML DB Chapter 1, "Introducing Oracle XML DB" Introduces you to the Oracle XML DB components and architecture It includes a description of the benefits of using Oracle XML DB, the key features, standards supported, and requirements for running Oracle XML DB It lists Oracle XML DB- related terms used throughout the manual Chapter 2, "Getting Started with Oracle XML DB" Describes how... Java (JDBC) API for XMLType It includes examples and calling sequence diagrams Chapter 13, "Using C API for XML With Oracle XML DB" Introduces the C API for XML used for XDK and Oracle XML DB applications This chapter focuses on how to use C API for XML with Oracle XML DB Chapter 14, "Using ODP.NET With Oracle XML DB" Describes how to use Oracle Data Provider for NET (ODP.NET) with Oracle XML DB xxxi... Manage Resources, Calling Sequence DBMS_XDB: Oracle XML DB ACL-Based Security Management Using DBMS_XDB to Manage Security, Calling Sequence DBMS_XDB: Oracle XML DB Configuration Management Using DBMS_XDB for Configuration Management, Calling Sequence 22 22-1 22-1 22-1 22-2 Oracle XML DB Resource Security Introducing Oracle XML DB Resource Security and ACLs How the... XDBResource.xsd: XML Schema for Representing Oracle XML DB Resources H-2 XDBResource.xsd H-2 acl.xsd: XML Schema for Representing Oracle XML DB ACLs H-4 ACL Representation XML Schema, acl.xsd H-4 acl.xsd H-4 xdbconfig.xsd: XML Schema for Configuring Oracle XML DB H-6 xdbconfig.xsd H-6 Loading XML Using C (OCI) H-11 I Oracle XML. .. Oracle XML DB XML Schema Catalog Views Resource API for PL/SQL (DBMS_XDB) DBMS_XMLGEN RESOURCE_VIEW, PATH_VIEW DBMS_XDB_VERSION DBMS_XDBT New PL/SQL APIs to Support XML Data in Different Character Sets G D-1 D-1 D-3 D-3 D-3 D-3 D-4 D-4 Java APIs: Quick Reference Java DOM API For XMLType (oracle. xdb and oracle. xdb.dom... Configuring Oracle XML DB Servlets HTTP Request Processing for Oracle XML DB Servlets The Session Pool and XML DB Servlets Native XML Stream Support Oracle XML DB Servlet APIs Oracle XML DB Servlet Example 25-1 25-2 25-2 25-2 25-2 25-2 25-2 25-3 25-6 25-7 25-7 25-7 25-8 xix Installing the Oracle XML DB Example Servlet ... Oracle Support Services xxvii xxviii Preface This manual describes Oracle XML DB, and how it stores, generates, manipulates, manages, and queries XML in the database using Oracle XML DB After introducing you to the heart of Oracle XML DB, namely the XMLType framework and Oracle XML DB repository, the manual provides a brief introduction to design criteria to consider when planning your Oracle XML DB . Support xl Oracle XDK Support for XMLType xli Part I Introducing Oracle XML DB 1 Introducing Oracle XML DB Introducing Oracle XML DB 1-1 Oracle XML DB Architecture. C API for XML with Oracle XML DB 13-2 XML Context 13-2 OCIXmlDbFreeXmlCtx() Syntax 13-2 OCIXmlDbInitXmlCtx() Syntax 13-2 How to Use Oracle XML DB Functions