Create xml from xsd

Paste your XSD schema here:

This online tool takes XSD schema as input and generates sample XML as output — simple as that.

Should work for most basic cases.

If you want to make a sample XML file for testing from given XSD schema file, you could spend anything from a few minutes to a few hours manually analyzing and converting XSD to XML (and be bored to tears).

Or you could use this online tool and spend just a few seconds to do it automatically.

Блог о создании приложений на платформе .NET Framework

10 ноября 2017 г.

Как создать XML и XSD схему и наоборот

Итак, что же мы будем делать, для того, что бы научиться штамповать XML на основе вашего эталона? Опишу всё по порядку.

Имеется:
Какой то XML (xmlfile.xml), сохраненный в текстовом формате в файл. Ниже приведу текст:

Действия для создание нового:

  1. Сначала используя утилиту XSD.exe, либо воспользовавшись онлайн сервисами (искать "xml to xsd" один из них www.freeformatter.com/xsd-generator.html), мы будем создавать из имеющейся XML ее примитивное XSD описание. На выходе мы будем иметь полностью, автоматическим образом, созданный output.xsd файл, который уже подходит к использованию но может быть не полным.
  2. Далее, на основе output.xsd, будут созданы классы на языке C# xmlclass.cs. После чего, мы добавляем его в наш проект. Создавать класс можно используя XSD.exe, либо xsd2code утилитой, или же любым онлайн сервисом.
  3. Теперь мы готовы использовать классы файла xmlclass.cs. Поэтому создадим и наполним данными экземпляры xmlclass, а потом, используя процесс сериализации, будем преобразовывать объекты в XML строку, и после чего сохраним ее в новый файл. Тем самым получим XML на основе имеющегося.

Приступим!

Шаг 1. Создание XSD из XML.

Итак, приведу способы, которыми пользуюсь сам:

  1. Утилита xsd.exe — создатель Microsoft.
  2. Утилита xsd2code.exe — стороннее приложение, которое умеет все тоже самое, что и xsd.exe, но доступно для скачивания напрямую (на данный момент стала платной с Trial периодом).
  3. Использование любых онлайн сервисов.

Для того, что бы получить XSD.exe, вам придется поставить любой Microsoft SDKs, в поставке которого, идет данное приложение. К сожалению, на данный момент ни одна из студий в своем комплекте не содержит этой утилиты.

— Далее перейдя в папку:
C:Program Files (x86)Microsoft SDKsWindows>

— Воспользуемся поиском, и найдем файл xsd.exe, после чего (что бы упростить себе работу), скопируем его в созданную в корне диска папку C:xmltoxsd. Далее в эту же папку мы копируем наш xmlfile.xml и все готово к началу.

Отрываем "Командную строку" (Пуск -> "Выполнить" -> "cmd"), переходим в наш каталог и вызываем с параметрами по умолчанию xsd.exe, передавая наш xmlfile.xml параметром:

И видим, что рядом появился файл xmlfile.xsd с содержимым.

Вот и все! Этих действий достаточно, для создания примитивного XSD файла, с которым можно работать. Но стоит понимать, что сам xsd.exe, как и любая другая утилита, ничего не знает про типы ваших полей (поэтому почти всегда тип полей будет string), а так же о всех вариациях атрибутов и параметров. То есть, если у какого-то тега нет атрибута в вашей XML, тогда его и не будет в описании. Поэтому XML должен быть наиболее полным и в случае, если элемент может содержать несколько дочерних полей, лучше добавить как минимум два, что бы xsd.exe понял, что это коллекция.

Синтаксис XSD не очень сложный, поэтому, если пишется достаточно серьезное описание, возможно придется поработать и напильником.

Шаг 2. Создание Class из XSD.

Для создания класса на языке C#, нам понадобится вновь использоваться xsd.exe но уже с другим параметром /classes, передав путь к нашему xmlfile.xsd.

После выполнения появится файл xmlfile.cs, содержимое которого приведено ниже в сжатом виде:

Замечание: xsd.exe не умеет добавлять комментарии к получившимся классам и полям. В описании XSD существует элемент под названием xs:annotation > , который чаще всего содержит xs:documentation >, внутри которого размещено описание поля. По идее, оно должно быть размещено в /// описании, но на текущий момент xsd.exe отказывается добавлять текст в описание, поэтому приходится прибегать к альтернативам, таким как xsd2code или онлайн сервисам.

Шаг 3. Сериализация объектов в XML.

Получившиеся классы у нас лежат в файле xmlfile.cs. Далее его содержимое или сам файл добавляем в проект Visual Studio, после чего можно с ним работать. Я создам демонстративный объекты книг, после чего сохраню в файл в формате XML.

После запуска и открытия Output.xml можно увидеть, что мы сохранили так, как мы хотели (Нижний файл — "Созданный кодом").

Как мы видим, форматирование было соблюдено, а данные были наполнены нами.

Generates a XSD (XML Schema) from a XML file. Simply copy-paste OR upload your XML document and let the generator figure out the rest. The generator will try to use a ‘smart’ approach to figure out the data type (you can always refine it after).

The generator uses one of 3 designs to generate the XSD (consult xfront.com for more details):

  • Russian Doll: Mimics the document structure, i.e. elements within other elements are declared locally
  • Salami slice: Disassembles the document into individual elements and assembles them into components by referencing them
  • Venetian Blind: Disassembles the document into individual components, but creates type definitions instead of element declaration

*The maximum size limit for file upload is 2 megabytes.


[an error occurred while processing the directive]
Карта сайта