Как получить DTD (или другой формат спецификации XML) из примеров файлов XML

StackOverflow https://stackoverflow.com/questions/1815216

  •  06-07-2019
  •  | 
  •  

Вопрос

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

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

Это было полезно?

Решение

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-схему, которая считается беспорядком.)

Другие советы

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

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

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

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

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

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

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

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

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

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

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

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

Вы можете попробовать Trang или Экземпляр в инструмент схемы (часть XMLBeans ).

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

Trang :

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

Экземпляр в инструмент схемы :

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