niedziela, 19 lutego 2012

Konwersja DTD na RNC: trang i nXML

Jest coś takiego jak Katalog Polskiej Muzyki Akordeonowej (KPMA), który powstaje przy wykorzystaniu cutting edge technologii: jest redagowany jako plik XML w edytorze strukturalnym.

Na początku KPMA był plikiem TeXowym, później (2002 r.) został przerobiony na XML i odtąd był redagowany w Emacsie, w trybie psgml. Struktura dokumentu była/jest opisana za pomocą stosownego DTD, które psgml potrafi interpretować.

W tzw. międzyczasie tryb psgml stał się obsolete na rzecz nXML. Można wprawdzie dalej używać psgml (działa bez problemów) i być może dałoby się skonfigurować Emacsa, w taki sposób iż dokumenty KPMA byłby redagowane w psgml a inne dokumenty XML w trybie nXML, ale koniec końców zdecydowałem się na zmianę.

Aby zmienić DTD na RNC, wystarczy posłużyć się trangiem:


trang -I dtd -O rnc lkompc.dtd lkompc.rnc

Teraz należy dodać schemat do konfiguracji nXML. Wystarczy w tym celu wczytać plik Kompozycje.xml a następnie wybrać XML→Set Schema→File. Wybrać plik lkompc.rnc. W katalogu z dokumentem XML (tj. Kompozycje.xml w tym konkretnym przypadku) zostanie zapisany plik schemas.xml, zawierający:


<?xml version="1.0"?>
<locatingRules xmlns="http://thaiopensource.com/ns/locating-rules/1.0">
<uri resource="Kompozycje.xml" uri="lkompc.rnc"/>
</locatingRules>

Od tego momentu Kompozycje.xml będzie edytowany z nastawami schematu określonymi w lkompc.rnc.

Brak komentarzy:

Prześlij komentarz