XQuark

Release Notes

XQuark Bridge


Notice: Read this to be informed of the new features added to the successive versions of XQuark Bridge.

This is the change log of the XQuark Bridge distribution.

Version 1.1

News

Storage / Mapping Language
  • New attribute updateColumnWhenMissing added to mapping language to control if in update mode a column must be updated with null or with the default value when the element or attribute is missing in the inserted XML document. By default, columns are not updated.
  • The new attribute noNamespaceSchemaLocation on the mapping element can now be used to use schemas without target namespace.
  • Bug fix (#300486): now the attribute element of the mapping language is fully endowed with the same attributes and features than the element element (ref & map attributes) since a table mapping, under certain circumstances, can also be defined for an attribute.
  • Bug fix (#300490): a new kind of generator use has been introduced that allow to implement a custom storage for simple-content elements and attributes data. These generators that allow the user to transform XML data before storage are called substitution generators.
Warning
Most of these new mapping features are available only if you use the URI for the new version of the mapping language, i.e., http://www.xquark.org/Bridge/1.1/Mapping
  • Bug fix (#300507): an XQuark XML Schema implementation bug prevented the use in mapping of XML types derived (under certain circumstances) by extension.
  • Documentation has been improved especially for user generators and a chapter has been added describing a tuple lifecycle.
  • Before only nullable or auto-generated column (default values for instance) could be ignored in a mapping. Other cases led to an exception. Now the exception is no more raised and was replaced by a warning. This could lead to unexpected storage exceptions but seems definitively more flexible.
Extraction/XQuery
  • Support for Oracle LOBs added using standard stream JDBC API.

Version 1.1 beta 2

News

General / J2EE integration
  • JDBC DataSources supported and accessible through JNDI.
  • The Apache Commons Logging API is now used for warnings and traces.
  • Apache Connection Pool (DBCP) and log4j integrated in the distribution.
  • Full HTML documentation through Apache Forrest.
Extraction/XQuery
  • Support for PreparedStatements: server-side performance can be perceptibly improved.
  • Bug fixes.
Storage
  • New samples added.
  • Storage bugs fixed in the check/update mode.

Version 1.1 beta 1

News

Extraction/XQuery
  • Support of the "W3C Working Draft 12 November 2003" XQuery syntax.
  • Support for functions (views) and modules.
  • Support for computed constructors.
  • Enhanced support of standard XQuery serialization allowing (as much as possible) the user to get uniform and conformant output from the various RDBMS supported.
  • New abstract JDBC types supported (BINARY, VARBINARY, LONGVARCHAR, LONGVARBINARY, BLOB, CLOB) with some limitations (see below).
  • Preliminary support of conditional expressions in the return clause.
Mapping language
  • Two table mappings associated to the same element can now reference each other. This provides better support for storing n-n relations.
  • Syntax: the generator "method" attribute is replaced by a more explicit "class" attribute.
  • JDBC batch size control enabled via the "map" element attribute "batchSize".
  • Generators can now be associated to attribute elements.
  • A built-in generator was added for simple key generation.

Supported databases versions

Oracle

This software has been thoroughly tested with Oracle 8.1.7 and its associated JDBC thin driver. It is known to work with Oracle 9i, provided that the 9i JDBC driver is used.

The driver can be downloaded at http://otn.oracle.com/software/tech/java/sqlj_jdbc/content.html (an Oracle Technology Network login is needed to access this page).

Microsoft

This software has been thoroughly tested with MS SQLServer 2000 and its associated JDBC driver.

The driver can be downloaded at http://www.microsoft.com/sql.

Sybase

This software has been thoroughly tested with Sybase 11.9.2 and the jConnect5.5 JDBC driver.

The driver can be downloaded at http://www.sybase.com, searching for jConnect.

Note
In order to get XQuark Bridge running on Sybase 11.9.2, the Sybase administrator must setup the Sybase metadata views using the script located in the file jConnect-5_5/sp/sql_server.sql.
MySQL

This software has been thoroughly tested with MySQL 3.23 and mySQL-connector-3.0.9.

This driver is included in the distribution.

Known bugs and limitations

Oracle
  • Clob and blob not supported (no standard JDBC support in Oracle8.1.7 driver).
XQuery Extraction
  • XQuery extraction requires in some cases that table or view rows have a unique ID (primary key, rowid or implicit key built from all row columns) to work properly. Wrong results may otherwise be produced with the following kinds of queries:
    1. Nested FLWOR expressions. Keys are needed for reconstruction except for the innermost FLWORs.
    2. With MySQL, aggregate rewriting introduces group by clauses that may also collapse duplicate rows.
  • MySQL: some complex queries do not work (for instance multiple some or every clauses appearing in disjunctions).
  • MySQL/SQLServer/Sybase: Comparison between VARCHAR and CHAR columns does not consider trailing CHAR blanks. This must be taken into account when writing where clauses...
  • Oracle: predicates including compararisons with '' (empty string) don't work as expected since '' is equivalent to NULL on this DBMS. Use the exists function instead. For instance != '' is translated as != NULL by Oracle and is always evaluated as false (not equivalent to 'IS NOT NULL').
by XQuark Group