17321

Основы XML

Лекция

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

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

Украинкский

2013-06-30

470 KB

21 чел.

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>


 

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

20476. Біном Ньютона 31 KB
  Запишемо його у вигляді добутку пронумерувавши дужки: Кожний доданок містить n множників: k множників a і nk множників b тобто має вигляд akbnk де k≤n k≥0.
20477. Візуальні мови проектування специфікацій 36 KB
  Складність сучасних обчислювальних систем а також висока вартість створення якісного та надійного програмного забезпечення ЕОМ стимулюють розвиток теоретично обгрунтованих методів та засобів розробки програмних систем. Особливо актуальним є застосування таких методів та засобів при об'єктноорієнтованому підході до створення програмних систем. Формалізовані візуальні мови набули широкого використання при проектуванні та розробці складних програмних систем. Об'єктноорієнтовані методи розробки програмного забезпечення широко застосовують...
20478. Властивості сполучень (Трикутник Паскаля) 25.5 KB
  Ряди трикутника Паскаля умовно пронумеровані згори починаючи з нульового й числа в нижньому ряді відносно чисел у попередньому ряді завжди розміщені ступінчасто й навскіс. Кожне число в кожному ряді одержуємо додавши два числа розміщені вгорі зліва і справа. Наприклад перше число в першому ряді 0 1 = 1 тоді як числа 1 і 3 в третьому ряді утворюють число 4 в четвертому ряді: 1 3 = 4. Правило Паскаля стверджує: якщо kй біноміальний коефіцієнт в біноміальному ряді для x yn тоді для будьякого додатного цілого n і будьякого...
20479. Графічний метод відокремлення коренів 39.5 KB
  Найчастіше в додатках використовуються трансцендентні рівняння. Для відокремлення коренів можна ефективно використати ЕОМ. Проте слід пам’ятати що дане твердження справедливе лише за умов монотонності на заданому відрізку і виборі достатньо малого кроку приросту аргументу з врахуванням характеристик. Слід аналізувати три можливості що можуть виникнути а саме: Якщо рис.
20481. Детальний розгляд критичних етапів життєвого циклу. Принципи структурного аналізу 34 KB
  Принципи структурного аналізу. Всі методології структурного аналізу базуються на ряді загальних принципів частина з яких регламентує організацію робіт на початкових етапах ЖЦ а частина використовується при виробленні рекомендацій щодо організації робіт. В якості двох базових принципів використовуються наступні: принцип розділяй і володарюй і принцип ієрархічного упорядкування. Перший є принципом вирішення важких проблем шляхом розбиття їх на безліч менших незалежних завдань легких для розуміння і вирішення.
20482. Совокупное предложение и кривая 94 KB
  Совокупное предложение базируется на производственных возможностях национальной экономики. Оно является функцией экономики от доступных на текущий момент факторов производства, технологии и уровня цен. В процессе анализа совокупного предложения важно различать совокупное предложение в краткосрочном и долгосрочном периодах.
20483. Діаграми “сутність-зв’язок”. Основні означення та терміни. Нотація Чена 55.5 KB
  Модель сутністьзв'язок ERмодель англ. Entityrelationship model або entityrelationship diagram модель даних яка дозволяє описувати концептуальні схеми за допомогою узагальнених конструкцій блоків. ERмодель це метамодель даних тобто засіб опису моделей даних. ERмодель зручна при проектуванні інформаційних систем баз даних архітектур комп'ютерних застосунків та інших систем моделей.
20484. Діаграми атрибутів. Категоризація сутностей 38 KB
  Діаграми випадків використання описують взаємозв’язки і залежності між групою випадків використання і акторами що беруть участь у процесі. Важливо зауважити що діаграми випадків використання не призначено для показу компонування вони не можуть описати внутрішню структуру системи. Діаграми випадків використання призначено для полегшення обміну інформацією між майбутніми користувачами системи і замовником вони особливо корисні для визначення переліку можливостей які повинна мати система. За діаграмами випадків використання можна...