<?xml version="1.0" encoding="UTF-8"?>
<!--

    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.

-->
<?xml-stylesheet type="text/xml" href="../../nbbuild/javadoctools/apichanges.xsl"?>
<!DOCTYPE apichanges PUBLIC "-//NetBeans//DTD API changes list 1.0//EN" "../../nbbuild/javadoctools/apichanges.dtd">

<!--

INFO FOR PEOPLE ADDING CHANGES:

Check the DTD (apichanges.dtd) for details on the syntax. You do not
need to regenerate the HTML, as this is part of Javadoc generation; just
change the XML. Rough syntax of a change (several parts optional):

<change>
    <api name="compiler"/>
    <summary>Some brief description here, can use <b>XHTML</b></summary>
    <version major="1" minor="99"/>
    <date day="13" month="6" year="2001"/>
    <author login="jrhacker"/>
    <compatibility addition="yes"/>
    <description>
        The main description of the change here.
        Again can use full <b>XHTML</b> as needed.
    </description>
    <class package="org.openide.compiler" name="DoWhatIWantCompiler"/>
    <issue number="14309"/>
</change>

Also permitted elements: <package>, <branch>. <version> is API spec
version, recommended for all new changes. <compatibility> should say
if things were added/modified/deprecated/etc. and give all information
related to upgrading old code. List affected top-level classes and
link to issue numbers if applicable. See the DTD for more details.

Changes need not be in any particular order, they are sorted in various
ways by the stylesheet anyway.

Dates are assumed to mean "on the trunk". If you *also* make the same
change on a stabilization branch, use the <branch> tag to indicate this
and explain why the change was made on a branch in the <description>.

Please only change this file on the trunk! Rather: you can change it
on branches if you want, but these changes will be ignored; only the
trunk version of this file is important.

Deprecations do not count as incompatible, assuming that code using the
deprecated calls continues to see their documented behavior. But do
specify deprecation="yes" in <compatibility>.

This file is not a replacement for Javadoc: it is intended to list changes,
not describe the complete current behavior, for which ordinary documentation
is the proper place.

-->

<apichanges>

    <!-- First, a list of API names you may use: -->
    <apidefs>
        <apidef name="general">General</apidef>
        <!-- etc. -->
    </apidefs>

    <!-- ACTUAL CHANGES BEGIN HERE: -->

    <changes>
        <change id="deprecated-syntax-api">
            <summary>Syntax API deprecated</summary>
            <version major="2" minor="60"/>
            <date day="18" month="10" year="2016"/>
            <author login="sdedic"/>
            <compatibility binary="compatible" source="incompatible" semantic="compatible" addition="yes" deprecation="yes" deletion="yes"/>
            <description>
                <p>
                    The xml.text.syntax API uses the old and long deprecated lexer. The API is now moved to a new compatibility-only 
                    <code>xml.text.deprecated90</code> module and a new API in <code>org.netbeans.modules.xml.text.api.dom</code> package is offered.               
                </p>
                <p>
                    The following classes/packages have been moved to xml.text.obsolete90 module:
                </p>
                <ul>
                    <li>
                        <code>org.netbeans.modules.xml.text.syntax</code>
                        <ul>
                            <li>DTDSyntaxTokenMapper</li>
                            <li>DTDTokenContext</li>
                            <li>SyntaxElement</li>
                            <li>UnicodeClasses</li>
                            <li>XMLDefaultSyntax</li>
                            <li>XMLSyntaxSupport</li>
                            <li>XMLSyntaxTokenMapper</li>
                            <li>XMLTokenIDs</li>
                        </ul>
                    </li>
                    <li>
                        <code>org.netbeans.modules.xml.text.syntax.dom</code>
                        <ul>
                            <li>AttrImpl</li>
                            <li>CDataSectionImpl</li>
                            <li>CommentImpl</li>
                            <li>DocumentTypeImpl</li>
                            <li>EmptyTag</li>
                            <li>EndTag</li>
                            <li>EntityReferenceImpl</li>
                            <li>ProcessingInstructionImpl</li>
                            <li>StartTag</li>
                            <li>SyntaxNode</li>
                            <li>TextImpl</li>
                            <li>Util</li>
                        </ul>
                    </li>
                    <li>
                        <code>org.netbeans.modules.xml.text.indent</code>
                        <ul>
                            <li>XMLFormatter</li>
                        </ul>
                    </li>
                    <li>
                        <code>org.netbeans.modules.xml.text.api</code>
                        <ul>
                            <li>XMLDefaultTokenContext</li>
                        </ul>
                    </li>
                </ul>
            </description>
            <class name="XMLTextUtils" package="org.netbeans.modules.xml.text.api"/>
            <package name="org.netbeans.modules.xml.text.syntax"/>
            <package name="org.netbeans.modules.xml.text.api.dom"/>
            <issue number="268342"/>
        </change>
        <change id="old-editor-settings-deprecation">
            <summary>Removing old settings classes</summary>
            <version major="1" minor="16"/>
            <date day="5" month="6" year="2008"/>
            <author login="vstejskal"/>
            <compatibility binary="compatible" source="incompatible" semantic="incompatible" addition="no" deprecation="no" deletion="yes"/>
            <description>
                The following classes were moved to <code>editor.deprecated.pre61settings</code> module:
                <ul>
                    <li><code>org.netbeans.modules.xml.text.syntax.AbstractBaseOptions</code></li>
                    <li><code>org.netbeans.modules.xml.text.syntax.DTDOptionsBeanInfo</code></li>
                    <li><code>org.netbeans.modules.xml.text.syntax.DTDOptions</code></li>
                    <li><code>org.netbeans.modules.xml.text.syntax.XMLOptionsBeanInfo</code></li>
                    <li><code>org.netbeans.modules.xml.text.syntax.XMLOptions</code></li>
                    <li><code>org.netbeans.modules.xml.text.syntax.XMLSettingsInitializer</code></li>
                </ul>
                The method <code>createCompletionForProvider</code> in <code>XMLKit</code> was deleted.
            </description>
            <issue number="90403"/>
        </change>

    </changes>

    <!-- Now the surrounding HTML text and document structure: -->

    <htmlcontents>
<!-- Generated from apichanges.xml -->
    <head>
      <title>Change History for the XML Text Editor API</title>
      <link rel="stylesheet" href="prose.css" type="text/css"/>
    </head>
    <body>

<p class="overviewlink"><a href="overview-summary.html">Overview</a></p>

<h1>Introduction</h1>

<p>This document lists changes made to the <a href="overview-summary.html">XML Text Editor API</a>.</p>

<!-- The actual lists of changes, as summaries and details: -->
      <hr/>
      <standard-changelists module-code-name="org.netbeans.modules.xml.text/2"/>

      <hr/><p>@FOOTER@</p>

    </body>
  </htmlcontents>

</apichanges>
