XML: зачем миру Интернета еще один язык?

Таблица 1

Правило Пример
XML-документ должен начинаться с пролога. Пролог ограничивается последовательностями символов <?xml и ?>. В прологе могут указываться номер спецификации XML, которой соответствует документ (атрибут version), тип кодировки (атрибут encoding) и то, использует ли документ какие-либо внешние, не определенные в нем сущности (атрибут standalone) <?xml version=”1.0" standalone=’yes’ encoding=’UTF-8' ?> В прологе указано, что документ соответствует спецификации XML 1.0, является “самодостаточным” и описан в кодировке UTF-8 (ASCII — подмножество этой кодировки)
Основная часть XML-документа состоит из элементов. Элемент— последовательность трех частей: начальный тэг, содержимое, конечный тэг. Начальный тэг ограничивается символами < и >, содержит тип элемента (=имя элемента) и может включать атрибуты в виде пары “имя атрибута” = “значение атрибута”. Конечный тэг ограничен последовательностями символов </ и > и содержит тип элемента Элемент firm имеет содержимое QQQ Int. и атрибут okpo со значением 173234
Содержимым элемента обычно бывают: - другие элементы; - символьные данные; - комментарии. Содержимое документа также может быть пустым. Тогда начальный и конечный тэги сливаются в один, ограниченный символами < и />. Более редкий вариант содержимого — это ссылки и командные инструкции приложениям <firm okpo=173234> QQQ Int. <Manager>Иванов</Manager> </firm> Здесь в качестве содержимого элемента <firm> выступает элемент <Manager> и символьные данные с именем компании
XML-документ может содержать в себе или включать ссылку на грамматику, задаваемую в форме Document Type Definition (DTD). Такой документ будет называться валидным (=valid), в противном же случае, при соблюдении всех синтаксических правил — хорошо оформленным (=well-formatted). DTD ограничивается символами <!DOCTYPE и >. DTD описывает возможные элементы и их атрибуты с использованием двух основных тэгов: <!ELEMENT... и <!ATTLIST... <?xml version=”1.0"?> <!DOCTYPE firms SYSTEM “firms.dtd”> <firm>QQQ Int.</firm> В данном примере валидного XML-документа содержится ссылка на файл, в котором описана его грамматика
Тэг ELEMENT используется в виде <!ELEMENT Name Children >, где: Name — имя элемента; Children — элементы, которые структурно могут находиться внутри данного; существует ряд зарезервированных слов и обозначений, придающих гибкость языку: - ANY — внутри элемента может встретиться все что угодно; - EMPTY — элемент пуст; - (#PCDATA) — произвольный текст внутри элемента. Перечисление внутри скобок дочерних элементов определяет не только факт их вхождения, но и последовательность, и допустимое количество <!DOCTYPE RootElement [ <!ELEMENT owner (#PCDATA)> <!ELEMENT title (#PCDATA)> <!ELEMENT firm (title, owner+)> ]> В примере задается элемент “Фирма”, включающий название и одного или более совладельцев (символ “+” означает 1 и более). Элементы “Владелец” и “Название” представляют собой текст. Валидным для данной грамматики является XML-текст: <firm> <owner>Henry First</owner> <owner>Sam Second</owner> <title>QQQ Int.</title> </firm>
Тэг <!ATTLIST ElementName AttName Type Default> определяет возможные атрибуты конкретного элемента. Здесь: ElementName и AttName — имена элемента и определяемого атрибута; Type — тип значения атрибута. Наиболее распространен тип CDATA, но может задаваться непосредственно и множество допустимых значений; Default — это либо значение по умолчанию, если атрибут опущен, либо один из флагов вроде #REQUIRED — атрибут обязателен, или #IMPLIED — атрибут опционален <!ELEMENT Manager > <!ATTLIST Manager LastName CDATA #REQUIRED> <!ATTLIST Manager FirstName CDATA #IMPLIED> <!ATTLIST Manager Citizenship (Russia | Other) “Russia”>
Комментарии начинаются с последовательности символов <—! и заканчиваются —> <—! Это комментарий XML —>
По умолчанию анализатор должен учитывать все символы внутри элемента, в том числе и пробелы. Для изменения такого поведения элементу должен быть приписан специальный атрибут xml:space. Этот атрибут может иметь одно из двух значений: default (анализатор должен обрабатывать элемент, как обычно, то есть в соответствии с глобальными установками) или preserve (все пробелы должны сохраняться) <!ATTLIST title xml:space (default|preserve) ‘preserve’> Пример декларирования атрибута <title xml:space=default> Q Q Q Int. </title> Пример использования атрибута
Если текст документа должен содержать последовательность символов, которую анализатор может распознать как служебную (например, тэги), такая последовательность записывается в специальной секции CDATA <![CDATA[<firm>QQQ Int.</firm>]]> Здесь строка <firm>QQQ Int.</firm> определена как последовательность символов, а не элемент firm со значением QQQ Int.

Возврат


Наш канал на Youtube

1999 1 2 3 4 5 6 7 8 9 10 11 12
2000 1 2 3 4 5 6 7 8 9 10 11 12
2001 1 2 3 4 5 6 7 8 9 10 11 12
2002 1 2 3 4 5 6 7 8 9 10 11 12
2003 1 2 3 4 5 6 7 8 9 10 11 12
2004 1 2 3 4 5 6 7 8 9 10 11 12
2005 1 2 3 4 5 6 7 8 9 10 11 12
2006 1 2 3 4 5 6 7 8 9 10 11 12
2007 1 2 3 4 5 6 7 8 9 10 11 12
2008 1 2 3 4 5 6 7 8 9 10 11 12
2009 1 2 3 4 5 6 7 8 9 10 11 12
2010 1 2 3 4 5 6 7 8 9 10 11 12
2011 1 2 3 4 5 6 7 8 9 10 11 12
2012 1 2 3 4 5 6 7 8 9 10 11 12
2013 1 2 3 4 5 6 7 8 9 10 11 12
Популярные статьи
КомпьютерПресс использует