web-dev-qa-db-fra.com

Validateur XSLT officiel?

Existe-t-il un validateur XSLT officiel, comme http://validator.w3.org/ pour HTML et XHTML?

Je sais http://validator.w3.org/ peut également être utilisé pour valider des documents XML et XSL. Mais ils sont validés en tant que structures XML.

Par exemple, en XHTML valide, <span><div>...</div></span> n'est pas valide, car les éléments de bloc ne doivent pas apparaître à l'intérieur des éléments en ligne.

Existe-t-il donc un moyen pratique de valider directement le document XSL?

(Je suppose que nous pouvons combiner XML et XSL, sortir le XHTML, puis le valider. Mais ce n'est pas directement et pas pratique.)

Merci!

15
midnite

Je suppose qu'en validant les feuilles de style XSLT, vous entendez vérifier si les éléments, les attributs, etc. dans un document XML déjà bien formé (qui semble être du code XSLT) respectent la spécification XSLT W3C.

Tout d'abord, notez qu'il existe une différence entre la bonne forme et la validité d'un document XML. Il est bien formé si les éléments contenus sont correctement imbriqués, s'il n'y a qu'un seul élément racine et ainsi de suite (cela est défini par la spécification XML). Voir aussi: Y a-t-il une différence entre 'xml valide' et 'xml bien formé'? .

La validité d'un document XML ne peut être vérifiée qu'avec un schéma XML (ou DTD, ou RelaxNG ...). Un schéma est un ensemble de règles définissant, par exemple, quels éléments et attributs sont autorisés dans quelle séquence.

Maintenant, pour répondre à votre question: il n'y a pas un tel service du W3C, cependant, il y a un schéma disponible, voir par ex. http://www.w3.org/2007/schema-for-xslt20.xsd pour un schéma qui incorpore toutes les structures de "standard" XSLT 2.0.

Vous pouvez valider votre code XSLT par rapport à ce schéma. Néanmoins, il est plus judicieux d'exécuter simplement votre code avec un processeur XSLT et de rechercher les avertissements et les erreurs qu'il génère.


En outre, sachez que la validité du code XSLT et la validité du XHTML qu'il génère ne sont pas les mêmes. Même si votre XSLT est parfaitement valide par rapport à la spécification XSLT, cela ne signifie pas que le XHTML résultant est raisonnable.

11
Mathias Müller

Dans le cas général, vous ne pouvez pas prendre une feuille de style XSLT arbitraire et prouver statiquement qu'elle générera un XHTML valide. Vous pouvez cependant détecter un certain nombre de cas où il ne le sera pas, à condition que la feuille de style soit écrite pour tirer parti de la connaissance du schéma. Pour cela, vous avez besoin d'un processeur XSLT sensible au schéma qui effectue une vérification statique (par exemple Saxon-EE), et vous avez besoin de la feuille de style pour (a) importer le schéma à l'aide de xslt: import-schema et (b) pour appeler la validation sur le éléments de résultat utilisant [xsl:] validation = "strict". Cela détectera certaines erreurs de validité dans la sortie de votre feuille de style de façon statique (lors de la compilation de la feuille de style) et le reste dynamiquement (lors de son exécution).

2
Michael Kay

Il existe de nombreux outils d'édition XML (et probablement aussi quelques outils HTML) qui connaissent suffisamment la structure de (X) HTML pour mettre en évidence les erreurs. Visual Studio, par exemple, peut valider N'IMPORTE QUEL document XML à l'aide du schéma, y ​​compris XHTML ou XSL. Que le div soit autorisé ou non à l'intérieur d'une plage est défini dans le schéma XHTML.

0
Flynn1179