ODP.NET developers guide : Oracle database 10g development with Visual Studio 2005 and the Oracle Data Provider for .NET

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

Author(s): Jagadish Pulakhandam; Sunitha Paruchuri
Publisher: Packt Pub
Year: 2007

Language: English
Pages: 840
City: Birmingham, UK

Contents......Page 3
Send Us Your Comments......Page 27
Documentation Accessibility......Page 29
Structure......Page 30
Related Documents......Page 34
Conventions......Page 35
Oracle XML DB: Oracle Database 10g Release 1 (10.1), Enhancements......Page 39
Oracle Streams Advanced Queuing (AQ) Support......Page 40
Oracle XDK Support for XMLType......Page 41
Part I Introducing Oracle XML DB......Page 43
Introducing Oracle XML DB......Page 45
Oracle XML DB Architecture......Page 46
XMLType Storage......Page 47
APIs for Accessing and Manipulating XML......Page 48
XML Services......Page 49
XML Repository Architecture......Page 50
How Does Oracle XML DB Repository Work?......Page 51
Oracle XML DB Protocol Architecture......Page 52
Oracle XML DB Features......Page 53
XMLType......Page 54
XML Schema......Page 55
Structured Versus Unstructured Storage......Page 57
XML / SQL Duality......Page 58
SQL/XML ICITS Standard Operators......Page 59
XPath and XQuery Rewrite......Page 60
Oracle XML DB Benefits......Page 61
Unifying Data and Content with Oracle XML DB......Page 62
Exploiting Database Capabilities......Page 63
Exploiting XML Capabilities......Page 64
When Your Data Is Not XML You Can Use XMLType Views......Page 65
Building Messaging Applications using Oracle Streams Advanced Queuing......Page 66
Standards Supported by Oracle XML DB......Page 67
Further Oracle XML DB Case Studies and Demonstrations......Page 68
When to Use Oracle XML DB......Page 71
b. Access......Page 72
e. Storage......Page 73
XML Schema-Based or Non-Schema-Based......Page 74
Oracle XML DB Application Design: b. Access Models......Page 75
Oracle XML DB Application Design: c. Application Language......Page 76
Messaging Options......Page 77
Using XMLType Tables......Page 78
Oracle XML DB Performance......Page 79
XML Memory Management......Page 80
XML Schema Optimizations......Page 81
Reduced Java Type Conversion Bottlenecks......Page 82
3 Using Oracle XML DB......Page 85
What is XMLType......Page 86
When to Use XMLType......Page 87
Creating XMLType Tables and Columns......Page 88
Loading XML Content into Oracle XML DB Using SQL or PL/SQL......Page 89
Loading XML Content into Oracle XML DB Using C......Page 91
Loading Large XML Files into Oracle Database Using SQL*Loader......Page 96
Loading Documents into Oracle XML DB Repository Using Protocols......Page 97
XML Encoding Declaration......Page 98
Retrieving Non-ASCII XML Documents......Page 99
XML Instance Documents......Page 100
Text Representation of the PurchaseOrder XML Schema......Page 101
Graphical Representation of the PurchaseOrder XML Schema......Page 104
Why Use XML Schema With Oracle XML DB?......Page 105
Structured Storage of XML Documents......Page 106
Declaring the Oracle XML DB Namespace......Page 107
Registering an XML Schema with Oracle XML DB......Page 112
SQL Types and Tables Created During XML Schema Registration......Page 113
Working with Large XML Schemas......Page 114
Creating XML Schema-Based XMLType Columns and Tables......Page 115
Default Tables......Page 116
noNamespaceSchemaLocation Attribute......Page 117
Using the Database to Enforce XML Data Integrity......Page 118
Partial Validation......Page 119
Full XML Schema Validation Costs CPU and Memory Usage......Page 120
Using SQL Constraints to Enforce Referential Integrity......Page 122
A PurchaseOrder XML Document......Page 126
Retrieving the Content of an XML Document Using Object_Value......Page 127
Accessing Fragments or Nodes of an XML Document Using extract()......Page 128
Accessing Text Nodes and Attribute Values Using extractValue()......Page 129
Invalid Use of extractValue()......Page 130
Searching the Content of an XML Document Using existsNode()......Page 131
Using extractValue() and existsNode() in the WHERE Clause......Page 133
Using XMLSequence() to Perform SQL Operations on XMLType Fragments......Page 134
Accessing and Updating XML Content in Oracle XML DB Repository......Page 137
Relational Access to XML Content Stored in Oracle XML DB Using Views......Page 139
Updating XML Content Stored in Oracle XML DB......Page 142
Namespace Support in Oracle XML DB......Page 147
Understanding and Optimizing XPath Rewrite......Page 148
Using Indexes to Tune Simple XPath-Based Operations......Page 149
Using Indexes to Improve Performance of XPath-Based Functions......Page 150
Using Indexes to Tune Queries on Collections Stored as Nested Tables......Page 151
EXPLAIN Plan Output with ACL-Based Security Enabled: SYS_CHECKACL() Filter......Page 153
Accessing Relational Database Content Using XML......Page 154
Generating XML From Relational Tables Using DBUriType......Page 162
Using XSLT with Oracle XML DB......Page 164
Using Oracle XML DB Repository......Page 172
Oracle XML DB Provides Name-Level Not Folder-Level Locking......Page 173
Using Standard Protocols to Store and Retrieve Content......Page 174
Uploading Content Into Oracle XML DB Using FTP......Page 175
Accessing the Content of Documents Using SQL......Page 177
Using the XMLRef Element in Joins to Access Resource Content in the Repository......Page 179
Updating Repository Content Using Protocols......Page 181
Updating Repository Content Using SQL......Page 182
Controlling Access to Repository Data......Page 183
Querying Metadata and the Folder Hierarchy......Page 184
Querying Resources Stored in RESOURCE_VIEW and PATH_VIEW......Page 186
The Oracle XML DB Hierarchical Index......Page 188
How Documents are Stored in Oracle XML DB Repository......Page 189
Using DBUri Servlet to Access Any Table or View From a Browser......Page 190
XSL Transformation Using DBUri Servlet......Page 192
Part II Storing and Retrieving XML Data in Oracle XML DB......Page 195
Selecting and Querying XML Data......Page 197
Selecting XML Data Using XMLType Member Functions......Page 198
Querying XML Data Using XMLType Functions......Page 200
existsNode() XMLType Function......Page 201
extract() XMLType Function......Page 202
extractValue() Characteristics......Page 205
Querying XML Data With SQL......Page 206
Updating XML Instances and XML Data in Tables......Page 213
updateXML() XMLType Function......Page 214
updateXML() and NULL Values......Page 218
Optimization of updateXML()......Page 220
Indexing XMLType Columns......Page 222
Creating B-Tree Indexes on the Contents of a Collection......Page 223
Creating Function-Based Indexes on XMLType Tables and Columns......Page 225
CTXXPATH Indexing Features......Page 228
Creating CTXXPATH Storage Preferences With CTX_DDL. Statements......Page 229
Performance Tuning a CTXXPATH Index: Synchronizing and Optimizing......Page 230
CTXXPATH Indexes On XML Schema-Based XMLType Tables......Page 231
CTXXPATH Indexing Depends on Storage Options and Document Size......Page 233
Oracle Text Indexes on XMLType Columns......Page 234
Introducing XML Schema......Page 237
XML Schema and Oracle XML DB......Page 238
Using Oracle XML DB and XML Schema......Page 243
XML Schema Allows XML Instance Validation......Page 244
Registering Your XML Schema......Page 245
Transactional Action of XML Schema Registration......Page 246
SQL Object Types......Page 247
Creating Default Tables During XML Schema Registration......Page 248
How to Obtain a List of Registered XML Schemas......Page 249
FORCE Mode......Page 250
Local XML Schema......Page 251
Global XML Schema......Page 252
How Oracle XML DB Ensures DOM Fidelity with XML Schema......Page 253
Creating XMLType Tables and Columns Based on XML Schema......Page 254
Specifying Unstructured (LOB-Based) Storage of Schema-Based XMLType......Page 255
Specifying Storage Models for Structured Storage of Schema-Based XMLType......Page 256
Oracle XML Schema Annotations......Page 257
Querying a Registered XML Schema to Obtain Annotations......Page 263
SQL Mapping Is Specified in the XML Schema During Registration......Page 264
Setting Attribute Mapping Type Information......Page 266
Overriding the SQLType Value in XML Schema When Declaring Elements......Page 267
Mapping simpleTypes to SQL......Page 268
simpleType: Mapping XML Strings to SQL VARCHAR2 Versus CLOBs......Page 270
Mapping complexTypes to SQL......Page 271
Specifying Attributes in a complexType XML Schema Declaration......Page 272
What Is XPath Rewrite?......Page 273
What XPath Expressions Are Rewritten?......Page 274
Unsupported XPath Constructs in XPath Rewrite......Page 276
Unsupported Storage Constructs in XPath Rewrite......Page 277
How are the XPaths Rewritten?......Page 278
Rewriting XPath Expressions: Mapping Types and Path Expressions......Page 280
XPath Expression Rewrites for ExistsNode......Page 284
Rewrite for extractValue......Page 286
Rewrite of XMLSequence Function......Page 288
Rewrite for extract()......Page 289
Optimizing updates using updateXML()......Page 291
Using Explain Plans......Page 292
Turning off Functional Evaluation (Event 19021)......Page 293
Tracing reasons for non-rewrite......Page 294
Generating XML Schema Using DBMS_XMLSCHEMA.generateSchema()......Page 295
Adding Unique Constraints to An Attribute's Elements......Page 297
Setting the SQLInLine Attribute to FALSE for Out-of-Line Storage......Page 298
Query Rewrite For Out-Of-Line Tables......Page 300
Storing Collections in Out-Of-Line Tables......Page 301
Intermediate table for storing the list of references......Page 303
Mapping XML Fragments to Large Objects (LOBs)......Page 305
Oracle XML DB complexType Extensions and Restrictions......Page 306
complexType Declarations in XML Schema: Handling Inheritance......Page 307
Mapping complexType: Any and AnyAttributes......Page 309
ora:instanceof() and ora:instanceof-only()......Page 310
For Circular Dependency Set GenTables Parameter to TRUE......Page 312
Handling Cycling Between complexTypes in XML Schema......Page 313
How a complexType Can Reference Itself......Page 314
existsNode Mapping with Document Order Maintained......Page 315
Oracle XML DB: Rewrite for extractValue()......Page 317
Extract Mapping with Document Order Maintained......Page 319
Optimizing Updates Using updateXML()......Page 320
Cyclical References Between XML Schemas......Page 321
Using Bind Variables in XPath Expressions......Page 323
Creating Constraints on Repetitive Elements in Schema-Based XML Instance Documents......Page 325
Guidelines for Loading and Retrieving Large Documents with Collections......Page 326
Updating Your XML Schema Using Schema Evolution......Page 328
Limitations of CopyEvolve()......Page 329
Example XML Schema......Page 330
Top-Level Element Name Changes......Page 331
Using CopyEvolve(): Privileges Needed......Page 332
DBMS_XMLSCHEMA.CopyEvolve() Syntax......Page 333
How DBMS_XMLSCHEMA.CopyEvolve() Works......Page 335
Transforming XMLType Instances......Page 339
XMLTransform() Examples......Page 340
Validating XMLType Instances......Page 344
setSchemaValidated()......Page 345
Validating XML Data Stored as XMLType: Examples......Page 346
Full Text Search and XML......Page 349
Roles and Privileges......Page 350
Overview of the CONTAINS SQL Function......Page 351
Overview of the ora:contains XPath Function......Page 352
Full Text Search......Page 353
Stemming: $......Page 354
Score......Page 355
WITHIN Attributes......Page 356
WITHIN and AND......Page 357
The Text Path......Page 358
Text Path Compared to XPath......Page 359
HASPATH......Page 360
Structure: Projecting the Result......Page 361
Introduction to the CONTEXT Index......Page 362
Maintaining the CONTEXT Index......Page 363
Making Search Case-Sensitive......Page 364
Choosing a Section Group Type......Page 365
Choosing a Section Group......Page 366
Full Text Search......Page 367
Structure: Projecting the Result......Page 368
Policy Example: Supplied Stoplist......Page 369
Policy Example: User-Defined Lexer......Page 370
Policy Defaults......Page 372
Use a Primary Filter in the Query......Page 373
Use a CTXXPath Index......Page 374
When to Use CTXXPATH......Page 375
Introducing Query-Rewrite......Page 376
From ora:contains to CONTAINS......Page 377
Text Path BNF......Page 378
Purchase Order po001.xml......Page 379
Create Table Statements......Page 380
An XML Schema for the Sample Data......Page 382
Part III Using APIs for XMLType to Access and Operate on XML......Page 385
PL/SQL APIs For XMLType Features......Page 387
With PL/SQL APIs for XMLType You Can Modify and Store XML Elements......Page 388
Supported W3C DOM Recommendations......Page 389
PL/SQL DOM API for XMLType (DBMS_XMLDOM): Features......Page 390
Designing End-to-End Applications Using XDK and Oracle XML DB......Page 391
Using PL/SQL DOM API for XMLType: Preparing XML Data......Page 392
DOM Fidelity for XML Schema Mapping......Page 393
Non-Supported DBMS_XMLDOM Methods in This Release......Page 394
PL/SQL DOM API for XMLType (DBMS_XMLDOM) Exceptions......Page 400
PL/SQL DOM API for XMLType: Node Types......Page 401
PL/SQL DOM API for XMLType (DBMS_XMLDOM): Calling Sequence......Page 402
PL/SQL DOM API for XMLType Examples......Page 403
PL/SQL Parser API for XMLType: Features......Page 405
PL/SQL Parser API for XMLType (DBMS_XMLPARSER): Calling Sequence......Page 406
Enabling Transformations and Conversions with XSLT......Page 407
PL/SQL XSLT Processor API (DBMS_XSLPROCESSOR): Methods......Page 408
PL/SQL Parser API for XMLType (DBMS_XSLPROCESSOR): Calling Sequence......Page 409
PL/SQL XSLT Processor for XMLType Example......Page 410
Overview of DBMS_XMLSTORE......Page 413
Insert Processing with DBMS_XMLSTORE......Page 414
Update Processing with DBMS_XMLSTORE......Page 415
Delete Processing with DBMS_XMLSTORE......Page 416
Java DOM API for XMLType......Page 417
How Java Applications Use JDBC to Access XML Documents in Oracle XML DB......Page 418
Using JDBC to Manipulate XML Documents Stored in a Database......Page 420
Loading a Large XML Document into the Database With JDBC......Page 428
Creating XML Documents Programmatically......Page 430
JDBC or SQLJ......Page 431
Java DOM API for XMLType Classes......Page 432
Java DOM API for XMLType: Calling Sequence......Page 433
Introducing the C API for XML (XDK and Oracle XML DB)......Page 435
OCIXmlDbInitXmlCtx() Syntax......Page 436
How to Use Oracle XML DB Functions......Page 437
Common XMLType Operations in C......Page 438
ODP.NET XML Support......Page 443
ODP.NET Sample Code......Page 444
Part IV Viewing Existing Data as XML......Page 445
Generating XML Using SQL/XML Functions......Page 447
Generating XML Using XML SQL Utility (XSU)......Page 448
XMLElement() Function......Page 449
XML_Attributes_Clause......Page 450
XMLForest() Function......Page 454
XMLSequence() Function......Page 455
XMLConcat() Function......Page 459
XMLAgg() Function......Page 460
XMLColAttVal() Function......Page 464
Sample DBMS_XMLGEN Query Result......Page 465
DBMS_XMLGEN Calling Sequence......Page 466
SYS_XMLGEN() Function......Page 487
Using XMLFormat Object Type......Page 490
SYS_XMLAGG() Function......Page 497
Generating XML Using XSQL Pages Publishing Framework......Page 498
Generating XML Using XML SQL Utility (XSU)......Page 500
Using XMLSequence in the TABLE Clause to Return a Rowset......Page 501
What Are XMLType Views?......Page 503
Creating XMLType Views: Syntax......Page 504
Using SQL/XML Generation Functions......Page 505
Using Object Types with SYS_XMLGEN()......Page 506
Step 1. Register XML Schema, emp_simple.xsd......Page 507
Step 2. Create XMLType View Using SQL/XML Functions......Page 508
Using Namespaces With SQL/XML Functions......Page 509
Using Object Types and Views......Page 512
Step 1. Create Object Types......Page 513
Step 3. Register XML Schema, emp_complex.xsd......Page 514
Step 4a. Using the One-Step Process......Page 515
Step 2. Register XML Schema, dept_complex.xsd......Page 516
Creating XMLType Views From XMLType Tables......Page 518
DML (Data Manipulation Language) on XMLType Views......Page 519
XPath Rewrite on Non-Schema-Based Views Constructed With SQL/XML......Page 521
XPath Rewrite on View Constructed With SQL/XML Generation Functions......Page 523
XPath Rewrite on Non-Schema-Based Views Using Object Types or Views......Page 525
XPath Rewrite on XML-Schema-Based Views Using Object Types or Object Views......Page 527
Generating XML Schema-Based XML Without Creating Views......Page 528
How Oracle Database Works with URLs and URIs......Page 529
UriFactory Package......Page 530
What Is a URI?......Page 531
Advantages of Using DBUri and XDBUri......Page 532
UriType Functions......Page 533
HttpUriType Functions......Page 534
getXML() Function......Page 535
Formulating the DBUri......Page 536
DBUri Syntax Guidelines......Page 538
Identifying the Whole Table......Page 539
Identifying a Target Column......Page 540
How DBUris Differ from Object References......Page 541
DBUriType Functions......Page 542
How to Create an Instance of XDBUriType......Page 544
Using UriType Objects......Page 545
Using the Substitution Mechanism......Page 546
Registering New UriType Subtypes with the UriFactory Package......Page 547
SYS_DBURIGEN() SQL Function......Page 549
Rules for Passing Columns or Object Attributes to SYS_DBURIGEN()......Page 550
SYS_DBURIGEN Examples......Page 551
DBUri Servlet Mechanism......Page 553
Installing DBUri Servlet......Page 554
DBUri Security......Page 555
Configuring the UriFactory Package to Handle DBUris......Page 556
Part V Oracle XML DB Repository: Foldering, Security, and Protocols......Page 557
Introducing Oracle XML DB Foldering......Page 559
Repository Terminology......Page 561
Oracle XML DB Resources......Page 562
Path-Name Resolution......Page 563
Accessing Oracle XML DB Repository Resources......Page 564
Navigational or Path Access......Page 565
Accessing Oracle XML DB Resources Using Internet Protocols......Page 566
Storing Oracle XML DB Resources......Page 567
Configuring Default Namespace to Schema Location Mappings......Page 568
Query-Based Access......Page 570
Accessing Data Stored in Oracle XML DB Repository Resources......Page 571
Managing and Controlling Access to Resources......Page 573
Setting and Accessing Custom Namespace Properties......Page 574
Oracle XML DB Versioning Features......Page 577
Oracle XML DB Resource ID and Path Name......Page 578
Resource ID of a New Version......Page 579
Checkin......Page 581
Access Control and Security of VCR......Page 582
Guidelines for Using Oracle XML DB Versioning......Page 584
Oracle XML DB RESOURCE_VIEW and PATH_VIEW......Page 587
PATH_VIEW Definition and Structure......Page 588
Understanding the Difference Between RESOURCE_VIEW and PATH_VIEW......Page 589
Operations You Can Perform Using UNDER_PATH and EQUALS_PATH......Page 590
UNDER_PATH......Page 591
PATH......Page 592
Accessing Repository Data Paths, Resources and Links: Examples......Page 594
Deleting Repository Resources: Examples......Page 596
Updating Repository Resources: Examples......Page 597
Working with Multiple Oracle XML DB Resources Simultaneously......Page 598
Searching for Resources Using Oracle Text......Page 599
Overview of DBMS_XDB......Page 601
DBMS_XDB: Oracle XML DB Resource Management......Page 602
Using DBMS_XDB to Manage Resources, Calling Sequence......Page 603
Using DBMS_XDB to Manage Security, Calling Sequence......Page 605
Using DBMS_XDB for Configuration Management, Calling Sequence......Page 607
Oracle XML DB Resource API for Java Parameters......Page 609
Oracle XML DB Resource API for Java: Examples......Page 610
Introducing Oracle XML DB Resource Security and ACLs......Page 611
Access Control List Concepts......Page 612
Atomic Privileges......Page 614
Aggregate Privileges......Page 615
Working with Oracle XML DB ACLs......Page 616
Deleting an ACL......Page 617
Retrieving the ACL Document for a Given Resource......Page 618
Retrieving the Path of the ACL that Protects a Given Resource......Page 619
Integration with LDAP......Page 620
Performance Issues for Using ACLs......Page 622
Introducing Oracle XML DB Protocol Server......Page 623
Oracle XML DB Protocol Server Configuration Management......Page 624
Configuring Protocol Server Parameters......Page 625
Protocol Server Handles XML Schema-Based or Non-Schema-Based XML Documents......Page 627
Using FTP on Standard or Non-Standard Ports......Page 628
Handling Error 421. Modifying the FTP Session's Default Timeout Value......Page 629
Using HTTP on Standard or Non-Standard Ports......Page 630
Non-Ascii Characters in URLs......Page 631
Oracle XML DB WebDAV Features......Page 632
Using Oracle XML DB and WebDAV: Creating a WebFolder in Windows 2000......Page 633
Introducing Oracle XML DB Java Applications......Page 635
Writing Oracle XML DB HTTP Servlets in Java......Page 636
Configuring Oracle XML DB Servlets......Page 637
HTTP Request Processing for Oracle XML DB Servlets......Page 640
Oracle XML DB Servlet APIs......Page 641
Installing the Oracle XML DB Example Servlet......Page 642
Testing the Example Servlet......Page 643
Part VI Oracle Tools that Support Oracle XML DB......Page 645
Enterprise Manager: Installing Oracle XML DB......Page 647
Oracle Enterprise Manager Oracle XML DB Features......Page 648
Manage XML Schema and Related Database Objects......Page 649
Configuring Oracle XML DB with Enterprise Manager......Page 650
Category: HTTP......Page 653
Creating and Managing Oracle XML DB Resources with Enterprise Manager......Page 654
Administering Individual Resources......Page 656
Security Page......Page 657
Individual Resource Content Menu......Page 658
Create Resource......Page 659
Show Contents......Page 660
Enterprise Manager and Oracle XML DB: ACL Security......Page 661
Granting and Revoking User Privileges with User > XML Tab......Page 662
Granted List......Page 663
XML Database Resource Privileges......Page 664
Navigating XML Schema in Enterprise Manager......Page 665
General Page......Page 668
Options Page......Page 669
Creating an XMLType Table......Page 670
Creating Tables with XMLType Columns......Page 672
Creating a View Based on XML Schema......Page 674
Creating a Function-Based Index Based on XPath Expressions......Page 676
Using SQL*Loader to Load XMLType Data......Page 679
Loading LOB Data in Delimited Fields......Page 680
Loading Very Large XML Documents into Oracle Database......Page 681
Non-XML Schema-Based XMLType Tables and Columns......Page 685
IMPORT/EXPORT Syntax and Examples......Page 686
Table Mode Export......Page 687
Importing and Exporting with Different Character Sets......Page 688
Part VII XML Data Exchange Using Oracle Streams Advanced Queuing......Page 689
How Do AQ and XML Complement Each Other?......Page 691
AQ and XML Message Payloads......Page 692
Advantages of Using AQ......Page 693
Streams Message Queuing......Page 694
iDAP Architecture......Page 695
XMLType Queue Payloads......Page 696
Guidelines for Using XML and Oracle Streams Advanced Queuing......Page 697
Parsing Messages with XML Content from Oracle Streams AQ Queues......Page 698
Comparing iDAP and SOAP......Page 699
Installing a New Oracle XML DB With Database Configuration Assistant......Page 701
Installing a New Oracle XML DB Manually Without Database Configuration Assistant......Page 702
Reinstalling Oracle XML DB......Page 703
Configuring Oracle XML DB......Page 704
......Page 705
Oracle XML DB Configuration Example......Page 706
Update Configuration, cfg_update()......Page 708
Refresh Configuration, cfg_refresh()......Page 709
Namespaces......Page 711
noNamespaceSchemaLocation Attribute......Page 712
Deriving an Object Model: Mapping the XML Schema Constructs to SQL Types......Page 713
Introducing XML Schema......Page 714
Purchase Order, po.xml......Page 715
Purchase Order Schema, po.xsd......Page 716
XML Schema Components......Page 717
Complex Type Definitions, Element and Attribute Declarations......Page 718
Defining PurchaseOrderType......Page 719
Default Attributes......Page 720
Default Elements......Page 721
Naming Conflicts......Page 722
Simple Types......Page 723
Creating a List of myInteger......Page 727
Two Anonymous Type Definitions......Page 728
Complex Types from Simple Types......Page 729
Mixed Content......Page 730
Empty Content......Page 731
Annotations......Page 732
Building Content Models......Page 733
Adding Attributes Using an Attribute Group......Page 735
Nil Values......Page 736
How DTDs and XML Schema Differ......Page 737
XML Schema Features Compared to DTD Features......Page 738
Converting Existing DTDs to XML Schema?......Page 740
XML Schema Example, PurchaseOrder.xsd......Page 741
XPath Models an XML Document as a Tree of Nodes......Page 745
Evaluating Expressions with Respect to a Context......Page 746
Location Paths......Page 747
Location Path Examples Using Unabbreviated Syntax......Page 748
Location Path Examples Using Abbreviated Syntax......Page 749
Location Step Abbreviation .......Page 750
Location Path Syntax Summary......Page 751
Element Nodes......Page 752
Attribute Nodes......Page 753
Namespace Nodes......Page 754
Expanded-Name......Page 755
URI References......Page 756
When the Attribute Name Matches the PrefixedAttName......Page 757
Element Types......Page 758
Namespace Scoping......Page 759
Namespace Defaulting......Page 760
Conformance of XML Documents......Page 761
Introducing the W3C XML Information Set......Page 762
Base URIs......Page 763
Synthetic Infosets......Page 764
The W3C XSL Transformation Recommendation Version 1.0......Page 765
XML Path Language (Xpath)......Page 767
XSL Style-Sheet Example, PurchaseOrder.xsl......Page 768
Java Methods Not Supported......Page 775
Oracle XML DB Resource API for Java (oracle.xdb.spi Classes)......Page 778
Java DOM APIs to Manage an Attribute Added to XDBAttribute.java......Page 782
New Java XMLType APIs......Page 783
XMLType API......Page 785
PL/SQL DOM API for XMLType (DBMS_XMLDOM)......Page 789
PL/SQL Parser for XMLType (DBMS_XMLPARSER)......Page 795
PL/SQL XSLT Processor for XMLType (DBMS_XSLPROCESSOR)......Page 796
DBMS_XMLSCHEMA......Page 797
Resource API for PL/SQL (DBMS_XDB)......Page 800
DBMS_XMLGEN......Page 802
RESOURCE_VIEW, PATH_VIEW......Page 803
DBMS_XDB_VERSION......Page 804
DBMS_XDBT......Page 805
New PL/SQL APIs to Support XML Data in Different Character Sets......Page 806
OCIXmlDbInitXmlCtx() Syntax......Page 809
PATH_VIEW Definition and Structure......Page 811
XDBResource.xsd......Page 812
acl.xsd......Page 814
xdbconfig.xsd......Page 816
Loading XML Using C (OCI)......Page 821
XMLType Features......Page 827
Oracle XML DB Repository Features......Page 829
Oracle XML DB Limitations......Page 830
C......Page 833
F......Page 834
M......Page 835
P......Page 836
S......Page 837
X......Page 838