Hello les people,

Dans ce lien : Processing DocBook 5 (en)

On peut lire
Le lien précédent a écrit :
Many people use xmllint from the libxml2 toolkit to validate their DocBook 4 documents. Although xmllint has a --relaxng option to validate against a RelaxNG schema (XML syntax only), it does not process Schematron rules. So you will not be able to fully validate a DocBook 5 document with xmllint currently.


Mais XMLLint supporte parfaitement les DTDs il me semble. Ce n'est pas OK de valider des documents DocBook avec une DTD plutôt qu'un schéma RelaxNG ?

En plus je préfère les DTD, parce que tout nigaud que je suis, je ne sais pas faire une référence à un schéma RelaxNG depuis un fichier XML. En tous les cas, rien ne fonctionne avec XMLLint.

Valider avec une DTD et valider avec un schéma XML, ce n’est pas équivalent ? Je croyais que DocBook pouvait s’exprimer entièrement dans une DTD.

-- EDIT -- Il existe plusieurs versions de DocBook. Je parle de la version 5. Sinon évidement, vu l’ancienneté de DocBook, il est évident qu’il n’a nécessairement put être défini qu’avec une DTD dans la passé antérieur à XML et Cie. -- FIN EDIT --
Modifié par hibou57 (15 Oct 2011 - 09:50)
En marge, mais lié à cette question, les utilisateurs d’Ubuntu ou Debian peuvent voir ce sujet sujet d’un autre forum, si vous ne parvenez pas à utiliser DocBook 5, alors qu’il est installé. Il semble que DocBook 5 ne soit accessible via les catalogues, ce qui me semble être une erreur, mais qui peut se corriger en créant un catalogue personnel.

Voir : DocBook, XMLLint et catalogues XML (forum.ubuntu-fr)
hibou57 a écrit :
En plus je préfère les DTD, parce que tout nigaud que je suis, je ne sais pas faire une référence à un schéma RelaxNG depuis un fichier XML.

C’était normal que je ne sache pas, parce que c’est justement impossible. Cette option a été délibérément exclue des spécifications de RelaxNG, «pour raisons de sécurité», les modèles pouvant être externes. Si on veut associer un modèle RelaxNG à un document XML, on a pas d’autre choix que de la faire au moment de la validation, en passant l’option au validateur, et si on veut que cette association soit automatique, alors il faut le faire d’une manière dépendante de l’environnement. Seul les modèles sous forme de DTD et Schema, peuvent être utilisé dans une déclaration de modèle de document. Pour Schematron, je ne sais pas encore, je n’ai pas assez cherché. De toute manière ce dernier s’utilise rarement pour définir un modèle de document, il s’utilise plutôt pour compléter la description d’un modèle de document.
Modifié par hibou57 (27 Apr 2012 - 18:07)
Que l’on puisse attacher un Schema XSD directement à un fichier XML, ne change de toutes manières rien à sa validation avec XMLLint, qui s’en moque et ignore cette indication. Il ne reconnait que les déclarations DOCTYPE pour ça.

Bref, si vous vous-demandez comment on peut valider selon un XSD avec XMLLint, sans passer l’adresse du XSD (qui change d’un XML à l’autre) à la ligne de commande de XMLLint, n’insistez pas, ce n’est pas possible.

Quelques personnes (dont moi), ce sont posé la question sur des forums, mais à bien lire la page man de XMLLint, on comprend, si on est pas trop obtus, que ce n’est pas possible.

En fait, j’ai l’impression que les DTD restent quand-même ce qu’il y a de plus courant et de mieux supporté, malgré que les Schema et RelaxNG ne datent pas d’hier et ont quelques avantages (dont celui d’être plus précis).

Allez, quand c’est suffisant, mieux vaut les DTD, le bon vieux truc.
Modifié par hibou57 (27 Apr 2012 - 18:07)
Portabilité à vérifier. Je viens de voir dans la documentation de XMLMind Editor, comment cet éditeur reconnait l’association d’un XML avec un modèle RelaxNG, avec une instruction de traitement. Exemple issu de la documentation :

<?xml-model href="name.rnc" type="application/relax-ng-compact-syntax"?>