2009-05-27 19 views
8

acabo de aprender, here, sobre nxml-mode, que, de acuerdo con el README, es un modo mayorEdición sensible a esquemas en emacs, basada en W3C XML Schema? (No RNG)

para GNU Emacs para edición de documentos XML. Es compatible con editando documentos XML bien formados y también proporciona edición sensible al esquema de documentos XML usando RELAX NG Sintaxis compacta.

¿Hay algún modo que haga lo mismo con el esquema W3C XML?

Si no puedo encontrar tal cosa, ¿me sirve el modo nxml de todos modos, suponiendo que trato estrictamente con W3C XML Schema y no con Relax-NG?

relacionadas: Schema-aware editing in VIM

Respuesta

7

Sólo tiene que utilizar XSD al convertidor de números aleatorios, como this

+0

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

+0

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

+1

Ok, ¡esto realmente funcionó bien! – Cheeso

1

Incluso sin esquemas que es bastante útil. Puedes autocompletar las etiquetas de cierre, navegar por etiqueta y muchas otras magníficas campanas y silbatos. Dicho todo esto, Alex Ott tiene razón con el dinero.

7

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.

0

Utilice el Convertidor Sun RNG para obtener el XSD en RNG/XML, y luego Trang para obtener el RNG en sintaxis RNG compacta. Puede descargar el convertidor de Sun desde msv.java.net.

Cuestiones relacionadas