2012-03-06 5 views
2

У меня есть данный DTD, т.е.DTD синтаксический в Java

<!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 libs обрабатывают только XML. Я нашел NekoDTD, но это почти 8yo и не обновляется ...

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

+0

Попробуйте поиск Google в "ОТД парсер" топ 4 хиты всех открытых источников ОТД парсеров для Java. – DwB

+0

Какую конкретную библиотеку Java вы рекомендуете? Мне нужен smt, который доступен на публичных репозиториях MVN – Queequeg

ответ

0

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

+1

, это должен быть комментарий. – Woot4Moo

+1

Мне нужно преобразовать определения типов из DTD в более дружественную Java-Bean форму XML. Примечание. Мне не нужен DTD для проверки каких-либо XML-документов. Мне нужно это в качестве основы для определений типов в моем приложении. – Queequeg

1

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

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

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

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

+0

Мне не нужен класс/экземпляр. Мне нужно создать XML-файл :-( – Queequeg

+0

In ваш комментарий к ответу, данному @Mentezza, вы заявили, что вам нужна форма XML-формы, совместимая с Java-Bean. Этот ответ описывает, как вы могли бы создать модель Java-Bean, которая могла бы использоваться для создания желаемого XML. то, что вы ищете, дайте мне знать, и я удалю этот ответ. –

+0

Запуск Xjc может быть полезной техникой. Использование xjc -p tgt -d out -dtd 01-02-16.dtd, где 01-02-16.dtd является полным UML DTD (слегка измененным для исправления конфликтов пространства имен на двух элементах), можно мгновенно генерировать 386 машиночитаемых файлов Java для дальнейшей обработки. –

Смежные вопросы