source: spip-zone/_outils_/validerPlugins/plugin.dtd @ 44188

Last change on this file since 44188 was 44188, checked in by esj@…, 9 years ago

validerPlugins. Premier essai d'un script transformant un fichier plugin.xml valide en un fichier paquet.xml. La DTD de plugin.xml définie rétroactivement est encore améliorée pour assurer que le fichier est digne d'être converti. A l'inverse, la DTD proposée dans l'article ici est ici un peu dégradée pour s'assurer que le nouveau fichier paquet.xml respecte les mêmes contraintes de fond que l'original (c'est provisoire, le but est justement de mieux contrôler les erreurs). Sur les 863 fichiers plugin.xml testés, 567 respectent plugin.dtd et sont traduits en un paquet.xml respectant paquet.dtd, sauf 15 qui ont justement une erreur dans plugin.xml non reperée par plugin.dtd mais repérée par paquet.dtd. Hormis la cinquantaine de cas même pas conformes XML (cf. r44091), reste donc environ 250 qui sont invalides essentiellement parce que leur balise description etc contienne des balises HTML. Reste donc à s'occuper de leur migration dans les fichiers de langues.

File size: 3.1 KB
Line 
1<!-- DTD incomplete et retrospective pour plugin.xml -->
2
3<!--================ Entites XML std =========================-->
4
5<!ENTITY % HTMLlat1 PUBLIC
6   "-//W3C//ENTITIES Latin 1 for XHTML//EN"
7   "http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent">
8%HTMLlat1;
9
10<!ENTITY % HTMLsymbol PUBLIC
11   "-//W3C//ENTITIES Symbols for XHTML//EN"
12   "http://www.w3.org/TR/xhtml1/DTD/xhtml-symbol.ent">
13%HTMLsymbol;
14
15<!ENTITY % HTMLspecial PUBLIC
16   "-//W3C//ENTITIES Special for XHTML//EN"
17   "http://www.w3.org/TR/xhtml1/DTD/xhtml-special.ent">
18%HTMLspecial;
19
20<!ENTITY % MAIL "CDATA"> <!-- adresse mail -->
21<!ENTITY % NAME "CDATA"> <!-- identificateur (notamment nom de fonction) -->
22<!ENTITY % ITEM "CDATA"> <!-- chaine de langue -->
23<!ENTITY % NUMBER "CDATA"> <!-- nombre entier naturel -->
24<!ENTITY % PATH "CDATA"> <!-- chemin d'acces a un fichier ou repertoire -->
25<!ENTITY % URI "CDATA"> <!-- lien sur le Web -->
26<!ENTITY % VNUM "CDATA"> <!-- 3 entiers naturels separes par un point: x.y.z -->
27<!ENTITY % INTERVAL "CDATA"> <!-- 2 VNUM entre crochets ou parentheses -->
28
29<!ENTITY % STATUS "(experimental|dev|test|stable)">
30
31<!ENTITY % CATEGORY "(auteur|communication|date|divers|edition|maintenance|multimedia|navigation|outil|performance|squelette|statistique|theme)">
32
33<!ENTITY % CONTENT "(auteur|install|options|fonctions|licence|lien|bouton|chemin|lib|necessite|onglet|pipeline|utilise)*" >
34
35<!-- balise ne devant figurer qu'une seule fois sous la balise plugin -->
36
37<!ENTITY % CONTENT1 "(nom|categorie|version|version_base|meta|etat|description|prefix|icon)" >
38
39<!-- Ceci garantit PRESQUE que les balises ci-dessus ne sont la qu'une fois -->
40
41<!ELEMENT plugin %CONTENT1; %CONTENT1; %CONTENT1; %CONTENT1; %CONTENT1; %CONTENT1; %CONTENT1; %CONTENT1; %CONTENT1; %CONTENT; >
42<!ATTLIST plugin 
43          spip %INTERVAL; #IMPLIED
44>
45
46<!ELEMENT description (multi|#PCDATA)*>
47<!ELEMENT nom (multi|#PCDATA)*>
48<!ELEMENT version_base (#PCDATA)>
49<!ELEMENT categorie (#PCDATA)>
50<!ELEMENT version (#PCDATA)>
51<!ELEMENT prefix (#PCDATA)>
52<!ELEMENT meta (#PCDATA)>
53<!ELEMENT etat (#PCDATA)>
54<!ELEMENT icon (#PCDATA)>
55
56<!ELEMENT options (#PCDATA)>
57<!ELEMENT fonctions (#PCDATA)>
58<!ELEMENT install (#PCDATA)>
59
60<!ELEMENT licence (multi|#PCDATA)*>
61<!ELEMENT lien (multi|#PCDATA)*>
62
63<!ELEMENT auteur (multi|#PCDATA)*>
64<!ATTLIST auteur mail %MAIL; #IMPLIED>
65
66<!ELEMENT chemin EMPTY>
67<!ATTLIST chemin
68          dir %PATH; #REQUIRED
69          type %NAME; #IMPLIED
70>
71
72<!ELEMENT necessite EMPTY>
73<!ATTLIST necessite
74          id %NAME; #REQUIRED
75          version %VNUM; #REQUIRED
76          src %URI; #IMPLIED
77>
78
79<!ELEMENT utilise EMPTY>
80<!ATTLIST utilise
81          id %NAME; #REQUIRED
82          version %VNUM; #REQUIRED
83>
84
85<!ELEMENT pipeline (action|nom|inclure)*>
86
87<!ELEMENT bouton (url|args|icone|titre)*>
88<!ATTLIST bouton
89          id %NAME; #REQUIRED
90          parent %NAME; #REQUIRED
91>
92
93<!ELEMENT onglet (url|args|icone|titre)*>
94<!ATTLIST onglet
95          id %NAME; #REQUIRED
96          parent %NAME; #REQUIRED
97>
98
99<!ELEMENT action (#PCDATA)>
100<!ELEMENT inclure (#PCDATA)>
101<!ELEMENT parent (#PCDATA)>
102<!ELEMENT url (#PCDATA)>
103<!ELEMENT args (#PCDATA)>
104<!ELEMENT icone (#PCDATA)>
105<!ELEMENT titre (#PCDATA)>
106<!ELEMENT multi (#PCDATA)>
Note: See TracBrowser for help on using the repository browser.