blob: b3820403591ad4d2df16b5e31c2bb028a54a6ec1 [file] [log] [blame]
<?xml version="1.0" standalone="no"?>
<!DOCTYPE s1 SYSTEM "./dtd/document.dtd">
<s1 title="Migration">
<s2 title="Migrating from &XercesCName; &XercesCVersion140; to &XercesCName; &XercesCVersion;">
<p>This document is a discussion of the technical differences between
&XercesCName; &XercesCVersion140; code base and the new &XercesCName; &XercesCVersion; code base.</p>
<p>Topics discussed are:</p>
<ul>
<li><link anchor="GenImprovements">General Improvements</link></li>
<ul>
<li><link anchor="Compliance">Compliance</link></li>
<li><link anchor="BugFixes">Bug Fixes</link></li>
<li><link anchor="Speed">Speed</link></li>
</ul>
<li><link anchor="Changes">Changes required to migrate to &XercesCName; &XercesCVersion;</link></li>
<ul>
<li><link anchor="Reorganization">Validator directory Reorganization</link></li>
<li><link anchor="DTDValidator">DTDValidator</link></li>
</ul>
<li><link anchor="NewFeatures">New features in &XercesCName; &XercesCVersion;</link></li>
<ul>
<li><link anchor="Schema">Schema Subset Support</link></li>
<li><link anchor="IDOM">Experiemental IDOM</link></li>
</ul>
</ul>
</s2>
<anchor name="GenImprovements"/>
<s2 title="General Improvements">
<p>The new version is improved in many ways. Some general improvements
are: significantly better conformance to the XML spec, cleaner
internal architecture, many bug fixes, and faster speed.</p>
<anchor name="Compliance"/>
<s3 title="Compliance">
<p>Except for a couple of the very obscure (mostly related to
the 'standalone' mode), this version should be quite compliant
to <jump href="http://www.w3.org/TR/REC-xml">XML 1.0</jump>. It also
tracks the latest changes to DOM, SAX and Namespace Specification.
We have more than a thousand tests, some collected from various
public sources and some IBM generated, which are used to do
regression testing. The C++ parser is now passing all but a
handful of them.</p>
</s3>
<anchor name="BugFixes"/>
<s3 title="Bug Fixes">
<p>This version has many bug fixes since last release.
Some of these were reported by users and some were brought up by
way of the conformance testing.</p>
</s3>
<anchor name="Speed"/>
<s3 title="Speed">
<p>Much work was done to speed up this version. Some of the
new features, such as experiemental IDOM ended
up eating up some of these gains, but overall the new version
is significantly faster than previous versions, even while doing
more.</p>
</s3>
</s2>
<anchor name="Changes"/>
<s2 title="Changes required to migrate to &XercesCName; &XercesCVersion;">
<p>There are some architectural changes between the &XercesCName;
&XercesCVersion140; and the &XercesCName; &XercesCVersion; releases
of the parser, and as a result, some code has undergone restructuring
as shown below. </p>
<anchor name="Reorganization"/>
<s3 title="Validator directory Reorganization">
<ul>
<li>common content model files such as DFAContentModel ...
are moved to a new directory called src/validators/common</li>
<li>DTD related files are moved to a new directory called src/validators/DTD</li>
<li>new directory src/validators/Datatype is created to store all datatype validators</li>
<li>new directory src/validators/schema is created to store Schema related files</li>
</ul>
</s3>
<anchor name="DTDValidator"/>
<s3 title="DTDValidator">
<p> DTDValidator was design to scan, validate and store the DTD in &XercesCName; &XercesCVersion140;
or earlier. In &XercesCName; &XercesCVersion;, this process is broken down into three components:
</p>
<ul>
<li>new class DTDScanner - to scan the DTD</li>
<li>new class DTDGrammar - to store the DTD Grammar</li>
<li>DTDValidator - to validate the DTD only</li>
</ul>
</s3>
</s2>
<anchor name="NewFeatures"/>
<s2 title="New features in &XercesCName; &XercesCVersion;">
<p> Schema subset support is provided in this release. See
<jump href="schema.html#supportedFeature">
supported schema features in &XercesCName; &XercesCVersion;.</jump>. An
experiemental IDOM is also available as well.
</p>
<anchor name="Schema"/>
<s3 title="Schema Subset Support">
<ul>
<li>Schema Subset support is added</li>
<ul>
<li>New function "setDoSchema" is added to DOM/SAX parser.</li>
<li>New feature "http://apache.org/xml/features/validation/schema" is recognized by SAX2XMLReader.</li>
<li>New classes such as SchemaValidator, TraverseSchema ... are added.</li>
<li>The Scanner is enhanced to process schema.</li>
</ul>
<li>New sample data files personal-schema.xml and personal.xsd.</li>
<li>New command line option "-s" for samples.</li>
</ul>
<p>
See <jump href="schema.html#usage">
Schema Usage</jump>
</p>
</s3>
<anchor name="IDOM"/>
<s3 title="Experiemental IDOM">
<p>The experimental IDOM API is a new design of the C++ DOM API. If you would like
to migrate from DOM to the experimental IDOM, please refer to
<jump href="program.html#IDOMProgGuide">
IDOM programming guide.</jump> Please note that this experimental IDOM API is only
a prototype and is subject to change.
</p>
</s3>
</s2>
<s2 title="Migration Archive">
<p> For migration information from XML4C 2.x to &XercesCName; &XercesCVersion140;,
please refer to <jump href="migrate_archive.html">Migration Archive. </jump></p>
</s2>
</s1>