June 3, 2009
Contents
1 Overview
2
XDK Java Components
3 XDK C/C++ Components
4 Compatibility
5
Known Bugs
Oracle XML Developer's Kit (Oracle XDK) is a set of components, tools and utilities that eases the task of building and deploying XML-enabled applications. To provide a broad variety of deployment options, the Oracle XDK components are available for Java, C, and C++. Unlike many shareware and trial XML components, the production Oracle XDK are fully supported and come with a commercial redistribution license. Oracle XDK consists of the following components:
XML Parsers: supporting Java, C, and C++, the components create and parse XML using industry standard DOM and SAX interfaces.
XSLT Processor: transforms or renders XML into other text-based formats such as HTML.
XSLT VM: high performance XSLT transformation engine in C.
XML Schema Processor: schema validation in Java, C, and C++, allows use of XML simple and complex datatypes.
XML Class Generator: automatically generates C++ classes from DTDs and XML Schemas to send XML data from Web forms or applications.
XML JAXB Class Generator: automatically generates Java classes from XML Schemas to send XML data from Web forms or applications.
XML Java Beans: visually transform, diff and compress XML documents via Java components.
XML SQL Utility: generates XML documents, DTDs and Schemas from SQL queries in Java.
XSQL Servlet: combines XML, SQL, and XSLT in the server to deliver dynamic web content.
XML Pipeline processor: specifies Java processes to be executed in a declarative manner.
TransX Utility: makes it easier to load translated seed data and messages into the database.
Please post any questions, comments, or bug reports to the XML Forum on the Oracle Technology Network at http://otn.oracle.com/tech/xml/xdkhome.html.
Oracle XDK Java components are built on W3C Recommendations and Java JSR standards. The list of currently supported standards are:
DOM Level 2.0 Specifications
DOM Level 3.0 Specifications
DOM Level 3.0 Load and Save(Candidate Recommendation)
DOM Level 3.0 Validation(Candidate Recommendation)
XSLT/XPath Specifications
XSLT/XPath 2.0 Specifications
XSL Transformations (XSLT) 2.0(working draft dated 04 April 2005)
XML Path Language (XPath) 2.0(working draft dated 04 April 2005)
XPath 2.0 Data Model(working draft dated 04 April 2005)
XQuery 1.0 and XPath 2.0 Functions and Operators(working draft dated 04 April 2005)
XML Schema Specifications
2.1 DOM Specifications
The DOM APIs include support for Candidate Recommendations of DOM Level 3 Validation and DOM Level 3 Load and Save.
Load and Save
The following configuration parameters are not supported by LSParser:
"charset-overrides-xml-encoding"
Optional settings of the following configuration parameters are not supported by LSParser:
"disallow-doctype (true)"
"ignore-unknown-character-denormalizations (false)"
"namespaces (false)"
"supported-media-types-only (true)"
The following configuration parameters are not supported by LSSerializer:
"discard-default-content"
Optional settings of the following configuration parameters are not supported by LSSerializer:
"canonical-form (true)"
"format-pretty-print (true)"
"ignore-unknown-character-denormalizations (false)"
"normalize-characters (true)"
Validation
Some DOM 3 Core functions referred by Validation are implemented, but Core itself is not supported.
NameList and DOMStringList in DOM core are supported for validation purpose
Validation is based on XMLSchema, DTD needs to be converted to Schema first (use DTDToSchema utility)
2.2 XSL Transformation
The XSLT processor adds support for the current working drafts of XSLT 2.0, XPath 2.0 and the shared XPath/XQuery data model.
Some features of these specifications are not supported in the current release:
The Schema Import and Static Typing features are not supported, but we do support XML Schema built-in types specified by the XPath 2.0 Datamodel.
The XSLT instruction xsl:number uses XSLT 1.0 semantics and syntax.
The use-when standard attribute
is not supported.
The processor does not honor the attribute of required on xsl:param.
Tunnel parameters are not supported.
Regular expression instructions are not supported in XSLT.
The content model for xsl:attribute, xsl:comment, xsl:message and the way to compute key values of xsl:key and xsl:sort are still 1.0 behavior.
New feature for this release:
2.3 JAXB Class Generator
The XML Data Binding is built upon JSR-31 "The Java
Architecture for XML Binding (JAXB) Final, V1.0 January 8th, 2003".
This component allows creations of Java classes based on the XML
Schema.
The JAXB 1.0 specification does not require full W3C XML Schema support. Please refer to Appendix E.2 for full details. The current release doesn't support the following:
The Javadoc generation is not supported.
Encoding of
Schema-Derived Java Files
According to the Java Language Specification, Java programs
are written using the Unicode character set. Specifically,
comments, identifiers, and the contents of character and string
literals in a Java program can be formed with Unicode characters.
Unless all input characters in Java program can be expressed in ASCII
characters (i.e., non-ASCII characters are translated into Unicode
escapes), JAXB-generated Java files needs to be saved in a specific
encoding. For this release, we choose UTF-8 as the encoding of
all JAXB-generated Java files. If this encoding is different from
platform default converter, then the option "encoding" needs to be
specified to
tell javac or the Java programming language compiler which encoding is
used for source
files.
2.4 XML Java Beans
The oracle.xml.transviewer.DBAccess bean has been deprecated,
please use oracle.xml.dbaccess.DBAccess instead.
2.5 XML Pipeline Processor
Oracle XML Pipeline Processor is built upon the XML Pipeline Definition Language Version 1.0, W3C Note 28 February 2002. The processor can take an input xml pipeline document and executes the pipeline processes according to the derived dependencies. The pipeline document is an xml document, and specifies the processes to be executed in a declarative manner. In addition to the Pipeline Processor, we have defined several Pipeline Processes which can be piped together in a pipeline document.
There are some differences between the W3C Note and this implementation. They are:
The parser processes (DOMParserProcess and SAXParserProcess) are included in the xml pipeline (Section 1).
Currently XML Base is not supported (Section 2.1)
Only the final target output is checked to see if it is up-to-date with respect to the available pipeline inputs. We do not determine whether the intermediate outputs of every process are up-to-date. (Section 2.2).
For the select attribute, anything in between double-quotes "" is considered to be a string literal.
The processor will throw an error if more that one process produces the same infoset (Section 2.4.2.3)
The 'document' element is not supported as it is deemed to be redundant functionality (Section 2.4.2.8)
2.6 XSQL Servlet
Oracle XSQL servlet combines the power of SQL, XML, and XSLT in the server to deliver dynamic web content. With XSQL servlet you can:
Receive web-based information requests from any client device on the Web,
Query an appropriate logical "view" of business data needed by the request,
Return the "datagram" in XML over the web to the requester, or optionally
Transform the information flexibly into any XML, HTML, or text format they require
The XSQL servlet processor has the following new features:
Support for Multi-Valued Parameters: This allows users to work with parameters whose values are arrays of strings. The most common scenario where multi-valued parameters occur is when a user submits an HTML form containing multiple occurrences of input controls that share the same name.
Conditionally Execute Actions or Include Content with xsql:if-param: The new <xsql:if-param> action allows you to conditionally include the elements and/or actions that are nested inside it if some condition is true.
New Commit="No" Flag on Actions That Performed an Implicit Commit: The <xsql:delete-request, xsql:insert-request>, xsql:insert-request, and <xsql:insert-parameter> action elements each takes a new optional commit attribute to control whether the action does an implicit commit or not.
Optionally Set an Error Param on Any Built-in Action: It is often convenient to know whether an action encountered a non-fatal error during its execution.
Use Your Servlet Container's DataSource Implementation: As an alternative to defining your named connections in the XSQLConfig.xml file, you may now alternatively use the datasources available through your servlet container's implementation of JDBC datasources.
Provide Custom
XSQLErrorHandler Implementation: A new interface is introduced
in this release oracle.xml.xsql.XSQLErrorHandler that allows developers
to achieve a programmatic way to control how errors are reported to be
able to customize the treatment of the errors.
The error code returned by XSQLError.getErrorCode() has changed to
25NNN instead of NNN. The error code format also has changed to
XML-25NNN.
Provide Custom XSQLLogger Implementation: Two new interfaces are introduced in this release oracle.xml.xsql.XSQLLoggerFactory and oracle.xml.xsql.XSQLLogger that allow developers to achieve to log XSQL page requests.
Override the Default Name of of the XSQLConfig.xml file: Customers have requested a way to override the default XSQLConfig.xml file name so that they can easily provide different configuration files for test and production environments, for example. This releases introduces two ways to override the name.
By setting the Java System property xsql.config
By defining a servlet initialization parameter xsql.config
Support for Apache FOP 0.20.3: If you need to render PDF output from XSQL pages, this release supports working with the 0.20.3 release candidate of Apache FOP.
Set Preserve Whitespace Config Option: It is now possible to control whether or not the XSQL Page Processor uses the Oracle XML Parser to parse XSQL page templates and XSLT stylesheets with whitespace preserving mode.
2.7 Oracle TransX Utility
TransX is a data transfer utility that allows you to populate your database with multilingual data. It uses XML to specify the data so you can take advantage of easy data transfer from XML to the database, a simple data format that is intuitive for both developers and translators, and validation capability that makes it less error prone.
XML-SQL Utility (XSU) is utility can transform data retrieved from
object-relational database tables or views into XML and insert the
data in XML into the appropriate columns/attributes of a table or a
view based on a canonical mapping.
2.9 Binary XML
Binary XML makes it possible to encode and decode between XML text and compressed binary XML. For efficiency, the DOM and SAX APIs are provided on top of binary XML for direct consumption by the XML applications. Please see the Oracle XML Developer's Kit Programmer's Guide for more information.
2.10 Scalable DOM
Oracle XDK C/C++ components are built on W3C Recommendations. The list of currently supported standards are:
DOM Level 2.0 Specifications
XSLT/XPath Specifications
XML Schema Specifications
3.3 XSLT Virtual Machine
The XSLTVM Package implements the XSL Transformation (XSLT) language as specified in W3C Recommendation 16 November 1999. XSLT Virtual Machine is the software implementation of a "CPU" designed to run compiled XSLT code. A concept of virtual machine assumes a compiler compiling XSLT stylesheets to a sequence of byte codes or machine instructions for the "XSLT CPU". The byte-code program is a platform independent sequence of 2-byte units. It can be stored, cashed and run on different XSLTVM. The XSLTVM uses the bytecode programs to transform instance XML documents. This approach clearly separates compile(design)-time from run-time computations and specifies a uniform way of exchanging data between instructions. The package includes two interfaces:
XSLTVM Compiler Interface
XSLTVM Interface
A typical scenario of using the package APIs has the following steps:
Create/Use an XML meta context object.
Create/Use an XSLT Compiler object.
Compile an XSLT stylesheet and store/cash the result bytecode.
Optional. Repeat steps 1 - 2 for all stylesheets.
Delete (or preserve for later usage) the Compiler object.
Create/Use an XSLTVM object.
Set a stylesheet bytecode to the XSLTVM object.
Transform an instance XML document.
Optional. Repeat step 6 or 5 - 6 as many times as needed.
Delete (or preserve for later usage) the XSLTVM object.
3.4 XML Schema Validator
The processor fully supports the
functionality stated in the specification plus "XML Schema 1.0
Specification Errata" as published on:
http://www.w3.org/2001/05/xmlschema-errata.
This section contains recommendations on upgrading to this release.
4.1 XDK Java components upgrade
In
11gR1, Java XDK is supported on JDK 1.5 and above.
In 11gR2 Java XDK has a dependency on NSL jar: orai18n-mapping.jar.
4.2 XDK C/C++ components upgrade
4.3 New C++ API and Old C++ API
Links to DOM Level 3.0 Validation specification in all classes of org.w3c.dom.validation package are incorrect. The correct link should be to the candidate recommendation at http://www.w3.org/TR/2003/CR-DOM-Level-3-Val-20030730
The following APIs in org.w3c.dom.validation package are incorrectly documented:
DocumentEditVal.getContinuousValidityChecking() returns boolean instead of short.
DocumentEditVal.setContinuousValidityChecking() accepts boolean instead of short.
ElementEditVal.getAllowedFirstChildElements() is renamed to getAllowedFirstChildren().
Please see specific sections for additional known issues.