4-83 5 XSLT Processor for Java Using XML Parser for Java: XSLT Processor.... 7-4 Using XML Class Generator for Java with XML Schema .... 7-8 Examples Using XML Java Class Generator with
Trang 1XML Developer’s Kits Guide - XDK
Release 2 (9.2)
March 2002
Part No A96621-01
Trang 2Copyright © 2001, 2002 Oracle Corporation All rights reserved.
Primary Author: Jack Melnick
Contributing Authors: Mark Bauer, Shelley Higgins, Steve Muench, Mark Scardina, Jinyu Wang Contributors: Sandeepan Banerjee, Kishore Bhamidipati, Bill Han, K Karun, Murali Krishnaprasad, Bruce Lowenthal, Anjana Manian, Meghna Mehta, Nick Montoya, Ravi Murthy, Den Raphaely, Blaise Ribet, Tarvinder Singh, Tomas Saulys, Tim Yu, Jim Warner, Simon Wong, Kongyi Zhou
Graphic Designer: Valarie Moore
The Programs (which include both the software and documentation) contain proprietary information of Oracle Corporation; 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 Oracle Corporation does not warrant that this document is 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, without the express written permission of Oracle Corporation.
If the Programs are delivered to the U.S Government or anyone licensing or using the programs on behalf of the U.S Government, the following notice is applicable:
Restricted Rights Notice Programs delivered subject to the DOD FAR Supplement are "commercial
computer software" and use, duplication, and disclosure of the Programs, including documentation, shall be subject to the licensing restrictions set forth in the applicable Oracle license agreement.
Otherwise, Programs delivered subject to the Federal Acquisition Regulations are "restricted computer software" and use, duplication, and disclosure of the Programs shall be subject to the restrictions 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 Oracle Corporation disclaims liability for any damages caused by such use of the Programs.
Oracle is a registered trademark, and Oracle Press, Oracle8i, Oracle9i, PL/SQL, Pro*C/C++, Pro*COBOL,
SQL*Plus, OracleMobile, Oracle Discoverer, Oracle Store, Express, Oracle7, and Pro*C are trademarks or registered trademarks of Oracle Corporation Other names may be trademarks of their respective owners.
Trang 3Send Us Your Comments xxvii
Preface xxix
What’s New in XDK? xxxvii
Part I XML Developer’s Kits (XDK)
1 Overview of XML Developer’s Kits and Components
Oracle XML Components: Overview 1-2
Development Tools and Other XML-Enabled Oracle9i Features 1-3XDK for Java 1-6XDK for JavaBeans 1-6XDK for C 1-7XDK for C++ 1-7XDK for PL/SQL 1-7
Oracle XML SQL Utility (XSU) 1-16
Trang 4TransX Utility 1-18
Oracle Text 1-19
XML Gateway 1-19
Oracle XML Components: Generating XML Documents 1-19
Using Oracle XML Components to Generate XML Documents: Java 1-20
Using Oracle XML Components to Generate XML Documents: C 1-22
Using Oracle XML Components to Generate XML Documents: C++ 1-24
Using Oracle XML Components to Generate XML Documents: PL/SQL 1-26
Frequently Asked Questions (FAQs): Oracle XML-Enabled Technology 1-28Frequently Asked Questions About the XDK 1-28What XML Components Do I Need to Install? 1-28What Software Is Needed to Build an XML Application? 1-29XML Questions 1-29Are There XDK Utilities That Translate Data from Other Formats to XML? 1-30Can Oracle Generate a Database Schema from a Rational Rose Generated XML File? 1-30Does Oracle Offer Any Tools to Create and Edit XML Documents? 1-31How Can I Format XML Documents as PDF? 1-31How Do I Load a Large XML Document into the Database? 1-31Can SQL*Loader Support Nesting? 1-32
Frequently Asked Questions About Previous Oracle Releases 1-33Can I Use Parsers from Different Vendors? 1-33
Is There XML Support in Oracle Release 8.0.6? 1-34Can I Do Data Transfers to Other Vendors Using XML from Oracle Release 7.3.4? 1-34
If I Use Versions Prior to Oracle8i Can I Use Oracle XML Tools? 1-34Can I Create Magnetic Tape Files with Oracle XML? 1-35
Frequently Asked Questions About Browsers that Support XML 1-35Which Browsers Support XML? 1-35
Frequently Asked Questions About XML Standards 1-35Are There Advantages of XML Over EDI? 1-35What B2B Standards and Development Tools Does Oracle Support? 1-36What Is Oracle Corporation’s Direction Regarding XML? 1-37What Is Oracle Corporation’s Plans for XML Query? 1-37Are There Standard DTDs That We Can Use for Orders, Shipments, and So On? 1-37
Trang 5Frequently Asked Questions About Maximum File Sizes 1-38What Is the Maximum XML File Size When Stored in CLOBs? 1-38Are There Any Limitations on the Size of an XML File? 1-38What Is the Maximum Size for an XML Document? 1-38
Frequently Asked Questions About Inserting XML Data into Tables 1-39What Do I Need to Insert Data Into Tables Using XML? 1-39
Frequently Asked Questions About XML Performance in the Database 1-39Where Can I Find Information About the Performance of XML and Oracle? 1-39How Can I Speed Up the Record Retrieval in XML Documents? 1-40
Frequently Asked Questions About Multiple National Languages 1-40How Do I Put Information in Chinese into XML? 1-40
Frequently Asked Questions About Reference Material 1-41What Are Some Recommended XML and XSL Books? 1-41
2 Getting Started with XDK for Java and JavaBeans
Installation of the XDK for Java 2-2Installation Steps for XDK for Java 2-2What Are the XDK for Java Components? 2-3Environment Settings for XDK for Java 2-5XSU Setup 2-6XSQL Servlet Setup 2-7XDK for Java with Globalization Support 2-16XDK Dependencies 2-16
Installation of the XDK for JavaBeans 2-17XDK for JavaBeans Components 2-19Setting Up the XDK for JavaBeans Environment 2-21XDK for JavaBeans with Globalization Support 2-22
3 Getting Started with XDKs for C/C++ and PL/SQL
Installation of XDK for C 3-2Getting the XDK for C 3-2UNIX Environment Setup 3-3Windows NT Environment Setup 3-4
Trang 6Setting the UNIX Environment for C++ 3-15Windows NT Environment Setup 3-16
Installation of XDK for PL/SQL 3-25Setting the Environment for XDK for PL/SQL 3-26Installing XDK for PL/SQL into the Database 3-27Loading XDK for PL/SQL 3-29
Part II XDK for Java
4 XML Parser for Java
XML Parser for Java: Features 4-2XSL Transformation (XSLT) Processor 4-4Namespace Support 4-5Oracle XML Parsers Validation Modes 4-5
Parsers Access XML Document’s Content and Structure 4-6
DOM and SAX APIs 4-7DOM: Tree-Based API 4-8SAX: Event-Based API 4-8Guidelines for Using DOM and SAX APIs 4-9
XML Compressor 4-10XML Serialization/Compression 4-10
Running the XML Parser for Java Samples 4-11XML Parser for Java - XML Example 1: class.xml 4-13XML Parser for Java - XML Example 2: Using DTD employee — employee.xml 4-14XML Parser for Java - XML Example 3: Using DTD family.dtd — family.xml 4-14XML Parser for Java - XSL Example 1: XSL (iden.xsl) 4-14XML Parser for Java - DTD Example 1: (NSExample) 4-15
Using XML Parser for Java: DOMParser() Class 4-15XML Parser for Java Example 1: Using the Parser and DOM API 4-17Comments on DOMParser() Example 1 4-21
Using XML Parser for Java: DOMNamespace() Class 4-22XML Parser for Java Example 2: Parsing a URL — DOMNamespace.java 4-22
Using XML Parser for Java: SAXParser() Class 4-26
Trang 7oraxml - Oracle XML parser 4-36
Using JAXP 4-37JAXP Example: (JAVAExamples.java) 4-37JAXP Example: (oraContentHandler.java 4-45
Frequently Asked Questions About DTDs 4-48Why Can’t My Parser Find the DTD File? 4-48Can I Validate an XML File Using an External DTD? 4-48Does Oracle Perform DTD Caching? 4-48How Does the XML Parser for Java Recognize External DTDs? 4-49How Do I Load External DTDs from a JAR File? 4-49Can I Check the Correctness of an XML Document Using Their DTD? 4-50How Do I Parse a DTD Object Separately from My XML Document? 4-50
Is the XML Parser Case-Sensitive? 4-50How Do I Extract Embedded XML from a CDATA Section? 4-51Why Am I Getting an Error When I Call DOMParser.parseDTD()? 4-52
Is There a Standard Extension for External Entity References in an XML Document? 4-54
Frequently Asked Questions About DOM and SAX APIs 4-55How Do I Use the DOM API to Count Tagged Elements? 4-55How Does the DOM Parser Work? 4-55How Do I Create a Node with a Value to Be Set Later? 4-55How Do I Traverse the XML Tree? 4-55How Do I Extract Elements from an XML File? 4-55Does a DTD Validate the DOM Tree? 4-56How Do I Find the First Child Node Element Value? 4-56How Do I Create DocType Node? 4-56How Do I Use the XMLNode.selectNodes() Method? 4-56How Does the SAX API Determine the Data Value? 4-57How Does SAXSample.java Call Methods? 4-58Does the DOMParser Use the org.xml.sax.Parser Interface? 4-58How Do I Create a New Document Type Node with DOM API? 4-58How Do I Query for First Child Node’s Value of a Certain Tag? 4-59Can I Generate an XML Document from Data in Variables? 4-59How Do I Use the DOM API to Print Data in the Element Tags? 4-60
Trang 8Will WRONG_DOCUMENT_ERR Result from This Code Fragment? 4-61Why Are Only the Child Nodes Inserted? 4-61Why Do I Get DOMException when Setting Node Value? 4-61How Can I Force the SAX Parser to Not Discard Characters Following Whitespace? 4-62
Frequently Asked Questions About Validation 4-62What Are the Rules for Locating DTDs? 4-62Can Multiple Threads Use a Single XSLProcessor/Stylesheet? 4-62Can I Use Document Clones in Multiple Threads? 4-63
Frequently Asked Questions About Character Sets 4-63How Do I Parse iso-8859-1-encoded Documents with Special Characters? 4-63How Do I Parse XML Stored in NCLOB with UTF-8 Encoding? 4-63
Is There Globalization Support Within XML? 4-65How Do I Parse a Document Containing Accented Characters? 4-65How Do I Store Accented Characters in an XML Document? 4-66
Frequently Asked Questions: Adding an XML Document as a Child 4-67How Do I Add an XML Document as a Child to Another Element? 4-67How Do I Add an XML Document Fragment as a Child to an XML Document? 4-68
Frequently Asked General Questions About XML Parser 4-69Why Do I Get an Error on Installing the XML Parser? 4-69How Do I Remove the XML Parser from the Database? 4-69What Does an XML Parser Do? 4-70How Do I Convert XML Files into HTML Files? 4-70Does the XML Parser Validate Against XML Schema? 4-70How Do I Include Binary Data in an XML Document? 4-70What Is XML Schema? 4-71Does Oracle Participate in Defining the XML/XSL Standard? 4-71How Do I Find XDK Version Numbers? 4-71Are Namespace and Schema Supported? 4-71Can I Use JDK 1.1.x with XML Parser for Java v2? 4-71How Do I Sort the Result Within the Page? 4-71
Do I Need Oracle9i to Run XML Parser for Java? 4-72Can I Dynamically Set the Encoding in an XML File? 4-72How Do I Parse a String? 4-72
Trang 9How Do I Insert Characters <, >, =, ’, ", and & in XML Documents? 4-73 How Do I Use Special Characters in the Tags? 4-73 How Do I Parse XML from Data of Type String? 4-74 How Do I Extract Data from an XML Document into a String? 4-74
Is Disabling Output Escaping Supported? 4-74 Can I Delimit Multiple XML Documents with a Special Character? 4-74 How Do I Use Entity References with the XML Parser for Java? 4-75 Can I Divide and Store an XML Document Without a DDL Insert? 4-75
In Querying, Can I Perform Hierarchical Searches Across XML Documents? 4-75 How Do I Merge XML Documents? 4-75 How Do I Find the Value of a Tag? 4-77 How Do I Grant the JAVASYSPRIV Role to a User? 4-77 How Do I Include an External XML File in Another XML File? 4-78 Does the Parser Come with a Utility to View the Parsed Output? 4-78 From Where Can I Download OraXSL, the Parser’s Command Line Interface? 4-80 Does Oracle Support Hierarchical Mapping? 4-80 What Good Books for XML/XSL Can You Recommend? 4-81 Are There XML Developer Kits for the HP/UX Platform? 4-82 How Do I Compress Large Volumes of XML Documents? 4-82 How Do I Generate an XML Document Based on Two Tables? 4-83
5 XSLT Processor for Java
Using XML Parser for Java: XSLT Processor 5-2 XSLT Processor for Java Example 5-3
XSLT Processor for Java: Command-Line Interface, oraxsl 5-6 oraxsl - Oracle XSL processor 5-6
XML Extension Functions for XSLT Processing 5-7 XSLT Processor Extension Functions: Introduction 5-7 Static Versus Non-Static Methods 5-8 Constructor Extension Function 5-8 Return Value Extension Function 5-9 Datatypes Extension Function 5-10 Oracle XSLT Built-In Extensions: ora:node-set and ora:output 5-10
Trang 10Is the Output Method “html” Supported in the XSL Parser? 5-14Can I Prevent XSL from Returning a Meta-Tag in Netscape 4.0? 5-15How Do I Work Around a Display Bug in the Browser? 5-16Where Can I Get More Information on XSL Error Messages? 5-16How Do I Generate the HTML "Less Than" (<) Character? 5-16Why Does HTML “<“ Conversion Work in oraxsl But Not in XSLSample.java? 5-17Where Can I Find XSLT Examples? 5-18Where Can I Find a List of XSLT Features? 5-18How Do I Use XSL to Convert an XML Document to Another Form? 5-18Where Can I Find More Information on XSL? 5-20Can the XSL Processor Produce Multiple Outputs? 5-20
6 XML Schema Processor for Java
XML Schema Processor for Java Usage 6-8Modes for Schema Validation 6-8Using the XML Schema API 6-9
How to Run the XML Schema for Java Sample Program 6-10Makefile for XML Schema Processor for Java 6-11XML Schema for Java Example 1: cat.xsd 6-12XML Schema for Java Example 2: catalogue.xml 6-14XML Schema for Java Example 3: catalogue_e.xml 6-14XML Schema for Java Example 4: report.xml 6-15XML Schema for Java Example 5: report.xsd 6-16XML Schema for Java Example 6: report_e.xml 6-18XML Schema for Java Example 7: XSDSample.java 6-18XML Schema for Java Example 8: XSDSetSchema.java 6-20
Trang 11XML Schema for Java Example 11: embeded_xsql.xml 6-26
7 XML Class Generator for Java
Accessing XML Class Generator for Java 7-2
XML Class Generator for Java: Overview 7-2
oracg Command Line Utility 7-3
Class Generator for Java: XML Schema 7-4Namespace Features 7-4
Using XML Class Generator for Java with XML Schema 7-5Generating Top Level Element Classes 7-6Generating Top Level ComplexType Element Classes 7-7Generating SimpleType Element Classes 7-7
Using XML Class Generator for Java with DTDs 7-8
Examples Using XML Java Class Generator with DTDs and XML Schema 7-9Running XML Class Generator for Java: DTD Examples 7-10Running XML Class Generator for Java: XML Schema Examples 7-11XML Class Generator for Java, DTD Example 1a: Application: SampleMain.java 7-12XML Class Generator for Java, DTD Example 1b: DTD Input — widl.dtd 7-14XML Class Generator for Java, DTD Example 1c: Input — widl.xml 7-15XML Class Generator for Java, DTD Example 1d: TestWidl.java 7-16XML Class Generator for Java, DTD Example 1e: XML Output — widl.out 7-18XML Class Generator for Java, Schema Example 1a: XML Schema, car.xsd 7-18XML Class Generator for Java, Schema Example 1b: Application, CarDealer.java 7-20XML Class Generator for Java, Schema Example 2a: Schema: book.xsd 7-22XML Class Generator for Java, Schema Example 2b: BookCatalogue.java 7-23XML Class Generator for Java, Schema Example 3a: Schema: po.xsd 7-24XML Class Generator for Java, Schema Example 3b: Application: TestPo.java 7-26
Frequently Asked Questions About the Class Generator for Java 7-29How Do I Install the XML Class Generator for Java? 7-30What Does the XML Class Generator for Java Do? 7-30Which DTDs Are Supported? 7-30Why Do I Get a "Classes Not Found" Error? 7-30
In XML Class Generator, How Do I Create the Root Object More Than Once? 7-30
Trang 128 XML SQL Utility (XSU)
What Is XML SQL Utility (XSU)? 8-2XSU Features 8-3
XSU Oracle9i New Features 8-3
XSU Dependencies and Installation 8-4Dependencies 8-4Installation 8-4
XML SQL Utility and the Bigger Picture 8-5XML SQL Utility in the Database 8-5XML SQL Utility in the Middle Tier 8-6XML SQL Utility in a Web Server 8-7XML SQL Utility in the Client Tier 8-8
SQL-to-XML and XML-to-SQL Mapping Primer 8-8Default SQL-to-XML Mapping 8-8Customizing the Generated XML: Mapping SQL to XML 8-12Default XML-to-SQL Mapping 8-13
How XML SQL Utility Works 8-14Selecting with XSU 8-14Inserting with XSU 8-15Updating with XSU 8-15Deleting with XSU 8-16
Using the XSU Command Line Front End, OracleXML 8-17Generating XML Using the XSU Command Line 8-17XSU’s OracleXML getXML Options 8-19Inserting XML Using XSU’s Command Line (putXML) 8-20XSU OracleXML putXML Options 8-22
XSU Java API 8-22
Generating XML with XSU’s OracleXMLQuery 8-23Generating XML from SQL Queries Using XSU 8-23XSU Generating XML Example 1: Generating a String from Table emp (Java) 8-24XSU Generating XML Example 2: Generating DOM From Table emp (Java) 8-27
Paginating Results: skipRows and maxRows 8-29
Trang 13keepObjectOpen Function 8-30XSU Generating XML Example 3: Paginating Results: Generating an XML Page (Java) 8-30
Generating XML from ResultSet Objects 8-32XSU Generating XML Example 4: Generating XML from JDBC ResultSets (Java) 8-32XSU Generating XML Example 5: Generating XML from Procedure Return Values 8-34
Raising No Rows Exception 8-35XSU Generating XML Example 6: No Rows Exception (Java) 8-36
Storing XML Back in the Database Using XSU OracleXMLSave 8-37
Insert Processing Using XSU (Java API) 8-38XSU Inserting XML Example 7: Inserting XML Values into All Columns (Java) 8-38XSU Inserting XML Example 8: Inserting XML Values into Columns (Java) 8-39
Update Processing Using XSU (Java API) 8-40XSU Updating XML Example 9: Updating a Table Using the keyColumns (Java) 8-41XSU Updating XML Example 10: Updating a Specified List of Columns (Java) 8-42
Delete Processing Using XSU (Java API) 8-43XSU Deleting XML Example 11: Deleting Operations Per Row (Java) 8-43XSU Deleting XML Example 12: Deleting Specified Key Values (Java) 8-44
Advanced XSU Usage Techniques 8-45XSU Exception Handling in Java 8-45
Frequently Asked Questions About XML SQL Utility (XSU) 8-46What Schema Structure Should I Use with XSU to Store XML? 8-46Can XSU Store XML Data Across Tables? 8-48Can I Use XSU to Load XML Stored in Attributes? 8-48
Is XSU Case-Sensitive? Can I Use ignoreCase? 8-48Will XSU Generate the Database Schema from a DTD? 8-49Can You Provide a Thin Driver Connect String Example for XSU? 8-49Does XSU Commit After INSERT, DELETE, or UPDATE? 8-49Can You Explain How to Map Table Columns to XML Attributes Using XSU? 8-50
9 XSQL Pages Publishing Framework
XSQL Pages Publishing Framework Overview 9-2What Can I Do with Oracle XSQL Pages? 9-2Where Can I Obtain Oracle XSQL Pages? 9-4
Trang 14Producing XML Datagrams from SQL Queries 9-6Transforming XML Datagrams into an Alternative XML Format 9-9Transforming XML Datagrams into HTML for Display 9-12
Setting Up and Using XSQL Pages in Your Environment 9-15Using XSQL Pages with Oracle JDeveloper 9-15Setting the CLASSPATH Correctly in Your Production Environment 9-16Setting Up the Connection Definitions 9-17Using the XSQL Command-Line Utility 9-18
Overview of All XSQL Pages Capabilities 9-19Using All of the Core Built-in Actions 9-19Aggregating Information Using <xsql:include-xsql> 9-39Including XMLType Query Results 9-41Handling Posted Information 9-44Using Custom XSQL Action Handlers 9-49
Description of XSQL Servlet Examples 9-51Setting Up the Demo Data 9-53
Advanced XSQL Pages Topics 9-54Understanding Client Stylesheet-Override Options 9-54Controlling How Stylesheets Are Processed 9-55Using XSQLConfig.xml to Tune Your Environment 9-59Using the FOP Serializer to Produce PDF Output 9-64Using XSQL Page Processor Programmatically 9-66Writing Custom XSQL Action Handlers 9-68Writing Custom XSQL Serializers 9-73Writing Custom XSQL Connection Managers 9-76Formatting XSQL Action Handler Errors 9-77
XSQL Servlet Limitations 9-78HTTP Parameters with Multibyte Names 9-78CURSOR() Function in SQL Statements 9-79
Frequently Asked Questions About the XSQL Servlet 9-79Can I Specify a DTD While Transforming XSQL Output to a WML Document? 9-79Can I Write XSQL Servlet Conditional Statements? 9-79Can I Use a Value Retrieved in One Query in Another Query’s Where Clause? 9-80
Trang 15How Do I Run XSQL on Oracle8i Lite? 9-81How Do I Handle Multi-Valued HTML Form Parameters? 9-82Can I Run the XSQL Servlet with Oracle 7.3? 9-84Why Isn’t the Out Variable Supported in <xsql:dml>? 9-84Why Am I Receiving "Unable to Connect" Errors? 9-85Can I Use Other File Extensions Besides *.xsql? 9-86How Do I Avoid Errors for Queries Containing XML Reserved Characters? 9-87Why Do I Get "No Posted Document to Process" When I Try to Post XML? 9-88Can XSQL Support SOAP? 9-88How Do I Pass the Connection for XSQL? 9-88How Do I Control How Database Connections and Passwords Are Stored? 9-89How Do I Access Authentication Information in a Custom Connection Manager? 9-89How Do I Retrieve the Name of the Current XSQL Page? 9-89How Do I Resolve Errors When I Try to Use the FOP Serializer? 9-90How Do I Tune XSQL Pages for Fastest Performance? 9-91How Do I Use XSQL with Other Connection Pool Implementations? 9-92How Do I Include XML Documents Stored in CLOBs? 9-92How Do I Combine JSP and XSQL in the Same Page? 9-92Can I Choose a Stylesheet Based on Input Arguments? 9-92
10 XDK JavaBeans
Accessing Oracle XML Transviewer Beans 10-2
XDK for Java: XML Transviewer Bean Features 10-2Direct Access from JDeveloper 10-2Sample Transviewer Bean Application 10-2Database Connectivity 10-2XML Transviewer Beans 10-2
Using the XML Transviewer Beans 10-4
Using DOMBuilder Bean 10-5Used for Asynchronous Parsing in the Background 10-5DOMBuilder Bean Parses Many Files Fast 10-5DOMBuilder Bean Usage 10-6
Using XSLTransformer Bean 10-9
Trang 16XSL Transviewer Bean Scenario 1: Regenerating HTML Only When Data Changes 10-10XSLTransformer Bean Usage 10-11
Using Treeviewer Bean 10-13
Using XMLSourceView Bean 10-15XMLSourceView Bean Usage 10-16
Using XMLTransformPanel Bean 10-20XMLTransformPanel Bean Features 10-20
Using DBViewer Bean 10-23DBViewer Bean Usage 10-26
Using DBAccess Bean 10-30DBAcess Bean Usage 10-30
Using the XMLDiff Bean 10-32XMLDiff Methods 10-32
Running the Transviewer Bean Samples 10-34
Installing the Transviewer Bean Samples 10-36Using Database Connectivity 10-37Running Makefile 10-38Transviewer Bean Example 1: AsyncTransformSample.java 10-39Transviewer Bean Example 2: ViewSample.java 10-45Transviewer Bean Example 3: XMLTransformPanelSample.java 10-49Transviewer Bean Example 4a: DBViewer Bean — DBViewClaims.java 10-50Transviewer Bean Example 4b: DBViewer Bean — DBViewFrame.java 10-53Transviewer Bean Example 4c: DBViewer Bean — DBViewSample.java 10-54XMLDiffSample.java 10-55XMLDiffFrame.java 10-60
What Is SOAP? 11-2
What Are UDDI and WSDL? 11-3
What Is Oracle SOAP? 11-4How Does SOAP Work? 11-4What Is a SOAP Client? 11-5SOAP Client API 11-5
Trang 17SOAP Transports 11-6Administrative Clients 11-6SOAP Request Handler 11-7SOAP Provider Interface and Providers 11-7SOAP Services 11-7JDeveloper Support for SOAP 11-7
See the Developer’s Guides 11-8
12 Oracle TransX Utility
Overview of the TransX Utility 12-2Primary TransX Utility Features 12-2
Installing TransX Utility 12-4Dependencies of TransX 12-4Installing TransX Using the Oracle Installer 12-5Installing TransX Downloaded from OTN 12-5
TransX Utility Command-Line Syntax 12-6TransX Utility Command-Line Examples 12-6
Sample Code for TransX Utility 12-8
Part III XDK for C/C++
13 XML Parser for C
Accessing XML Parser for C 13-2
XML Parser for C Features 13-2Specifications 13-2Memory Allocation 13-2Thread Safety 13-3Data Types Index 13-3Error Message Files 13-3Validation Modes 13-3
XML Parser for C Usage 13-3
XML Parser for C Default Behavior 13-5
Trang 18Invoking XML Parser for C 13-7Command Line Usage 13-8Writing C Code to Use Supplied APIs 13-8
Using the Sample Files Included with Your Software 13-8
Running the XML Parser for C Sample Programs 13-9Building the Sample Programs 13-9Sample Programs 13-10
14 XSLT Processor for C
Accessing XSLT for C 14-2
XSLT for C Features 14-2Specifications 14-2
XML XSLT for C (DOM Interface) Usage 14-2
Invoking XSLT for C 14-4Command Line Usage 14-5
Using the Sample Files Included with the Software 14-5
Running the XSLT for C Sample Programs 14-6Building the Sample Programs 14-6Sample Programs 14-6XSLT for C Example1: XSL — iden.xsl 14-6XSLT for C Example 2: C — XSLSample.c 14-6XSLT for C Example 3: C — XSLSample.std 14-9
15 XML Schema Processor for C
Oracle XML Schema Processor for C 15-2Oracle XML Schema for C Features 15-2Standards Conformance 15-2XML Schema Processor for C: Supplied Software 15-3
Invoking XML Schema Processor for C 15-3
XML Schema Processor for C Usage Diagram 15-4
How to Run XML Schema for C Sample Programs 15-5
Trang 19XML Parser for C++ Features 16-2Specifications 16-2Memory Allocation 16-2Thread Safety 16-3Data Types Index 16-3Error Message Files 16-3Validation Modes 16-3
XML Parser for C++ Usage 16-3
XML Parser for C++ Default Behavior 16-6
DOM and SAX APIs 16-7Using the SAX API 16-7
Invoking XML Parser for C++ 16-8Command Line Usage 16-8Writing C++ Code to Use Supplied APIs 16-9
Using the Sample Files Included with Your Software 16-9
Running the XML Parser for C++ Sample Programs 16-10Building the Sample Programs 16-10Sample Programs 16-10
17 XSLT Processor for C++
Accessing XSLT for C++ 17-2
XSLT for C++ Features 17-2Specifications 17-2
XSLT for C++ (DOM Interface) Usage 17-2
Invoking XSLT for C++ 17-5Command Line Usage 17-5Writing C++ Code to Use Supplied APIs 17-5
Using the Sample Files Included with Your Software 17-5
Running the XSLT for C++ Sample Programs 17-6Building the Sample programs 17-6Sample Programs 17-6
Trang 20Oracle XML Schema for C++ Features 18-2Standards Conformance 18-2XML Schema Processor for C++: Provided Software 18-3
Invoking XML Schema Processor for C++ 18-3
XML Schema Processor for C++ Usage Diagram 18-4
Running the Provided XML Schema Sample Programs 18-5
19 XML Class Generator for C++
Accessing XML C++ Class Generator 19-2
Using XML C++ Class Generator 19-2External DTD Parsing 19-2Error Message Files 19-2
XML C++ Class Generator Usage 19-3Input to the XML C++ Class Generator 19-3
xmlcg Usage 19-5
Using the XML C++ Class Generator Examples in sample 19-5XML C++ Class Generator Example 1: XML — Input File to Class Generator, CG.xml 19-6XML C++ Class Generator Example 2: DTD — Input File to Class Generator, CG.dtd 19-6XML C++ Class Generator Example 3: CG Sample Program 19-7
Part IV XDK for PL/SQL
20 XML Parser for PL/SQL
Accessing XML Parser for PL/SQL 20-2
What’s Needed to Run XML Parser for PL/SQL 20-2
Using XML Parser for PL/SQL (DOM Interface) 20-2XML Parser for PL/SQL: Default Behavior 20-5
Using XML Parser for PL/SQL Examples in the Sample Directory 20-5Setting Up the Environment to Run the Sample Programs 20-5Running domsample 20-6Running xslsample 20-7XML Parser for PL/SQL Example: XML — family.xml 20-9
Trang 21XML Parser for PL/SQL Example: PL/SQL — xslsample.sql 20-13
Frequently Asked Questions About the XML Parser for PL/SQL 20-16Why Do I Get an "Exception in Thread" Parser Error? 20-16How Do I Use the xmldom.GetNodeValue in PL/SQL? 20-16Can I Run the XDK for PL/SQL in an IIS Environment? 20-17How Do I Parse a DTD Contained in a CLOB with the XML Parser for PL/SQL? 20-17How Do I Use Local Variables with the XML Parser for PL/SQL? 20-19Why Do I Get a Security Error When I Grant JavaSysPriv to a User? 20-19How Do I Install the XML Parser for PL/SQL with the JServer (JVM) Option? 20-20How Do I Use the domsample Included with XML Parser for PL/SQL? 20-21How Do I Extract Part of a CLOB? 20-21Why Do I Get "Out of Memory" Errors in the XML Parser? 20-22What Are the Memory Requirements for Using the PL/SQL Parser? 20-23
Is JServer (JVM) Needed to Run XML Parser for PL/SQL? 20-23
Frequently Asked Questions About Using the DOM API 20-23What Does the XML Parser for PL/SQL Do? 20-23Can I Dynamically Set the Encoding in the XML Document? 20-24How Do I Get the Number of Elements in a Particular Tag? 20-24How Do I Parse a String? 20-24How Do I Display My XML Document? 20-24How Do I Write the XML Data Back Using Special Character Sets? 20-25How Do I Obtain an Ampersand from Character Data? 20-25How Do I Generate a Document Object from a File? 20-25Can the Parser Run on Linux? 20-25
Is Support for Namespaces and Schema Included? 20-26Why Doesn’t My Parser Find the DTD File? 20-26Can I Validate an XML File Using an External DTD? 20-26Does the Parser Have DTD Caching? 20-26How Do I Get the DOCTYPE Tag into the XML Document After It Is Parsed? 20-26How Does the XML DOM Parser Work? 20-26How Do I Create a Node Whose Value I Can Set Later? 20-26How Do I Extract Elements from the XML File? 20-27How Do I Append a Text Node to a DOMElement Using PL/SQL Parser? 20-27
Trang 22I Cannot Run the Sample File Did I Do Something Wrong In the Installation? 20-27How Do I Parse a DTD in a CLOB? 20-27Why Do I Get Errors When Parsing a Document? 20-32How Do I Use PLXML to Parse a Given URL? 20-32How Do I Use the XML Parser to Parse HTML? 20-32How Do I Move Data to a Web Browser Using PL/SQL and Oracle 7.3.4? 20-33Does the XML Parser for Java Work with Oracle 7.3.4? 20-33getNodeValue(): Getting the Value of DomNode 20-34How Do I Retrieve All Children or Grandchildren of a Node? 20-34What Causes ora-29532 "Uncaught java exception:java.lang.ClassCastException?" 20-34
21 XSLT Processor for PL/SQL
Using the XML Parser for PL/SQL: XSLT Processor (DOM Interface) 21-2XML Parser for PL/SQL: XSLT Processor — Default Behavior 21-4XML Parser for PL/SQL Example: XSL — iden.xsl 21-5
22 XML Schema Processor for PL/SQL
Oracle XML Schema Processor for PL/SQL 22-2
Building Server-Side XML Schema Validation 22-2Creating the Java Classes for XML Schema Validation 22-3Loading and Resolving the Java Class 22-4Publishing the Java Class by Defining the Specification 22-6Example Using the Stored Procedures 22-6
23 XSU for PL/SQL
XSU PL/SQL API 23-2Generating XML with DBMS_XMLQuery() 23-2XSU Generating XML Example 1: Generating XML from Simple Queries (PL/SQL) 23-2XSU Generating XML Example 2: Printing CLOB to Output Buffer 23-3XSU Generating XML Example 3: Changing ROW and ROWSET Tag Names 23-3XSU Generating XML Example 4: Using setMaxRows() and setSkipRows() 23-4
Setting Stylesheets in XSU (PL/SQL) 23-5
Trang 23Storing XML in the Database Using DBMS_XMLSave 23-7
Insert Processing Using XSU (PL/SQL API) 23-8XSU Inserting XML Example 6: Inserting Values into All Columns (PL/SQL) 23-8XSU Inserting XML Example 7: Inserting Values into Certain Columns (PL/SQL) 23-9
Update Processing Using XSU (PL/SQL API) 23-10XSU Updating XML Example 8: Updating XML Document Key Columns (PL/SQL) 23-11XSU Updating XML Example 9: Specifying a List of Columns to Update (PL/SQL) 23-12
Delete Processing Using XSU (PL/SQL API) 23-12XSU Deleting XML Example 10: Deleting Operations for Each Row (PL/SQL) 23-12XSU Example 11: Deleting by Specifying the Key Values (PL/SQL) 23-13XSU Deleting XML Example 12: Reusing the Context Handle (PL/SQL) 23-14XSU Exception Handling in PL/SQL 23-16
Frequently Asked Questions About XML SQL Utility (XSU) for PL/SQL 23-16How Can I Use XMLGEN.insertXML with LOBs? 23-16
Part V Tools and Frameworks That Support XDK
24 Developing XML Applications with JDeveloper
Introducing JDeveloper 24-2JDeveloper Covers the Complete Development Life Cycle 24-2JDeveloper Runs on Windows, Linux, and Solaris™ Operating Environment 24-3Java Alone Is Not Enough 24-3XML Tools in JDeveloper 24-3Business Components for Java (BC4J) 24-5Integrated Web Services Development 24-6
What’s Needed to Run JDeveloper 24-7XSQL Component Palette 24-7Page Selector Wizard 24-8
XDK Features in JDeveloper 24-9Oracle XDK Integration in JDeveloper 24-9Developing Web Applications in JDeveloper Using XSQL Pages 24-9
Building XML Applications with JDeveloper 24-11JDeveloper XDK Example 1: BC4J Metadata 24-11
Trang 24JDeveloper XSQL Example 2: Employee Data from Table emp: emp.xsql 24-13JDeveloper XSQL Example 3: Employee Data with Stylesheet Added 24-14
Frequently Asked Questions About JDeveloper and XML Applications 24-15How Do I Construct an XML Document in JSP? 24-15
Is There a Way to Use the @code Directly in the document() Line? 24-16How Do I Retrieve Data from messages.xml? 24-17How Do I Move Complex XML Documents to a Database? 24-18
25 Introduction to BC4J
Introducing Business Components for Java (BC4J) 25-2What Is the Business Components Framework? 25-4Using Business Components 25-4Advantages at BC4J Design Time 25-5Advantages at BC4J Runtime 25-5
Implementing XML Messaging 25-6Test BC4J Applications using JDeveloper 25-7BC4J Uses XML to Store Metadata 25-7
Creating a Mobile Application in JDeveloper 25-9Create the BC4J Application 25-10Create JSP Pages Based on a BC4J Application 25-11Create XSLT Stylesheets According to the Devices Needed to Read the Data 25-12Building XSQL Clients with BC4J 25-15
Building XSQL Clients with BC4J 25-15Web Objects Gallery 25-16Generating and Managing Code When Building XML and Java Applications 25-17
Frequently Asked Questions for BC4J 25-18Can Applications Built Using BC4J Work With Any J2EE-Compliant Container? 25-18Can J2EE Applications Built Using BC4J Work with Any Database? 25-18
Is There Runtime Overhead from the Framework for Features That I Do Not Use? 25-19Where Can I Find More Information About BC4J? 25-19
26 Introduction to UIX
What Is UIX? 26-2
Trang 25What Are the UIX Technologies? 26-3UIX Components 26-4UIX Controller 26-4UIX Language 26-5UIX Dynamic Images 26-5UIX Styles 26-5UIX Share 26-6
Which UIX Technologies to Use? 26-6
For More Information About UIX 26-8
A XDK for Java: Specifications and Quick References
XML Parser for Java Quick Reference A-2
XML Parser for Java Specifications A-2Requirements A-2Online Documentation A-2Release Specific Notes A-3Standards Conformance A-3Supported Character Set Encodings A-3
XDK for Java: XML Schema Processor A-5
XDK for Java: XML Class Generator for Java A-5
XDK for Java: XSQL Servlet A-5Downloading and Installing XSQL Servlet A-5Windows NT: Starting the Web-to-Go Server A-6Setting Up the Database Connection Definitions for Your Environment A-7UNIX: Setting Up Your Servlet Engine to Run XSQL Pages A-8
XSQL Servlet Specifications A-8Character Set Support A-9
B XDK for PL/SQL: Specifications
XML Parser for PL/SQL B-2Oracle XML Parser Features B-2Namespace Support B-3Validating and Non-Validating Mode Support B-3
Trang 26DOM and SAX APIs B-4
XML Parser for PL/SQL Specifications B-5
Glossary
Index
Trang 27Oracle9i XML Developer’s Kits Guide - XDK, Release 2 (9.2)
Part No A96621-01
Oracle Corporation welcomes your comments and suggestions on the quality and usefulness of thisdocument Your input is an important part of the information used for revision
■ Did you find any errors?
■ Is the information clearly presented?
■ Do you need more information? If so, where?
■ Are the examples correct? Do you need more examples?
■ What features did you like most?
If you find any errors or have any other suggestions for improvement, please indicate the documenttitle and part number, and the chapter, section, and page number (if available) You can send com-ments to us in the following ways:
■ Electronic mail: infodev_us@oracle.com
■ FAX: (650) 506-7227 Attn: Server Technologies Documentation Manager
■ Postal service:
Oracle Corporation
Server Technologies Documentation
500 Oracle Parkway, Mailstop 4op11
Trang 29The Preface has the following sections:
■ About this Guide
■ How to Order this Manual
■ Downloading Release Notes, Installation Guides, White Papers
■ How to Access this Manual On-Line
■ Conventions
■ Documentation Accessibility
Trang 30how XML data can be stored, managed, and queried in the database using OracleXML-enabled technology and the appropriate Oracle development tools.
After introducing you to the main criteria to consider when designing your OracleXML application, this manual describes an overview of several scenarios that arebased on real-life existing business applications You are then introduced to theXML Developer’s Kits (XDKs) and how the XDK componoents can work together
to generate and store XML data in a database Examples and sample applicationsare introduced where possible
Other Documentation on XML
For more about building XML applications:
Examples and Sample Code
Many of the XDK examples in the manual are provided with your software in thefollowing directories:
■ $ORACLE_HOME/xdk/C/demo/ and so on
How to Order this Manual
In North America, printed documentation is available for sale in the Oracle Store at
■ Oracle9i XML Database Developer’s Guide - Oracle XML DB
■ Oracle9i XML API Reference - XDK and Oracle XML DB
■ Oracle9i Application Developer’s Guide - Advanced Queuing
Trang 31To download free release notes, installation documentation, white papers, or othercollateral, please visit the Oracle Technology Network (OTN) You must registeronline before using OTN; registration is free and can be done at
Downloading Release Notes, Installation Guides, White Papers
To download free release notes, installation documentation, white papers, or othercollateral, please visit the Oracle Technology Network (OTN) You must registeronline before using OTN; registration is free and can be done at
How to Access this Manual On-Line
You can find copies of or download this manual from any of the following locations:
■ On the Document CD that accompanies your Oracle9i software CD
■ From Oracle Technology Network (OTN) at
http://otn.oracle.com/docs/index.html, under Data Server (orwhatever other product you have) For example, select Oracle9i > GeneralDocumentation Release 1 (9.0.1) (or whatever other section you need to
Trang 32locate the prior release manuals at this site.
Bold Bold typeface indicates terms that are
defined in the text or terms that appear in
Ensure that the recovery catalog and target
database do not reside on the same disk.
You can specify this clause only for a NUMBER column.
You can back up the database by using the BACKUP command.
Query the TABLE_NAME column in the USER_ TABLES data dictionary view.
Use the DBMS_STATS.GENERATE_STATS procedure.
Trang 33Conventions in Syntax and Code Examples
Syntax examples illustrate SQL, PL/SQL, SQL*Plus, or other command-linestatements They are displayed in a monospaced (fixed-width) font and separatedfrom normal text as shown in this example:
SELECT username FROM dba_users WHERE username = ’MIGRATE’;
The following table describes typographic conventions used in syntax examples and
in code examples, and provides examples of their use
Note: Some programmatic elements use a
mixture of UPPERCASE and lowercase.
Enter these elements as shown.
The password is specified in the orapwd file Back up the datafiles and control files in the /disk1/oracle/dbs directory.
The department_id, department_name, and location_id columns are in the hr.departments table.
Set the QUERY_REWRITE_ENABLED initialization parameter to true.
You can specify the parallel_clause.
Run Uold_release.SQL where old_
release refers to the release you installed prior to upgrading.
[ ] In syntax examples, brackets enclose one
or more optional items Do not enter the brackets.
DECIMAL (digits [ , precision ])
{ } In syntax examples, braces enclose two or
more items, one of which is required Do not enter the braces.
{ENABLE | DISABLE}
Trang 34represents a choice of two or more options within brackets or braces Enter one of the options Do not enter the vertical bar.
[COMPRESS | NOCOMPRESS]
Horizontal ellipsis points indicate either:
■ That we have omitted parts of the code that are not directly related to the example
■ Or, in syntax examples, that you can enter more arguments
CREATE TABLE AS subquery;
SELECT col1, col2, , coln FROM employees;
SQL> SELECT NAME FROM V$DATAFILE; NAME
/fsl/dbs/tbs_01.dbf
-/fs1/dbs/tbs_02.dbf
/fsl/dbs/tbs_09.dbf
9 rows selected.
Other notation You must enter symbols other than
brackets, braces, vertical bars, and ellipsis points as shown.
UPPERCASE Uppercase typeface indicates elements
supplied by the system We show these terms in uppercase in order to distinguish them from terms you define Unless terms appear in brackets, enter them in the order and with the spelling shown.
However, because these terms are not case sensitive, you can enter them in lowercase.
SELECT last_name, employee_id FROM employees;
SELECT * FROM USER_TABLES;
DROP TABLE hr.employees;
Trang 35Documentation Accessibility
Our goal is to make Oracle products, services, and supporting documentationaccessible, with good usability, to the disabled community To that end, ourdocumentation includes features that make information available to users ofassistive technology This documentation is available in HTML format, and containsmarkup to facilitate access by the disabled community Standards will continue toevolve over time, and Oracle Corporation is actively engaged with other
market-leading technology vendors to address technical obstacles so that ourdocumentation can be accessible to all of our customers For additional information,visit the Oracle Accessibility Program Web site at
http://www.oracle.com/accessibility/
Accessibility of Code Examples in Documentation JAWS, a Windows screenreader, may not always correctly read the code examples in this document Theconventions for writing code require that closing braces should appear on anotherwise empty line; however, JAWS may not always read a line of text thatconsists solely of a bracket or brace
Accessibility of Links to External Web Sites in Documentation Thisdocumentation may contain links to Web sites of other companies or organizationsthat Oracle Corporation does not own or control Oracle Corporation neitherevaluates nor makes any representations regarding the accessibility of these Websites
programmatic elements that you supply.
For example, lowercase indicates names
of tables, columns, or files.
Note: Some programmatic elements use a
mixture of UPPERCASE and lowercase.
Enter these elements as shown.
employees;
sqlplus hr/hr CREATE USER mjones IDENTIFIED BY ty3MU9;
Trang 37These sections describe the new features in the following releases:
■ XDK Features Introduced with Oracle9i, Release 2 (9.2)
■ XDK Features Introduced with Oracle9i, Release 1 (9.0.1)
■ XDK Features Introduced with Oracle8i Release 3 (8.1.7)
Trang 38XML Schema Processor for Java
Supports the W3C Schema recommendation
Schema Identity-constraint validation no longer needs external DocumentBuilder
XSL Stylesheets
Support for threadsafe XSLStylesheet objects
XSQL Servlet
New Performance Improvement Option for <xsql:include-owa>
<xsql:set-page-param> now supports xpath="Expr" Attribute
Simplified inclusion of XML from CLOB and VARCHAR2 Columns
New <xsql:include-posted-xml> action handler to include posted XML
Support for the Apache FOP 0.19 release
Supports Immediately Read Values Set as Cookies
Supports Setting Multiple Parameter Values with a Single SQL Statement
Class Generator for Java
Data Binding Feature is added in this release to the DTD Class Generator
An XML instance document could be given as input to load the instance data to thegenerated classes
XDK for Java
XSU support for SAX 2.0 and generating the XML Schema of a SQL Query
DOM level compression support
Oracle SOAP APIs added
SAX2 Extension support in the Java XML Parser
JAXP 1.1 support is now provided by the XDK for Java
Oracle TransX Utility aids loading data and text
XML Schema Processor for Java supports both LAX Mode and STRICT Mode.XML Compression now supported in the Java XML Parser
Trang 39XDK for C++
Released on Linux
XDK for JavaBeans
New XMLDiff Bean
Internal DTD support is added to the SourceViewer Bean
OTN
New XDK Live demo is online at:
http://otn.oracle.com/tech/xml/xdk_sample/xdkdemo_faq.htmlhttp://otn.oracle.com/tech/xml/xdk_sample/xdkdemo_xsql.html
New XDK technical Paper for "Building Server-Side XML Schema Validation" isonline at:
http://otn.oracle.com/tech/xml/xdk_sample/xdksample_093001i.html
XDK Features Introduced with Oracle9i, Release 1 (9.0.1)
Here are the new XDK features in Oracle9i Release 1 (9.0.1):
XDK for Java
■ XML Schema Processor for Java
■ XML Parser for Java — DOM 2.0 and SAX 2.0 support
■ Improved XSLT performance
■ Class Generator for Java now includes XML Schema based Class Generator
as well as a DTD based Class Generator
See:
■ Chapter 4, "XML Parser for Java"
■ Chapter 6, "XML Schema Processor for Java"
Trang 40XSQL Servlet and Pages
■ Support for Database Bind Variables Now both lexical subsitution and truedatabase bind variables are supported for improved performance
■ Support for PDF Output Using Apache FOP You can now combine XSQLPages with the Apache FOP processor to produce Adobe PDF output fromany XML content
■ Trusted Host Support for XSLT Stylesheets New security features insurethat stylesheets cannot be executed from non-trusted hosts
■ Full Support for Non-Oracle JDBC Drivers Now all query, insert, update,and delete features with with both Oracle and Non-Oracle JDBC drivers
■ Process Dynamically Constructed XSQL Pages The XSQLRequest API cannow process programmatically constructed XSQL pages
■ Use a Custom Connection Manager You can now implement your ownConnection Manager to handle database connections in any way you like
■ Produce Inline XML Schema You can now optionally produce an inlineXML Schema that describes the structure of your XML query results
■ Set Default Date Format for Queries You can now supply a date formatmask to change the default way date data is formatted
■ Write Custom Serializers You can create and use custom serializers thatcontrol what and how the XSQL page processor will return to the client
■ Dynamic Stylesheet Assignment Assign stylesheets dynamically based onparameters or the result of a SQL query
■ Update or Delete Posted XML In addition to inserting XML, now updatingand deleting is also supported
■ Insert or Update Only Targeted Columns You can now explicitly list whatcolumns should be included in any insert or update request
■ Page-Request Scoped Objects Your action handlers can now get/set objects
in the page request context to share state between actions within a page
■ Access to ServletContext In addition to accessing the HttpRequest andHttpResponse objects, you can also access the ServletContext
See: Chapter 9, "XSQL Pages Publishing Framework"