Язык XML - Описание технологии. XML - Синтаксис

Стандартом определены два уровня правильности документа XML:

  • Правильно построенный (Well-formed). Правильно построенный документ соответствует всем общим правилам синтаксиса XML, применимым к любому XML-документу. И если, например, начальный тег не имеет соответствующего ему конечного тега, то это неправильно построенный документ XML. Документ, который неправильно построен, не может считаться документом XML; XML-процессор (парсер) не должен обрабатывать его обычным образом и обязан классифицировать ситуацию как фатальная ошибка .
  • Действительный (Valid). Действительный документ дополнительно соответствует некоторым семантическим правилам. Это более строгая дополнительная проверка корректности документа на соответствие заранее определённым, но уже внешним правилам, в целях минимизации количества ошибок, например, структуры и состава данного, конкретного документа или семейства документов. Эти правила могут быть разработаны как самим пользователем, так и сторонними разработчиками, например, разработчиками словарей или стандартов обмена данными. Обычно такие правила хранятся в специальных файлах - схемах, где самым подробным образом описана структура документа, все допустимые названия элементов, атрибутов и многое другое. И если документ, например, содержит не определённое заранее в схемах название элемента, то XML-документ считается недействительным ; проверяющий XML-процессор (валидатор) при проверке на соответствие правилам и схемам обязан (по выбору пользователя) сообщить об ошибке.

Данные два понятия не имеют достаточно устоявшегося стандартизированного перевода на русский язык, особенно понятие valid , которое можно также перевести, как имеющий силу , правомерный , надёжный , годный , или даже проверенный на соответствие правилам, стандартам, законам . Некоторые программисты применяют в обиходе устоявшуюся кальку «Валидный ».

Синтаксис XML

В этом разделе рассматривается лишь правильное построение документов XML, то есть их синтаксис.

XML - это иерархическая структура, предназначенная для хранения любых данных, визуально структура может быть представлена как дерево . Важнейшее обязательное синтаксическое требование - то, что документ имеет только один корневой элемент (root element) (альтернативно называемый элементом документа ). Это означает, что текст или другие данные всего документа должны быть расположены между единственным начальным корневым тегом и соответствующим ему конечным тегом.

Следующий простейший пример - правильно построенный документ XML: Это книга: "Книжечка" Первая строка XML-документа называется объявлением XML (XML declaration) - это необязательная строка, указывающая версию стандарта XML (обычно это 1.0), также здесь может быть указана кодировка символов и внешние зависимости. Спецификация требует, чтобы процессоры XML обязательно поддерживали Юникод -кодировки UTF-8 и UTF-16 (UTF-32 не обязателен). Признаются допустимыми, поддерживаются и широко используются (но не обязательны) другие кодировки, основанные на стандарте ISO/IEC 8859 , также допустимы другие кодировки, например, русские Windows-1251 , KOI-8 .

Комментарий может быть размещен в любом месте дерева. XML комментарии размещаются внутри пары тегов . Два знака дефис (--) не могут быть применены ни в какой части внутри комментария.

Ниже приведён пример простого кулинарного рецепта, размеченного с помощью XML:

Простой хлеб Мука Дрожжи Тёплая вода Соль

Структура

Остальная часть этого XML-документа состоит из вложенных элементов , некоторые из которых имеют атрибуты и содержимое . Элемент обычно состоит из открывающего и закрывающего тегов, обрамляющих текст и другие элементы. Открывающий тег состоит из имени элемента в угловых скобках, например, « »; закрывающий тег состоит из того же имени в угловых скобках, но перед именем ещё добавляется косая черта, например, « ». Содержимым элемента (content) называется всё, что расположено между открывающим и закрывающим тегами, включая текст и другие (вложенные) элементы. Ниже приведён пример XML-элемента, который содержит открывающий тег, закрывающий тег и содержимое элемента:

Замесить ещё раз, положить на противень и поставить в духовку.

Мука

В приведённом примере у элемента « ingredient » есть два атрибута: « amount », имеющий значение «3», и « unit », имеющий значение «стакан». С точки зрения XML-разметки, приведённые атрибуты не несут никакого смысла, а являются просто набором символов.

Кроме текста, элемент может содержать другие элементы:

Смешать все ингредиенты и тщательно замесить. Закрыть тканью и оставить на один час в тёплом помещении. Замесить ещё раз, положить на противень и поставить в духовку.

