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

<!--
-//NetBeans//DTD VCS Advanced FSSettings 1.0//EN
https://netbeans.org/dtds/vcs-advanced-fssettings-1_0.dtd
XML representation of a VCS filesystem settings.
Used instead of the serialization process
-->

<!ELEMENT fssettings   (configuration|fsproperties)      >
<!ELEMENT configuration   (label|variables|commands)      >
<!ELEMENT variables       (variable)*   >
<!ELEMENT commands       (command)*   >
<!ELEMENT variable       (value)   >
<!ELEMENT command       (command|property)*   >
<!ELEMENT property       (value)   >
<!ELEMENT value       (#PCDATA)   >
<!ELEMENT fsproperties   (property)*   >

<!ATTLIST variable
          name         CDATA #REQUIRED
          basic        CDATA #IMPLIED
          label        CDATA #IMPLIED
          labelMnemonic CDATA #IMPLIED
          localFile    CDATA #IMPLIED
          localDir     CDATA #IMPLIED
          executable   CDATA #IMPLIED
          order        CDATA #IMPLIED
          selector     CDATA #IMPLIED     >

<!ATTLIST command
          name         CDATA #REQUIRED
          displayName  CDATA #IMPLIED     >

<!ATTLIST property
          name         CDATA #REQUIRED   >

