<?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.

-->
<licenseinfo>
    <fileset>
        <file>src/org/netbeans/modules/html/editor/resources/DTDs/3_2/html32.dtd</file>
        <file>src/org/netbeans/modules/html/editor/resources/DTDs/3_2/lat1.ent</file>
        <file>src/org/netbeans/modules/html/editor/resources/DTDs/4_0/frameset.dtd</file>
        <file>src/org/netbeans/modules/html/editor/resources/DTDs/4_0/loose.dtd</file>
        <file>src/org/netbeans/modules/html/editor/resources/DTDs/4_0/strict.dtd</file>
        <file>src/org/netbeans/modules/html/editor/resources/DTDs/4_0/HTMLlat1.ent</file>
        <file>src/org/netbeans/modules/html/editor/resources/DTDs/4_0/HTMLspecial.ent</file>
        <file>src/org/netbeans/modules/html/editor/resources/DTDs/4_0/HTMLsymbol.ent</file>
        <file>src/org/netbeans/modules/html/editor/resources/DTDs/4_01/frameset.dtd</file>
        <file>src/org/netbeans/modules/html/editor/resources/DTDs/4_01/loose.dtd</file>
        <file>src/org/netbeans/modules/html/editor/resources/DTDs/4_01/strict.dtd</file>
        <file>src/org/netbeans/modules/html/editor/resources/DTDs/4_01/HTMLlat1.ent</file>
        <file>src/org/netbeans/modules/html/editor/resources/DTDs/4_01/HTMLspecial.ent</file>
        <file>src/org/netbeans/modules/html/editor/resources/DTDs/4_01/HTMLsymbol.ent</file>
        <file>src/org/netbeans/modules/html/editor/resources/DTDs/xhtml/xhtml1-frameset.dtd</file>
        <file>src/org/netbeans/modules/html/editor/resources/DTDs/xhtml/xhtml1-strict.dtd</file>
        <file>src/org/netbeans/modules/html/editor/resources/DTDs/xhtml/xhtml1-transitional.dtd</file>
        <file>src/org/netbeans/modules/html/editor/resources/DTDs/xhtml/xhtml-lat1.ent</file>
        <file>src/org/netbeans/modules/html/editor/resources/DTDs/xhtml/xhtml-special.ent</file>
        <file>src/org/netbeans/modules/html/editor/resources/DTDs/xhtml/xhtml-symbol.ent</file>
        <license ref="W3C2" />
        <comment>DTDs and XMLSchemata are used at runtime to offer code completion for HTML/XHTML files.</comment>
    </fileset>
    <fileset>
        <file>src/org/netbeans/modules/html/editor/resources/DTDs/3_2/catalog</file>
        <file>src/org/netbeans/modules/html/editor/resources/DTDs/4_0/catalog</file>
        <file>src/org/netbeans/modules/html/editor/resources/DTDs/4_01/catalog</file>
        <file>src/org/netbeans/modules/html/editor/resources/DTDs/xhtml/catalog</file>
        <file>src/org/netbeans/modules/html/editor/resources/htmlOptions32.gif</file>
        <file>src/org/netbeans/modules/html/editor/resources/html.png</file>
        <file>src/org/netbeans/modules/html/editor/resources/htmlOptions.gif</file>
        <file>src/org/netbeans/modules/html/editor/resources/back.gif</file>
        <file>src/org/netbeans/modules/html/editor/resources/mathml.png</file>
        <file>src/org/netbeans/modules/html/editor/resources/forward.gif</file>
        <file>src/org/netbeans/modules/html/editor/resources/htmlView.gif</file>
        <file>src/org/netbeans/modules/html/editor/resources/htmlTag.png</file>
        <license ref="Apache-2.0-ASF" />
        <comment type="COMMENT_UNSUPPORTED" />
    </fileset>
    <fileset>
        <file>src/org/netbeans/modules/html/editor/options/ui/formatSample.html</file>
        <file>src/org/netbeans/modules/html/editor/resources/HTMLExample</file>
        <file>src/org/netbeans/modules/html/editor/resources/XHTMLExample</file>
        <license ref="Apache-2.0-ASF" />
        <comment type="GUI_USABILITY"/>
    </fileset>
</licenseinfo>
