--
The contents of this file are subject to the terms of the Common Development
and Distribution License (the License). You may not use this file except in
compliance with the License.

You can obtain a copy of the License at https://netbeans.org/cddl.html
or https://netbeans.org/cddl.txt.

When distributing Covered Code, include this CDDL Header Notice in each file
and include the License file at https://netbeans.org/cddl.txt.
If applicable, add the following below the CDDL Header, with the fields
enclosed by brackets [] replaced by your own identifying information:
"Portions Copyrighted [year] [name of copyright owner]"

The Original Software is NetBeans. The Initial Developer of the Original
Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
Microsystems, Inc. All Rights Reserved.
--

-- Catalog of public IDs to DTD filenames; XML tools can understand it --

public "-//NetBeans IDE//DTD toolbar//EN" toolbar.dtd
public "-//NetBeans//DTD Autoupdate Catalog 1.0//EN" autoupdate-catalog-1_0.dtd
public "-//NetBeans//DTD Autoupdate Catalog 2.0//EN" autoupdate-catalog-2_0.dtd
public "-//NetBeans//DTD Autoupdate Catalog 2.2//EN" autoupdate-catalog-2_2.dtd
public "-//NetBeans//DTD Autoupdate Catalog 2.3//EN" autoupdate-catalog-2_3.dtd
public "-//NetBeans//DTD Autoupdate Catalog 2.4//EN" autoupdate-catalog-2_4.dtd
public "-//NetBeans//DTD Autoupdate Catalog 2.5//EN" autoupdate-catalog-2_5.dtd
public "-//NetBeans//DTD Autoupdate Catalog 2.6//EN" autoupdate-catalog-2_6.dtd
public "-//NetBeans//DTD Autoupdate Catalog 2.7//EN" autoupdate-catalog-2_7.dtd
public "-//NetBeans//DTD Autoupdate Catalog 3.0//EN" autoupdate-catalog-3_0.dtd
public "-//NetBeans//DTD Autoupdate Module Info 1.0//EN" autoupdate-info-1_0.dtd
public "-//NetBeans//DTD Autoupdate Module Info 2.0//EN" autoupdate-info-2_0.dtd
public "-//NetBeans//DTD Autoupdate Module Info 2.2//EN" autoupdate-info-2_2.dtd
public "-//NetBeans//DTD Autoupdate Module Info 2.3//EN" autoupdate-info-2_3.dtd
public "-//NetBeans//DTD Autoupdate Module Info 2.4//EN" autoupdate-info-2_4.dtd
public "-//NetBeans//DTD Autoupdate Module Info 2.5//EN" autoupdate-info-2_5.dtd
public "-//NetBeans//DTD Autoupdate Module Info 2.7//EN" autoupdate-info-2_7.dtd
public "-//NetBeans//DTD Autoupdate Module Info 3.0//EN" autoupdate-info-3_0.dtd
public "-//NetBeans//DTD DefaultAttributes 1.0//EN" attributes-1_0.dtd
public "-//NetBeans//DTD Editor Abbreviations settings 1.0//EN" EditorAbbreviations-1_0.dtd
public "-//NetBeans//DTD Editor Fonts and Colors settings 1.0//EN" EditorFontsColors-1_0.dtd
public "-//NetBeans//DTD Editor KeyBindings settings 1.0//EN" EditorKeyBindings-1_0.dtd
public "-//NetBeans//DTD Editor Macros settings 1.0//EN" EditorMacros-1_0.dtd
public "-//NetBeans//DTD Editor Properties settings 1.0//EN" EditorProperties-1_0.dtd
public "-//NetBeans//DTD Filesystem 1.0//EN" filesystem-1_0.dtd
public "-//NetBeans//DTD Filesystem 1.1//EN" filesystem-1_1.dtd
public "-//NetBeans//DTD Group Properties 2.0//EN" group-properties2_0.dtd
public "-//NetBeans//DTD Help Context 1.0//EN" helpcontext-1_0.dtd
public "-//NetBeans//DTD Java PlatformDefinition 1.0//EN" java-platformdefinition-1_0.dtd
public "-//NetBeans//DTD JavaHelp Help Set Reference 1.0//EN" helpsetref-1_0.dtd
public "-//NetBeans//DTD MIME Resolver 1.0//EN" mime-resolver-1_0.dtd
public "-//NetBeans//DTD MIME Resolver XML Rules 1.0//EN" mime-resolver-xml-component-1_0.dtd
public "-//NetBeans//DTD Mode Properties 1.0//EN" mode-properties1_0.dtd
public "-//NetBeans//DTD Mode Properties 1.1//EN" mode-properties1_1.dtd
public "-//NetBeans//DTD Mode Properties 1.2//EN" mode-properties1_2.dtd
public "-//NetBeans//DTD Mode Properties 2.0//EN" mode-properties2_0.dtd
public "-//NetBeans//DTD Mode Properties 2.0//EN" mode-properties2_1.dtd
public "-//NetBeans//DTD Module Automatic Dependencies 1.0//EN" module-auto-deps-1_0.dtd
public "-//NetBeans//DTD Module Status 1.0//EN" module-status-1_0.dtd
public "-//NetBeans//DTD PDF Document Menu Link 1.0//EN" pdf_link-1_0.dtd
public "-//NetBeans//DTD Session settings 1.0//EN" sessionsettings-1_0.dtd
public "-//NetBeans//DTD Simple Instance 1.0//EN" instance-1_0.dtd
public "-//NetBeans//DTD Top Component in Group Properties 2.0//EN" tc-group2_0.dtd
public "-//NetBeans//DTD Top Component in Mode Properties 1.0//EN" tc-ref1_0.dtd
public "-//NetBeans//DTD Top Component in Mode Properties 2.0//EN" tc-ref2_0.dtd
public "-//NetBeans//DTD Top Component in Mode Properties 2.0//EN" tc-ref2_1.dtd
public "-//NetBeans//DTD VCS Advanced FSSettings 1.0//EN" vcs-advanced-fssettings-1_0.dtd
public "-//NetBeans//DTD VCS Configuration 1.0//EN" vcs-configuration-1_0.dtd
public "-//NetBeans//DTD Window Manager Properties 1.0//EN" windowmanager-properties1_0.dtd
public "-//NetBeans//DTD Window Manager Properties 1.1//EN" windowmanager-properties1_1.dtd
public "-//NetBeans//DTD Window Manager Properties 2.0//EN" windowmanager-properties2_0.dtd
public "-//NetBeans//DTD Workspace Properties 1.0//EN" workspace-properties1_0.dtd
public "-//NetBeans//DTD Workspace Properties 1.1//EN" workspace-properties1_1.dtd
public "-//NetBeans//DTD XTest Master Config 1.0//EN" xtest-master-config-1_0.dtd
public "-//NetBeans//DTD XTest cfg 1.0//EN" xtest-cfg-1_0.dtd
public "-//NetBeans//DTD annotation type 1.0//EN" annotation-type-1_0.dtd
public "-//NetBeans//DTD annotation type 1.1//EN" annotation-type-1_1.dtd
public "-//NetBeans//Entity Mapping Registration 1.0//EN" EntityCatalog-1_0.dtd

-- Externally cached DTDs: --

public "-//W3C//DTD XHTML 1.0 Strict//EN" ../../../libs/external/dtds/xhtml1-20020801/DTD/xhtml1-strict.dtd
