<?xml version="1.0" standalone="no"?>
<!--
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
-->

<!DOCTYPE s1 SYSTEM "sbk:/style/dtd/document.dtd">

<s1 title="Migration">
    <s2 title="Migration Archive">

       <p>For migration information on earlier versions of &XercesCName;
          please refer to <link idref="migrate-archive-&XercesC3Series;">Migration Archive</link>.</p>

    </s2>

    <s2 title="Migrating from &XercesCName; 3.X to &XercesCName; &XercesC3Version;">
      <p>&XercesCName; &XercesC3Version; is an API-compatible, but not ABI-compatible, update to the 3.x branch. Code designed for use with Xerces 3 should continue to compile, but existing applications MUST be recompiled to work with this version.</p>

      <p>Most of the changes are purely bug fixes, but there is a new build system based on CMake that provides support for Windows compilers. Both CMake and autoconf-based builds work on non-Windows platforms.</p>

      <p>There is also support for the standard DOM disallow-doctype property, which provides substantial security benefits to applications that don't require DTD support.</p>
    </s2>

</s1>
