    <?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 (requires?, runtime?, extension-point*, extension*)>
    <!ATTLIST fragment
     name                CDATA #REQUIRED
     id                  CDATA #REQUIRED
     version             CDATA #REQUIRED
     provider-name       CDATA #IMPLIED
     plugin-id           CDATA #REQUIRED
     plugin-version      CDATA #REQUIRED
     match               (perfect | equivalent | compatible | greaterOrEqual) "compatible"
    >

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

    <!ELEMENT runtime library+)>

    <!ELEMENT library (export*, packages?)>
    <!ATTLIST library
     name                CDATA #REQUIRED
     type                (code | resource) "code"
    >

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

    <!ELEMENT packages EMPTY>
    <!ATTLIST packages
     prefixes            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
    >