17321

Основы XML

Лекция

Информатика, кибернетика и программирование

PAGE 13 Лекция 7. Основы XML План 1. Определение и структура XMLдокумента 2. Создание XMLдокумента 3. Способы отображения XMLдокумента. 4. Правила создания корректного XMLдокумента 1. Определение и структура XMLдокумента Любой документ можно представи

Украинкский

2013-06-30

470 KB

23 чел.

PAGE  13

Лекция 7. Основы XML

План

1. Определение и структура XML-документа

2. Создание XML-документа

3. Способы отображения XML-документа.

4. Правила создания корректного XML-документа

1. Определение и структура XML-документа

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

Разметка XML-документа представляет собой несколько более сложное понятие, чем в языке HTML. Это связано с тремя следующими обстоятельствами:

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

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

3. В отличие от языка HTML, разработчик XML-документов сам определяет названия тегов и, может быть, правила их интерпретации. Если такие правила присутствуют, то они отделены от непосредственно XML-кода и образуют так называемый сценарий XSLT (XSL Transformation). Иными словами, если XML-файл служит не только для хранения каких-либо данных, но и для их представления, (например, в браузере), то способы представления этих данных вынесены в отдельный XSL-файл (XSL – расширяемый язык стилей).

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

2. Создание XML-документа

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

2.1. Структура XML-документа

Как и HTML-документ, XML-документ состоит из двух частей: Заголовка (пролога) (как тег HEAD в HTML) и элемента Документ (его также называют корневым элементом).

Рассмотрим еще один пример XML-документа.

<?xml version="1.0" encoding="koi-8"?>

<notepad>

<note id="1" date="12/04/99" time="13:40">

 <subject>Важная деловая встреча</subject>

<importance/>

<text>

Надо встретиться с <person id="1625">Иваном Ивановичем</person>, предварительно

позвонив ему по телефону <tel>123-12-12</tel>

 </text>

</note>

...

<note id="2" date="12/04/99" time="13:58">

 <subject>Позвонить домой</subject>

 <text>

<tel>124-13-13</tel>

</text>

</note>

</notepad>

Вопрос. Как называется в этом примере корневой элемент?

Заголовок XML-документа

Заголовок (пролог) согласно спецификации языка XML, подчиняется следующим правилам синтаксиса:

1) заголовок должен начинаться с символов <?;

2) перед начальными символами заголовка не должно быть других символов;

3) заголовок должен заканчиваться символами ?> ;

4) после начальных символов должно стоять слово xml;

5) указание версии с помощью конструкции version =" . . . " обязательно;

6) номер версии на данный момент — 1.0;

7) номер версии должен быть заключен в кавычки.

Помимо номера версии заголовок XML- документа может включать в объявление кодировки документа, которая определяется с помощью конструкции encoding =". . . ". Например:

<?xml version="1.0" encoding="koi-8"?>,

или

<?xml version="1.0" encoding="Windows-1251"?>

Элемент Документ

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

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

Важно!

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

Неверно        Верно

<tag> content </Tag>     <tag> content </tag>

<TAG> content </TAG>

tag и Tag – это разные теги в отличие от HTML!

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

<tag_name attl="l" att2="2">...</tag_name>

и

<tag_name

  attl="l" att2="2"

>

……………..

</tag_name>

3. Применение закрывающего тега всегда обязательно!

<?xml version="1.0"?>

<INVENTORY>

 <BOOK><TITLE>The Adventures of Huckleberry Finn</TITLE>

   <AUTHOR>Mark Twain</AUTHOR>

   <BINDING>mass market paperback</BINDING>

   <PAGES>298</PAGES>

   <PRICE>$5.49</PRICE>

 </BOOK>

<BOOK>

   <TITLE>Moby-Dick</TITLE>

   <AUTHOR>Herman Melville</AUTHOR>

   <BINDING>trade paperback</BINDING>

   <PAGES>605</PAGES>

   <PRICE>$4.95</PRICE>

 </BOOK>

<BOOK>

   <TITLE>The Scarlet Letter</TITLE>

   <AUTHOR>Nathaniel Hawthorne</AUTHOR>

   <BINDING>trade paperback</BINDING>

   <PAGES>253</PAGES>

   <PRICE>$4.25</PRICE>

 </BOOK>

</INVENTORY>

 

