17321

Основы XML

Лекция

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

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

Украинкский

2013-06-30

470 KB

17 чел.

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>


 

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

40661. Стратегии предприятия и процесс их разработки 64 KB
  Стратегии предприятия и процесс их разработки. Определение стратегии для фирмы принципиально зависит от конкретной ситуации в которой находится фирма. Однако существуют некоторые общие подходы к формулированию стратегии и некоторые общие рамки в которые вписываются стратегии. Такое понимание стратегии справедливо только при рассмотрении на верхнем уровне управления организации.
40662. Функция фирмы, измерение результатов производственной деятельности 40.5 KB
  Функция фирмы измерение результатов производственной деятельности. Коуз считают что появление фирмы объясняется необходимостью уменьшения трансакционных внешних издержек. Деятельность фирмы характеризуют: функции принципы целевая направленность оптимальный размер. Основные функции фирмы: мобилизующая состоящая в объединении различных факторов производства для создания благ и услуг; производственная связана с рациональным использованием ресурсов; инвестиционная связана с инвестированием денежных средств в развитие основного...
40663. Рынок труда. Региональные особенности рынка труда в современной России 38.5 KB
  Рынок труда. Региональные особенности рынка труда в современной России. Специфика рынка труда во многом определяется особенностями того товара который на нем представлен. Поэтому на рынке труда продается и покупается не сам труд а услуги труда количество и качество которых зависят от многих факторов уровня профессиональной подготовки работника его квалификации опыта добросовестности и других.
40664. Инфляция: особенности российской инфляции и антиинфляционная деятельность государства 115 KB
  Инфляция: особенности российской инфляции и антиинфляционная деятельность государства. Сущностью инфляции является дисбаланс между совокупным предложением и совокупным спросом в сторону превышения последнего сложившийся одновременно на всех рынках на товарном денежном и рынке ресурсов. Это открытая форма инфляции. Некоторые экономисты полагают что дефицит это антипод открытой инфляции: если отпустить цены то дефицит быстро исчезнет но за это придется заплатить повышением общего уровня цен.
40665. Социальная политика государства 35 KB
  Исходя из приоритета анализа экономики необходимо прежде всего остановиться на регулировании доходов непосредственных Участников хозяйственной деятельности. Дело в том что внутренние механизмы рыночной саморегуляции и распределения доходов не могут быть признаны социально удовлетворительными. Требуется государственное вмешательство с целью корректировки системы распределения и перераспределения доходов в обществе. При этом необходимо сознавать что регулирование доходов отношения найма занятости относятся не только к сфере...
40666. Многообразие форм собственности в рыночной экономике 49.5 KB
  Многообразие форм собственности в рыночной экономике. Так человек обладая собственностью на свою рабочую силу и вступая в отношения найма присваивает заработную плату и тем самым реализует экономическое отношение собственности. Право собственности закрепляет фиксирует и регулирует отношения людей к вещам и в этом смысле оно всегда производно от экономических отношений собственности. Но в то же время оно выступает и предпосылкой экономического присвоения ибо закрепленное право собственности на любые блага открывает путь к экономической...
40667. Конкуренция как условие функционирования рыночной экономики. Виды конкуренции 46 KB
  Конкуренция как условие функционирования рыночной экономики. Конкуренция это соперничество товаропроизводителей за выгодные условия хозяйствования и получение максимальной прибыли. Конкуренция основана на частной собственности и хозяйственной самостоятельности. По форме конкуренция представляет систему норм правил и методов хозяйствования рыночных субъектов.
40668. Основные методы государственного регулирования рыночной экономики 37.5 KB
  Впервые комплексный анализ экономической политики государства был проведен в 1952 г. Согласно Тинбергену вопервых правительственные органы должны выбрать конечные цели экономической политики и сформулировать их что обычно делается в терминах максимизации функции общественного благосостояния. Важнейшая проблема на которой остановился Тинберген соответствие между количеством целей и количеством инструментов при проведении экономической политики. Тинберген сделал вывод что политики могут достичь обеих целей тогда когда количество...
40669. Социальная ориентация рыночной экономики. Формы и методы ее осуществления 39.5 KB
  Нельзя забывать что подавляющая часть общества живет за счет труда. Поэтому в отношении человека как носителя рабочей силы задача заключается в превращении труда в творческую деятельность и более полное использование личностного потенциала. Необходимо постепенное высвобождение человека труда от выполнения исключительно исполнительной функции. В отношении подобного рода производств важное значение имеют новаторские формы организации труда позволяющие преодолеть рутинность монотонность труда и отсутствие его связи с конечными результатами.