Разбор DTD в Java - PullRequest
       11

Разбор DTD в Java

2 голосов
/ 06 марта 2012

У меня есть заданное DTD, т.е.

<!ELEMENT dblp (article|inproceedings|proceedings)*>
<!ENTITY % field "author|editor|title|booktitle|pages">

<!ELEMENT article       (%field;)*>
<!ATTLIST article
                    key CDATA #REQUIRED
                    mdate CDATA #IMPLIED
                    publtype CDATA #IMPLIED
                    reviewid CDATA #IMPLIED
                    rating CDATA #IMPLIED
>

Мне нужно преобразовать это в форму XML, т.е.

<element>
    <name>article</name>
    <attribues>
         <attr>key</attr>
         <attr>mdate</attr>
         ...
    </attributes>
</element>
...

Я бы предпочел не анализировать DTD сам.Я искал библиотеку, но большинство библиотек DOM / SAX обрабатывают только XML ... Я нашел NekoDTD, но он почти 8 лет и не обновлен ...

Так что вы рекомендуете?

Ответы [ 2 ]

1 голос
/ 06 марта 2012

Мне нужно преобразовать определения типов из DTD в более Java-бин дружественная форма XML.

Вы можете использовать JAXB XJC с инструментом флага -dtd для генерации модели домена из DTD.

xjc -p blog.log4j -d out -dtd log4j.dtd

Для получения дополнительной информации

0 голосов
/ 06 марта 2012

Имейте в виду, что существует бесконечность допустимых файлов XML в соответствии с заданным DTD. Фреймворк, который вы ищете, просто сгенерирует небольшое подмножество (но этого может быть достаточно для вашей цели: что это, во всяком случае?)

...