Меню
Бесплатно
Главная  /  Советы  /  Открытие XSD файлов. XML Schema (XML схема) — описание структуры XML-документов Как открыть и прочитать xsd схему данных

Открытие XSD файлов. XML Schema (XML схема) — описание структуры XML-документов Как открыть и прочитать xsd схему данных

XSD-схема используется для традиционной вышивки крестиком. Разработчиком решения является HobbyWare. Речь идет о достаточно распространенном формате для указанных целей.

Описание

XSD-схема пришла на смену формату.PAT, который использовался также программой PCStitch, вызывая некоторую путаницу. Данные файлы содержат все необходимое для вышивки, в частности, цветовую легенду и описание для последующей работы. Просмотреть материалы такого типа поможет программа Pattern Maker for cross-stitch.

Документы

XSD-схема используется не только в вышивке. Файлы с аналогичным расширением определяют, какие атрибуты и элементы могут возникнуть в XML-документе, а также устанавливают взаимосвязь между его составными частями. Данные материалы взаимодействуют со специальным языком описания структуры указанных файлов. Задача схемы - определить класс XSD может быть использован как альтернатива.DTD-файлам. Иногда во время работы могут возникать различные ошибки. К примеру, если вы видите сообщение «Ошибка валидации по XSD-схеме», вероятно, вы пытаетесь ассоциировать материал с неподходящей программой. Приложения, которые подходят для работы с форматом, будут рассмотрены далее.

Syntext Serna

Справится с ошибкой вида «Файл не соответствует XSD-схеме» поможет данное приложение. Речь идет о функциональном коммерческом XML-кода. Serna работает со всеми имеющимися стационарными системами: Mac OS X, Linux и Windows. Редактор имеет полноценную поддержку XML-каталогов. Доступно создание материалов, которые имеют специфическую структуру.

Создание XSD-схемы - одна из многочисленных возможностей данного приложения. Вставка элементов значительно облегчена благодаря тому, что программа имеет контекстные списки атрибутов и справочную информацию о них. Функция Drag&Drop позволяет осуществлять перетаскивание объектов на ленту. Реализована и дополнительная проверка файлов во время открытия. Есть возможность работать с моделями и таблицами. Взаимодействие осуществляется даже с крупными и объемными материалами. Имеется расширенная навигация по содержимому. Чтобы упростить вставку различных конструкций, редактор Serna получил целый ряд специально разработанных диалогов. Программа имеет удобный и гибкий интерфейс. Открытый материал отображается в главном окне. Он представлен в полной мере. Здесь есть развертывающиеся списки. Также радует наличие проводника по содержимому.

Управляется документ при помощи специального стиля. Используя всего несколько клавиш, можно сменить профилированные открытого файла исходя из собственных требований и под свой вкус. Документ в Serna можно разбивать и делить на необходимое количество страниц, при этом учитывается нумерация и определенная последовательность. Данное решение очень эффективно во время работы с большими материалами, которые содержат значительный объем кода. При этом стандартный вариант показа информации удобен, если требуется минимизировать разрывы в документе, а это очень важно, если присутствуют таблицы.

Oxygen XML Editor

Справиться с ошибкой вида «Файл не соответствует XSD-схеме», а также открыть файлы указанного типа может и данный редактор. Решение позволяет интерпретировать документы, а также выделять цветом элементы внутри текста. Древовидное представление содержимого позволяет пользователю просматривать разные узлы документов. Таким образом, можно проверять корректность кода, а также обнаружить ошибки и предупреждения. Редактирование можно проводить напрямую из ZIP-архива.

Altova XMLSpy

Если перед вами XSD-схема, работать с ней можно посредством данного приложения. Речь идет о мощном инструменте для создания, отладки, а также редактирования документов. Существуют версии для Windows, Linux и Mac OS. Проработка функций данного решения повышает уровень эффективности работы со схемами. Доступно создание проектов различного уровня с нуля. Есть возможность редактирования уже существующих материалов. При этом предоставляется несколько режимов отображения - конечный результат, иерархическая таблица, текст.

Встроенный просмотрщик позволяет избегать ошибок и упростить использование программы. Приложение получило удобную систему подсветки синтаксиса. Есть возможность комментировать код и устанавливать закладки. Такой подход упрощает навигацию при работе с объёмными проектами. Присутствует встроенный конвертер. Можно импортировать базы данных. Присутствует инструмент для сравнения двух файлов, который включает удобную систему отображения результата. Данная платформа совместима с другими похожими решениями, что позволяют объединять их возможности.

