Table of Contents
- Release 6.2
- Release 6.1.1
- Release 6.1
- Release 6.1 b1
- Release 6.0
- Release 5.3.10
- Release 5.3.9
- Release 5.3.8
- Release 5.3.7
- Release 5.3.6
- Release 5.3.5
- Release 5.3.4
- Release 5.3.3
- Release 5.3.2
- Release 5.3.1
- Release 5.3
- Release 5.2.1
- Release 5.2
- Release 5.1
- Release 5.0
- Release 4.5.2
- Release 4.5.1
- Release 4.5
- Release 4.4
- Release 4.3.6
- Release 4.3.5
- Release 4.3.4
- Release 4.3.3
- Release 4.3.2
- Release 4.3.1
- Release 4.3
- Release 4.2.1
- Release 4.2
- Release 4.1.2
- Release 4.1.1
- Release 4.1
- Release 4.0
- Release 3.1.2
- Release 3.1.1
- Release 4.0.b1
- Release 3.1
- Release 3.0
- Release 3.0 beta 6
- Release 3.0 beta 5
- Release 3.0 beta 4
- Release 2.8.2
- Release 2.8.1
- Release 2.8
- Release 2.7.1
DeltaXML Core Release Notes
New Feature: A new GUI pipeline tool replaces the previous deltawing tool. This tool is more closely integrated to specific operating system/runtime platforms for a better user experience and through the use of more powerful SWT widgets for HTML result display, provides a number of new capabilities.
New Feature: As the new GUI is platform specific there are a number of platform specific distributions of DeltaXML Core, specifically: Windows, MacOSX, Java and .NET distributions.
New Feature: A new side-by-side style difference report has been included in the GUI and command-line tools. It is also provided as a sample filter for use in other scenarios/applications, please see
samples/xsl-filters/side-by-side.New Feature: A new redistribution or 'OEM' licensing mechanism has been included in this release. Various
setRedistributionLicenseContentmethods are used to support this mechanism.Enhancement: The version of IKVM used in the .NET distribution has been upgraded to version 0.46.0.1.
Enhancement: A feature setting has been added to prevent header comments being added to comparator or combiner outputs. This resolves customer support case 236.
Enhancement: A filter parameter (method:
setProcessPreserveSpaceText) has been added toWordInfilterto support splitting of text into words even when thexml:space='preserve'attribute is being used. For compatibility with previous releases the default setting is to not split such text.Bug Fix: Saxon PE extensions are now enabled when using the older
com.deltaxml.core.PipelinedComparatoras well as the new s9api based pipeline. This is when thebypassJAXPFactoriesconstructor parameter is used (when true Saxon PE is directly instantiated) and also when JAXP is configured (properties/classpath settings) to use Saxon PE. This resolves support case number: 218.Bug Fix: The default setting for normalizing attribute values in the NormalizeSpace filter, when the
setnormalizeAttValuesmethod is not used, has changed to false. This incompatible change in behaviour has been introduced as we were not conformant to the XML specification: http://www.w3.org/TR/xml/#AVNormalize. The method mentioned above is still provided for users who wish to preserve the previous behaviour.Bug Fix: If the final XSLT output filter does not specify an XML result method, then an XML serialization method is used. This differs slightly from the XSLT 2.0 serialization specification where when not explicitly specified it is determined from the namespaces or elements in the inputs. We believe that as delta files are subsequently processed it is better to generate XML pipeline outputs unless a xhtml or html output method is explicitly requested.
Bug Fix: Resolved code regression using DTDHandler interface in filters with PipelinedComparatorS9 (and also the command line driver). The code should now operate in a similar manner to the pre 6.0 PipelinedComparator class. This issue was identified in customer support case: 211.
New Feature: Support for the Microsoft .NET platform with platform specific APIs, documentation, executables and sample code.
Enhancement: Support for XPath use within DXP files. XPaths can be used to control filter optionallity and for specifying filter parameters. Please see the DXP guide for further information. In order to support this change we introduced version numbering for the DXP DTD files.
Enhancement: The format grouping code (
dx2-format-outfilter.xsl) has been extended to handle some new cases of 'old' or 'A' formatting changes when they are contained with a parent element with mixed changes (added and deleted or modified content). Previously the old formatting was ignored. This issue was identified in customer support case: 201.
A beta release of the .NET platform port, only released on this platform and to selected customers for beta testing prior to the full 6.1 release.
This is a major release and incorporates both significant new features and enhacements and also some minor enhancements and bug fixes.
Enhancement: The code now depends on Java 2 SE 5.0 (aka JDK 1.5). Java Generics have been retro-fitted to existing code, while preserving API compatibility, so that existing compiled code can use the new deltaxml.jar, while recompiling code will benefit from strong type checking. New code and packages makes more extensive use of Generics.
Enhancement: The version of Saxon now shipped with DeltaXML Core is Saxon 9.3 PE. The PE edition of Saxon is a commercial product and we have a redistribution license allowing customers to use Saxon in conjunction with DeltaXML Core.
New Feature: A new pipeline system (package:
com.deltaxml.cores9api) is provided. It is modelled on the existingcom.deltaxml.corepackage but internally based on Saxon's s9api interfaces. It provides better performance, reduced memory consumption (see our: XML Pipeline Performance poster from XML Prague 2010) and new features such as progress reporting, intermediate file debug support and more precise exception handling. It is also compatible with the existing DXP file format.Enhancement: The included samples have been revised and substantially expanded to include examples of the change control issues where customers have requested our support or assistance.
Enhancement: An extension pack or 'plugin' mechanism is provided so that pipelines released as separate products and potentially different release cycles can be used with the core product. These can be used with the command-line client application, through DXP files and/or Java code. As the DocBook pipeline(s) are now available as separate products they are no longer included directly in the core release; they are however available as extension packs to existing DeltaXML Core customers with support agreements.
Enhancement: OASIS XML Catalog support, using a customized version of the Apache catalog resolver, is available from both the command-line client and through the API.
New Feature: A configuration property mechanism is used to configure catalogs and also for setting a number of default settings for the product. Future releases will expand the number of properties which can be used for setting JVM-wide defaults settings.
Enhancement: The licensing code has been simplified. The previous activation mechanism using Java preferences is no longer used. Instead the code looks for license files in deltaxml.jar, on the classpath, current and home directories. The license filename and classpath resource names have also been rationalized.
Enhancement: The supplied
.jarfiles are listed and described in order to help customers plan deployment requirements. Customer support case: 191.Enhancement: Samples are provided showing how W3C DOM and XOM objects trees can be used for pipeline IO using features of the new
cores9apipackage and Saxon PE.Enhancement: Improved 'Enhanced Match 1' performance with empty elements. Enhanced Match 1, designed for use with document-centric XML was giving poor matching results for content which contained a mixture of empty elements and elements with content, for example a table-row with a mixture of empty and non-empty cells/columns. The matcher now tends to ignore such empty elements when making alignment decisions. Customer support case: 119.
Enhancement: The
com.deltaxml.pipe.filters.NormalizeSpacefilter has been extended to support an attribute which marks content as mixed and thereby avoiding normalizing important intra-word whitespace. This is useful when DTD or schemas cannot be used for mixed-content determination.Bug Fix: The
com.deltaxml.pipe.filters.NormalizeSpacefilter no longer strips XML processing instructions. This was an issue when using it combination with filters which convert PIs and comments into markup.Enhancement: The default value of the comparator 'fullDelta' feature setting is now true. Nearly all customers are using full-context deltas and changing this setting will improve ease-of-use.
Enhancement:
dx2-format-outfilter.xslhas been re-written to use a new grouping technique which no longer requires the use of 'spacer' elements between formatting elements for the grouping to work correctly.
Bug fix: The DXPConfiguration.generate() method with 3 arguments did not make use of the bypassJAXP parameter when compiling XSLT filters (symptom Xalan-J would be used for compiling XSLT when Saxon 9 was expected according to the parameter value). Customer support case: 186.
Enhancement: Simplification of licensing/activation code to support ZIP downloads containing in-situ license keys. Explicit activation has been replaced by evaluator specific downloads and new license install locations (either a sibling of deltaxml.jar in the install directory or the user.home direectory) for purchased named user or professional server licenses.
Bug fix: The docbook column alignment code (using keys) could result in colspec elements with the same colname - a semantically illegal CALS table. This release enhances the column alignment so that several column alignment techniques are attempted and the best result is selected. The result is selected based upon aspects of output semantic validity and result quality. Customer support case: 175.
Enhancement: A new docbook keying filter is provided that allows keys used to align docbook data to be derived from id/xml:id or condition attributes. It also supports preserving or removing existing deltaxml:key attributes. Reported in the DocBook support forum.
Enhancement: A new 'intermediate' type of structural change has been defined for tables with the same column structure (same numbering and names of colspecs and similar spanspecs). When such tables have changes to their column spanning through changes to namest, nameend or spaname attributes or the use of these attributes in deleted or added rows/entry elements changes are reported at the row granularity (rather than at table granularity - with old/new tables). Customer support case: 175.
Enhancement: Complex structural changes to tables (those that involve complex changes to horizontal and vertical spanning) are now identified at the tgroup granularity (so that the old tgroup is provided with a deleted revisionflag, followed by the new tgroup with an added revisionflag). Previously they were reported as old/new tabels or informaltables which would also affect the table numbering and indexing. Customer support case: 175.
Bug fix: Improve Java object (mis)allocation and therefore performance of the Java WordOutfilter. Customer support case: 173.
Bug fix: Clarify the wording of the release ReadMe.html file so as to avoid confusion between account activation (used to validate email addresses) and software license/activation keys. Involves merging paragraphs and checking verb tenses. Issue reported in email to info@deltaxml.com
Bug fix: The schema pipeline was reporting "PCDATA not allowed in orderless..." messages. As orderless comparison is required this was resolved by adding the NormalizeSpace filter to remove unnecessary whitespace. Issue reported in email to info@deltaxml.com
Enhancement: Add abilty to configure Transformer Attributes in the PipelinedComparator and DXPConfiguration classes and correspondingly in DXP files. Issue discussed in support forum.
Bug fix: Add saxon9-s9api.jar file to the release which is needed when using the Comparator via the XSLT extension function introduced in release 5.3.3. Partly resolves customer support case: 158.
Bug fix: The docbook morerows attribute in CALS tables could cause a subsequent added/deleted table row to be semantically invalid. A conservative solution to this problem has been adopted, this is one of a number of structural changes that are difficult to report. We currently report the change at 'coarse' granularity by presenting the old and new tables. Changes to dx2-docbook-outfilter.xsl and dx2-docbook5-outfilter.xsl (both docbook4 and docbook5 pipelines). Customer support case: 113.
Bug fix: The 5.3 release changes to guarantee docbook table correctness (keying by column position) does not work if the row containing entry elements has added or deleted attributes. The code in docbook-tables.xsl and docbook5-tables.xsl was updated to avoid the use of the XSLT position() function. An additional enhancement to dx2-extract-version-moded.xsl was added to avoid extra namespace declarations 'leaking' into the added/deleted tables. Customer support case: 114
Enhancement: The docbook4 and docbook5 pipelines now support passing XML processing instructions through to the result. The generic xml2pi.xsl and pi2xml.xsl filters have been added to these pipelines.
Bug fix: A regression in 5.3 caused the Docbook4 pipeline to report ambiguous rule match errors when added/deleted (but not modified) attributes were present in certain elements. Changes to dx2-docbook-outfilter.xsl resolve this issue. Customer support case: 111.
Enhancement: The docbook4 and docbook5 pipelines included some unnecessary/unused 'xmlns' namespace declarations in their result files. While these don't generally affect XML semantics, they do cause problems for DTD based validity checking which is still widely used in Docbook v4.x processing.
Enhancement: Provide a bypass mechanism for the JAXP factories so that Saxon and Xerces can be directly instantiated - useful in application servers which do not provide facilities to override the classloader delegation order. In response to customer support case: 106.
Bug fix: Remove the JAXP services manifest entry in deltaxml.jar which configures the JAXP Transformer to be Saxon. This is no longer needed given the enhancement above and it allows customers to avoid using Saxon more easily. Resolves customer support case: 75.
Bug fix: Fixes to dx2-format-outfilter.xsl. Empty formatting-elements now handled correctly.
Bug fix: Fixes to DocBook5 output. A filter template mismatch was causing revsionflag='changed' to be added to elements with only whitespace changes, now resolved by making the filters mutually exclusive. Partially resolves customer support case 103.
Enhancement: Added preliminary support for invoking a comparison via an XSLT extension function. Currently only Saxon 9.1 is supported and requires the use of 's9api'. See the Javadoc for
com.deltaxml.ext.xslt.saxon.Comparisonfor further details.
Bug fix: Fixes to DocBook table output. Changes to the column and row spanning of table entries were causing some results to be semantically invalid in relation to the CALS table model. Where this is a problem, the original table is output with a deletion revision flag and the new table with an addition revision flag.
Bug fix: The docbook5 pipeline has been modified to fix an ambiguous template match that was causing it to crash.
Enhancement: Added a new
AncestorXMLFilter.stackDepth()method to make coding Java filters easier.Bug fix: Fixed a filter name misspelling. The
propogate-ignore-changes.xslfilter has been renamed:propagate-ignore-changes.xsl. This is in response to customer support case 76.Enhancement: Use of the ignore-change attribute on elements without deltas has been clarified in the sample code and documentation. Customer support case 81.
Enhancement: A deterministic presentation (or 'ordering') of result elements when the orderless matching algorithm is used. This is controlled via a new 'orderlessPresentation' property setting - please see the package overview page for the
com.deltaxml.apipackage for further details. This is in response to a pre-sales enquiry and customer support case 82.Enhancement: Added a new sample: DiffReportServlet. This shows how a PipelinedComparator could be used in a servlet. Should work in any Java EE environment, tested with Apache Tomcat 5.5.27 and IBM WebSphere 7.0. This relates to customer support case 79.
Bug fix: The accessor methods for
DifferingOrderedAttributesExceptionhave been changed so that they use classes publically available indeltaxml.jar. This issue was found during internal testing.Bug fix: The docbook4 and docbook5 pipelines have been modified to include a filter which keys table columns. This together with some output filter changes should ensure that the
table/tgroup/@colsattribute is conistent with the number of entry elements in OASIS CALS tables. This resolves an issue where Apache FOP would throw an Exeception when the cols attribute was invalid and resolves support case 97.
Enhancement: Multi-threaded loading. This is the first step in a migration to multi-threaded comparison. Each comparator input, and therefore in a PipelineComparator scenario, each input filter pipeline, is run/loaded in parallel. Future developments may extend the threading beyond two threads and to other parts of the comparison process.
Bug fix: In a JAXP Pipeline using the
com.deltaxml.api.XMLComparatorFilterclass SAXLexicalHandlerevents (such as comments) would cause a NullPointerException. This issue was found during internal development/testing.Enhancement: The
SAXException/SAXParseExceptionconstructors do not follow the J2SE 1.4 standard of using a 'cause' nested throwable. This enhancement ensures that all such exceptions created by DeltaXML call aninitCause()method. Also any of these exceptions which are recieved, for example from a filter or via SAXSource/SAXResult IO will have their 'cause' updated. This ensures better stack traces and improves overall error reporting/handling. This was suggested during internal DeltaXML development/testing.Bug fix: The
propagate-ignore-changes.xslfilter did not correctly propagate deltaV2 changes on attributes. This issue was identified during internal development.Bug fix: Processing instructions or comments before/after the root XML element where not being correctly handled by the
pi2xml.xslfilter. Both thepi2xml.xslandxml2pi.xslfilters have been updated to support such usage. This resolves customer support case 48.Enhancement: The sample XSLT filters provided in the release are now included in the
deltaxml.jarfile. This allows customers using PipelinedComparator and other classes to refer to them via the Java resource mechanism. Ascommand.jaranddeltawing.jarrefer todeltaxml.jarusing the class-path manifest mechanism these filters no longer need to be included in these files. In response to a customer support case 61.Bug fix: The DXP pipelines for both Docbook v4 and v5 were referring to undefined variables. This has been corrected and should result in improved word-by-word parameterization. This issue was found during internal DeltaXML review.
Bug fix: SAX event chaining between filters and
setEntityResolver(). There are a number of inconsistencies between the behaviour of XSLT filters (using Saxon) and Java filters (extendingorg.xml.sax.XMLFilterImpl) and how entity resolver settings are properly chained through filter linking via setParent(). The solution we've adopted is to avoid usingorg.xml.sax.XMLFilterImpland instead usecom.deltaxml.pipe.XMLFilterImpl2as the basis for our Java filters. See the Javadoc for further details. This resolves customer support case 58.
Enhancement: Added Docbook5 support with new XSLT filters and DXP pipeline included in
command.jaranddeltawing.jar. Please see the website for further information about the docbook-xsl customization layer updates that should be used in conjunction with docbook5 (How to Compare Docbook).Enhancement: Ignore changes filters and samples provide a new general mechanism for ignoring and processing unwanted change in delta results. Please see the included samples and How to ignore changes.
Bug fix: The
XMLComparatorFilter.setProperty()method had problems passing parameters through the input filter chain to the parsers when used with Saxon v9.x. The parameter passing mechanism has been changed and although more reliable and adding support for all parameters means that errors are deferred from the timesetProperty()is called to thecompare()methods.Bug fix: Using
PipelinedComparator.setOutputProperty()foromit-xml-declarationcaused an erroneous exception to be thrown. ThesetOutputPropertymechanism has been overhauled to support all properties used in the associated XSLT processor. Documentation has also been updated to mention Saxon's support ofstandalone=omit. As with theXMLComparator.setProperty()changes described above, this means that errors will now be reported at comparison time rather than with thesetOutputProeprty()method.Enhancement: Support for a new 'raw' pipeline/command to clarify recombiner usage. Improvements to XMLCombiner javadoc to explain delta requirements for recombination.
Bug fix:
PipelinedComparator.setURIResolver()was only setting a URIResolver for use at XSLT filter compile time. This has now been extended to filter runtime.Bug fix:
schema-input-filter.xslhad an incorrect link. This is now fixed together with a general update of the code and the 'How to Compare XML Schemas' website documentation.Enhancement: The version of the Saxon XSLT processor included in the release has been upgraded to Saxon v9.1.0.1. Some small changes to filters (
dx2-threshold.xslandxhtml-infilter.xsl) were necessary due to the stricter type checking in this version. (ticket:128)Enhancement: Upward compatible changes to the DXP pipeline format now allows for per-parameter documentation. This should provide greater documentation consistency in the future.
Enhancement: Support for compiled Saxon XSLT Filters. A saxonCompiled attribute has been added to certain DXP elements and appropriate support has been provided in DXPConfiguration for loading of compiled stylesheets. Please see the Saxon documentation for details of how to compile a stylesheet. Note that any compilation must be done using the same version of Saxon as that supplied in the DeltaXML Core release.
Enhancement: The comparator and combiner now support the new deltaV2 format. This is documented in the: introductory guide, format specification and with a schematron schema. Access to the old format is preserved for backwards compatibility through the use of a comparator feature setting. New customers are encouraged to adopt the new format which is significantly easier to process with XSLT/XPath/Xquery. The combiner support includes a new input validation feature (using schematron) which can be turned off for higher performance (see feature documentation in the com.deltaxml.api package overview page).
Enhancement: Improved error/exception handling. The error handling during compare and combine operations has been improved. New subclasses of DeltaXMLProcessingException allow users to get more details about errors and automate reporting and recovery. The previous error codes have been preserved where possible to provide compatibility.
Enhancement: Changed ErrorListener behaviour. Fatal errors are now reported to the user/application code through the listener and then also thrown as exceptions. This change still allows users control over the error handling, however they no longer need to write error handlers which support the getFatalDetected() method. Some consequences of this change include error number 5 ('previous fatal errors reported') is no longer required/reported and that only one fatal error is reported per comparison operation.
Enhancement: The performance and matching enhancements introduced between the 4.5.1 and 4.5.2 releases are also included in this release. It was found that these enhancements nullified any of the performance improvements previously provided by 'enhancedMatch2'; although it is still provided for existing customers we encourage new users to use enhancedmatch1 and we've removed mention of it from the javadoc.
Enhancement: Added PipelinedComparator.isEqual() methods which allow input filtering prior to equality testing.
Enhancement: Additional filters and pipeline changes. New filters were needed to support the deltaV2 format. Various pipelines, particularly those associated with document-centric XML, for example xhtml and docbook were upgraded to use these new filters. These filters include a change to the way 'formatting' elements are implemented, a new more powerful technique using flattening is provided. This is incompatible with the formatting support provided by the WordByWordInfilter in previous releases. Previous filters used with deltaV1 and previous releases are included in a 'Filter Compatibility Pack' available from the downloads section of the DeltaXML website. These can be used with this release only in conjunction with the deltaV1 feature setting.
Enhancement: Updated XSLT and Saxon - Some of the filters supplied in this release have been updated to use XSLT version 2.0, now a W3C recommendation. Consequently the version of SaxonB supplied is now version 9.0.0.2. Both
saxon9.jarandsaxon9-dom.jarare needed.
New Feature: added the 'red-green' XSLT filter. Converts sequences of mixed, consecutive added and deleted elements into a sequence of all the deleted items followed by all the added items. See filter comments for more details.
Bug fix: fixed an issue that could cause a comparison of partially keyed data to run very slowly
Enhancement: optimisations to the enhanced matching algorithm to improve speed
Bug fix: fixed a bug in RemoveExchange filter that sometimes caused text to be repeated
Enhancement: Changes to OrphanedWordOutfilter to treat orphaned punctuation in the same way as orphaned words. This results in cleaner changesets in previously fragmented text.
Bug fix: Resolve issues with Enterprise releases reporting 'corrupt license' problems by proving a new license management implementation which reduces exposure to bugs in the Java platform APIs.
Enchancement: Performance improvement in the enhanced matcher. On a fairly critical path there was some code which tested for contains() on a List and then did a get(); these operations are now merged.
Enchancement: The Orphaned word filter only considered PCDATAModify elements surrounding unchanged words when determening orphan candidates. It now also considers added and deleted words making it more generally applicable.
New Feature: Added Enhanced Match 2. This is a new matching algorithm based on the Enhanced Matcher 1. See the com.deltaxml.api package description for more details.
Bug fix: Stopped the Enhanced Matcher 1 from attempting to match elements with keys. These will already have matched and this behaviour can slow the matcher down.
New Feature: Added
com.deltaxml.pipe.filters.OrphanedWordOutfilter. See filter javadoc for more details.Enhancement: Added URIResolver and EntityResolver support to command line tool. See the command line tool readme for more details.
Bug fix: Resolved classloading and bean decoding issues when deltaxml.jar is used in conjunction with other software (eg: Alfresco) which also uses the TrueLicense APIs.
Enhancement: Improved punctuation support in WordByWordInfilter.java. The definition of punctuation is now one, or more of the set of punctuation characters, preceded or followed by whitespace or those which appear at the start of end of character data.
Enhancement: Experimental support for character based splitting in WordByWord infilter. A parameter can now be used to split every character into a word element (for recombination by WordByWordOutfilter1). This parameter disables this experimental functionality by default and should not affected existing pipelines/users.
Enhancement: Added URIResolver support to PipelinedComparator and DXPConfiguration.
Enhancement: Added RemoveExchange filter in Java. This is equivalent to remove-exchange.xsl in the xsl samples folder
Bug fix: Modified package sealing so that deltaxml.jar and sync.jar can be used by the same classloader
Bug fix: Improved error handling. SAXParseExceptions that occur in pipeline components before the comparator are now reported to the comparator ErrorListener
Enhancement: Added a license activation gui tool to facilitate license activation
Bug fix: Fixed a bug that sometimes occurred when activating a licence file
Enhancement: New licensing model that requires activation of license files sent as email attachments
Bug fix: Changes made to WordByWord filters in version 4.1 were causing enhanced matching to be less effective. This has been fixed by altering the enhanced matching algorithm. 'Paragraph' level alignment should now be identical to version 4.0.
Enhancement: Improved the error handling mechanisms for
com.deltaxml.api.ComparatorFilterDocumentation fix: example commands for producing a delta file to use for recombination were incorrect
Bug fix: Word By Word filters were removing elements in the deltaxml namespace from the resulting delta (such as
deltaxml:line, used in the DocBook pipeline)Enhancement: Improved the operation of the Enhanced Matcher. Changes made to Word By Word filtering in 4.1 caused problems in some situations.
New Feature: Added a DocBook comparison pipeline (
compare-docbook.dxp).Enhancement: Changes to DocBook filters to improve the DocBook pipeline. Notably:
docbook-infilter.xslfails if an input containsrevisionflagattributesdocbook-infilter.xslfails if an input contains non-uniqueidattributesdocbook-outfilter.xslusesrevisionflag="changed"more correctlyNew output filter
docbook-unique-ids.xslthat resolves id conflicts in a result file.
Bug fix: command line processor did not find dxp files located in the installation directory.
Enhancement: namespace prefixes. The comparator will now output an anonymous namespace if this is appropriate. In many cases, this will remove the use of 'p0' prefixes in the output.
Bug fix: multiple anonymous namespace mappings. The comparator would previously read an unprefixed namespace bound to the empty string URI (xmlns=''); the delta output would then, in certain circumstances, contain the empty string URI bound to a namespace prefix (xmlns:p0='') which is an invalid XML result.
Bug fix:
xhtml-outfilter.xslFixed a bug where a format and content change was marked as a format-only change.Bug fix:
ComparatorFilter. Fixed an error handling bug to support the use of rethrowing error handlers withComparatorFilter.Enhancement: added
InvalidPipelineException, a subclass ofDXPConfigurationExceptionthat is thrown when attempting to generate aPipelinedComparatorfrom a dxp file whose root is notcomparatorPipeline.Enhancement:
WordByWordfilters now differentiate between punctuation and text. This means that changing 'word' to 'word,' is an addition operation rather than a modification.Bug fix: spaces in path names on MS Windows when saving results to file were replaced with '%20'. Shipping with Saxon 6.5.5 rather than 6.5.4 fixes this.
Enhancement: command-line tool. Improved error reporting when problems are encountered with loading dxp files.
Enhancement: added
remove-exchange.xslfilter. This convertsdeltaxml:exchangeelements into added/deleted elements ordeltaxml:PCDATAmodifyas appropriate.
Bug fix: method signature for the attribute normalization parameter of the
NormalizeSpacefilter improved.Bug fix: Changed CSS class ids in
deltaxml-folding-html.xslto ones less likely to cause clashes.Enhancement: The display of 'buttons' in the
xhtml-outfilter.xslcan be controlled via a parameter.Bug fix: Output file extension in the
compare-xhtml.dxppipeline changed from 'xhtml' to 'html' for better compatibility with InternetExplorer.Enhancement: Initial collapsed/expanded state of unchanged elements in
deltaxml-folding-html.xslcan be controlled via a parameter.Bug fix: Change in Classloader behaviour when loading filters described as DXP resources. Now using the current classloader.
Improved enhanced matcher documentation in com.deltaxml.api package docs. Now includes runtime and memory warning/advice.
A 'pull mode' comparator is provided, see the class:
com.deltaxml.api.XMLComparatorFilter. This allows multiple comparators to be used in a SAX pipeline.Increased capacity: the data structures used to represent the input files/streams have a 16 fold capacity increase. They now support, for example, in the optimum case, 230-1 elements or a 'giga-element' capacity.
This large capacity has only been achieved in practice using Sun's Java SE 6.0 beta release. When tested with J2SE 5.0 releases an
OutOfMemoryErrorwith message detail: 'Requested array size exceeds VM limit' was produced before the new maximum capacity could be reached, even when plenty of RAM was available and with various JVM and Garbage collector settings.Improved matching is provided for inline document formatting elements in the WordByWord filters. This mechanism relies on a new attribute deltaxml:format. The XHTML filters and the XHTML pipeline included in the commandline and GUI tools have been enhanced to make use of this new functionality. This capability is only applicable when full-context deltas are being used.
The XSLT versions of the word-by-word filters have been retired in favour of the Java versions. The Java versions offer much better performance and reduced memory footprint. The XSLT versions are no longer included in the release, but support will be continued for customers still using them in production settings.
Asymmetric input pipelines are now supported in the
com.deltaxml.core.PipelinedComparatorclass and in DXP files.
The enhanced (4.0.b1) matching algorithm is now the default behaviour. The associated Feature setting (please see the javadoc package overview page for the
com.deltaxml.apipackage) has been retained for 3.x backwards compatible behaviour.Merged 3.1.1 and 3.1.2 bug fixes into 4.0 branch.
Planned changes for a future release (Please Note):
API incompatible changes, such as the removal of currently deprecated interfaces (particularly RunnableComparators/Combiners and Briefcases), may be made in a future major release. Please check for use of any deprecated interfaces and discuss any concerns with DeltaXML support.
Bug fix with credit assignment and usage logging with the WebService release.
Bug fix for DeltaWing (now version 2.1) for screen refresh problems on Windows XP
Added document-mode enhanced matching algorithm, controllable with new feature setting.
Internal data structure redesign/refactoring in preparation for new datastores and also external data store integration.
Improved HTML difference report filter using JavaScript to allow collapse/expand of the Nodes in an XML tree.
A new (2.0) release of the DeltaWing GUI application, using browser/editor call-out techniques for results viewing of HTML and XML data.
User configurable/extensible pipelines (using DXP configuration files) in DeltaWing and Command-line processor. The DXP configuration mechanism is also available for embeddeding in Java appications through new classes in the
com.deltaxml.corepackage.Better error reporting of missing FEATURE problems in the
PipelinedComparatorconstructor.Bug/performance fixes to various filters:
Changes to
xhtml-outfilter.xslincluding corrected CSS classnames to avoid differences being misreported and removal of deltaxml attributes from the result.Improved added/deleted whitespace handling in
WordByWordOutfilter1.javaandword-by-word-outfilter1.xsl.Improved performance of NormalizeSpace.java filter by avoiding use of Java regular expression code.
The following features are provided for the WebService release (the default evaluation download):
DeltaWing now works with the WebService release, providing easy to use pipelines and extensibility mechanisms
Improved error detection and reporting of certain WebService failures such as unknown username or expired and exhausted credits
Updates to new Docbook generated website documentation locations.
Resolved issue with
deltaxml-soa.jarnot providing similar DTD/ignorable-whitespace semantics to the local release.Updated included verisons of Saxon and Xerces-J to 6.5.4 and 2.7.1 respectively.
Includes
serializer.jarfrom Xalan-J 2.7.0 to support result viewing in DeltaWing when used on J2SE 5.0.
Support for comparison using a SOAP webservice instead of local comparison.
Push and Pull mode filtering in Java giving much improved performance, and including:
A new package (
com.deltaxml.core) to provide easier pipeline construction.A support package for 'push mode' SAX event filtering in Java (
com.deltaxml.pipe).A number of Java filter implementations (
com.deltaxml.pipe.filters).
Restructuring of the release: samples in subdirectories and source.zip
Included XSLT processor is now Saxon, Xerces-J is also provided for parsing support.
Most documentation converted to docbook/HTML.
The orderless recombine algorithm has been overhauled, this should fix the known issues (described in 2.8 below) and also provide better run-time performance.
The (run-time) performance when loading XML datasets containing large numbers of distinct PCDATA and attribute values has been optimized. For 'pathalogical' cases this can result in a 20x run-time speed improvement.
DeltaWing now supports user selectable input filters. Two simple filters are provided in the default build; users can also customize the number and types of filters used when rebuilding.
Rendering improvements in DeltaWing (workarounds for Swing's HTMLEditorPanel bugs, such as not considering newline in PCDATA as whitespace).
Updated copyright year output in
java -jar deltaxml.jarBug 120 was incorrectly reported as fixed in 2.7, now fixed
DeltaWing changes including:
better layout management giving more reliable resizing on different platforms,
selection of changes display mode
option to save HTML 3.2 result
Supply compiled version of DeltaWing in top level directory and simplifications to source code build process (no longer uses 'burn-in', instead includes XSLT scripts directly in
deltawing.jar)Samples directory overhaul, including:
Use latest versions of
normalize-space.xslanddeltaxml-tables.xslwithAdvanced.javarather than outdatedinfilter.xsletc.Use new simpler example files (
demo1.xmlanddemo2.xml)Change Ant build script to use Saxon - works better with filters.
README.txtgives JDK1.4 examples only, other compile/run examples moved to source code comments.
Bug fix 121 -
IndexOutOfBoundsExceptionwhen reporting errors if one of the comparison inputs is a delta file, now only produces a single fatal error when comparing delta files.Bug fix 122 - Reduced memory consumption for large multi-line PCDATA sections.
Changed the semantics of error 47 (no PCDATA in orderless elements), now any PCDATA, not just non-whitespace PCDATA, in an orderless element is reported as an error. This is more inline with the wording of the error message and also the compare/recombine semantics necessary for 'round-tripping'.
Tutorial is now supplied only in HTML form, not as pdf files or zip files, which are still available from the website.
Errors which were previously reporting error code zero have been changed to provide new unique error codes, this change is needed in order to support better error reporting when a comparator is used internally by the upcoming sync product.
'Nag messages' for evaluation releases are produced only 2 days prior to expiry, message is shorter (no details of evaluation user - can still be obtained via
java -jar deltaxml.jar).Known Issues:
recombine of orderless elements may produce incorrect results in certain cases
SAXResultoutput from anXMLCombineris incorrect in certain cases,StreamResultshould always be correct