J'ai essayé ceci avec un schéma XSD assez simpliste - un qui a défini 4 éléments de type variable. L'utilisation de ce schéma avec nxml mode m'a obligé à courir à travers 3 conversions de xsl:
- XsdToRNG.xsl - de googlecode comme suggéré par Alex Ott. Produit la syntaxe XML RNG.
- RNGToRncXml.xsl - à partir de Pantor. Cela fonctionne sur RNG XML Syntax et produit une représentation "intermédiaire" du schéma qui n'est aucun de {XSD, RNG, RNC}
- RNGToRncText.xsl - également de Pantor. fonctionne sur le format intermédiaire pour produire RNC. (RNG Compact Syntax), ce que veut nxml-mode.
[Avant cela, je n'avais pas réalisé qu'il y avait deux types de RNG. ]
Le résultat est un fichier RNC relativement compact, ce qui est même compréhensible.
J'ai aussi essayé la même chose avec un XSLT XSD, et j'ai obtenu des résultats similaires: un bon fichier .rnc à utiliser avec le mode nxml. Cela s'est avéré inutile, car nxml-mode est livré avec un RNC pour XSLT. Mais cela m'a donné confiance que des fichiers .XSD plus complexes pourraient être convertis en .RNC. Après avoir obtenu le .RNC, vous pouvez l'utiliser pour guider l'édition d'un document XML. Ouvrez le document (peut-être un nouveau document vide) et assurez-vous d'exécuter le mode nxml si ce n'est pas fait automatiquement pour vous. Associez ensuite le schéma à ce document en mode nxml, en utilisant C-c C-s C-f. Cela n'est nécessaire que la première fois que vous éditez un document. Le schéma peut ensuite être associé automatiquement au document.
Une fois qu'un schéma est associé à un document, vous obtenez une complétion sensible au schéma (également appelée intellisense) et une validation. nxml-mode magasins avec des schémas .rnc pour XSLT, Docbook, et, de façon amusante, RNG Xml Syntax, et d'autres.
Cela demande un peu de configuration, mais cela fonctionne.
Je ne pense pas que cela fonctionne, car il produit Relax-NG, pas Relax-NG Compact Syntax. Peut-être qu'il y a une autre conversion à traverser. – Cheeso
Je pense que cela pourrait fonctionner pour la 2ème conversion: http://www.pantor.com/download.html Il s'agit d'une feuille de conversion RNG-à-RNC. En fait, le RNG-à-RNC est également une conversion en deux étapes. !! Obtenir jolie fractale. – Cheeso
Ok, cela a bien fonctionné! – Cheeso