<!--
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 http://www.netbeans.org/cddl.html
or http://www.netbeans.org/cddl.txt.

When distributing Covered Code, include this CDDL Header Notice in each file
and include the License file at http://www.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 Workspace Properties 1.0//EN
-->

<!-- The root element for workspace properties. Consists of name, optional
    module information and workspace property sets for various types of user
    interface.
    Atribute "version" is optional versioning attribute, which in fact specifies
    version of this DTD. Attribute is used to perform simple versioning
    without the need to use time-consuming xml validation using this DTD.
-->
<!ELEMENT workspace (name, description?, module?, ui-type+) >
<!ATTLIST workspace
    version CDATA #IMPLIED
>

<!-- Element for user interface type, holds property set for workspace for
    specific user interface type. UI type is identified by its only attribute "type",
    Value "any" is special value which is reserved for default setting set which
    is used when property set for specific ui-type is not found. Thus, simplest variant is to
    define only one property set with type "any", which means that for all
    types of user interface workspace will have same properties. -->
<!ELEMENT ui-type (cascade?, active?, order?, mode?, toolbar?) >
<!ATTLIST ui-type
    type (sdi | mdi | any) #REQUIRED
>

<!-- Optional element for module information. Module information is used for
    automatic removal of workspace defined by module if module is unistalled.
    If you want your module's workspace to be unistalled automatically when
    your module is deinstalled, fill this element. When this element is missing,
    no automatic removal will be done.
 1) "name" code name of the module, can be either base code name or full code
    name with slash and release number. Examples for core module are: 
    "org.netbeans.core" or "org.netbeans.core/1"
 2) "spec" is specification version of the module which defines this xml description.
-->
<!ELEMENT module EMPTY >
<!ATTLIST module
    name CDATA #REQUIRED
    spec CDATA #IMPLIED
>

<!-- Element name has four attributes:
    1) "unique" represents UID of the workspace
    2) "display" represents optional display name of the workspace.
       If display name is not specified, unique name is used as display name
       too. If "from-bundle" flag is enabled, this attribute must contain
       bundle key where to find localized display name.
    3) "from-bundle" flag to control if display name is taken from bundle or not
    4) "bundle" identifies bundle from which localized display name will be read.
       Format is the same like for fully qualified classes. For example, 
       localization bundle named "Bundle" in package "my.package" can be pointed
       to by value "my.package.Bundle".
       Attributes "bundle" and "display" together give fully qualified bundle
       pointer. This attribute is optional, has no meaning if "from-bundle" is false
-->
<!ELEMENT name      EMPTY >
<!ATTLIST name
    unique CDATA #REQUIRED
    display CDATA #IMPLIED
    from-bundle (true | false) #IMPLIED
    bundle CDATA #IMPLIED
>

<!-- Optional element description has two attributes
    1) "display" represents bundle key where to find localized 
        workspace description. (example value: "CTL_MyWorkspaceDescription")
    2) "bundle" identifies bundle from which localized description will be read.
       Format is the same like for fully qualified classes. For example, 
       localization bundle named "Bundle" in package "my.package" can be pointed
       to by value "my.package.Bundle".
       Attributes "bundle" and "display" together give fully qualified bundle
       pointer.
-->
<!ELEMENT description EMPTY >
<!ATTLIST description
    display CDATA #REQUIRED
    bundle CDATA #REQUIRED
>

<!-- Cascading value for placing new frames. 
     "origin-x" x coordinate where cascading starts
     "origin-y" y coordinate where cascading starts
     "step-x" x step added to coordinates for new frame
     "step-y" y step added to coordinates for new frame
     "count" number of steps already performed
     "current-x" x coordinate of current frame
     "current-y" y coordinate of current frame
-->
<!ELEMENT cascade    EMPTY >
<!ATTLIST cascade
    origin-x CDATA #REQUIRED
    origin-y CDATA #REQUIRED
    step-x CDATA #REQUIRED
    step-y CDATA #REQUIRED
    count CDATA #REQUIRED
    current-x CDATA #REQUIRED
    current-y CDATA #REQUIRED
>

<!-- Active mode (frame) in workspace.
     "mode" ID of active mode in workspace
-->
<!ELEMENT active    EMPTY >
<!ATTLIST active
    mode CDATA #REQUIRED
>

<!-- z-order of frames in workspace.
     "z-order" gives Z-order of frames in workspace given by comma separated list of mode's IDs
-->
<!ELEMENT mode   EMPTY >
<!ATTLIST mode
    z-order CDATA #REQUIRED
>

<!-- Toolbar attributes.
     "configuration" name of toolbar configuration -->
<!ELEMENT toolbar   EMPTY >
<!ATTLIST toolbar
    configuration CDATA #IMPLIED
>

