Index
X
Xdbconfig.xml, 245
Xdbconfig.xml, configuring, 245–248
XDK (XML Developer’s Kit), 130
XDK (XML Developer’s Kit 10g), 106
XDK APIs, querying XMLType with C++, 447–449
XDK C componentsUNIX setup of, 367–368
Windows setup of, 370–371
XDK C++ componentsUNIX setup of, 423–424
Windows setup of, 426–427
XDK C libraries, Oracle, 366–367
libcore10.a, libcoresh20.so, and libcore10.dll, 366
libnls10.a and oranls10.dll, 367
libunls10.a and oraunls10.dll, 367
libxml10.a, libxml10.so, and oraxml10.dll, 366
XDK C++ libraries, Oracle, 422–423
XDK Component Palette, creating, 264–266
XDK environment, setting up, 260–261
XDK, initializing for XMLType XOB Access, 446–447
XDK Java libraries, Oracle, 256–258
XDK, using with Oracle JDeveloper, 260–266
creating XDK Component Palette, 264–266
setting up database connection, 261–264
setting up XDK environment, 260–261
XML (extensible markup language), 4
accessing using DOM, 17–27
accessing with DOM, 15
accessing with SAX, 28–42
accessing with StAX, 15
creating Java stored procedure to process, 502–504
creating portal sites with, 289–311
database schema and XML documents, 11–14
introducing, 3–14
parsing, 467–474
parsing from local file systems, 467–471
parsing from URLs, 471–474
querying from command line, 91
querying in database, 92–93
querying with XQueryX, 91
retrieving and generating, 155
valid XML documents, 8–9
validating against DTDs, 66–68
validating with DTDs, 63–81
validating with XML schemas (XSDs), 63–81, 73–74
well-formed XML documents, 7–8
XML and databases, 11
XML documents, 4–7
XML namespaces, 9–11
XML, accessing with Java binding, 42–45
binding to XML instance, 43–44
generating XML classes, 43
input XML schema, 43
XML document created by Java application, 44–45
XML, accessing with JAXB, 15
XML, accessing with StAX, 15, 45–47
XML and C++, Oracle, 421–431
XML and C, Oracle, 365–374
C XML development environment, 367–374
Oracle XDK C libraries, 366–367
XML and databases, 11
XML and Java, Oracle, 253–266
XML application environment, setting up C++ OCI, 435–437
XML application headers, OCI, 395–396, 435–437
XML application, initializing C++ database, 438–439
XML application librariesOCI, 396
OCI and C++, 437
XML application make files, OCI, 396–397
XML-based reusable components, developing, 343–362
building pipeline applications, 352–360
designing framework, 344–345
running pipeline application, 360–362
simple pipeline examples, 345–352
XML beans in JSPs, using, 115
XML beans, processing XML with JSPs and, 108–115
XML classes, generating, 43
XML configuration file, creating, 378–382
defining profiles, 380–382
XSLT stylesheets, 379–380
XML-configured transformation engine, creating, 409–418
compiling stylesheets with xslcompile, 411–414
designing framework, 410–411
running XSLT virtual machine with xsbtransform, 414–417
XML data loading, 168–171
XML data-retrieval application, building, 451–462
building cppextract application, 452–459
designing framework, 452
extending framework, 460–462
running cppextract application, 459–460
XML data, retrieving using XPath, 476–478
XML data, searching, 155, 219–240
best practices, 239–240
full text searching, 230–238
XPath-based searches, 220–229
XML data, storing, 150–154, 157–188
best practices, 185–187
external tables, 184–185
schema evolution, 185
storing XML documents in CLOB XMLTypes, 158–159
storing XML documents in relational tables, 176–184
storing XML documents in XML schema-based XMLTypes, 159–176
XML database and standards, 148–149
XML database, connecting FAQ web site to, 274–277
XML, database design decisions for, 522–526
XML database OCI application, building, 393–408
XML database OCI C++ application, building, 433–450
connecting to databases, 440–441
creating C++ OCI helper class, 437–438
creating C++ query application, 443–444
designing framework, 434–435
disconnecting from databases and cleaning up, 441–442
initializing C++ database XML application, 438–439
initializing XDK for XMLType XOB Access, 446–447
querying XMLType with C++ XDK APIs, 447–449
running application, 449
selecting into XMLType, 444–446
setting up C++ OCI XML application environment, 435–437
XML databasesdesigning, 149–156, 155–156
installing Oracle, 133–137
Oracle, 140–148
XML databases, Oracle, 129–156
designing XML databases, 149–156
installed Oracle XML DB components, 242–244
Oracle XML database, 140–148
setting up Oracle XML databases, 132–140
XML database and standards, 148–149
XML support in Oracle databases, 130–132
XML databases, Oracle, 241–251
installed Oracle XML DB components, 242–244
security management, 248–251
XML databases, setting up Oracle, 132–140
creating users to run XMLType samples, 138
installing Oracle XML databases, 133–137
installing sample database schemas, 137–138
setting up WebDAV folders, 138–140
XML DB (XML Database), 130
XML DB components, installed Oracle, 242–244
XML DB, configuring Oracle, 244–248
configuring xdbconfig.xml, 245–248
xdbconfig.xml, 245
XML DB Repository interfaces, Oracle, 170
XML DB Repository, Oracle, 147, 154, 173–176
resource management, 174–175
version control, 175–176
XML DB Repository, protecting data in Oracle, 248–250
XML DB Repository, XML stored in Oracle, 524
XML, designing databases for Web applications,155
XML Developer’s Kit 10g (XDK), 106
XML development environmentC, 367–374
setting up C++, 423–430
XML document created by Java application, 44–45
XML document fragments, appending, 215–216
XML document models and databases, 75–78
mapping DTDs to database schemas, 75–76
mapping XML documents to database schemas, 76
supported database mappings, 76–78
XML document pruning use case for cppextract, 460–461
XML documentsin CLOB XMLTypes, 158–159
in CLOBs, 77
database schema and, 11–14
dividing into fragments, 180–182
as fragment documents, 78
inserting with XSQL Servlet, 122
mapping, 12–14
mapping to database schemas, 76
as object-relational data, 77, 78
parsing and binding, 16–17
processing invalid, 361
searching using XPath, 221–224
stored as native XMLTypes, 14
stored as XMLType CLOBs, 13
stored as XMLType views, 13
storing in CLOB XMLTypes, 158–159
storing in relational tables, 176–184
storing in XML schema-based XMLTypes, 159–176
valid, 8–9
well-formed, 7–8
as XMLTypes, 78
XML documents defined, 4–7
body, 6–7
prolog, 5–6
XML documents, querying, 91
querying XML from command line, 91
querying XML with XQueryX, 91
running in interactive mode, 91
XML-enabled FAQ web site, 268
XML fragments, 212–213
XML functionality, simple JSP, 126
XML gateway application with SOAP and AQ, 313–342
conventional solution, 314–315
creating framework, 317–323
designing framework, 314–317
extending application’s functionality, 341–342
extending framework, 332–340
interfacing to Internet, 316–317
stream-based one-step solution, 315–316
XML, generating and retrieving, 189–218
best practices, 216–217
creating XMLType views, 211–212
DBM_XMLGEN, 199–206
generating XML from SQL data, 190–199, 199–206
generating XML schemas, 209–210
processing XML, 212–216
retrieving using SQL/XML function, 206–208
retrieving using XMLType function, 206–208
SQL/XML functions, 190–199
XML, generating from SQL data, 190–199, 199–206
XML instance, binding to, 43–44
XML-managed application, building, 375–391
creating publishcat application, 386–391
creating XML configuration file, 378–382
creating XSL stylesheets, 383–385
designing framework, 376–377
XML media files, 377–378
XML media files, 377–378
bookcatalog.dtd, 377
cdcatalog.dtd, 378
dvdcatalog.dtd, 378
XML messaging and RPC with SOAP, 95–104
best practices, 104
introducing SOAP, 96–98
using SOAP and Oracle database, 100–103
using SOAP and Oracle XDK, 99–100
XML messaging gateway, creating, 323–340
XML namespaces, 9–11
XML, navigating with XPath, 54–55
XML operations with XQuery, 83–94
best practices, 93–94
Oracle XQuery engine, 89–90
querying XML documents, 91
XQuery, 84–89
XQuery and Oracle database, 92–93
XML pipeline, 105
XML Pipeline Processor, 106–108
XML platform, Oracle, 520–521, 527
XML POs (purchase orders), creating, 321–323
XML-powered web site, building, 267–288
adding pagination to FAQ listing, 277–279
connecting FAQ web site to XML database, 274–277
creating FAQ database, 269–274
creating glossary, 283–287
designing framework, 268–269
displaying FAQ and answers, 280–283
searching FAQs, 287
XML-enabled FAQ web site, 268
XML processing. See also SQL/XML processing
multistage, 107–108
tier decisions, 521–522
XML, processing, 212–216
dealing with XML fragments, 212–213
DOM editing, 213–216
with JSPs and XML beans, 108–115
XML, processing in Oracle JVM, 507–515
resolving URL references, 507–511
SAX XML processing, 511–515
XML processing techniques, PL/SQL, 466–479
XML, processing using DOM, 474–478
dealing with namespaces, 475–476
retrieving XML data using XPath, 476–478
XML, processing using XSLT, 478–479
XML query specification, W3C, 532–533
XML schemaannotations, 165–168
built-in datatypes, 69–70
input, 43
language, 66–68
registration, 160–165
validation, 172–173
XML schema-based types, 153
XML schema-based XMLTypescreating, 186
storing XML documents in, 159–176
XML Schema Definition (XSD), 5
XML schema specification, W3C, 532
XML schemas (XSD), generating, 209–210
XML schemas (XSD), validating XML with, 63–81, 73–74
best practices, 79–81
introducing XML schema language, 66–68
simple and complex data types, 68–73
validating XML against DTDs, 66–68
validating XML with XML schemas (XSDs), 73–74
XML document models and databases, 75–78
XML, searching using Oracle Text, 231–234
XML specification, W3C, 530–531
XML SQL utility, 177–182
canonical mapping, 177–179
dividing XML documents into fragments, 180–182
object views, 179–180
XML standards bodies and open specifications, 529–535
ISO SQL/XML specifications, 534
Java community process specifications, 534
miscellaneous helpful resources, 535
Oracle technical resources, 535
W3C specifications, 530–534
XML stored in Oracle XML DB Repository,524
XML support in Oracle databases, 130–132
XML, transforming with XSLT and XPath, 49–62
best practices, 61–62
navigating XML with XPath, 54–55
Oracle XSLT extensions, 59–60
programmatic invocation of XSLT processors, 51–53
tuning tips for XSLT, 61–62
XSL templates, 56
XSLT 2.0, 57–59
XSLT and databases, 61
XSLT process model, 56
XSLT stylesheets, 55–56
XSLTVM (XSLT Virtual Machine), 60–61
XML web services, creating portal site withadding portal functionality, 301–307
creating administration page, 307–311
designing framework, 290–293
designing static and dynamic areas, 293–301
XML with SAX, accessing, 15
XMLAGG(), 196
XMLATTRIBUTES(), 192
XMLCOLATTVAL(), 197
XMLCompress bean, 114
XMLCONCAT(), 196
XMLDBAccess bean, 113
XMLDiff bean, 114
XMLELEMENT(), 192
XMLFOREST(), 194–195
XML_SECTION_GROUP, 232–233
XMLSEQUENCE(), 195–196
XMLType, 141–145
CLOB, 522–523
columns, 153–154
object tables, 153–154
or relational tables, 150–152
querying with C++ XDK APIs, 447–449
selecting into, 444–446
views, 145, 211–212, 523–524
XMLType CLOBs, XML documents stored as, 13
XMLType DOM, operating on, 213–215
XMLType function, retrieving using, 206–208
XMLType samples, creating users to run, 138
XMLType views, XML documents stored as,13
XMLType XOB Access, initializing XDK for, 446–447
XMLTypescharacter encoding for CLOB, 158–159
CLOB, 153
creating XML schema-based, 186
storing XML documents in CLOB, 158–159
storing XML documents in XML schema-based, 159–176
updating and querying CLOB, 158
XML documents as, 78
XMLTypes, XML documents stored as native, 14
Xmlupdate application, running, 407–408
XOB Access, initializing XDK for XMLType, 446–447
XPathexpressions, 54–55
navigating XML with, 54–55
retrieving XML data using, 476–478
searching XML document using, 221–224
XPath-based queries, optimizing using indexes, 227–229
XPath-based searches, 220–229, 239
optimizing XPath-based queries using indexes, 227–229
searching XML document using XPath, 221–224
workings of, 224–226
XPath-based searching, 224–226
XPath specifications, W3C XSLT and, 533
XPath, transforming XML with XSLT and, 49–62
best practices, 61–62
navigating XML with XPath, 54–55
Oracle XSLT extensions, 59–60
programmatic invocation of XSLT processors, 51–53
tuning tips for XSLT, 61–62
XSL templates, 56
XSLT 2.0, 57–59
XSLT and databases, 61
XSLT process model, 56
XSLT stylesheets, 55–56
XSLTVM (XSLT Virtual Machine), 60–61
XQuery, 84–89
API for Java, 92
basics, 85
expressions, 85–87
introducing XQueryX, 88–89
and Oracle database, 92–93
query prolog, 87–88
versus SQL-XML, 94
versus XSLT 2.0, 93
XQuery engine, Oracle, 89–90
setting up environment, 89
testing installation, 89–90
XQuery, XML operations with, 83–94
best practices, 93–94
Oracle XQuery engine, 89–90
querying XML documents, 91
XQuery and Oracle database, 92–93
XQueryX, 88–89
querying XML with, 91
Xsbtransform, running XSLT virtual machine with, 414–417
XSD (XML Schema Definition), 5, 64
XSDConditionalValProcess process, 357–360
XSDs, local and remote, 361
XSDSchemaBuilder process, 354
XSDValidator bean, 114–115
XSDValProcess process, 354–357
Xsi:types, handling in POs, 341
XSL stylesheets, creating, 383–385
XSL templates, 56
XSL Transformation (XSLT), 108
Xslcompile, compiling stylesheets with, 411–414
XSLT 2.0, 57–59
function definitions, 58
grouping, 57
multiple result documents, 58–59
temporary trees, 59
XSLT 2.0, XQuery versus, 93
XSLT and databases, 61
XSLT and XPath, transforming XML with, 49–62
best practices, 61–62
navigating XML with XPath, 54–55
Oracle XSLT extensions, 59–60
programmatic invocation of XSLT processors, 51–53
tuning tips for XSLT, 61–62
XSL templates, 56
XSLT 2.0, 57–59
XSLT and databases, 61
XSLT process model, 56
XSLT stylesheets, 55–56
XSLTVM (XSLT Virtual Machine), 60–61
XSLT, document() function in, 62
XSLT extensionsbuilt-in Java Oracle, 60
Oracle, 59–60
XSLT for multiple transformations, overall performance of, 62
XSLT process model, 56
<xsl:apply-imports/>, 56
<xsl:apply-templates/>, 56
XSLT, processing XML using, 478–479
XSLT processors, programmatic invocation of, 51–53
XSLT stylesheets, 55–56, 379–380
XSLT, tuning tips for, 61–62
XSLT virtual machinerunning, 414–417
running with xsbtransform, 414–417
XSLT Virtual Machine (XSLTVM), 60–61
XSLT (XSL Transformation), 108
XSLTransformer bean, 111
XSLTVM (XSLT Virtual Machine), 60–61
XSQL, 105
XSQL home page, building, 275
XSQL output, transforming with stylesheets, 119–121
XSQL Page publishing framework, 116–125
XSQL pages, 116–117, 125
XSQL Servletsinserting XML documents with, 122
installing, 118
submitting queries to, 118–119
updating data with, 122–125