niedziela, 26 października 2008

Projektowanie schematów XSD w edytorze Emacs

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).

Brak komentarzy:

Prześlij komentarz