В данном случае элемент « Instructions » содержит три элемента « step ». XML не допускает перекрывающихся элементов. Например, приведённый ниже фрагмент некорректен, так как элементы « em » и « strong » перекрываются.

Обычный акцентированный выделенный и акцентированный выделенный

Каждый XML-документ должен содержать в точности один корневой элемент (root element или document element ), таким образом, следующий фрагмент не может считаться корректным XML-документом.

Сущность №1 Сущность №2

Для обозначения элемента без содержания, называемого пустым элементом , необходимо применять особую форму записи, состоящую из одного тега, в котором после имени элемента ставится косая черта. Если в DTD элемент не объявлен пустым, но в документе он не имеет содержания, для него допускается применять такую форму записи. Например:

В XML определены два метода записи специальных символов: ссылка на сущность и ссылка по номеру символа. Сущностью (entity) в XML называются именованные данные, обычно текстовые, в частности, спецсимволы. Ссылка на сущность (entity references) указывается в том месте, где должна быть сущность и состоит из амперсанда (« & »), имени сущности и точки с запятой (« ; »). В XML есть несколько предопределённых сущностей, таких как « lt » (ссылаться на неё можно написав « < ») для левой угловой скобки и « amp » (ссылка - « & ») для амперсанда, возможно также определять собственные сущности. Помимо записи с помощью сущностей отдельных символов, их можно использовать для записи часто встречающихся текстовых блоков. Ниже приведён пример использования предопределённой сущности для избежания использования знака амперсанда в названии:

AT&T

Полный список предопределённых сущностей состоит из & («&»), < («<»), > («>»), " («"»), и " («"») - последние две полезны для записи разделителей внутри значений атрибутов. Определить свои сущности можно в DTD -документе.

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

Ссылка по номеру символа (numeric character reference) выглядит как ссылка на сущность, но вместо имени сущности указывается символ # и число (в десятичной или шестнадцатеричной записи), являющееся номером символа в кодовой таблице Юникод . Это обычно символы, которые невозможно закодировать напрямую, например, буква арабского алфавита в ASCII -кодированном документе. Амперсанд может быть представлен следующим образом:

AT&T

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

История

Годом рождения XML можно считать 1996 год , в конце которого появился черновой вариант спецификации языка, или , когда эта спецификация была утверждена. А началось всё с появления в 1986 году языка SGML.

SGML (Standard Generalized Markup Language - стандартный обобщённый язык разметки) заявил о себе как гибкий, комплексный и всеохватывающий мета-язык для создания языков разметки. Несмотря на то, что понятие гипертекста появилось в 1965 году (а основопологающие принципы сформулированы в 1945 году ), SGML не имеет гипертекстовой модели. Создание SGML можно с уверенностью назвать попыткой объять необъятное, так как он объединяет в себе такие возможности, которые крайне редко используются все вместе. В этом и состоит его главный недостаток - сложность и, как следствие, дороговизна этого языка ограничивает его использование только крупными компаниями, которые могут позволить себе купить соответствующее программное обеспечение и нанять высокооплачиваемых специалистов. Кроме того, у небольших компаний редко возникают настолько сложные задачи, чтобы привлекать к их решению SGML.

Наиболее широко SGML применяется для создания других языков разметки, именно с его помощью был создан язык разметки гипертекстовых документов - HTML , спецификация которого была утверждена в 1992 году . Его появление было связано с необходимостью организации стремительно увеличивающегося массива документов в сети Интернет. Бурный рост количества подключений к Интернету и, соответственно, Web -серверов повлек за собой такую потребность в кодировке электронных документов, с которой не мог справиться SGML вследствие высокой трудности освоения. Появление HTML - очень простого языка разметки - быстро решило эту проблему: лёгкость в изучении и богатство средств оформления документов сделали его самым популярным языком для пользователей Интернет. Но, по мере роста количества и изменения качества документов в Сети, росли и предъявляемые к ним требования, и простота HTML превратилась в его главный недостаток. Ограниченность количества тегов и полное безразличие к структуре документа побудили разработчиков в лице консорциума W3C к созданию такого языка разметки, который был бы не столь сложен, как SGML, и не настолько примитивен, как HTML. В результате, сочетая в себе простоту HTML, логику разметки SGML и удовлетворяя требованиям Интернет, появился на свет язык XML.

