source: spip-zone/_outils_/validerPlugins/paquet.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: 2.8 KB
Line 
1<!--================ Entites XML std =========================-->
2
3<!ENTITY % HTMLlat1 PUBLIC
4   "-//W3C//ENTITIES Latin 1 for XHTML//EN"
5   "http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent">
6%HTMLlat1;
7
8<!ENTITY % HTMLsymbol PUBLIC
9   "-//W3C//ENTITIES Symbols for XHTML//EN"
10   "http://www.w3.org/TR/xhtml1/DTD/xhtml-symbol.ent">
11%HTMLsymbol;
12
13<!ENTITY % HTMLspecial PUBLIC
14   "-//W3C//ENTITIES Special for XHTML//EN"
15   "http://www.w3.org/TR/xhtml1/DTD/xhtml-special.ent">
16%HTMLspecial;
17
18<!--================ DTD originale =========================-->
19
20<!ENTITY % MAIL "CDATA"> <!-- adresse mail -->
21<!ENTITY % NAME "CDATA"> <!-- identificateur (notamment nom de fonction) -->
22<!ENTITY % NUMBER "CDATA"> <!-- nombre entier naturel -->
23<!ENTITY % PATH "CDATA"> <!-- chemin d'acces a un fichier ou repertoire -->
24<!ENTITY % QUERY_STRING "CDATA"> <!-- couples x=y separes par esperluete -->
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 % ETAT "(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 "(bouton|chemin|copyright|necessite|lib|necessite|onglet|pipeline|utilise)*" >
34
35<!ELEMENT paquet (nom slogan licence? auteur* description %CONTENT; spip*) >
36<!ATTLIST paquet 
37          categorie %CATEGORY; #IMPLIED
38          compatible %INTERVAL; #IMPLIED
39          etat %ETAT; #REQUIRED
40          lien %URI;  #IMPLIED
41          logo %PATH; #IMPLIED
42          meta %NAME; #IMPLIED
43          prefix ID #REQUIRED
44          version %VNUM; #IMPLIED
45          version_base %NUMBER; #IMPLIED
46>
47
48<!ELEMENT nom (#PCDATA)>
49<!ELEMENT slogan (#PCDATA)>
50<!ELEMENT description (#PCDATA)>
51<!ELEMENT licence (#PCDATA)>
52
53<!ATTLIST licence
54          src %URI; #IMPLIED
55>
56
57<!ELEMENT spip  %CONTENT; >
58<!ATTLIST spip
59          compatible %INTERVAL; #REQUIRED
60>
61
62<!ELEMENT auteur (#PCDATA)>
63<!ATTLIST auteur 
64          lien %URI; #IMPLIED
65          mail %MAIL; #IMPLIED
66>
67
68<!ELEMENT chemin EMPTY>
69<!ATTLIST chemin
70          path %PATH; #REQUIRED
71          type %NAME; #IMPLIED
72>
73
74<!ELEMENT necessite EMPTY>
75<!ATTLIST necessite
76          nom %NAME; #REQUIRED
77          version %VNUM; #REQUIRED
78          lien %URI; #IMPLIED
79>
80
81<!ELEMENT utilise EMPTY>
82<!ATTLIST utilise
83          nom %NAME; #REQUIRED
84          version %VNUM; #REQUIRED
85          lien %URI; #IMPLIED
86>
87
88<!ELEMENT pipeline EMPTY>
89<!ATTLIST pipeline
90          nom %NAME; #REQUIRED
91          action %NAME; #IMPLIED
92          path %PATH; #IMPLIED
93>
94
95<!ELEMENT bouton EMPTY>
96<!ATTLIST bouton 
97          nom %NAME; #REQUIRED
98          parent %NAME; #REQUIRED
99          action %NAME;  #IMPLIED
100          args %QUERY_STRING; #IMPLIED
101          icone %PATH; #IMPLIED
102>
103
104<!ELEMENT onglet EMPTY>
105<!ATTLIST onglet 
106          nom %NAME; #REQUIRED
107          parent %NAME; #REQUIRED
108          action %NAME;  #IMPLIED
109          args %QUERY_STRING; #IMPLIED
110          icone %PATH; #IMPLIED
111>
Note: See TracBrowser for help on using the repository browser.