Имена элементов в XML-документе (такие как INVENTORY, BOOK и TITLE в приведенном выше примере) не являются определениями языка XML. Вы всего лишь назначаете эти имена при создании определенного документа. Для ваших элементов вы можете выбирать любые корректно заданные имена (LIST вместо INVENTORY, либо ITEM вместо BOOK).

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

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

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

3. Способы отображения XML-документа

Есть три основных способа сообщить браузеру как обрабатывать и отображать каждый из созданных XML-элементов.

  •  Таблица стилей. С помощью данного метода вы связываете таблицу стилей с XML-документом. Таблица стилей представляет собой отдельный файл, содержащий инструкции для форматирования индивидуальных XML-элементов. Вы можете использовать либо каскадную таблицу стилей (Cascading Style Sheet - CSS), которая также применяется для HTML-страниц, либо расширяемую таблицу в формате языка стилевых таблиц (Extensible Stylesheet Language - XSL), обладающую более широкими возможностями, нежели CSS, и разработанную специально для XML-документов.
  •  Связывание данных. Этот метод требует создания HTML-страницы, связывания с ней XML-документа и установления взаимодействий стандартных HTML-элементов на странице, таких как SPAN или TABLE, с элементами XML. В дальнейшем HTML-элементы автоматически отображают информацию из связанных с ними XML-элементов.
  •  Написание сценария. В этом методе вы создаете HTML-страницу, связываете ее с XML-документом и имеете доступ к отдельным XML-элементам с помощью специально написанного кода сценария (JavaScript или VBScript). Браузер воспринимает XML-документ как объектную модель документа (Document Object Model - DOM), состоящую из большого набора объектов, свойств и команд. Написанный код позволяет осуществлять доступ, отображение и манипулирование XML-элементами.

Вы можете открыть XML-документ непосредственно через Internet Explorer, точно так же, как вы бы открыли HTML Web-страницу.

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

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

4. Правила создания корректного XML-документа

4.1. Определение корректного документа

Корректно сформированным (правильно оформленным, well-formed) называется документ, отвечающий минимальному набору критериев соответствия для ХМL-документа. Когда вы создаете корректно сформированный XML-документ, вы можете добавлять элементы и вводить данные непосредственно в ваш документ, как вы это делаете при создании HTML-документов. Правила создания корректного документа:

  •  Документ должен иметь только один элемент верхнего уровня (элемент Документ или корневой элемент). Все другие элементы должны быть вложены в элемент верхнего уровня.
  •  Элементы должны быть вложены упорядоченным образом. То есть, если элемент начинается внутри другого элемента, он должен и заканчиваться внутри этого элемента.
  •  Каждый элемент должен иметь начальный и конечный тег. В отличие от HTML, в XML не разрешается опускать конечный тег – даже в том случае, когда браузер в состоянии определить, где заканчивается элемент (за исключением пустых элементов – т.е. элементов, не имеющих содержимого)
  •  Имя типа элемента в начальном теге должно в точности соответствовать имени в соответствующем конечном теге. 
  •  Имена типов элементов чувствительны к регистру, в котором они набраны. В действительности весь текст внутри XML-разметки является чувствительным к регистру. Например, следующее описание элемента является неправильным, поскольку имя типа элемента в начальном теге не соответствует имени типа в конечном теге:

<TITLE>Leaves of grass</Title>  <!-- некорректный элемент -->

Вопрос. Найти ошибку в приведенной выше строке.

4.2. Составные части корректно сформированного ХМL-документа

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

Примечание.

XML-объявление в этом примере также включает в себя объявление документа автономным (standalone='yes'). Это объявление может использоваться в некоторых XML-документах с целью упростить обработку документа.

В рассматриваемом примере имеется комментарий в прологе, а также другой комментарий, следующий за элементом Документ.

4.3. Добавление элементов в документ

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

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

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

Примечание. Имя, которое содержится в начальном и конечном теге, есть тип элемента.

Каждый из элементов, вложенных в элемент BOOK, например, элемент TITLE, содержит только символьные данные, как показано на следующем рисунке.

Элементы организованы в иерархическую древовидную структуру, в которой одни элементы вложены в другие. Документ должен иметь один и только один элемент верхнего уровня - элемент Документ, или корневой элемент — а все другие элементы вложены в него.