Другие решения

Существует еще несколько программ, которые поддерживают работу с интересующим нас типом схем. Особого внимания среди них заслуживает Visual Studio. Речь идет о разработке компании Microsoft, позволяющей создавать различные приложения.

Особенность данной платформы - это широкий набор сервисов, доступных в разных языках программирования. Сервисы реализуются как промежуточный код, который от архитектуры не зависит. Visual Studio объединяется в себе большое количество функций, которые позволяют осуществлять разработку в Windows. В инструменте создана новая среда, благодаря которой воплощать приложения стало намного проще.

Также с необходимым нам форматом можно работать посредством одного из следующих приложений: XML Studio, XML Notepad, JAPISoft EditiX, PSPad editor, «Блокнот». Вот мы и разобрались, как исправить ошибку вида «Не соответствует XSD-схеме», а также посредством каких программ взаимодействовать с файлов.

XSD файлы часто используются вкупе с XML документами. В них представлены описания XML файла и правила, которым он подчиняется. У пользователей часто встает вопрос, чем открыть XSD. Для просмотра подойдут базовые утилиты, предустановленные на ПК, а вот для редактирования понадобится дополнительное ПО.

Общее описание формата xsd

Расширение «.xsd» – аббревиатура от XML Schema Definition. Главная задача файлов с таким расширением – описать XML. В них могут содержаться описания структуры, отдельных элементов, атрибутов. Информацию содержит текст, изложенный языком описания XML Schema. На этом языке создают программное обеспечение для работы с XML. В «.xsd» могут быть интегрированы элементы других словарей, не только XML Schema.


История возникновения

Впервые формат был введен в эксплуатацию в 2001 году. Его порекомендовал Консорциум Всемирной паутины. Эта организация внедряет технологические стандарты интернета. Цель Консорциума – достичь совместимости файлов и оборудования производителей из разных стран.

Стартовая разработка языка XML Schema 1.0, применяемого в расширении «.xsd», использовалась на протяжении 11 лет. 5 апреля 2012 года Консорциум одобрил введение новой – 1.1.

Как и чем открыть файл xsd расширения

Можно выбрать из трех вариантов, чем открыть файл XSD. Просматривать содержимое документа можно даже без ПК, используя опции браузера.


Онлайн

Для просмотра онлайн используется браузер. Подойдет как ПК, так и мобильный браузер.

XSD схема – чем открыть онлайн :

  • другие браузеры.

Чтобы просмотреть содержимое, в строку поиска вбивают путь к файлу: «file:///D:/document.xsd». После «file:///» указывается путь на выбранном устройстве, а также название.

Главный недостаток онлайн-просмотра формата – невозможность вносить изменения в структуру.

На компьютере

При использовании установленных на ПК программ опций при работе с больше. Можно не только узнать содержимое, но и отредактировать текст.

Если постоянно работать с форматом не предстоит, для управления такими документами используют текстовые редакторы. Подойдут следующие программы:

  • WordPad;

Принципиальных отличий в ПО нет. Microsoft Word удобнее с точки зрения редактирования, а WordPad тяжелее в освоении. Однако функционал программ при работе с данным форматом не меняется.

Самое простое ПО для просмотра формата – Блокнот. Для просмотра и редактирования в текстовом редакторе файл открывают командой «Открыть с помощью...», затем выбирают из списка программ нужный редактор. Также можно открыть файл через саму программу, выбрав функцию «Открыть» и указав путь к элементу.

Если с XML Schema Definition работают профессионально, то для просмотра и редактирования применяют более серьезные программы. Устанавливаются XML-редакторы, к которым относятся:

  • и другие.

Профессионалы предпочитают вторую программу. Она подходит для работы на Windows, Linux, Microsoft и позволяет не только видоизменять, но и создавать файлы рассматриваемого формата. Для редактирования используется многофункциональная таблица.

Какие еще могут быть проблемы с xsd файлом

Даже если известно, что такое формат xsd, чем открыть файл такого типа, иногда возникают дополнительные проблемы. Главная сложность заключается в том, что бывает два варианта XML Schema Definition файлов. Первый – текстовые, в которых содержатся команды и описания. Их открывают при помощи приведенных выше способов. Но разработан и второй, менее распространенный тип – схемы для вышивки крестиком. Это изображения, а не текст.


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

Утилиту устанавливают на ПК. Программу для открытия xsd можно скачать бесплатно и с русским переводом. В Pattern Maker For Cross Stitch доступен не только просмотр xsd схемы, но и редактирование, и создание собственных файлов.

