Открытие 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:
Переключаемся на вкладку(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.
Содержимое XML-документа | Содержимое XSD-схемы |
---|---|
|
|
Описание | |
В документе XMLEasy.xml элемент TOUR - корневой элемент, содержащий дочерний элемент IDTOUR. Общая схема для корневого элемента имеет следующий вид: |
|
Содержимое XML-документа | Содержимое XSD-схемы |
|
|
Описание | |
Корневой элемент TABLE
содержит элемент TOUR
, состоящий, в свою очередь, из группы дочерних элементов.
Элемент choice
определяет выбор других элементов, причем значение "unbounded" (неограниченно) атрибута maxOccurs указывает на возможность неограниченного наличия групп TOUR
. |
|
Содержимое XML-документа | Содержимое XSD-схемы |
|
Рис. 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 приводится описание основных элементов и атрибутов, которые при этом можно встретить.
Элемент | Описание |
---|---|
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 | Элемент или атрибут, который должен иметь уникальное значение |
Атрибут | Описание |
---|---|
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 .
XSD - это язык, для описания XML . И если вы посмотрите содержимое файла содержащего это описание, то возникнет вопрос, зачем же описывать казалось бы очевидные теги вашего XML ? Но представьте, что вы интегрируетесь с какой то внешней системой, и для обмена данных хотите использовать формат XML . Так вот, XSD позволяет описать для каждого элемента его именя, возможные атрибуты, обязательность полей или атрибутов, дать понять, что содержимое какого то тега может содержать лишь один внутренний элемент () и не более, либо узел может иметь последовательность элементов (< a> ... ). Когда внешняя система является вашей, тогда проблем может не возникнуть, но когда это сторонняя организация, тогда данное описание через XSD , будет инструментом урегулирования споров с форматом, а так же, используя утилиты, можно проверить соответствие любой XML изначальному формату.Итак, что же мы будем делать, для того, что бы научиться штамповать XML на основе вашего эталона? Опишу всё по порядку.
Имеется:
Какой то XML (xmlfile.xml)
, сохраненный в текстовом формате в файл. Ниже приведу текст:
xml
version
=
"
1.0
"
?>
<
catalog
>
<
book
id
=
"
bk101
"
>
<
author
>
Gambardella, Matthew
author
>
<
title
>
XML Developer"s Guide
title
>
<
genre
>
Computer
genre
>
<
price
>
44.95
price
>
<
publish_date
>
2000-10-01
publish_date
>
<
description
>
An in-depth look at creating applications
with XML.
description
>
book
>
<
book
id
=
"
bk102
"
>
<
author
>
Ralls, Kim
author
>
<
title
>
Midnight Rain
title
>
<
genre
>
Fantasy
genre
>
<
price
>
5.95
price
>
<
publish_date
>
2000-12-16
publish_date
>
<
description
>
A former architect battles corporate zombies,
an evil sorceress, and her own childhood to become queen
of the world.
description
>
book
>
catalog
>
Действия для создание нового:
- Сначала используя утилиту XSD.exe , либо воспользовавшись онлайн сервисами (искать "xml to xsd" один из них www.freeformatter.com/xsd-generator.html), мы будем создавать из имеющейся XML ее примитивное XSD описание. На выходе мы будем иметь полностью, автоматическим образом, созданный output.xsd файл, который уже подходит к использованию но может быть не полным.
- Далее, на основе output.xsd , будут созданы классы на языке C# xmlclass.cs. После чего, мы добавляем его в наш проект. Создавать класс можно используя XSD.exe, либо xsd2code утилитой, или же любым онлайн сервисом.
- Теперь мы готовы использовать классы файла xmlclass.cs . Поэтому создадим и наполним данными экземпляры xmlclass , а потом, используя процесс сериализации, будем преобразовывать объекты в XML строку, и после чего сохраним ее в новый файл. Тем самым получим XML на основе имеющегося.
Шаг 1. Создание XSD из XML.
Итак, приведу способы, которыми пользуюсь сам:- Утилита xsd.exe - создатель Microsoft .
- Утилита xsd2code.exe - стороннее приложение, которое умеет все тоже самое, что и xsd.exe , но доступно для скачивания напрямую (на данный момент стала платной с Trial периодом).
- Использование любых онлайн сервисов.
Ссылка для скачивания и установки одного из 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