При добавлении элемента в XML-документ вы можете выбрать любое имя типа, руководствуясь при этом следующими правилами:

  •  имя должно начинаться с буквы или с символа подчеркивания (_), после чего могут идти буквы, цифры, символы точки (.), тире (—) или подчеркивания;
  •  в спецификации XML указано, что имена типов элементов, которые начинаются с префикса «xml» (при любом сочетании строчных или прописных букв), «зарезервированы для стандартных имен».

Ниже приведены примеры неправильных определений типов

Следующие имена использовать недопустимо:

1stPlace  <!-- В качестве первого символа нельзя использовать цифру -->

В Section <!-- Пробел внутри имени не разрешается -->

B/Section <!-- Косая черта внутри имени не разрешается -->

:Chapter  <!-- Двоеточие нельзя использовать в качестве первого символа -->

A:Section <!-- двоеточие допускается, только если вы объявили А как пространство имен -->

4.4. Типы содержимого элемента

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

  •  вложенные элементы - в Листинге 3-1 элемент INVENTORY и элемент ВOOК имеют в своем содержимом вложенные элементы, как показано на рисунке;

  •  символьные данные - это текст, выражающий информационное содержание элемента, например, название определенной книги в элементе TITLE, как показано на следующем рисунке.

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

При добавлении в элемент символьных данных вы можете использовать любые символы, за исключением левой угловой скобки (<), амперсанда (&) и строки ]]>.

  •  Ссылки на общие примитивы (entity, сущности) и ссылки на символы. На следующем рисунке приведен элемент, содержащий оба вида таких ссылок.

  •  Разделы CDATA — это текстовый блок, в котором вы можете свободно размещать любые символы, за исключением строки ]]>. Пример раздела СDАТА внутри элемента, показан на следующем рисунке.

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

Пустые элементы

Вы также можете помещать пустой элемент — т.е. элемент, не имеющий содержимого — в ваш документ. Пустой элемент создается путем размещения конечного тега сразу же после начального тега. Например:

<HR></HR>

Либо вы можете использовать специальный тег пустого элемента:

<HR/>

Эти нотации являются эквивалентными.


Практическое занятие № 1. Создание простого XML-документа

Методические указания к выполнению практического занятия

  1.  Создать в редакторе Блокнот файл, ввести в него листинг, представленный ниже, заменив названия книг (описать 3 книги)

<?xml version="1.0"?>

<!-- File Name: Inventory.xml -->

<INVENTORY>

  <BOOK>

     <TITLE>The Adventures of Huckleberry Finn</TITLE>

     <AUTHOR>Mark Twain</AUTHOR>

     <BINDING>mass market paperback</BINDING>

     <PAGES>298</PAGES>

     <PRICE>$5.49</PRICE>

  </BOOK>

  <BOOK>

     <TITLE>Leaves of Grass</TITLE>

     <AUTHOR>Walt Whitman</AUTHOR>

     <BINDING>hardcover</BINDING>

     <PAGES>462</PAGES>

     <PRICE>$7.75</PRICE>

  </BOOK>

  <BOOK>

     <TITLE>The Legend of Sleepy Hollow</TITLE>

     <AUTHOR>Washington Irving</AUTHOR>

     <BINDING>mass market paperback</BINDING>

     <PAGES>98</PAGES>

     <PRICE>$2.95</PRICE>

  </BOOK>

  <BOOK>

     <TITLE>The Marble Faun</TITLE>

     <AUTHOR>Nathaniel Hawthorne</AUTHOR>

     <BINDING>trade paperback</BINDING>

     <PAGES>473</PAGES>

     <PRICE>$10.95</PRICE>

  </BOOK>

  <BOOK>

     <TITLE>Moby-Dick</TITLE>

     <AUTHOR>Herman Melville</AUTHOR>

     <BINDING>hardcover</BINDING>

     <PAGES>724</PAGES>

     <PRICE>$9.95</PRICE>

  </BOOK>

  <BOOK>

     <TITLE>The Portrait of a Lady</TITLE>

     <AUTHOR>Henry James</AUTHOR>

     <BINDING>mass market paperback</BINDING>

     <PAGES>256</PAGES>

     <PRICE>$4.95</PRICE>

  </BOOK>

 </INVENTORY>

     

  1.  Сохранить его под именем Книги.xml

  1.  Отобразить XML-документ.