Сильные и слабые стороны

Достоинства

Недостатки

  • Неоднозначность моделирования.
  • XML не содержит встроенной в язык поддержки типов данных . В нём нет строгой типизации, то есть понятий «целых чисел», «строк», «дат», «булевых значений» и т. д.
  • Иерархическая модель данных , предлагаемая XML, ограничена по сравнению с реляционной моделью и объектно-ориентированными графами и сетевой моделью данных.

Отображение XML во Всемирной паутине

Наиболее распространены три способа преобразования XML-документа в отображаемый пользователю вид:

  1. Применение стилей CSS ;
  2. Применение преобразования XSLT ;
  3. Написание на каком-либо языке программирования обработчика XML-документа.

Без использования CSS или XSL XML-документ отображается как простой текст в большинстве Web-браузеров. Некоторые браузеры, такие как Internet Explorer , Mozilla и Mozilla Firefox отображают структуру документа в виде дерева, позволяя сворачивать и разворачивать узлы с помощью нажатий клавиши мыши.

Применение стилей CSS

Процесс аналогичен применению CSS к HTML документу для отображения.

Для применения CSS при отображении в браузере, XML документ должен содержать специальную ссылку на таблицу стилей. Например:

Это отличается от подхода HTML, где используется элемент .

Применение преобразования XSLT

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

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

Элементы могут также содержать имена и значения атрибутов, которые предоставляют дополнительную информацию о содержимом. Дополнительные сведения см. в разделе Атрибуты .

Имена элементов

У каждого элемента должно быть имя. Имена элементов учитывают регистр и должны начинаться с буквы или символа подчеркивания. Имя элемента может содержать буквы, цифры, дефисы, символы подчеркивания и точки.

Примечание

Двоеточия зарезервированы для использования с пространствами имен.Дополнительные сведения о том, какие символы Юникод являются допустимыми буквами и цифрами, см. в приложении Б спецификации XML.

Начальные, конечные и пустые теги

Теги устанавливают границы вокруг содержимого элемента, если таковое имеется.

Начальные теги показывают, где начинается элемент, и используют следующую синтаксическую конструкцию:

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

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

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

Peter Kress

В данном случае элемент Содержит два других элемента, и , а также разделяющий их пробел. Элемент содержит текст Peter, а элемент - текст Kress.

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

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

Отношения между элементами

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

Stephanie Bourne

Stephanie Bourne

Примечание

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

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

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

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

Метафоры семейных отношений предоставляют больше различных уровней для описания отношений. Единственные узлы-сестры - , и ; все они содержатся в элементе . Элемент является родителем для элементов , и ; элементы , и являются дочерними для элемента . Точно так же, элемент - родитель элемента , а элемент - дочерний для элемента , в то время как элемент является родителем элемента , а элемент - дочерним элементом для элемента .

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

Корректно сформированным называется документ, отвечающий минимальному набору критериев соответствия для ХМL-документа. Корректно сформированный XML-документ может содержать комментарии, инструкции по обработке, пробелы.

В самом начале идёт заголовок XML-документа . Заголовок в примере является универсальным, единственное, что кодировка иногда бывает разной

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

После секции DOCTYPE идёт тело XML-документа . Здесь всё аналогично синтаксису языка HTML, то есть имеются теги (они же элементы), они имеют атрибуты, а также внутренние теги. Но в отличии от HTML, здесь Вы сами придумываете названия элементов, также в XML очень строгий синтаксис, то есть не должно быть никаких незакрывающих тегов или пропущенных кавычек в значениях атрибутов у тегов.

Обратите внимание на то, как используются описанные нами в секции CDATA сущности. Если требуется вывести какой-нибудь спецсимвол, например, & или < , то необходимо использовать соответствующие зарезервированные сущности.

Что касается взаимосвязи между различными элементами. Есть 5 видов связей:

  • Родитель. Родителем для заданного является тот элемент, который находится ровно на 1 уровень выше.
  • Дочерний элемент. Противоположность родителю. Дочерним элементом является тот, который находится ровно на 1 уровень ниже и находится внутри заданного элемента. Обратите внимание, что родитель всегда один, тогда как дочерних элементом может быть много.
  • Предок. Предком является тот элемент для заданного, который находится на более, чем 1 уровень выше.
  • Потомок. Аналогично дочернему элементу, но только элементы должны быть ниже 1-го уровня вложенности в заданный элемент.
  • Брат. Элемент называется братом другому элементу, если он находится на том же уровне, что и другой. Безусловно, помимо одного уровня требуется и наличие общего родителя.

