Почему при использовании скриптов, приведенных в курсе Основы XML лекция Лекция 8: Отображение XML-документов с использованием связывания данных не происходит связывания XLM документа с HTML? Отображаются пустые поля. Браузер IE11 |
Создание корректно сформированных XML-документов
Создайте различные типы элементов
- Откройте новый, пустой текстовый файл в вашем текстовом редакторе и наберите XML-документ, содержащийся в Листинге 3.2. Если хотите, можете воспользоваться документом Inventory.xml, созданным вами в "Создание и отображение вашего первого XML-документа" в качестве отправной точки.
- Воспользуйтесь командой 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.
- В 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 будет корректной только если вы объявили А как пространство имен.