Конвертация Xsd в rnc (или rng) (командная строка unix)

Краткий поиск показывает, что все доступные инструменты (командная строка uUnix), которые конвертируют из xsd (XML-схема) в rng (RelaxNG) или rnc (компактный RelaxNG), имеют проблемы своего рода.

Во-первых, если я использую rngconv:

$ wget https://msv.dev.java.net/files/documents/61/31333/rngconv.20060319.zip
$ unzip rngconv.20060319.zip
$ cd rngconv-20060319/
$ java -jar rngconv.jar my.xsd  > my.rng

У него нет способа отменить нормализацию элементов, поэтому все они в конечном итоге становятся альтернативными начальными элементами (кажется, что это тоже немного глючит).

Trang является альтернативой, но он не поддерживает файлы xsd на входе только на выходе (почему?). Однако он поддерживает DTD. Сначала приходит на ум переход к DTD, но трудно найти и твердый xsd2dtd. Тот, что ниже:

 $ xsltproc http://crism.maden.org/consulting/pub/xsl/xsd2dtd.xsl in.xsd > out.dtd

Кажется, глючит.

Все это очень удивительно. За все эти годы использования XML (ab) не было достойных инструментов командной строки для этих тривиальных базовых задач? Люди используют только редакторы? Это работает? Я предпочитаю командную строку, особенно потому, что я хотел бы автоматизировать эти задачи.

Какие-нибудь поучительные комментарии по этому поводу?

Ответы на вопрос(5)

Ваш ответ на вопрос