440 п примеры xml файлов. XML Schema (XML схема) — описание структуры XML-документов

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

Сам по себе XML — это язык разметки, чем-то похожий на HTML, который используется на веб-страницах. Но если последний применяется только для вывода информации и её правильной разметки, то XML позволяет её структурировать определённым образом, что делает этот язык чем-то похожим на аналог базы данных, который не требует наличия СУБД.

Создавать XML-файлы можно как при помощи специализированных программ, так и встроенным в Windows текстовым редактором. От вида используемого ПО зависит удобство написания кода и уровень его функциональности.

Способ 1: Visual Studio

Вместо этого редактора кода от Microsoft можно использовать любой его аналог от других разработчиков. По факту Visual Studio является более расширенной версией обычного «Блокнота» . Код теперь имеет специальную подсветку, ошибки выделяются или исправляются автоматически, также в программу уже загружены специальные шаблоны, которые позволяют упростить создание XML-файлов больших объёмов.

Для начала работы вам нужно создать файл. Нажмите по пункту «Файл» в верхней панели и из выпадающего меню выберите «Создать…» . Откроется список, где указывается пункт «Файл» .

  • Вас перебросит в окно с выбором расширения файла, соответственно выбирайте пункт «XML-файл» .
  • В только что созданном файле уже будет первая строка с кодировкой и версией. По умолчанию прописана первая версия и кодировка UTF-8 , которые вы можете поменять в любое время. Дальше для создания полноценного XML-файла вам нужно прописать всё то, что было в предыдущей инструкции.

    По завершении работы снова выберите в верхней панели «Файл» , а там из выпадающего меню пункт «Сохранить всё» .

    Способ 2: Microsoft Excel

    Можно создать XML-файл и не прописывая код, например, при помощи современных версий Microsoft Excel , который позволяет сохранять таблицы с данным расширением. Однако нужно понимать, что в этом случае создать что-то более функциональное обычной таблицы не получится.

    Такой способ больше подойдёт тем, кто не хочет или не умеет работать с кодом. Однако в этом случае пользователь может столкнуться с определёнными проблемами при перезаписи файла в XML-формат. К сожалению, проделать операцию преобразования обычной таблицы в XML можно только на самых новых версиях MS Excel. Чтобы это сделать, используйте следующую пошаговую инструкцию:


    Способ 3: Блокнот

    Для работы с XML вполне подойдёт даже обычный «Блокнот» , однако пользователю, который не знаком с синтаксисом языка, придётся трудно, так как в нём нужно прописывать различные команды и теги. Несколько проще и значительно продуктивнее процесс будет идти в специализированных программах для редактирования кода, например, в Microsoft Visual Studio. В них есть специальная подсветка тегов и всплывающие подсказки, что значительно упрощает работу человеку, плохо знакомому с синтаксисом этого языка.

    Для этого способа не потребуется что-либо скачивать, так как в операционную систему уже встроен «Блокнот» . Давайте попробуем сделать в нём простую XML-таблицу по данной инструкции:


    Примерно так у вас должен выглядеть готовый результат:




    25
    True


    XML-компиляторы должны обработать этот код в виде таблицы с одной колонкой, где указаны данные о неком Иване Иванове.

    В «Блокноте» вполне можно сделать несложные таблицы наподобие этой, но при создании более объёмных массивов данных могут возникнуть сложности, так как в обычном «Блокноте» нет функций исправления ошибок в коде или их подсветки.

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

    В этой главе будет показано, как писать XML схемы. Также вы узнаете, что схемы можно писать разными способами.

    XML документ

    Давайте посмотрим на следующий XML документ под названием "shiporder.xml":

    John Smith Ola Nordmann

    Langgt 23
    4000 Stavanger Norway Empire Burlesque Special Edition 1 10.90 Hide your heart 1 9.90

    Приведенный выше XML документ состоит из корневого элемента shiporder с обязательным атрибутом orderid . Элемент shiporder содержит три дочерних элемента: orderperson , shipto и item . Элемент item используется дважды и содержит элемент title , необязательный элемент note , а также элементы quantity и price .

    Строка xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" говорит XML парсеру, что этот документ должен быть проверен на соответствие схеме. Строка xsi:noNamespaceSchemaLocation="shiporder.xsd" указывает, где именно находится схема (в данном случае она находится в той же папке, что и файл "shiporder.xml").

    Создание XML схемы

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

    Создадим новый файл, который назовем "shiporder.xsd". Для создания XML схемы будем просто следовать за структурой XML документа и определять каждый встреченный элемент. Начнем со стандартной XML декларации, за которой опишем элемент xs:schema , который и определяет саму схему:

    ...

    Здесь мы используем стандартное пространство имен (xs ) и URI, ассоциированный с этим пространством имен, который имеет стандартное значение http://www.w3.org/2001/XMLSchema .

    Теперь мы должны определить элемент shiporder . У этого элемента есть атрибут, и он содержит другие элементы, поэтому мы рассматриваем его как элемент составного типа. Определения дочерних элементов элемента shiporder поместим в декларацию xs:sequence , что задает жесткую последовательность подэлементов:

    ...

    Теперь определим элемент orderperson , который будет простого типа (так как он не содержит ни атрибуты, ни другие элементы). Его тип (xs:string ) имеет префикс пространства имен, ассоциированного с XML схемой, что указывает на использование предопределенного типа данных:

    Теперь нам нужно определить : shipto и item . Начнем с определения элемента shipto :

    При помощи схем мы можем определить любого элемента. В этом нам помогут атрибуты maxOccurs и minOccurs . Атрибут maxOccurs задает максимальное число вхождений элемента, а атрибут minOccurs задает минимальное число вхождений. По умолчанию значение обоих атрибутов равно 1.

    Теперь определим элемент item . Этот элемент может использоваться неограниченное число раз внутри элемента shiporder . Определить такую особенность элемента item позволяет присваивание атрибуту maxOccurs значения "unbounded" . Это означает, что элемент item может использоваться столько раз, сколько нужно автору документа. Обратите внимание, что элемент note опционален. Определим это установив атрибут minOccurs в нулевое значение:

    Теперь мы можем декларировать атрибут элемента shiporder . Поскольку это обязательный атрибут, используем определение use="required" .

    Примечание: Атрибуты должны всегда декларироваться последними:

    Вот полный код файла схемы "shiporder.xsd":

    Разделение схемы

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

    Следующий способ компоновки схемы заключается в том, что сначала определяются все элементы и атрибуты, а затем на эти определения создаются ссылки при помощи атрибута ref .

    Ниже приводится новая компоновка файла схемы ("shiporder.xsd"):

    Использование поименованых типов

    Третий способ компоновки схемы предполагает определение классов или типов, которые позволяют повторное использование определений элементов. Это становится возможным, если дать имена элементам simpleTypes и complexTypes , а затем указать на них при помощи атрибута type .

    Третий способ компоновки файла схемы ("shiporder.xsd"):

    Элемент restriction указывает на то, что тип данных является производным от типов данных из пространства имен W3C XML Schema. Таким образом, следующий фрагмент кода означает, что значение элемента или атрибута должно быть строковым:

    Однако гораздо чаще элемент restriction используется для накладывания ограничений на элементы. Посмотрите на следующие строки из приведенной выше схемы:

    Этот фрагмент кода указывает, что значение элемента или атрибута должно быть строковым, ровно шесть символов в длину, и этими символами должны быть цифры от 0 до 9.

    Порой понимание XML файла, отправляемого в кадастровую палату просто необходимо, когда чувствуешь, что надо, где то, что то исправить, да и природное любопытство у многих развито. Но… Важно . Помните, что после подписания файла ЭЦП, редактировать XML файл нельзя! Как пример из практике, при разделе участка на 300 ЗУ, девушка случайно стерла у одного из участков в адресе всего одну строчку. И все.. XML файл не проходил проверку. Искать в программе листая все записи показалось мне утомительным, тем более я знал что искать. Открыв XLM файл в тестовом редакторе поиском я нашел нужную строку и внес изменения. Но опять же повторюсь – если Вы отредактировали файл то его нужно снова переподписать ЭЦП. Итак, приступим. Я буду представлять рисунки и делать описание к ним.

    И еще одно отступление, для редактирования и удобного просмотра XML файлов я рекомендую использовать программу . Она позволит Вам увидеть структуру файла и удобно раскрасит его по значениям. Для примера я возьму электрический полотенцесушитель для ванной , ну конечно же не его -), а файл XML образование 2 ЗУ путем выдела в счет доли в праве общей собственности на ЗУ с кадастровым номером….
    Для примера, я сначала приведу рисунок свернутого XML файла с одним свернутым блоком.

    Итак, судя по счетчику строк, расположенного слева, мы имеем файл в 336 строк. Как видно из рисунка блок Свернут, значок плюс справа. Поэтому я опишу сначала построчно то, что видно из данного рисунка, а потом разберем блоки входящие в блок Так как он самый объемный.

    Мы не будем рассматривать весь файл построчно, а рассмотрим лишь те строки в которые вносятся наши данные.

    3 строка : CodeType=”014″ – вид работ, их всего два как в нашем случае – образование и “015” – уточнение. Version=”03″ – версия XML файла. GUID (Globally Unique Identifier) - статистически уникальный 128-битный идентификатор, в нашем случае наименование файла должно совпадать с этим индикатором.
    4 строка : Данные организации в которой работает кадастровый инженер, или данные самого кадастрового инженера.
    5 строка : Код организации получателя, в данном случае Управление Федеральной службы государственной регистрации, кадастра и картографии по Республике Татарстан.

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

    В принципе открывая файл в Notepad++ становится понятна вся структура XML файла. – Расположение – содержит в себе адрес. Значение в пишется когда части адреса нет к КЛАДР.

    Пример XML файла карты плана сформированного в программном продукте Полигон Карта план

    Для наиболее наглядного просмотра этого фрагмента скопируйте его и просмотрите в тестовом редакторе Notepad++, который Вы можете скачать из раздела

    Принимая средства за цель, люди разочаровываются и себе и других, в силу чего из всей их деятельности ничего не выходит, или выходит обратное тому, к чему они стремились. И. Гёте

    Для всех примеров ниже использован стандарт языка XSL. Широко применяется также более современная модификация этого стандарта - язык XSLT , детальнее про который можно прочитать в \xml\XSLTutorial или MSDN.

    Рассмотрим простой пример XML-файла (ex01.xml). Этот и остальные примеры можно найти в папке \xml\ XSLTForBeginers на диске.



    "Заметки об XSL"

    Если мы откроем этот файл в браузере Internet Explorer, то увидим тот же самый текст, который приведен выше, вместе со всеми тегами и служебной информацией. Но нам не нужны теги и служебная информация! Мы хотим видеть только ту информацию, которая относится к делу, а при помощи тегов - управлять внешним видом этой информации. Эта задача решается легко и просто: необходимо к XML-файлу добавить шаблон преобразования - XSL-файл.

    Перепишем наш XML-файл в следующем виде (ex01-1.xml).




    "Заметки об XSL"

    И создадим XSL-файл ex01-1.xsl. Текст файла приведен ниже.






    Если мы теперь откроем файл ex01-1.xsl в браузере Internet Explorer, то мы увидим, что наша задача решена, - на экране осталась только необходимая нам информация, все теги исчезли. Результат, который вы получите на экране браузера, приведен ниже.

    "Заметки об XSL"

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

    Перепишем XML-файл. Информационную часть изменять не будем, а шаблон укажем другой ex01-2.xml.




    "Заметки об XSL"

    Создадим XSL-файл ex01-2.xsl. Текст файла приведен ниже.






    Если мы теперь откроем файл ex01-2.xsl в браузере Internet Explorer, то результат будет другим.

    "Заметки об XSL"

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

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

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

    Есть и еще одно соображение, которое может быть существенным для разработчиков баз данных. Большинство современных СУБД могут форматировать результаты запроса к базе данных в виде XML-файла. То есть при построении интерфейса пользователя в рамках технологии XML и XSL мы добиваемся определенной независимости от поставщика СУБД. В части организации вывода - практически полной независимости. А эта часть весьма велика в большинстве прикладных систем, ориентированных на работу с базами данных. Конечно, помимо вывода есть еще ввод и серверная обработка бизнес-логики, но здесь вам придется искать какие-то иные решения.

    Первые шаги

    Разберем теперь более подробно первый пример. Напомним его текст.



    "Заметки об XSL"

    Первая строка информирует браузер о том, что файл имеет формат XML. Атрибут version является обязательным. Атрибут encoding не является обязательным, но если у вас в тексте есть русские буквы, то необходимо вставить этот атрибут, в противном случае XML-файл просто не будет обрабатываться, - вы получите сообщение об ошибке.

    Следующие строки - это тело XML-файла. Оно состоит из элементов, которые в совокупности образуют древовидную структуру. Элементы идентифицируются тегами и могут быть вложены друг в друга.

    Элементы могут иметь атрибуты, значения которых тоже могут обрабатываться в соответствии с шаблоном.

    На верхнем уровне XML-файла всегда находится один элемент. То есть файл вида



    "Заметки об XSL"



    "Введение в CSP"

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




    "Заметки об XSL"



    "Введение в CSP"


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

    Перейдем теперь к шаблону преобразования - к XSL-файлу. Задача XSL-файла - преобразовать дерево XML-файла в другое дерево, которое, например, будет соответствовать формату HTML и может быть изображено на экране браузера с учетом форматирования, выбора шрифтов и т. п.

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


    Рассмотрим теперь текст XSL-файла






    Первая строка файла содержит тег элемента xsl:stylesheet. Атрибуты элемента - номер версии и ссылка на пространство имен. Эти атрибуты элемента xsl:stylesheet являются обязательными. В нашем случае пространство имен - это все имена элементов и их атрибутов, которые могут использоваться в XSL-файле. Для XSL-файлов ссылка на пространство имен является стандартной.

    Заметим, что XSL-файл является одной из разновидностей XML-файлов. Он не содержит пользовательских данных, но формат его тот же самый. Файл содержит элемент верхнего уровня xsl:stylesheet, а далее идет дерево правил преобразования.

    В настоящем документе мы не будем подробно пояснять, что означает каждый элемент XSL-файла. Мы будем приводить различные примеры и показывать результат в каждом примере, что даст возможность самостоятельно сопоставить различные элементы XSL-файла и инициируемые этими элементами преобразования исходного XML-файла с пользовательской информацией. Заметьте также, что значение атрибута select и подобных со смыслом «выбрать» записывается на специальном языке XPath , о котором можно прочитать в кратце на диске \xml\XPathTutorial, а подробнее в MSDN.

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

    В первом примере мы посмотрели, как с помощью элемента xsl:value-of можно вывести в HTML-формате содержание элемента (текст, заключенный между тегами). Теперь мы посмотрим, как при помощи того же самого элемента можно вывести значение атрибута элемента.

    Рассмотрим следующий XML-файл ex02-1.xml

    Похожие статьи