Można używać nxml-mode do tworzenia schematów XSD. To odkrycie jest wynikiem szukania edytora/IDE ułatwiającego projektowanie Schemy. Oczywiście jest XMLSpy ale tylko dla MSW. Jest też jakiś moduł do netBeans, którego nie próbowałem... Niezbędny dla działania nxml-mode schemat do schemy w formacie RNG/RNC jest dostępny ze strony www.relaxng.org. W związku z tym odkryciem zmieniłem konfigurację emacsa:
(load "rng-auto.el") ;; http://www.emacswiki.org/emacs-en/NxmlMode (add-to-list 'auto-mode-alist (cons (concat "\\." (regexp-opt '("xml" "xsd" "rng" "xslt" "xsl" "svg" "rss") t) "\\'") 'nxml-mode))
Należy teraz ,,zarejestrować'' schemat do schemy
w pliku konfiguracyjnym
pakietu nxml-mode (schema/schemas.xml
):
<uri pattern="*.xsd" typeId="XML Schema"/> <namespace ns="http://www.w3.org/2001/XMLSchema" typeId="XML Schema"/> <typeId id="XML Schema" uri="xmlschema.rnc"/>
Oryginalny schemat powoduje błąd: regular expression too big in xmlschema.rnc.
Na tej
stronie jest to dokładnie opisane i jest udostępniony plik .diff
,
tyle że nie byłem
w stanie go zastosować uruchamiając patch
. Poprawiłem plik ręcznie.
Nie ma 100% gwarancji, że poprawka jest OK, ale dla kilku schematów
nxml-mode działał poprawnie, więc szanse są, że tak jest.
Poprawiony plik .rnc
jest tutaj
Teraz wszystkie pliki XML (w tym szablony XSLT oraz schematy XSD) mogę edytować w trybie nxml (dowód w postaci zrzutu ekranu obok).