<?xml version="1.0" encoding="ISO-8859-1"?>
<!ELEMENT idea-plugin (name | id? | description | version | vendor | change-notes? | idea-version | category | resource-bundle | depends* | extensions* | application-components? | project-components? | module-components? | actions? | helpset)+>
<!ATTLIST idea-plugin
    url CDATA #IMPLIED
    version CDATA #IMPLIED>
<!--
    <name> is a unique Plugin identifier
-->
<!ELEMENT name (#PCDATA)>
<!--
    <id> is a unique Plugin identifier, if not specified, id is considered equal to "name"
-->
<!ELEMENT id (#PCDATA)>
<!--
    <description> is a short description of plugin and it functionality
-->
<!ELEMENT description (#PCDATA)>
<!--
    <version> specified current plugin version.
-->
<!ELEMENT version (#PCDATA)>

<!--
    <vendor> tag now could have 'url', 'email' and 'logo' attributes;
    'logo' should contain path to a 16 x 16 icon that will appear near the plugin name in the IDEA Welcome Screen 
-->
<!ELEMENT vendor (#PCDATA)>
<!ATTLIST vendor
    url CDATA #IMPLIED
    email CDATA #IMPLIED
    logo CDATA #IMPLIED>

<!--
    Plugin category (displayed in plugin manager) e.g. inspection, Misc, Fun Stuff, etc
-->
<!ELEMENT category (#PCDATA)>

<!--
    Fully qualified name of bundle used by this plugin e.g. com.mycompany.MyBundle
-->
<!ELEMENT resource-bundle (#PCDATA)>

<!--
    Possible extensions element
-->
<!ELEMENT errorHandler (#PCDATA)>
<!ATTLIST errorHandler implementation CDATA #REQUIRED>

<!--
    Possible extensions element
-->
<!ELEMENT indexPatternProvider (#PCDATA)>
<!ATTLIST indexPatternProvider implementation CDATA #REQUIRED>

<!--
    <idea-version> tag specified version of IDEA which
    plugin could work with
-->
<!ELEMENT idea-version EMPTY>
<!-- min / max attributes are left for compatibility -->

<!ATTLIST idea-version
    since-build CDATA #REQUIRED
    until-build CDATA #IMPLIED
    min CDATA #IMPLIED
    max CDATA #IMPLIED
    >

<!-- change notes of current version -->
<!ELEMENT change-notes (#PCDATA)>

<!ELEMENT depends (#PCDATA)>
<!ATTLIST depends
   optional (true | false) #IMPLIED
   config-file CDATA #IMPLIED
   >

<!-- extensions. Most relaxed constraints since content of the particular extension cannot be expressed with DTD
  defaultExtensionNs - namespace prepended to referenced extension name to get qname,
  xmlns same as previous, left for compatibility 
 -->
<!ELEMENT extensions ANY>
<!ATTLIST extensions
   defaultExtensionNs CDATA #REQUIRED
   xmlns CDATA #IMPLIED
   >

<!ELEMENT application-components (component*)>
<!ELEMENT project-components (component*)>
<!ELEMENT module-components (component*)>
<!ELEMENT component (implementation-class | interface-class? | option*)+>
<!ELEMENT actions (action+ | group+)*>
<!ELEMENT implementation-class (#PCDATA)>
<!ELEMENT interface-class (#PCDATA)>
<!ELEMENT option EMPTY>
<!ATTLIST option
    name CDATA #REQUIRED
    value CDATA #REQUIRED>
<!ELEMENT action (keyboard-shortcut? | mouse-shortcut? | shortcut? | add-to-group?)+>
<!--
    <action> tag has required 'id' attribute
    which mean an action ID. Some existing plugins
    have an uncompatible XML ID for this attribute.
    :((
 -->
<!ATTLIST action
    description CDATA #IMPLIED
    class CDATA #REQUIRED
    text CDATA #REQUIRED
    id CDATA #REQUIRED
    icon CDATA #IMPLIED
    popup (true | false) #IMPLIED>
<!ELEMENT keyboard-shortcut EMPTY>
<!ATTLIST keyboard-shortcut
    first-keystroke CDATA #REQUIRED
    second-keystroke CDATA #IMPLIED
    keymap CDATA #REQUIRED
    use-shortcut-of CDATA #IMPLIED>
<!ELEMENT mouse-shortcut EMPTY>
<!ATTLIST mouse-shortcut
    keystroke CDATA #REQUIRED
    keymap CDATA #REQUIRED>
<!ELEMENT shortcut EMPTY>
<!ATTLIST shortcut
    first-keystroke CDATA #REQUIRED
    second-keystroke CDATA #IMPLIED
    keymap CDATA #REQUIRED>
<!ELEMENT group (reference* | separator* | action* | add-to-group*)+>
<!ATTLIST group
    id ID #IMPLIED
    class CDATA #IMPLIED
    text CDATA #IMPLIED
    description CDATA #IMPLIED
    popup (true | false) #IMPLIED
    icon CDATA #IMPLIED>
<!ELEMENT reference EMPTY>
<!ATTLIST reference
    ref CDATA #REQUIRED>
<!ELEMENT add-to-group EMPTY>
<!--
    <add-to-group> tag use an 'id' attribute
    to specify which group will be used.
    It should be very useful if
    we'll have a set of existing group IDs
-->
<!ATTLIST add-to-group
    anchor (first | last | before | after) #REQUIRED
    group-id CDATA #REQUIRED
    relative-to-action CDATA #IMPLIED>
<!ELEMENT separator EMPTY>

<!ELEMENT abbreviation EMPTY>

<!-- helpset is a name of file from PLUGIN/help/ folder
  Example: <helpset file="myhelp.jar" path="/Help.hs"/>
 -->
<!ELEMENT helpset EMPTY>
<!ATTLIST helpset
  file CDATA #REQUIRED
  path CDATA #REQUIRED>