Опубликован: 24.01.2007 | Уровень: для всех | Доступ: платный
Лекция 3:

Создание корректно сформированных XML-документов

< Лекция 2 || Лекция 3: 12345 || Лекция 4 >

Создайте различные типы элементов

  1. Откройте новый, пустой текстовый файл в вашем текстовом редакторе и наберите XML-документ, содержащийся в Листинге 3.2. Если хотите, можете воспользоваться документом Inventory.xml, созданным вами в "Создание и отображение вашего первого XML-документа" в качестве отправной точки.
  2. Воспользуйтесь командой Save (Сохранить) вашего текстового редактора, чтобы сохранить документ на жестком диске, присвоив ему имя Inventory03.xml.
    <?xml version="1.0" encoding="windows-1251" ?>
    <!-- File Name: Inventory03.xml -->
    <?xml-stylesheet type="text/css" href="Inventory02.css"?>
    <INVENTORY>
    <!--Каталог избранных произведений 
                                   американской литературы 19-го века -->
       	<BOOK>
          		<COVER_IMAGE Source="Huck.gif" />
          		<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>
          		<COVER_IMAGE Source="Leaves.gif" />
          		<TITLE>Leaves of Grass</TITLE>
          		<AUTHOR>Walt Whitman</AUTHOR>
          		<BINDING>hardcover</BINDING>
          		<PAGES>462</PAGES>
          		<PRICE>$7.75</PRICE>
       	</BOOK>
       	<BOOK>
          		<COVER_IMAGE Source="Faun.gif" />
          		<TITLE>The Marble Faun</TITLE>
          		<AUTHOR>Nathaniel Hawthorne</AUTHOR>
          		<BINDING>trade paperback</BINDING>
          		<PAGES>473</PAGES>
          		<PRICE>$10.95</PRICE>
       	</BOOK>
       	<BOOK>
          		<COVER_IMAGE Source="Moby.gif" />
          		<TITLE>
             			Moby-Dick
             			<SUBTITLE>Or, the Whale</SUBTITLE>
          		</TITLE>
          		<AUTHOR>Herman Melville</AUTHOR>
          		<BINDING>hardcover</BINDING>
          		<PAGES>724</PAGES>
          		<PRICE>$9.95</PRICE>
       	</BOOK>
    </INVENTORY>
    Листинг 3.2. Inventory03.xml

    Примечание. Созданный вами документ использует CSS с именем Inventory02.css, который вы создали в предыдущем упражнении. Проверьте, чтобы файл с этой таблицей стилей был в той же папке, что файл Inventory03.xml.

  3. В Windows Explorer или в окне папки дважды щелкните на имени ранее сохраненного файла Inventory03.xml. Internet Explorer 5 отобразит документ, как показано на рисунке 3.10.

    Документ содержит следующие типы элементов:

    • элемент с комментарием в качестве его содержимого ( INVENTORY ). Обратите внимание, что браузер не отображает текст комментария;
    • пустой элемент с именем COVER_IMAGE в начале каждого элемента BOOK. Назначение этого элемента – указать XML-приложению отобразить определенную картинку для книжной обложки. (Атрибут Source содержит имя файла картинки.) Чтобы иметь возможность использовать такой элемент, вам потребуется отобразить XML-документ на HTML-странице посредством сценария, либо с помощью XSL-таблицы стилей (об этом будет рассказано в "Отображение XML-документов с использованием сценариев объектной модели документа" и "Отображение XML-документов с использованием XSL-таблиц стилей" ), вместо того, чтобы использовать простую CSS-таблицу, как это делается в рассматриваемом примере;
    • элемент (элемент TITLE для Moby-Dick), который содержит символьные данные и дочерний элемент ( SUBTITLE ). Заметим, что браузер отображает и символьные данные, и дочерний элемент в одной строке, и в одном и том же формате. (CSS-формат, назначенный элементу TITLE, наследуется элементом SUBTITLE.)

Задание атрибутов для элементов

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

<PRICE Type="retail">$10.95</PRICE>

Следующий элемент BOOK включает два атрибута, Category и Display:

<BOOK Category="fiction" Display="emphasize">
    	<TITLE>The Marble Fauh</TITLE>
    	<AUTHOR>Nathaniel Hawthorne</AUTHOR>
    	<BINDING>trade paperback</BINDING>
    	<PAGES>473</PAGES>
    	<PRICE>$10.95</PRICE>
</BOOK>

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

<COVER_IMAGE Source="Faun.gif" />

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

Примечание. Когда вы отображаете XML-документ с использованием CSS-таблицы (данный метод будет обсуждаться в "Отображение XML-документов с использованием таблиц каскадных стилей" ), браузер не выводит атрибуты или их значения. Отображение же XML-документа с использованием связывания данных (см. "Отображение XML-документов с использованием связывания данных" ), сценария для HTML-страницы (см. "Отображение XML-документов с использованием сценариев объектной модели документа" ), либо XSL-таблицы стилей (см. "Отображение XML-документов с использованием XSL-таблиц стилей" ) дает вам возможность иметь доступ к атрибутам и их значениям, а также отображать значение или выполнять соответствующие действия.

Правила для создания атрибутов

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

  • имя должно начинаться с буквы или символа подчеркивания (_), после чего могут следовать или не следовать другие буквы, цифры, символы точки (.), тире (–) или подчеркивания;
  • спецификация XML оговаривает, что имена атрибутов, начинающиеся с префикса "xml" (в любом сочетании строчных или прописных букв), "зарезервированы для стандартного использования". Хотя для Internet Explorer 5 это ограничение значения не имеет, во избежание проблем в будущем лучше не использовать этот префикс;
  • каждое имя атрибута может только один раз присутствовать в одном и том же начальном теге или в теге пустого элемента.

Например, следующие описания имен в стартовых тегах являются допустимыми:

<ANIMATION Filename="Waldo.ani">
<LIST _1stPlace="Sam">
<ENTRY Zip.Code="94941">

Приведенные ниже имена атрибутов недопустимы:

<!-- Дублирование имени атрибута внутри одного тега: -->
<ANIMATION Filename="Waldo1.ani" Filename="Waldo2.ani">
<LIST 1stPlace="Sam">  <!-- Первый символ не может быть цифрой -->
<ITEM A:Category="cookware">  <!--B IE5 допускается, только если вы объявили А 
     как пространство имен -->

Примечание. В соответствии с XML-спецификацией двоеточие (:) в имени атрибута зарезервировано для задания пространства имен. Пространства имен дают возможность дифференцировать элементы с одними и теми же именами; этот вопрос будет обсуждаться в "Отображение XML-документов с использованием таблиц каскадных стилей" в разделе "Вставка HTML-элементов в XML-документы и использование пространств имен." Internet Explorer 5 разрешает вам использовать двоеточие в имени атрибута только в том случае, если оно следует за пространством имен, объявленным вами в документе. Например, запись A:Category будет корректной только если вы объявили А как пространство имен.

< Лекция 2 || Лекция 3: 12345 || Лекция 4 >
Максим Попов
Максим Попов

Почему при использовании скриптов, приведенных в курсе Основы XML

лекция Лекция 8: 

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

не происходит связывания XLM документа с HTML?

Отображаются пустые поля. Браузер IE11

Владислав Нагорный
Владислав Нагорный

Подскажите, пожалуйста, планируете ли вы возобновление программ высшего образования? Если да, есть ли какие-то примерные сроки?

Спасибо!

Наталья Алмаева
Наталья Алмаева
Россия
Светлана Казьмина
Светлана Казьмина
Россия, Волгодонск