17321

Основы XML

Лекция

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

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

Украинкский

2013-06-30

470 KB

20 чел.

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>


 

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

69355. Загальна характеристика системи фінансових розрахунків з позиції обробки даних 153.5 KB
  Державне регулювання бюджетної системи здійснюють: Міністерство фінансів Державне казначейство Державна податкова адміністрація Державна контрольноревізійна служба Верховна Рада України Формування Державного бюджету відбувається у такі етапи...
69356. Автоматизація управління фінансами підриємств та комерційних структур 151.5 KB
  Основні функції – це функції, що пов’язані з типом підприємства чи організації: виробничі, торгові, сервісні, наукові і т.д.). Склад основних функцій не залежить від послідовності виконання технологічних ланцюжків і структури підприємства, тобто зміна структури...
69357. Автоматизація оброблення інформації у податковій сфері 189 KB
  Система оподаткування це комплекс діючіх в державі законодавче затверджених видів податків і платежів та механізм їх нарахування. В даний час існують більше двох десятків загальнодержавних обов’язкових податків і платежів ПДВ-акцизний збір-податок...
69358. Функціональне забезпечення автоматизованої системи Казначейства 134 KB
  Державне казначейство України (ДКУ) засновано в 1995 році для здійснення управління виконанням державного бюджету, моніторингу та контролю над оборотом державних фінансових ресурсів та активів. З часом функції Казначейства розширюються в напрямку обслуговування операцій місцевих бюджетів...
69359. Автоматизація оброблення інформації у страховій галузі 75.5 KB
  З утворенням недержавних страхових компаній (СК) з’явилась система страхування. Страхівник (Страхова компанія) виконує умови страхування і пропонує їх клієнтам. Якщо клієнтів влаштовують умови договору, то вони підписують договір і вносять по ньому страхові внески.
69360. Автоматизація внутрібанківських розрахункових 105 KB
  Обслуговування клієнтів банку організовується у відповідності з його організаційною структурою. Депозитний відділ. Його основною задачею є залучення засобів у банк, а у функції входять: облік депозитних засобів банку по їхній терміновості й окремих депонентах...
69361. Інформаційні системи фондового ринку 104 KB
  Учасниками фондового ринку є: емітенти цінних паперів юридичні й у деяких випадках передбачених законодавством фізичні особи що від свого імені випускають цінні папери і зобов’язуються виконувати обов’язки що випливають з умов їхнього випуску.
69362. Міжнародна електронна мережа та система електронних платежів НБУ 225.5 KB
  Для забезпечення організації і прискорення розрахунків на міжнародному рівні в НБУ застосований Центр міждержавних розрахунків. Згідно затвердженого Положення про Центр міждержавних розрахунків його основними завданнями є: прискорення міжнародних...
69363. Характеристика автоматизованих інформаційних систем 70.5 KB
  Існують інформаційна промисловість і національні інформаційні ресурси відбувається перехід від індустріальної економіки до економіки що ґрунтується на інформації. Під інформаційною технологією розуміють комплекс методів і процедур які реалізують функції збору...