Schema-sensitive Bearbeitung in Emacs, basierend auf W3C XML Schema? (nicht RNG)

8

Ich habe gerade hier gelernt, über nxml-mode , was laut README ein

ist
  

Hauptmodus für GNU Emacs für   Bearbeiten von XML-Dokumenten. Es unterstützt   Bearbeiten von wohlgeformten XML-Dokumenten und   bietet auch eine schemafreundliche Bearbeitung   von XML-Dokumenten mit RELAX NG   Kompakte Syntax.

Gibt es einen Modus, der dasselbe für W3C XML Schema tut?

Wenn ich sowas nicht finden kann, dann ist der nxml-Modus für mich sowieso nützlich, vorausgesetzt, ich gehe streng mit W3C XML Schema und nicht mit Relax-NG um?

Verwandte Themen: Schemabewusste Bearbeitung in VIM

    
Cheeso 27.05.2009, 18:38
quelle

4 Antworten

7

Verwenden Sie einfach den XSD-RNG-Konverter, wie dies

    
Alex Ott 28.05.2009, 05:43
quelle
7

Ich habe dies mit einem ziemlich vereinfachten XSD-Schema versucht - eines, das vier Elemente unterschiedlichen Typs definiert hat. Bei Verwendung dieses Schemas mit nxml-mode musste ich 3 XSL-Konvertierungen durchführen:

  • XsdToRNG.xsl - von googlecode , wie von Alex Ott vorgeschlagen. Erzeugt RNG-XML-Syntax.
  • RNGToRncXml.xsl - von Pantor . Dies funktioniert mit der RNG-XML-Syntax und erzeugt eine "Zwischen" -Darstellung des Schemas, die keine von {XSD, RNG, RNC}
  • ist
  • RNGToRncText.xsl - auch von Pantor. arbeitet auf dem Zwischenformat, um RNC zu erzeugen. (RNG Kompaktsyntax), was nxml-mode will.

[Vorher war mir nicht klar, dass es zwei Sorten von RNG gibt. ]

Das Ergebnis ist eine ziemlich kompakte RNC-Datei, die sogar verständlich ist.

Ich habe das gleiche auch mit einem XSLT XSD versucht und ähnliche, positive Ergebnisse erhalten: eine gute .nc Datei, die mit dem nxml-Modus verwendet werden kann. Dies stellte sich als unnötig heraus, da nxml-mode mit einem RNC für XSLT ausgeliefert wird. Aber es gab mir die Sicherheit, dass komplexere XSD-Dateien in .RNC konvertiert werden konnten.

Nachdem Sie den .RNC erhalten haben, können Sie ihn zum Editieren eines XML-Dokuments verwenden. Öffnen Sie das Dokument (möglicherweise ein neues, leeres Dokument) und stellen Sie sicher, dass der nxml-Modus ausgeführt wird, wenn dies nicht automatisch für Sie erledigt wird. Ordnen Sie dann das Schema diesem Dokument im nxml-Modus unter Verwendung von C-c C-s C-f zu. Dies ist nur beim erstmaligen Bearbeiten eines Dokuments erforderlich - danach kann das Schema dem Dokument automatisch zugeordnet werden.

Sobald ein Schema mit einem Dokument verknüpft ist, erhalten Sie eine schemabefühlende Vervollständigung (aka Intellisense) und Validierung. NXML-Mode-Shops mit. RNC-Schemas für XSLT, Docbook, und amüsant, RNG Xml Syntax und andere.

Es braucht ein wenig Aufbau, aber es funktioniert.

    
Cheeso 03.06.2009 14:37
quelle
1

Auch ohne Schemas ist es sehr nützlich. Sie können abschließende Tags automatisch vervollständigen, nach Tag und vielen anderen tollen Funktionen navigieren. Alles in allem, Alex Ott hat Recht auf das Geld.

    
Jonathan Arkell 28.05.2009 21:54
quelle
0

Verwenden Sie den Sun RNG Converter, um das XSD in RNG / XML zu bekommen, und dann Trang, um den RNG in RNG compact syntax zu bekommen. Sie können den Sun-Konverter von msv.java.net herunterladen.

    
John Cowan 18.02.2011 23:43
quelle

Tags und Links