В Windows Explorer (Проводник), или в окне папки, дважды щелкните на имени файла Книги.xml.

  1.  Попробуйте изменить степень детализации представления элементов документа. Щелкните на символе знака минус (-) слева от начального тега, чтобы свернуть элемент, либо на знаке плюс (+) рядом со свернутым элементом, чтобы развернуть его.
  2.  Обнаружение ошибок XML в Internet Explorer

Прежде чем Internet Explorer отобразит ваш XML-документ, его встроенный синтаксический XML-анализатор (parser) просматривает содержимое документа. Если он обнаружит ошибку, Internet Explorer отобразит страницу с сообщением об ошибке, не предпринимая попытки отобразить документ. Internet Explorer отобразит страницу с сообщением об ошибке независимо от того, связан ли XML-документ с таблицей стиля.

В текстовом редакторе откройте документ .xml, созданный в предыдущем упражнении. Измените первый элемент TITLE с

<TITLE>The Adventures of Huckleberry Finn</TITLE>

на

<TITLE>The Adventures of Huckleberry Finn</Title>


 

А также другие работы, которые могут Вас заинтересовать

77705. Флэш-память. От ROM к Flash 572.5 KB
  Внимание которое уделяется флэш-памяти вполне объяснимо ведь это самый быстрорастущий сегмент полупроводникового рынка. Ежегодно рынок флэш-памяти растет более чем на 15 что превышает суммарный рост всей остальной полупроводниковой индустрии.
77706. Технологии развития современной памяти 115 KB
  Всего за несколько десятилетий в области технологий хранения данных произошли разительные перемены а появление флешпамяти без преувеличения можно назвать революцией. Сегодня принцип хранения информации в электронных устройствах конечно отличается от условных расчётов Фейнмана но размер единичного элемента хранения известен около 40 нм в коммерческих устройствах на основе флешпамяти. Технологии устройств памяти следующего поколения будут использовать новые материалы обладать временем доступа в единицы наносекунд и хранить информацию...
77707. Трёхмерная графитовая память 35.5 KB
  На сделанных сканирующим электронным микроскопом снимках видны графитовая полоска неизменённой ячейки памяти вверху и содержащей бит данных Выход нашли исследователи из Университета Райса Rice University в Хьюстоне которые показали что родственник графена графит может быть адаптирован для создания быстрых высокоёмких устройств хранения обладающих преимуществами по сравнению с флэшпамятью которой комплектуется сегодня множество мобильных устройств. Ячейки памяти могут быть расположены в виде вертикальных массивов что в...
77709. Современные тенденции развития носителей информации 697 KB
  Интерфейс IDE Что бы ни говорили сторонники SCSI широкое распространение IDEустройств на сегодняшний день свершившийся факт. В идеале каждое IDEустройство стоит подключать к отдельному каналу в этом пожалуй заключается основное преимущество SCSI. И это одно из главных преимуществ IDE перед SCSI. SCSI Smll Computer System Interfce Несмотря на кажущееся засилье устройств с интерфейсом IDE EIDE по объемам выпуска за SCSI жесткими дисками всетаки остается около 27 рынка.
77711. УСТРОЙСТВО СОВРЕМЕННЫХ МОДЕМОВ 1011.5 KB
  Эти требования приводят к тому что в отличных по конструкции модемах одни и те же методы и протоколы реализованы различными способами. Один из вариантов исполнения модема можно представить в виде изображенном на рис. Устройство современного модема: 1 порт интерфейса DTE DCE; 2 порт канального интерфейса Рис. Устройство современного модема Модем состоит из адаптеров портов канального и DTE DCE интерфейсов; универсального PU сигнального DSP и модемного процессоров; постоянного ПЗУ ROM постоянного энергонезависимого...
77712. RAID - массивы 69.5 KB
  В своей статье Cse for Redundnt rrys of Inexpensive Discs RID избыточный массив недорогих дисков они описали каким образом можно объединить несколько дешевых жестких дисков в одно логическое устройство так чтобы в результате повышались емкость и быстродействие системы а отказ отдельных дисков не приводил к отказу всей системы. С момента выхода статьи прошло уже 15 лет но технология построения RIDмассивов не утратила актуальности и сегодня. Единственное что изменилось с тех пор это расшифровка аббревиатуры RID.