XML Extensible Markup Language суббота, 7 мая 2016 г. Хранение и передача данных Бинарные форматы Текстовые форматы Компактность Функции представления Низкая переносимость Объём Текстовые форматы Пользовательские форматы Языки разметки Standard Generalized Markup Language (SGML) Hypertext Markup Language (HTML) Extensible Markup Language (XML) Ориентирован на представление Ориентирован на данные Структура XML-документа <?xml version=“1.0”?> <корневой элемент> … <элемент> значение </элемент> … </корневой элемент> декларация Документ может содержать только один корневой элемент Декларация XML-документа <?xml version=“1.0” encoding=“UTF-8”?> Кодировка: UTF-16 UTF-8 windows-1252 windows-1251 Unicode (2 байтовый) Unicode (сокращённый) ASCII-based (1 байт) ASCII-based (1 байт) Формально корректные XML-документы Каждый открывающий тэг должен иметь соответствующий закрывающий тэг Тэги не могут перекрывать друг друга XML-документы могут иметь только один корневой элемент Имена элементов должны подчиняться соглашениям о названиях Имена элементов чувствительны к регистру XML сохраняет пробелы внутри текста Элементы XML-документа Вся информация, расположенная между первым символом открывающего тэга и последним символом закрывающего тэга называется элементом Вся информация, расположенная между открывающим тэгом и закрывающим тэгом называется содержанием элемента Вложенные элементы PCDATA Parsed Character Data Анализируемые символьные данные Атрибуты элементов Атрибуты – это простые пары имя/значение, поставленные в соответствие одному из элементов Значения атрибутов должны быть всегда заключены в двойные или одинарные кавычки <element attr1=“value1” attr2=‘value2’/> Этот элемент имеет 2 атрибута, но не имеет собственного значения, поэтому допустима сокращённая форма записи Ограничения PCDATA &amp; & &lt; < escape-последовательностями &gt; > &apos; ‘ <simple-html> <![CDATA[ <HTML> <HEAD> <TITLE>Sample HTML</TITLE> </HEAD> <BODY/> </HTML> ]]> </simple-html> &quot; “ Недопустимые символы заменяются Для временного отключения синтаксического анализатора XML предусмотрены разделы CDATA (Character Data) Структурные модели данных Вертикальная Горизонтальная Гибридная Компонентная Вертикальная модель данных <Person> <NameFirst>Остап</NameFirst> <NameAdditional>Ибрагимович</NameAdditional> <NameFamily>Бендер</NameFamily> </Person> Элементы последовательно вложены друг в друга Горизонтальная модель данных <Person NameFirst=“Остап” NameAdditional=“Ибрагимович” NameFamily=“Бендер”/> Горизонтальная модель характеризуется преимущественным использованием атрибутов. Она имеет «горизонтальную» протяжённость и не такая гибкая как вертикальная модель Очевидно, горизонтальная модель хорошо подходит для представления записей баз данных Архитектурные формы контейнеров Жёсткая Абстрактная Гибридная Жёсткая форма контейнеров <Person> <NameFirst>Остап</NameFirst> <NameAdditional>Ибрагимович</NameAdditional> <NameFamily>Бендер</NameFamily> </Person> <Person NameFirst=“Остап” NameAdditional=“Ибрагимович” NameFamily=“Бендер”/> Обе модели данных предполагают жёстко заданный набор данных Абстрактная форма <Person> <Name>Остап</Name> <Name>Ибрагим</Name> <Name>Сулейман</Name> <Name>Берта</Name> <Name>Мария</Name> <Name>Бендер</Name> <Name>Бей</Name> </Person> Составные части имени представлены в соответствии с вертикальной моделью Атрибуты в абстрактных формах <Person> <Name sequence=“1”>Остап</Name> <Name sequence=“2”>Ибрагим</Name> <Name sequence=“3”>Сулейман</Name> <Name sequence=“4”>Берта</Name> <Name sequence=“5”>Мария</Name> <Name sequence=“6”>Бендер</Name> <Name sequence=“7”>Бей</Name> </Person> Атрибуты в абстрактных формах Атрибуты используются для описания следующих характеристик: порядковый номер; тип или классификация; стандартные коды; закреплённая функция или вид деятельности; Резюме: преимущества XML Самоописывающийся язык Межплатформенное взаимодействие Повторное использование Гибкость Поддержка группы связанных стандартов W3C