Редактирование с учетом схемы в emacs на основе схемы W3C XML? (не RNG)

Я только что узнал, здесь, о nxml-mode, который, согласно README, является

основной режим для GNU Emacs для редактирования XML-документов. Он поддерживает редактирование хорошо сформированных XML-документов и также обеспечивает редактирование с учетом схемы XML-документов с использованием RELAX NG Компактный Синтаксис.

есть ли режим, который делает то же самое для схемы W3C XML?

Если я не могу найти такую вещь, то это nxml-mode полезно для меня в любом случае, предполагая, что я имею дело строго с XML-схемой W3C, а не с Relax-NG?

по теме: редактирование схемы в VIM

4 ответов


просто используйте конвертер XSD в RNG, например этой


Я попробовал это с довольно упрощенной схемой XSD-той, которая определяла 4 элемента различного типа. Используя эту схему с nxml-режимом, я должен был выполнить 3 преобразования XSL:

  • XsdToRNG.xsl-от googlecode как предложил Алекс Отт. Создает синтаксис RNG XML.
  • RNGToRncXml.xsl-от Пантор. Это работает на синтаксисе RNG XML и создает "промежуточное" представление схемы, которое не является ни одним из {XSD, RNG, RNC}
  • RNGToRncText.элементы также из Пантор. работает на промежуточном формате для производства RNC. (Компактный синтаксис RNG), чего и хочет nxml-mode.

[до этого я не понимал, что есть два вкуса RNG. ]

результатом является довольно компактный файл RNC, что даже понятно.

Я также пробовал то же самое с XSLT XSD и получил аналогичные положительные результаты: хороший .файл rnc для использования с nxml-режимом. Этот оказалось ненужным, потому что nxml-режим поставляется с RNC для XSLT. Но это придало мне уверенности, что все сложнее .Файлы XSD могут быть преобразованы .СРН.

после того как вы получите .RNC, вы можете использовать его для редактирования XML-документа. Откройте документ (возможно, новый пустой документ) и обязательно запустите nxml-режим, если это не будет сделано автоматически для вас. Затем свяжите схему с этим документом в режиме nxml, используя C-c C-s C-f. Это необходимо только при первом редактировании документа - после этого схема может быть автоматически связана с doc.

Как только схема связана с doc, вы получаете чувствительное к схеме завершение (aka intellisense) и проверку. nxml-режим магазинов .схемы rnc для XSLT, Docbook и, что забавно, синтаксис RNG Xml и другие.

требуется небольшая настройка, но она работает.


даже без схем это довольно полезно. Вы можете автоматически заполнять закрывающие теги, перемещаться по тегам и множеству других отличных колоколов и свистков. Все это говорит о том, что Алекс Отт прав на деньги.


используйте конвертер Sun RNG, чтобы получить XSD в RNG/XML, а затем Trang, чтобы получить RNG в компактный синтаксис RNG. Вы можете скачать Sun converter из msv.java.net.