Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практика XML_часть 1.doc
Скачиваний:
2
Добавлен:
01.07.2025
Размер:
326 Кб
Скачать
☆

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

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

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

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

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

Некоторые базовые правила xml

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

  • Документ должен иметь только один элемент верхнего уровня (элемент Документ или корневой элемент). Все другие элементы должны быть вложены в элемент верхнего уровня.

  • Элементы должны быть вложены упорядоченным образом. То есть, если элемент начинается внутри другого элемента, он должен и заканчиваться внутри этого элемента.

  • Каждый элемент должен иметь начальный и конечный тег. В отличие от HTML, в XML не разрешается опускать конечный тег – даже в том случае, когда браузер в состоянии определить, где заканчивается элемент.

  • Имя типа элемента в начальном теге должно в точности соответствовать имени в соответствующем конечном теге.

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

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

Отображение XML-документа

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

Открыв файл Inventory.xml, в браузере вы увидите структуру документа (рис. 2), нажав на символ знака минус (-) слева от начального тега, чтобы свернуть элемент, либо на знаке плюс (+) рядом со свернутым элементом, можно детализировать структуру документа (рис. 3).

Рисунок 2 – Отображение XML-документ в браузере

Рисунок 3 – Изменение степени детализации XML-документа

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

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

  • Отображать каждый элемент BOOK с отступом сверху в 12 пт (margin-top:12pt) с переводом строки сверху и снизу (display:block), используя размер шрифта 10 пт (font-size:10pt).

  • Отображать каждый элемент TITLE курсивом (font-style:italic).

  • Отображать каждый элемент AUTHOR полужирным (font-weight:bold).

Созданную CSS-таблицу сохраним в файл с именем Inventory01.css.

Листинг файла Inventory01.css

/* File Name: Inventory01.css */

BOOK

{display:block;

margin-top:12pt;

font-size:10pt}

TITLE

{font-style:italic}

AUTHOR

{font-weight:bold}

Далее отредактируем наш файл Inventory.xml, добавим в конце пролога документа (непосредственно над элементом INVENTORY) следующую инструкцию по обработке:

<?xml-stylesheet type="text/css" href="Inventory01.css"?>

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

Чтобы отразить новое имя файла, которое вы собираетесь присвоить, измените комментарий в начале документа с

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

на

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

Листинг файла Inventory01.xml

<?xml version="1.0"?>

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

<?xml-stylesheet type="text/css" href="Inventory01.css"?>

<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>

</INVENTORY>

В браузере xml-документ отобразится в виде, показаном на рис. 4.

Рисунок 4 – отображение XML-документа с помощью таблицы CSS

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

Например, мы хотим отформатировать наш документ следующим образом:

  • Отображать каждый элемент BOOK с отступом сверху в 12 пт (margin-top:12pt) и с переводом строки сверху и снизу (display:block), используя размер шрифта 10 пт (font-size:10pt).

  • Отображать каждый из элементов TITLE, AUTHOR, BINDING и PRICE в отдельной строке (display:block).

  • Отображать элемент TITLE шрифтом с размером 12 пт (font-size:12pt), полужирным (font-weight:bold), курсивом (font-style:italic). (Обратите внимание, что установка для элемента TITLE размера шрифта 12 пт превалирует над установкой размера 10 пт для родительского элемента BOOK.)

  • отступ слева для каждого из элементов AUTHOR, BINDING и PRICE на 15 пт (margin-left:15pt).

  • Отображать элемент AUTHOR полужирным (font-weight:bold).

  • Не отображать элемент PAGES (display:none).

Созданную CSS-таблицу сохраним в файл с именем Inventory02.css

Листинг Inventory02.css

/* File Name: Inventory02.css */

BOOK

{display:block;

margin-top:12pt;

font-size:10pt}

TITLE

{display:block;

font-size:12pt;

font-weight:bold;

font-style:italic}

AUTHOR

{display:block;

margin-left:15pt;

font-weight:bold}

BINDING

{display:block;

margin-left:15pt}

PAGES

{display:none}

PRICE

{display:block;

margin-left:15pt}

В документ Inventory.xml. добавим в конце пролога документа (над элементом INVENTORY) следующую инструкцию по обработке:

<?xml-stylesheet type="text/css" href="Inventory02.css"?>

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

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

на

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

Листинг Inventory02.xml.

<?xml version="1.0"?>

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

<?xml-stylesheet type="text/css" href="Inventory02.css"?>

<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>

</INVENTORY>

Результат вывода документа Inventory02.xml показан на рисунке 5.

Рисунок 5 – Вывод Inventory02.xml

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]