Как получить DTD (или другой формат спецификации XML) из примеров файлов XML - PullRequest
12 голосов
/ 29 ноября 2009

Знаете ли вы об инструменте, который будет выводить DTD (или другой формат спецификации структуры XML) из образца набора файлов XML?

В настоящее время единственной (автоматической) проверкой, которую мы имеем для DSL в кодировке xml, является унаследованный синтаксический анализатор, написанный на Perl, но по соображениям согласованности весь код perl должен быть перенесен на C-sharp.

Ответы [ 9 ]

8 голосов
/ 01 декабря 2009

Вы можете использовать xsd.exe (часть Visual Studio) для генерации схемы XML для данного файла XML.

7 голосов
/ 29 ноября 2009

http://www.stylusstudio.com/dtd_generator.html - это актуальное программное обеспечение, реализующее генератор DTD.

http://www.pmg.csail.mit.edu/~chmoh/pubs/wecwis.pdf кажется хорошим документом о том, что вам нужно, но я пока не могу найти (ссылки на) фактический код нигде в статье.

Вот еще одна статья, опять же, код не найден: http://www.softnet.tuc.gr/~minos/Papers/debull03.pdf.

Наконец, я бы также посоветовал вам изучить использование RELAX NG или Schematron для проверки вашего XML. Эти языки намного более выразительны, что делает их более удобными для чтения и более мощными в тех вещах, которые вы можете проверить. (Обязательно пропустите XML-схему, которая считается беспорядком.)

4 голосов
/ 12 января 2014

Вы можете скачать бесплатную версию JetBrains IDEA для сообщества. Он имеет встроенные инструменты для генерации GTD и схем:

http://www.jetbrains.com/idea/webhelp/generating-dtd.html

Может быть, не идеально, но это что-то.

4 голосов
/ 18 сентября 2013

Вы можете использовать следующую ссылку для генерации схемы онлайн, предоставив только данные XML. http://www.xmlforasp.net/codebank/system_xml_schema/buildschema/buildxmlschema.aspx

3 голосов
/ 07 августа 2013

Вот программа, которая у меня работала DTDGenerator . Вам нужно скомпилировать его с Java, но он работает хорошо. Я удивлен отсутствием бесплатного программного обеспечения для языка, который существует уже долгое время, но это бесплатно под Mozilla Public License Version 1.0.

1 голос
/ 29 июля 2015

Только что использовал http://www.freeformatter.com/xsd-generator.html для генерации xsd из файла XML. У этого также есть много других возможностей форматирования!

1 голос
/ 30 ноября 2009

Редактор XMLMax создаст XSD из файла XML. Бесплатная пробная версия (без регистрации / небольшой загружаемый файл) сделает это за вас. Если вы хотите сделать это в коде, в .NET Framework есть класс XmlSchemaInference, который автоматически создает XSD из файла XML.

1 голос
/ 29 ноября 2009

Altova XMLSpy имеет генератор схемы DTD / XML.

Сгенерированная схема DTD / XML обычно требует небольшой настройки. Например, инструмент может перечислять список атрибутов или элементов, когда вы «хотели» для него разрешить любое значение. Вы только даете ему образец своего проблемного пространства, и оно должно идти от конкретного к общему. По этой причине я не слишком напрягаюсь, когда мне не удается прочитать мои мысли.

Я считаю сгенерированную dtd или схему отправной точкой. Это лучше, чем катить его вручную с нуля. Э-э, если вы начинаете с существующих документов XML, то есть.

Даже если вы не собираетесь использовать сгенерированный dtd, это довольно хороший способ разобраться в структуре набора незнакомых XML-документов.

0 голосов
/ 04 мая 2012

Вы можете попробовать Trang или Instance to Schema Tool (часть XMLBeans ).

Я протестировал их с XML-файлом объемом 1 ГБ. Вот результаты:

Trang:

max memory [kB] - 98,480
time [MM:SS] - 0:24

Instance to Schema Tool

max memory [kB] - 5,993,240
time [MM:SS] - 7:36
...