XML-документ состоит из двух основных частей: пролога и корневого элемента, как показано на рисунке 2.1.



Рис. 2.1

Пролог

В данном примере документа пролог состоит из трех строк:

Первая строка представляет собой объявление XML, указывающее на то, что это XML-документ и содержащее номер версии. (На момент создания курса последняя версия XML имела номер 1.0.) Объявление XML не является обязательным, хотя спецификация требует его включения. Если вы включаете XML-объявление, оно должно находиться в начале документа.

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

Третья строка пролога представляет собой комментарий. Добавление комментариев в XML-документ не обязательно, но позволяет сделать его более понятным. Комментарий начинается с символов . Между этими двумя группами символов вы можете поместить любой текст (за исключением -->); XML-процессор проигнорирует его.

Пролог может также содержать следующие необязательные компоненты:

  • объявление типа документа, определяющее тип и структуру документа.
  • объявление типа документа должно следовать после XML-объявления;
  • одна или несколько инструкций по обработке, содержащих информацию о порядке проходов при обработке приложения XML-процессором.

Корневой элемент

Второй основной частью XML-документа является единый корневой элемент , который в свою очередь содержит дополнительные элементы.

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

В рассматриваемом примере корневой элемент – INVENTORY. Его начальный тег – , конечный тег – , а содержимое – восемь вложенных элементов BOOK.

Примечание. Текст в XML-документе представляет собой перемежающиеся символьные данные и данные, относящиеся к разметке. Разметка – это текст, ограниченный разделителями и описывающий структуру документа. А именно, начальный и конечный теги элемента, теги пустого элемента, объявления типа документа, инструкции по обработке, ограничители раздела CDATA, символьные ссылки, ссылки на примитивы (entity). Остальной текст представляет собой символьные данные – реальное информационное содержимое документа (в нашем примере это названия, фамилии авторов, цена и другая информация о книге).

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

В свою очередь, каждый элемент BOOK содержит ряд вложенных элементов, как показано на рисунке 2.2.



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

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

Язык разметки XML описывает, а также структурирует содержание файла XML. Основа языка разметки – тэг, который ограничивает разделы содержания. Данный способ описания документа очень похож на разметку HTML, однако между этими языками существует большая разница.

Приведем небольшой пример, написанный как на HTML, так и на XML.

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

HTML

XML

< Table border = 0 >

< tr >

< td >

< H1 align =” center ”> Этот текст находится внутри HTMLh1 >

< hr size = 1 >

td >

tr >

table >

< table border =” 0 ”>

< tr >

< td >

< h1 align =” center ”> Этот текст находится внутри XMLh1 >

< hr size =” 1 ”/>

td >

tr >

table >

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

.

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


- в HTML такое написание допустимо, в XML элемент линии должен иметь закрывающий тэг:
).

Имена и символы

Символы в языке XML представляют собой числа, определенные в наборе символов 16-bit+ Unicode 2.1. Данный способ кодирования соответствует стандарту ISO/IEC 10646, описанному на сайте по адресу: //www.iso.ch .

Имена

В языке XML все имена должны начинаться с буквы, символа нижнего подчеркивания (_) или двоеточия (:) и продолжаться только допустимыми для имен символами. К числу последних относятся все вышеперечисленные символы, а также цифры, знак дефиса (-) или точки (.). Имена не могут начинаться со строк “xml”, “XML”, “xML”, “xmL”, “XMl”, “Xml”, “XmL”.

Пример. Это правильные имена: Book, BOOK, myname: Catalog, Книга.

Это не правильные имена: -BOOK, 101Далматинец, XMLForever, Лена+Петя=Любовь.

Структура документа

Правильно оформленный документ XML состоит из трех главных частей:

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

Рассмотрим стандартный пример простого документа XML.

Тело

Эпилог

Рассмотрим подробнее структуру приведенную выше.

Пролог

