<!ELEMENT Plugin (Name, Version, PluginLib, Source, Kernel?, Classpath?, RequiredPlugins?, Description)>
<!ATTLIST Plugin pluginClass ID #REQUIRED>

<!ELEMENT Name (#PCDATA)>

<!ELEMENT Version EMPTY>
<!ATTLIST Version major CDATA #REQUIRED
                  minor CDATA #REQUIRED
                  build CDATA #IMPLIED>

<!ELEMENT PluginLib (#PCDATA)>

<!ELEMENT Source (#PCDATA)>

<!ELEMENT Kernel EMPTY>
<!ATTLIST Kernel major CDATA #REQUIRED
                 minor CDATA #REQUIRED
                 revision CDATA #REQUIRED>

<!ELEMENT Classpath (Path*)>

<!ELEMENT Path (#PCDATA)>

<!ELEMENT RequiredPlugins (PluginId*)>

<!ELEMENT PluginId EMPTY>
<!ATTLIST PluginId pluginClass CDATA #REQUIRED
                   major CDATA #REQUIRED
                   minor CDATA #REQUIRED>

<!ELEMENT Description (ShortDescription, DetailedDescription, Help?, Vendor?, Contact?)>

<!ELEMENT ShortDescription (#PCDATA)>

<!ELEMENT DetailedDescription (#PCDATA)>

<!ELEMENT Help EMPTY>
<!ATTLIST Help helpURL CDATA #REQUIRED>

<!ELEMENT Vendor (#PCDATA)>

<!ELEMENT Contact (#PCDATA)>
