Любые инструменты для создания схемы 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

и он просто сделал то, что мне нужно.