Разобраться с форматом не сложно. Даже новичок сможет с первого раза открыть файл при помощи предустановленного на ПК текстового редактора или «Блокнота».

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

Схема документа XML (X ML S chema D efinition) — это наиболее часто встречающийся тип файлов XSD. Он известен еще с 2001 года. В этих файлах содержится самая разнообразная информация, описывающая XML-данные — их структура, элементы, атрибуты и прочее. Для того чтобы открыть файл такого типа, существует множество способов. А для примера возьмем простейший образец этого формата (схема заказа на покупку), который предлагается корпорацией Майкрософт.

Способ 1: XML-редакторы

XML-редакторы являются более подходящим программным обеспечением для открытия файлов XSD, так как именно с их помощью создаются файлы подобного типа. Рассмотрим некоторые из них подробнее.

XML Notepad

Данная программа представляет собой один из вариантов «Блокнота» от Майкрософт, специально предназначенный для работы с XML-файлами. Соответственно, и XSD можно свободно открывать и редактировать с ее помощью.


XML Notepad предоставляет намного больше возможностей по сравнению с программами, описанными выше. Кроме подсветки синтаксиса, там в автоматическом режиме осуществляется определение структуры документа и выводится в удобном для просмотра и редактирования виде.

Oxygen XML Editor

В отличие от предыдущего, этот программный продукт представляет собой намного более серьезное средство для разработки документов XML. Структуру файла XSD он представляет в виде красочной таблицы


Данная программа является мультиплатформенной как в виде самостоятельного приложения, так и как плагин Eclipse.

Открыть файлы XSD можно и с помощью более «тяжелых» программных продуктов, например, таких как Microsoft Visual Studio, Progress Stylus Studio и других. Но все они представляют собой инструменты для профессионалов. Устанавливать их только с целью открыть файл не имеет смысла.

Способ 2: Браузеры

Открываются файлы XSD и в любом браузере. Для этого можно точно так же воспользоваться контекстным меню или меню «Файл» (если таковое имеется в браузере). А можно просто прописать путь к файлу в адресной строке браузера или перетащить его в окно веб-проводника.

Вот как выглядит наш образец, открытый в Google Chrome :


А это он же, но уже в Яндекс Браузере :


А здесь он уже в Opera :


Как видим, принципиальной разницы нет. Стоит только отметить, что браузеры годятся лишь для просмотра файлов такого типа. Редактировать что-либо в них нельзя.

Способ 3: Текстовые редакторы

Из-за простоты своей структуры файлы XSD легко открываются практически любым текстовым редактором и могут там свободно изменяться и сохраняться. Отличия заключаются лишь в удобстве просмотра и редактирования. Их можно открывать непосредственно из текстового редактора, или из контекстного меню, выбрав опцию «Открыть с помощью» .

Вот примеры того, как можно это сделать с помощью разных текстовых редакторов:

Блокнот

Это самое простое приложение для работы с текстовыми файлами, по умолчанию присутствующее в любой версии Windows. Так выглядит наш образец, открытый в «Блокноте»:


Из-за отсутствия удобств редактировать XSD-файл в нем будет трудновато, но для быстрого ознакомления с его содержимым «Блокнот» вполне может сгодиться.

Еще один неизменный компонент Windows, по сравнению с «Блокнотом» обладающим более расширенным функционалом. Но на открытии XSD-файла это никак не отражается, поскольку данный редактор также не предоставляет никаких дополнительных удобств для его просмотра и редактирования.


Как видим, за исключением интерфейса программы, ничего в отображении файла XSD, по сравнению с Блокнотом, не изменилось.

Notepad++

Эта программа представляет собой тот же «Блокнот», но с целым рядом дополнительных функций, о чем и свидетельствуют плюсы в названии. Соответственно и файл XSD, открытый в Notepad++ выглядит намного привлекательнее благодаря функции подсветки синтаксиса. Это делает гораздо более удобным и процесс его редактирования.

Открыть файлы XSD можно и в более сложных текстовых процессорах, таких как MS Word или LibreOffice . Но так как эти программные продукты не предназначены специально для редактирования таких файлов, отображаться они будут точно так же, как и в «Блокноте».

Схема вышивки крестиком

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

Программа Pattern Maker For Cross Stitch является основным средством для открытия схем вышивки, так как разработана специально для их создания и редактирования. Вот так выглядит открытый в Pattern Maker файл XSD.


Программа имеет богатый инструментарий. Кроме того, ее можно легко русифицировать. К тому же она распространяется на бесплатной основе.

