<!-- DTD incomplete et retrospective pour plugin.xml -->

<!--================ Entites XML std =========================-->

<!ENTITY % HTMLlat1 SYSTEM
   "-//W3C//ENTITIES Latin 1 for XHTML//EN"
   "xhtml-lat1.ent">
%HTMLlat1;

<!ENTITY % HTMLsymbol SYSTEM
   "-//W3C//ENTITIES Symbols for XHTML//EN"
   "xhtml-symbol.ent">
%HTMLsymbol;

<!ENTITY % HTMLspecial SYSTEM
   "-//W3C//ENTITIES Special for XHTML//EN"
   "xhtml-special.ent">
%HTMLspecial;

<!--================ DTD originale =========================-->

<!ENTITY % LANG "CDATA"> <!-- nom de langue -->
<!ENTITY % MAIL "CDATA"> <!-- adresse mail -->
<!ENTITY % NAME "CDATA"> <!-- identificateur (notamment nom de fonction) -->
<!ENTITY % NUMBER "CDATA"> <!-- nombre entier naturel -->
<!ENTITY % PATH "CDATA"> <!-- chemin d'acces a un fichier ou repertoire -->
<!ENTITY % URI "CDATA"> <!-- lien sur le Web -->
<!ENTITY % VNUM "CDATA"> <!-- 3 entiers naturels separes par un point: x.y.z -->
<!ENTITY % INTERVAL "CDATA"> <!-- 2 VNUM entre crochets ou parentheses -->

<!ENTITY % STATUS "(experimental|dev|test|stable)">

<!ENTITY % CATEGORY "(auteur|communication|date|divers|edition|maintenance|multimedia|navigation|outil|performance|squelette|statistique|theme)">

<!ENTITY % CONTENT "auteur|install|options|fonctions|licence|lien|bouton|chemin|necessite|onglet|pipeline|procure|utilise|traduire" >

<!-- balise ne devant figurer qu'une seule fois sous la balise plugin -->

<!ENTITY % CONTENT1 "nom|categorie|version|version_base|meta|etat|slogan|description|prefix|icon" >

<!-- Pour que les CONTENT1 ne figurent qu'une fois
 il faudrait une ecriture trop complexe. Tant pis -->

<!ELEMENT plugin (%CONTENT1;|%CONTENT;)* >
<!ATTLIST plugin 
          spip %INTERVAL; #IMPLIED
>

<!ELEMENT slogan (multi|#PCDATA)*>
<!ELEMENT description (multi|#PCDATA)*>
<!ELEMENT nom (multi|#PCDATA)*>
<!ELEMENT version_base (#PCDATA)>
<!ELEMENT categorie (#PCDATA)>
<!ELEMENT version (#PCDATA)>
<!ELEMENT prefix (#PCDATA)>
<!ELEMENT meta (#PCDATA)>
<!ELEMENT etat (#PCDATA)>
<!ELEMENT icon (#PCDATA)>

<!ELEMENT options (#PCDATA)>
<!ELEMENT fonctions (#PCDATA)>
<!ELEMENT install (#PCDATA)>

<!ELEMENT licence (multi|#PCDATA)*>
<!ELEMENT lien (multi|#PCDATA)*>

<!ELEMENT auteur (multi|#PCDATA)*>
<!ATTLIST auteur mail %MAIL; #IMPLIED>

<!ELEMENT chemin EMPTY>
<!ATTLIST chemin
          dir %PATH; #REQUIRED
          type %NAME; #IMPLIED
>

<!ELEMENT necessite EMPTY>
<!ATTLIST necessite
          id %NAME; #REQUIRED
          version %INTERVAL; #IMPLIED
          src %URI; #IMPLIED
>

<!ELEMENT utilise EMPTY>
<!ATTLIST utilise
          id %NAME; #REQUIRED
          version %INTERVAL; #IMPLIED
>

<!ELEMENT pipeline (action|nom|inclure)*>

<!ELEMENT procure EMPTY>
<!ATTLIST procure
          id %NAME; #REQUIRED
          version %VNUM; #IMPLIED
>

<!ELEMENT bouton (url|args|icone|titre)*>
<!ATTLIST bouton
          id %NAME; #REQUIRED
          parent %NAME; #IMPLIED
          position %NUMBER; #IMPLIED
>

<!ELEMENT onglet (url|args|icone|titre)*>
<!ATTLIST onglet
          id %NAME; #REQUIRED
          parent %NAME; #IMPLIED
          position %NUMBER; #IMPLIED
>

<!ELEMENT traduire EMPTY>
<!ATTLIST traduire
          module %NAME; #REQUIRED
          reference %LANG; #REQUIRED
          gestionnaire %NAME; #IMPLIED
>

<!ELEMENT action (#PCDATA)>
<!ELEMENT inclure (#PCDATA)>
<!ELEMENT parent (#PCDATA)>
<!ELEMENT url (#PCDATA)>
<!ELEMENT args (#PCDATA)>
<!ELEMENT icone (#PCDATA)>
<!ELEMENT titre (#PCDATA)>
<!ELEMENT multi (#PCDATA)>
