<?xml encoding="US-ASCII"?>

<!ELEMENT plugin (requires?, runtime?, extension-point*, extension*)>
<!ATTLIST plugin
  name                CDATA #REQUIRED
  id                  CDATA #REQUIRED
  version             CDATA #REQUIRED
  provider-name       CDATA #IMPLIED
  class               CDATA #IMPLIED
>
<!ELEMENT fragment (runtime?, extension-point*, extension*)>
<!ATTLIST plugin
  name                CDATA #REQUIRED
  id                  CDATA #REQUIRED
  version             CDATA #REQUIRED
  plugin-id           CDATA #REQUIRED
  plugin-version      CDATA #REQUIRED
  provider-name       CDATA #IMPLIED
  class               CDATA #IMPLIED
>

<!ELEMENT requires (import+)>
<!ELEMENT import EMPTY>
<!ATTLIST import
 plugin               CDATA #REQUIRED
 version              CDATA #IMPLIED
 optional             (true | false) "false"
 match                (exact | compatible) "compatible"
 export               (true | false) "false"
>

<!ELEMENT runtime library+)>

<!ELEMENT library (export*)>
<!ELEMENT export EMPTY>
<!ATTLIST library
  name                CDATA #REQUIRED
>

<!ELEMENT export EMPTY>
<!ATTLIST export
 name                 CDATA #REQUIRED
>

<!ELEMENT extension-point EMPTY>
<!ATTLIST extension-point
  name                CDATA #REQUIRED
  id                  CDATA #REQUIRED
  schema              CDATA #IMPLIED
>

<!ELEMENT extension ANY>
<!ATTLIST extension
  point               CDATA #REQUIRED
  name                CDATA #IMPLIED
  id                  CDATA #IMPLIED
>