Таким образом, формат файла XSD, в основном, представляет собой схему XML-документа. Если она не открывается текстовыми редакторами, значит перед нами файл, содержащий схему вышивки крестиком.

Аннотация: XML-схемы данных (XSD). Создание XSD-схемы в среде Visual Studio .NET. Создание типизированного объекта DataSet. Получение информации о структуре объекта DataSet. Загрузка XML-документов и XSD-схем в типизированный и обычный объекты DataSet. Методы ReadXml и ReadXmlSchema. Запись содержимого и структуры типизированного и обычного объекта DataSet. Методы WriteXml и WriteXmlSchema

Типизированный объект DataSet. Чтение и запись XML-документов

XML-схемы данных (XSD)

Схемы данных 1Точный перевод XML Schema Document - < схема документа XML >, однако мы будем в дальнейшем использовать термин "схема данных XML". XSD ( XML Schema Document, XSD) представляют собой альтернативный способ правил построения XML-документов. По сравнению с DTD, схемы обладают более мощными средствами для определения сложных структур данных, обеспечивают более понятный способ описания грамматики языка, способны легко модернизироваться и расширяться. Схема XSD может содержать следующую информацию:

  • представление связей между элементами данных, аналогичное связям внешних ключей между таблицами в реляционной базе данных;
  • представление уникальных идентификаторов, подобных первичному ключу;
  • спецификацию типов данных каждого индивидуального элемента и атрибута в XML-документе.

Для создания схемы данных в Visual Studio .NET в главном меню переходим File \ New \ File и выбираем из списка шаблонов (см. рис. 11.3) XML Schema . Появляется окно с надписью "Чтобы начать, перетащите объекты из окна Server Explorer или Toolbox на рабочую область (область дизайна) или щелкните правой кнопкой" (рис. 11.1):


Рис. 11.1.

Дело в том, что мы находимся в режиме дизайна. Переключаемся в режим кода, для чего нажимаем на кнопку(XML):

Первая строка - это уже знакомое указание на то, что схема представляет собой XML-документ с корневым элементом xs:schema . Префикс xs : предваряет все элементы схемы, указывая на свое пространство имен. Во второй строке располагается длинное, подробное и зачастую совершенно ненужное описание схемы (сравните с аналогичным кодом для HTML-страниц). Для корректной работы вполне достаточно ограничиться следующим представлением:

Впрочем, встроенные средства визуализации студии предполагают наличие этой "шапки", поэтому ее не следует удалять. Создание схемы, описывающей заданный XML-документ в среде Visual Studio .NET - довольно простая задача. Создадим следующий документ XMLEasy.xml:

1

Переключаемся на вкладку(Data) и видим всего одну запись (рис. 11.2).


Рис. 11.2.

Создать схему, описывающую этот документ, можно несколькими способами: в главном меню выбрать пункт "XML \ Create Schema" (рис. 11.3, А), в режиме XML в контекстном меню выбрать этот же пункт (рис. 11.3, Б), в режиме Data в контекстном меню выбрать этот пункт (рис. 11.3, В), и, наконец, в режиме Data нажать на кнопку панели инструментов XML (рис. 11.3, Г).


Рис. 11.3.

В любом случае появляется схема документа в виде таблицы (рис. 11.4). Оставим пока режим Schema и переключимся в режим(XML).


Рис. 11.4.

Среда сгенерировала XML-код, описывающий структуру документа:

Сюда входит также описание, необходимое для дальнейшего манипулирования схемой при помощи объектов ADO .NET. В исходном документе XMLEasy.xml появилась ссылка на схему данных:

Документ XMLEasy.xsd был автоматически создан в той же самой директории, где находится XMLEasy.xml.

Для того чтобы научиться понимать схемы XSD, вначале следует поработать с описанием данных в чистом виде, без дополнительных элементов. В таблице 11.1 приводится несколько простейших XML-документов и их схем, сформированных без привязки к объектам ADO .NET.

Таблица 11.1. Примеры составления XSD-схем
Содержимое XML-документа Содержимое XSD-схемы

1

Описание
В документе XMLEasy.xml элемент TOUR - корневой элемент, содержащий дочерний элемент IDTOUR. Общая схема для корневого элемента имеет следующий вид:

: Содержимое элемента...

Дочерние элементы описываются так:

Содержимое XML-документа Содержимое XSD-схемы

