Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Сериализация, XML.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
928.26 Кб
Скачать

Язык xml

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

Язык XML основан на тегах внутри угловых скобок. Но у XML нет заданного набора тегов. XML задаёт набор правил которому теги и их расположение должны соответствовать. Таким образом XML это метаязык с помощью которого можно создавать другие языки. В этих языках можно определять конкретный набор тегов. На основе XML были созданы созданы язык описаний веб служб WSDL и формат сообщений SOAP.

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

Стандарт XML является очень строгим. Хорошо сформированный документ должен соответствовать набору правил. Если документ нарушает хотя бы одно из этих правил, он не может использоваться. Несмотря на строгость правила достаточно просты.

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

Пример XML документа

<?xml version="1.0"?>

<books>

<book>

<title>Pro C# 2008</title>

<author>Troelsen</author>

<price format="dollars">59.99</price>

<pubinfo>

<publisher>Apress</publisher>

<pubdate>01/11/2007</pubdate>

</pubinfo>

</book>

<book>

</book>

</books>

Этот документ хорошо сформирован. В документе есть только один корневой элемент. Для каждого открывающего тега в документе есть закрывающий тег. Элементы полностью вложены друг в друга. Корневой элемент этого документа <books>. Внутри него находятся несколько элементов <book>. Внутри первого элемента <book> находятся четыре элемента <title>, <author>, <price> и <pubinfo>. У элемента <price> присутствует атрибут format значение которого "dollars". Внутри элементов <title>, <author> и <price> находится только текст. Внутри элемента <pubinfo> находятся два элемента <publisher> и <pubdate>. Внутри этих двух элементов находится текст. Вложенных элементов нет. Такой документ может использоваться для хранения списка книг. Для каждой книги в документе может находится название, автор, стоимость, издательство и дата выхода.

Пространства имён

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

Для решения этой проблемы можно использовать пространства имён. Пространства имён могут быть названы как угодно. Но желательно чтобы они были уникальными, иначе вероятность неоднозначтности остаётся. Поэтому настоятельно рекомендуется для названий пространств имён использовать URI организации или группы которая разработала язык.

<?xml version="1.0"?>

<b:books xmlns:b="http://SomeCompany/Books" >

<b:book>

</b:book>

</b:books>

<?xml version="1.0"?>

<books xmlns="http://SomeCompany/Books" >

<book>

</book>

</books>

Показаны примеры использования пространств имён в XML документе. В первом примере в корневом элементе <books> пространство имён "http://SomeCompany/Books" связывается в префиксом b. Теперь все названия элементов и атрибутов которые начинаются с b: будут счиаться находящимися в пространстве имён "http://SomeCompany/Books". Во втором примере задаётся пространство имён "http://SomeCompany/Books" по умолчанию. Все внутренние элементы будут считаться находящимися в простанстве имён "http://SomeCompany/Books". Нет необходимости для каждого из них использовать префикс.

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