Каждый документ XML начинается со следующего элемента: . Здесь мы объявляем, что документ является документов XML с кодировкой Windows-1251. Впрочем, кодировка может быть любая в зависимости от кодировки текста.

Итак, пролог состоит из следующих атрибутов:

  • version – обязательный атрибут, значение которого должно быть равно 1.0 для поддержки следующих версий;
  • encoding – необязательный атрибут, указывающий на кодировку документа XML. Если атрибут не указан, то по умолчанию предполагается кодировка UTF-8 или UTF-16, в зависимости от формата начальной строки “
  • standalone – необязательный атрибут, принимающий значения “yes” в случае, если в документе содержаться все требуемые декларации типа документа (Document Type Declaration), или “no”, - если декларации находятся в отдельном файле. Забегая вперед, скажу, что декларации типа документа могут находится как в самом документе XML, так и в отдельном файле одновременно, дополняя друг друга.

Декларация типа документа

Декларацию типа документа не следует путать с определением типа документа. Можно сказать, что декларация типа документа содержит внутреннее подмножество и/или ссылается на внешнее подмножество определения типа документа.

Все допустимые (valid) документы должны содержать такого рода декларации, либо ссылки на их внешний эквивалент (пример такой ссылки приведен ниже).

.

Данный элемент «говорит», что представленная структура документа XML определяется внешней декларацией books.dtd, находящейся по адресу //yourserver.com/ .

Тело

Тело состоит из элементов. Элементы – это основные строительные блоки разметки XML. Элементы могут содержать подэлементы, символьные данные, ссылки на символы, ссылки на объекты, команды PI (команды обработки), комментарии, разделы CDATA. Все данные XML, кроме комментариев, команд обработки и пустого пространства, должны содержаться внутри элементов.

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

Все элементы должны быть вложены друг в друга. Это выглядит примерно так:

< a >

< b >

…………………………………

< b >

…………………………………

Таким образом, мы получаем некую иерархическую древовидную структуру с единственным корневым узлом, называемым корнем документа. Корень в документе может быть только один. Такой принцип составления документа можно сравнить с системным реестром Windows, т.е. со структурой типа иерархическая база данных.

Для сравнения приведем два примера, как нельзя составлять документы XML.

< a >

< b >

…………………………………….

< a >

……………………………………………

< b >

…………………………………………....

Здесь все очевидно. В первом примере мы видим отсутствие вложенности тэгов, а во втором – в документе существуют два корня.

Атрибуты

Часто необходимо связать некоторую информацию с элементом, а не просто включить его в содержание последнего. Для этого существуют атрибуты. Атрибут представляет собой пару имя-значение, записанное в одном из двух форматов:

attribute_name=”attribute_value”

attribute_name=’attribute_value’

Атрибуты подчиняются тем же правилам, что и строковые константы, т.е. значения атрибутов должны быть заключены в двойные или одинарные кавычки, они могут содержать ссылки на объекты, ссылки на символы и/или текстовую информацию

Пример: . В данном случае мы имеем элемент “Book” с атрибутом “category”, значением которого является слово “Fantasy”.

Атрибут xml:space служит для указания приложению сохранять пустые пространства. Данный атрибут можно сравнить с тэгом

В HTML, используемым для сохранения
форматирования документа.

Атрибут xml:lang введен для указания приложению о существовании текста со специфической кодировкой, где надо учитывать порядок сортировки символов, способы разделения слов при полнотекстовом индексировании и т.д. Указывая данный атрибут, мы даем понять приложению, какой язык использует элемент с данным атрибутом. Значением атрибута xml:lang является специльный двухбуквенный код, обозначающий соответствующий язык: fr для французского, ja для японского. Также двухбуквенный код может сопровождаться подкодами: en-US – американский английский, az-cyrillic – азербайджанская кириллица.

Эпилог

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

В этом и заключается основная проблема эпилога.

Большинство анализаторов XML (если не все) конец документа определяют по завершающему тэгу. Соответственно, вся та часть, что находится после завершающего тэга, анализатором будет игнорирована.

По мнению Тима Брея (один из авторов рекомендации XML 1.0) эпилог является ошибкой проектирования и его не стоит использовать без необходимости. Также следует иметь в Вилу, что скорее всего эпилог не будет обрабатываться другими приложениями XML.


cddiski.ru - Ответы на вопросы. Лайфхаки и обзоры новинок