1 Кипр 25 000,00р. В стоимость двух взрослых путевок входит цена одной детской (до 7лет) 2 Греция 32 000,00р. В августе и сентябре действуют специальные скидки 3 Таиланд 30 000,00р. Не включая стоимость авиабилета 4 Италия 26 000,00р. Завтрак в отеле включен в стоимость путевки 5 Франция 27 000,00р. Дополнительные экскурсии не входят в стоимость путевки

Описание
Корневой элемент TABLE содержит элемент TOUR , состоящий, в свою очередь, из группы дочерних элементов. Элемент choice определяет выбор других элементов, причем значение "unbounded" (неограниченно) атрибута maxOccurs указывает на возможность неограниченного наличия групп TOUR .

: :

Содержимое XML-документа Содержимое XSD-схемы

1 Кипр 25 000,00р. 1 В стоимость двух взрослых путевок входит цена одной детской (до 7лет)


Рис. 11.5.
Описание
Для элемента IDTOUR был установлен тип данных int , для элемента CLOSED - тип boolean , для остальных - по умолчанию тип string . Изменять тип данных можно непосредственно в режиме XML-схемы данных, но более удобно - в режиме Schema (в данном случае режим будет называться DataSet ) выбирать тип данных из выпадающего списка (рис. 11.5):

В программном обеспечении к курсу вы найдете все файлы этой таблицы в папке XSD (Code\Glava5\ XSD).

Задание типа данных в XML-документе (последний пример - табл. 11.1) - один из способов ограничения содержимого. Для ограничения значения заданного типа применяются дополнительные атрибуты. В следующем фрагменте схемы значение элемента PRICE должно быть в пределах от 50 до 100:

Для ограничения XML-документа некоторыми фиксированными значениями используется следующая конструкция:

Здесь элемент NAME может принимать только одно фиксированное значение из пяти названий стран.

Разработка XSD-схемы представляет собой довольно кропотливую работу. Визуальные средства среды Visual Studio .NET значительно облегчают эту задачу. Для освоения основных концепций желательно изучить несколько схем XML-документов, созданных автоматически. В таблицах 11.2-11.4 приводится описание основных элементов и атрибутов, которые при этом можно встретить.

Таблица 11.2. Элементы XSD-схем
Элемент Описание
all Вложенные элементы могут определяться в произвольном порядке
annotation Родительский элемент элементов-комментариев и
any Любые вложенные элементы
anyAttribute Любые атрибуты
appInfo Элемент-коментарий. Задает титул схемы
attribute Атрибут
attributeGroup Группа атрибутов
choice Выбор других элементов. Аналог оператора "|" в DTD
complexContent Ограничения или расширения модели содержимого сложного типа
complexType Элемент сложного типа
documentation Элемент-комментарий. Предоставляет информацию о схеме
element Элемент
extension Расширения элемента
field Объявление поля. Применяется внутри элемента для определения полей
group Группа элементов
import Импорт декларации типов из другой схемы
include Включение другой схемы в существующее пространство имен
key Задание элемента или атрибута с ключом, указывающим на другой элемент
keyref Задание элемента или атрибута, на который указывает ключ
list Элемент, который может содержать список значений
redefine Переопределение уже объявленных элементов
restriction Ограничение элемента
schema Корневой элемент схемы
selector Селектор для отбора XML-элементов
sequence Последовательность других элементов. Аналог оператора "," в DTD
simpleContent Модель, содержимое которой представляет только символьные данные
simpleType Элемент простого типа
union Элемент или атрибут, который может иметь множественное значение
unique Элемент или атрибут, который должен иметь уникальное значение
Таблица 11.3. Атрибуты - ограничения XSD-схем
Атрибут Описание
enumeration Список значений
length Длина
maxLength Максимальная длина
minLength Минимальная длина
maxExclusive Максимальное значение
maxInclusive Максимальное значение включительно
minExclusive Минимальное значение
minInclusive Минимальное значение включительно
fractionDigits Количество знаков после запятой в дробных числах
totalDigits Количество цифр
pattern Образец (паттерн) содержимого элементов
default Значение элемента или атрибута по умолчанию
elementFormDefault Задание свойств локального элемента как глобально определенного
fixed Фиксированное значение элемента или атрибута
form Локально объявленные элементы определяются в конкретных экземплярах документов
itemType Тип пунктов списка
memberTypes Тип членов, использованных в объединении (union )
maxOccurs Максимальное количество вхождений элемента
minOccurs Минимальное количество вхождений элемента
mixed Задание элемента, имеющего смешанный тип
name Название элемента или атрибута
namespace Пространство имен
noNamespace Задание местоположения документа-схемы,
SchemaLocation не имеющего результирующих пространств имен
nillable Определение того, что элемент может иметь пустое значение NULL (nil )
ref Задание ссылки на глобально определенный элемент
schemaLocation Определение местоположения схемы
substitutionGroup Определение замены элементов другими элементами
targetNamespace Результирующее пространство имен схемы
type Тип элемента
use Является элемент обязательным или нет
value Значение элемента схемы
xsi:nil Задание реального содержания пустого (NULL ) элемента XML-документа
xsi:schemaLocation Реальное местоположение элемента в XML-документе
xsi:type Реальный тип элемента в XML-документе

