Intenté esto con un esquema XSD bastante simple: uno que definía 4 elementos de tipo variable. El uso de este esquema con nxml modo me obligó a correr a través de 3 conversiones XSL:
- XsdToRNG.xsl - desde googlecode según lo sugerido por Alex Ott. Produce la sintaxis RNG XML.
- RNGToRncXml.xsl - de Pantor. Esto opera en RNG XML Syntax y produce una representación "intermedia" del esquema que no es {XSD, RNG, RNC}
- RNGToRncText.xsl - también de Pantor. opera en el formato intermedio para producir RNC. (RNG Compact Syntax), que es lo que quiere el modo nxml.
[Antes de esto no me di cuenta de que hay dos sabores de RNG. ]
El resultado es un archivo RNC bastante compacto, que es incluso comprensible.
También probé lo mismo con un XSLT XSD, y obtuve resultados similares y positivos: un buen archivo .rnc para usar con el modo nxml. Esto resultó ser innecesario, porque nxml-mode se envía con un RNC para XSLT. Pero me dio la confianza de que los archivos .XSD más complejos podrían convertirse a .RNC.
Después de obtener el .RNC, puede usarlo para guiar la edición de un documento XML. Abra el documento (tal vez un documento nuevo y vacío) y asegúrese de ejecutar nxml-mode si no lo hace automáticamente. A continuación, asocie el esquema a ese documento en nxml-mode, utilizando C-c C-s C-f. Esto es necesario solo la primera vez que se edita un documento; posteriormente, el esquema puede asociarse al documento automágicamente.
Una vez que un esquema está asociado a un documento, obtiene la finalización del esquema (también conocido como intellisense) y la validación. nxml-mode tiendas con esquemas .rnc para XSLT, Docbook y, curiosamente, RNG Xml Syntax, y otros.
Requiere un poco de configuración, pero funciona.
No creo que esto funcione, porque produce Relax-NG, no Relax-NG Compact Sintaxis. Tal vez hay otra conversión que tengo que pasar. – Cheeso
Creo que esto podría funcionar para la segunda conversión: http://www.pantor.com/download.html Es una hoja de conversión de RNG a RNC. En realidad, el RNG-a-RNC también es una conversión de 2 etapas. !! Obteniendo bastante fractal. – Cheeso
Ok, ¡esto realmente funcionó bien! – Cheeso