21
21
<s1 title="Migration">
22
22
<s2 title="Migration Archive">
24
<p>For migration information to &XercesCName; 2 series or earlier,
24
<p>For migration information on earlier versions of &XercesCName; 2
25
25
please refer to <link idref="migrate-archive-&XercesC3Series;">Migration Archive</link>.</p>
29
<s2 title="Migrating from &XercesCName; 2 series to &XercesCName; &XercesC3Version;">
29
<s2 title="Migrating from &XercesCName; 3.0.0 to &XercesCName; &XercesC3Version;">
30
30
<p>The following section is a discussion of the technical differences between
31
&XercesCName; 2 series and &XercesCName; &XercesC3Version;.</p>
31
&XercesCName; 3.0.0 and &XercesCName; &XercesC3Version;.</p>
33
33
<p>Topics discussed are:</p>
35
35
<li><link anchor="NewFeatures300">New features in &XercesCName; &XercesC3Version;</link></li>
36
36
<li><link anchor="API300">Public API Changes</link></li>
38
<li><link anchor="NewAPI300">New Public API</link></li>
39
<li><link anchor="ModifiedAPI300">Modified Public API</link></li>
40
<li><link anchor="DeprecatedAPI300">Deprecated/Removed Public API</link></li>
44
39
<anchor name="NewFeatures300"/>
45
40
<s3 title="New features in &XercesCName; &XercesC3Version;">
47
<li>Autotools-based build system for the UNIX/Linux/Mac OS X platforms</li>
48
<li>Project files for VC++ 9</li>
49
<li>Support for the ICU transcoder in VC++ 7.1, 8, and 9 project files</li>
50
<li>libcurl-based net accessor</li>
51
<li>Support for XInclude in DOM</li>
52
<li>Support for both XPath 1 and XPath 2 models in the DOM XPath interface</li>
53
<li>Support for the XML Schema subset of XPath 1 in DOM</li>
54
<li>Conformance to the final DOM Level 3 interface specification</li>
55
<li>Ability to provide custom DOM memory manager as well as tune the global DOM heap parameters</li>
56
<li>All public and widely used interfaces as well as a large
57
portion of the implementation were converted to be 64-bit safe.</li>
58
<li>Various XML Schema fixes including the fix for the large
59
maxOccurs and minOccurs bug as well as for the changed ##other
61
<li>Reviewed and cleaned up diagnostics messages</li>
62
<li>Optimizations for SAX/SAX2 and DOM parsing as well as XML Schema
42
<li>Working multi-import support. The support for handling multiple import
43
declarations with the same target namespaces has been improved and
44
thoroughly tested. Furthermore, the same logic was extended to
45
loadGrammar and the schemaLocation attributes so that you can load
46
several schemas with the same namespace and/or "add" more declarations
47
with the schemaLocation attributes. To enable this feature, set the
48
XMLUni::fgXercesHandleMultipleImports feature/parameter to true.
49
Starting with this release all the tests and examples have multi-import
50
support enabled by default.</li>
52
<li>New property, XMLUni::fgXercesLowWaterMark, allows to configure the
53
parser buffer low water mark. In particular, setting this value to 0
54
disables data caching in the parser which can be useful if you want
55
the SAX events to be dispatched as soon as the data is available.</li>
57
<li>DOMLSParser::parseWithContext implementation. In particular, this
58
functionality allows one to parse a document fragment with missing
59
namespace declarations as long as the context document provides them.</li>
61
<li>Improved performance and reduced memory footprint when validating with
62
large maxOccurs values. If available, the SSE2 instructions are used to
63
further speedup this case.</li>
65
<li>Improved scalability of the XML Schema identity checking (key, keyref,
68
<li>Multiple XML Schema conformance fixes.</li>
70
<li>More robust external library detection (libcurl and ICU). In particular,
71
the build system no longer tries to inject any additional paths such as
72
/usr or /usr/local.</li>
74
<li>Compilation of the ICU message loader resources no longer depends on
75
the ICU implementation details.</li>
67
79
<anchor name="API300"/>
68
80
<s3 title="Public API Changes">
70
<p>&XercesCName; &XercesC3Version; is a major release and includes
71
a number of application-breaking interface changes compared to
72
&XercesCName; 2 series.
73
The following sub-sections provide an overview of the public API
74
changes between &XercesCName; 2 series and this release.</p>
76
<anchor name="NewAPI300"/>
77
<s4 title="New Public APIs">
79
<li>XMLGrammarPoolImpl implementation has been moved to
80
framework/ and is now publicly accessible</li>
82
<li>DOM XPath interfaces now support XPath 2 model</li>
84
<li>A number of DOM interfaces (DOMLSInput, DOMLSOuput,
85
DOMLSParser, DOMLSSerializer, DOMConfiguration, etc.)
86
were added as part of the the final DOM Level 3
87
specification conformance work</li>
91
<anchor name="ModifiedAPI300"/>
92
<s4 title="Modified Public APIs">
94
<p>A large number of public APIs have been modified. Consult
95
individual interface documentation for details. The following
96
list gives an overview of major changes:</p>
99
<li>Several DOM interfaces have been adjusted to conform to the final
100
DOM Level 3 specification</li>
102
<li>DOM XPath interfaces have been adjusted to support both XPath 1
105
<li>Many public interfaces that used int/long types to represent
106
memory-related sizes, counts, indexes, etc., have been modified
107
to use the 64-bit safe XMLSize_t type instead</li>
112
<anchor name="DeprecatedAPI300"/>
113
<s4 title="Deprecated/Removed Public APIs">
114
<p>All APIs marked as deprecated in &XercesCName; 2 series have
115
been removed in this release. In particular deprecated DOM
116
(depdom) as well as COM support have been removed.</p>
118
<p>Furthermore, a number of DOM interfaces (DOMBuilder, DOMWriter,
119
DOMInputSource, etc.) were replaced as part of the the final
120
DOM Level 3 specification conformance work.</p>
82
<p>&XercesCName; &XercesC3Version; is a minor release and does
83
not include any public API changes that would preclude
84
applications using the previous version of &XercesCName; from
85
building successfully with this version.</p>