Хотелось бы в одном месте рассказать о вполне типичной задаче при работе с XML , а именно, о создании XML на основе существующего. Данная операция будет состоять из нескольких этапов, при выполнении которых, будут решены дополнительные задачи, такие как:

  • Создание XML на основе XSD , и наоборот.
  • Сериализация и десериализация объектов.
  • Создание класса, для будущей сериализации из XML или XSD .
Перед началом планирую, что читатель знаком со словами XML и XSD . Что касается XML , думаю с этим проблем нет, но что касается XSD могу возникнут вопросы, что же это такое. Если коротко, то:
XSD - это язык, для описания XML . И если вы посмотрите содержимое файла содержащего это описание, то возникнет вопрос, зачем же описывать казалось бы очевидные теги вашего XML ? Но представьте, что вы интегрируетесь с какой то внешней системой, и для обмена данных хотите использовать формат XML . Так вот, XSD позволяет описать для каждого элемента его именя, возможные атрибуты, обязательность полей или атрибутов, дать понять, что содержимое какого то тега может содержать лишь один внутренний элемент () и не более, либо узел может иметь последовательность элементов (< a> ... ). Когда внешняя система является вашей, тогда проблем может не возникнуть, но когда это сторонняя организация, тогда данное описание через XSD , будет инструментом урегулирования споров с форматом, а так же, используя утилиты, можно проверить соответствие любой XML изначальному формату.
Итак, что же мы будем делать, для того, что бы научиться штамповать XML на основе вашего эталона? Опишу всё по порядку.

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

< catalog > < book id = " bk101 " > < author > Gambardella, Matthew < title > XML Developer"s Guide < genre > Computer < price > 44.95 < publish_date > 2000-10-01 < description > An in-depth look at creating applications with XML. < book id = " bk102 " > < author > Ralls, Kim < title > Midnight Rain < genre > Fantasy < price > 5.95 < publish_date > 2000-12-16 < description > A former architect battles corporate zombies, an evil sorceress, and her own childhood to become queen of the world.

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

  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 , в поставке которого, идет данное приложение. К сожалению, на данный момент ни одна из студий в своем комплекте не содержит этой утилиты.

Ссылка для скачивания и установки одного из SDK :
Windows SDK for Windows 7 and .NET Framework 4 .

Воспользуемся поиском, и найдем файл 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, содержимое которого приведено ниже в сжатом виде:


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

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

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

Private void Example() { // Создание первой книги var book1 = new catalogBook () { author = "King" , description = "Very interesting book" , genre = "Fantasy" , price = 22.ToString(), id = "42011" , title = "It" }; // Создание второй книги var book2 = new catalogBook () { author = "O"Brien, Tim" , description = "Microsoft"s .NET initiative is explored in detail in this deep programmer"s reference." , genre = "Computer" , price = 36.ToString(), id = "30012" , title = "Microsoft .NET: The Programming Bible" }; // Создание корневого элемента каталога, содержащего две книги выше var catalog = new catalog () { Items = new { book1, book2 } }; // Содержит XML объекта catalog var xmlCatalog = Serialize(catalog); // Записываем строку в файл // TODO Сделано для демонстрации. Желательно вызывая метод Serialize передавать Stream к файлу File .WriteAllText("Output.xml" , xmlCatalog); } private string Serialize(TType sourceObject) { if (sourceObject == null ) { return string .Empty; } // Используем XmlSerializer для перобразования в XML строку var xmlserializer = new XmlSerializer (typeof (TType )); var stringWriter = new StringWriter (); using (var writer = XmlWriter .Create(stringWriter, new XmlWriterSettings () { Indent = true })) { xmlserializer.Serialize(writer, sourceObject); return stringWriter.ToString(); } } После запуска и открытия Output.xml можно увидеть, что мы сохранили так, как мы хотели (Нижний файл - "Созданный кодом ").