Как получить DTD (или другой формат спецификации XML) из образцов XML-файлов
знаете ли вы инструмент, который будет выводить DTD (или другой формат спецификации структуры XML) из образца набора XML-файлов?
В настоящее время единственная (автоматическая) проверка, которую мы имеем для кодированного XML DSL,-это устаревший парсер, написанный на Perl, но по соображениям согласованности весь код perl должен быть перенесен на C-sharp.
9 ответов
http://www.stylusstudio.com/dtd_generator.html фактическое програмное обеспечение снабжая генератор DTD.
http://www.pmg.csail.mit.edu / ~chmoh / пабы / wecwis.pdf кажется хорошей бумагой о том, что вам нужно, но я не могу найти (ссылки на) фактический код в любом месте бумаги до сих пор.
вот еще одна статья об этом, опять же, код не найден: http://www.softnet.tuc.gr / ~minos / Papers / debull03.pdf.
наконец, я бы также предложил вам изучить использование RELAX NG или Schematron для проверки Вашего XML. Эти языки гораздо более выразительны, что облегчает их чтение и делает их более мощными в тех вещах, которые вы можете проверить. (Обязательно пропустите XML-схему, которая широко считается беспорядком.)
вы можете использовать следующую ссылку для создания схемы в интернете, предоставляя только данные xml. http://www.xmlforasp.net/codebank/system_xml_schema/buildschema/buildxmlschema.aspx
вы можете скачать JetBrains IDEA community edition, который является бесплатным. Он имеет встроенные инструменты для генерации ГТП и схемы:
http://www.jetbrains.com/idea/webhelp/generating-dtd.html
может быть, не идеально, но это что-то.
вот программа, которая работала для меня DTDGenerator. Вам нужно скомпилировать его с Java, но он работает хорошо. Я удивлен отсутствием свободного программного обеспечения для языка, который был вокруг в течение длительного времени, но это бесплатно под Mozilla Public License версии 1.0.
Xmlspy альтовой имеет генератор схем 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
или Instance to Schema Tool
(часть XMLBeans).
Я поставил их в тест с 1Gb XML-файлом. Вот результаты:
max memory [kB] - 98,480
time [MM:SS] - 0:24
max memory [kB] - 5,993,240
time [MM:SS] - 7:36