Есть ли какие-нибудь инструменты для создания схемы XSD из документа экземпляра XML?[закрыто]

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

  •  09-06-2019
  •  | 
  •  

Вопрос

Я ищу инструмент, который будет принимать экземпляр документа XML и выводить соответствующую схему XSD.

Я, конечно, осознаю, что сгенерированная схема XSD будет ограничена по сравнению с созданием схемы вручную (вероятно, она не будет обрабатывать необязательные или повторяющиеся элементы или ограничения данных), но она может, по крайней мере, послужить быстрой отправной точкой.

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

Решение

тот Инструмент вывода Microsoft XSD это хорошее бесплатное решение.Многие инструменты редактирования XML, такие как XmlSpy (упомянутый @Garth Gilmour) или OxygenXML Editor, также имеют эту функцию.Хотя они довольно дорогие.BizTalk Server также имеет инструмент вывода XSD.

редактировать:Я только что открыл для себя .net XmlSchemaInference класс, поэтому, если вы используете .net, вам следует учитывать это

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

Вы можете использовать вариант с открытым исходным кодом и кроссплатформенность:inst2xsd из XMLBeans Apache.Я считаю это очень полезным и простым.

Просто скачайте, разархивируйте и играйте (для этого требуется Java).

Транг здесь лучший вариант.Открытый исходный код и кроссплатформенность (хотя требуется Java)

С сайта Транга:

Транг осуществляет преобразование между различными языками схем для XML.Он поддерживает следующие языки

  • RELAX NG (синтаксис XML)
  • Компактный синтаксис RELAX NG
  • XML 1.0 DTD
  • XML-схема W3C

Схема, написанная на любом из поддерживаемых языков схем, может быть преобразована в любой другой поддерживаемый язык схем, за исключением того, что XML-схема W3C поддерживается только для вывода, а не для ввода.

Транг также может вывести схему из одного или нескольких примеров XML-документов.

Ссылка для скачивания

В VS2010, если вы загружаете XML-файл в редактор, щелкните меню XML >> Создать схему.

Также есть XML schema learner который доступен на Гитхаб.

Это может занять несколько XML-файлов и извлечь общий XSD из всех этих файлов.

Если у вас установлен .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.

Если вам нужен только XSD, у LiquidXML есть бесплатная версия, поддерживающая XSD, и у нее есть графический интерфейс, так что вы можете настроить XSD, если хотите.В любом случае, сейчас я пишу свои собственные XSD вручную, но все это благодаря этому приложению.

http://www.liquid-technologies.com/

если вы работаете в мире Java - интеллектуальная идея также имеет обширную поддержку xml, включая генерацию xsd и образец xml из генерации xsd, а с помощью плагинов вы можете получить отладчики xslt.- особенно приятно, если вы планируете впоследствии использовать такие инструменты, как jaxb.

Altova XmlSpy хорошо справляется с этой задачей — обзор вы можете найти здесь

Это старая тема, но я подумал, что было бы полезно опубликовать эту ссылку:только что нашел этот инструмент:xsd-gen Создать XML-схему из XML

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top