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

<!--
DTD for status of a NetBeans module.

Public ID: "-//NetBeans//DTD Module Status 1.0//EN"
Public URL: https://netbeans.org/dtds/module-status-1_0.dtd

Example:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE module PUBLIC "-//NetBeans//DTD Module Status 1.0//EN"
                        "https://netbeans.org/dtds/module-status-1_0.dtd">
<module name="org.netbeans.modules.foo">
    <param name="autoload">false</param>
    <param name="enabled">true</param>
    <param name="installer">org-netbeans-modules-foo.ser</param>
    <param name="jar">foo.jar</param>
    <param name="origin">installation</param>
    <param name="release">1</param>
    <param name="reloadable">false</param>
    <param name="specversion">1.6</param>
</module>

Such a module status would canonically be stored in the
system file system with the name Modules/org-netbeans-modules-foo.xml.
-->

<!ELEMENT module (param)*>
<!ATTLIST module name CDATA #REQUIRED>
<!ELEMENT param (#PCDATA)>
<!ATTLIST param name CDATA #REQUIRED>
