Любые инструменты для создания схемы XSD из документа экземпляра XML?
Я ищу инструмент, который возьмет документ экземпляра XML и выведет соответствующую схему XSD.
Я, конечно же, понимаю, что сгенерированная схема XSD будет ограничена по сравнению с созданием схемы вручную (вероятно, она не будет обрабатывать необязательные или повторяющиеся элементы или ограничения данных), но она может по крайней мере служить в качестве быстрой начальной точки.
Ответы
Ответ 1
Инструмент Microsoft XSD inference - это хорошее, бесплатное решение. Многие функции редактирования XML, такие как XmlSpy (упомянутые @Garth Gilmour) или OxygenXML Editor, также имеют эту функцию. Они довольно дороги. BizTalk Server также имеет инструмент вывода XSD.
edit: Я только что открыл класс .net XmlSchemaInference, поэтому, если вы используете .net, вы должны подумать, что
Ответ 2
Вы можете использовать опцию open source и cross-platform: inst2xsd из Apache XMLBeans. Я считаю это очень полезным и легким.
Просто скачайте, разархивируйте и играйте (для этого требуется Java).
Ответ 3
Trang - лучший вариант здесь. Open source и кросс-платформу (хотя требуется Java)
С веб-сайта Trang:
Trang преобразует различные языки схемы для XML. Он поддерживает следующие языки.
- RELAX NG (синтаксис XML)
- Компактный синтаксис RELAX NG
- XML 1.0 DTD
- Схема XML W3C
Схема, написанная на любом поддерживаемом языке схемы, может быть преобразована в любой из поддерживаемых языков схем, за исключением того, что W3C XML Schema поддерживается только для вывода, а не для ввода.
Trang также может вывести схему из одного или нескольких примеров XML-документов.
Ссылка для скачивания
Ответ 4
В VS2010, если вы загрузите XML файл в редактор, щелкните меню XML → Create Schema.
Ответ 5
Также существует XML schema learner
, который доступен на Github.
Может потребоваться несколько xml файлов и извлечь общий XSD из всех этих файлов.
Ответ 6
Если у вас установлен .Net, инструмент для генерации XSD-схем и классов уже включен по умолчанию.
Для меня инструмент XSD установлен в следующей структуре. Это может различаться в зависимости от вашего каталога установки.
C:\Program Files\Microsoft Visual Studio 8\VC>xsd
Microsoft (R) Xml Schemas/DataTypes support utility
[Microsoft (R) .NET Framework, Version 2.0.50727.42]
Copyright (C) Microsoft Corporation. All rights reserved.
xsd.exe -
Utility to generate schema or class files from given source.
xsd.exe <schema>.xsd /classes|dataset [/e:] [/l:] [/n:] [/o:] [/s] [/uri:]
xsd.exe <assembly>.dll|.exe [/outputdir:] [/type: [...]]
xsd.exe <instance>.xml [/outputdir:]
xsd.exe <schema>.xdr [/outputdir:]
Обычно классы и схемы, которые этот инструмент генерирует, работают довольно хорошо, особенно если вы собираетесь использовать их на языке .NET.
Я обычно беру XML-документ, который мне нужен, проталкиваю его через инструмент XSD с помощью флага /o:<your path>
для создания схемы (xsd), а затем перетаскивает файл xsd через инструмент с помощью флагов /classes /L:VB (or CS) /o:<your path>
чтобы получить классы, которые я могу импортировать и использовать в своих повседневных проектах .Net
Ответ 7
Если вы хотите только XSD, у LiquidXML есть бесплатная версия, которая делает XSD, и у нее есть графический интерфейс, поэтому вы можете настроить XSD, если хотите. В любом случае, в наши дни я пишу свои собственные XSD вручную, но все это благодаря этому приложению.
http://www.liquid-technologies.com/
Ответ 8
если вы работаете в java-мире - идея intelliJ также имеет обширную поддержку xml, включая генерацию xsd и samle xml от поколения xsd, а также с помощью плагинов вы можете получить отладчики xslt. - особенно приятно, если вы планируете использовать такие инструменты, как jaxb впоследствии.
Ответ 9
Altova XmlSpy делает это хорошо - вы можете найти обзор здесь
Ответ 10
Это старый поток, но я подумал, что может быть полезно опубликовать эту ссылку: просто нашел этот инструмент:
xsd-gen Генерировать XML-схему из XML
и он просто сделал то, что мне нужно.