
- •Предназначение xml
- •Язык xml решает проблемы
- •Создание xml-документов
- •Отображение xml-документов
- •Некоторые базовые правила xml
- •Отображение xml-документа
- •Отобразите xml-документ без таблицы стиля
- •Основной критерий для валидного документа
- •Форма записи dtd
- •Создание dtd
- •Объявление типов элементов
- •Форма записи объявления типа элемента
- •Описание содержимого элемента
- •Задание дочернего содержимого элемента
- •Форма записи объявления списка атрибутов
- •Тип атрибута
- •Задание маркерного типа
- •Лабораторная работа 2 Пространства имен xml
- •Теоретическая часть Анатомия элемента
- •Вставка элементов html в xml-документы и использование пространства имен
- •Подготовка:
- •Ситуация:
- •Задание:
- •Примечание:
- •Решение:
- •Теория Вставка элементов html в xml-документы и использование пространства имен
- •Использование одного шаблона xsl
- •Предназначение xml
- •Язык xml решает проблемы
- •Создание xml-документов
- •Отображение xml-документов
- •Некоторые базовые правила xml
- •Отображение xml-документа
- •Отобразите xml-документ без таблицы стиля
- •Основной критерий для валидного документа
- •Форма записи dtd
- •Создание dtd
- •Объявление типов элементов
- •Форма записи объявления типа элемента
- •Описание содержимого элемента
- •Задание дочернего содержимого элемента
- •Форма записи объявления списка атрибутов
- •Тип атрибута
- •Задание маркерного типа
- •Лабораторная работа 2 Пространства имен xml
- •Теоретическая часть Анатомия элемента
- •Вставка элементов html в xml-документы и использование пространства имен
- •Подготовка:
- •Ситуация:
- •Задание:
- •Примечание:
- •Решение:
- •Теория Вставка элементов html в xml-документы и использование пространства имен
- •Использование одного шаблона xsl
- •Предназначение xml
- •Язык xml решает проблемы
- •Создание xml-документов
- •Отображение xml-документов
- •Некоторые базовые правила xml
- •Отображение xml-документа
- •Отобразите xml-документ без таблицы стиля
- •Основной критерий для валидного документа
- •Форма записи dtd
- •Создание dtd
- •Объявление типов элементов
- •Форма записи объявления типа элемента
- •Описание содержимого элемента
- •Задание дочернего содержимого элемента
- •Форма записи объявления списка атрибутов
- •Тип атрибута
- •Задание маркерного типа
- •Лабораторная работа 2 Пространства имен xml
- •Теоретическая часть Анатомия элемента
- •Вставка элементов html в xml-документы и использование пространства имен
- •Подготовка:
- •Ситуация:
- •Задание:
- •Примечание:
- •Решение:
- •Теория Вставка элементов html в xml-документы и использование пространства имен
- •Использование одного шаблона xsl
- •Лабораторная работа 5 Вывод документа xml в Internet Explorer с использованием dom xml
- •3.2. Реализация dom xml в Internet Explorer
- •3.3. Фундаментальные типы узлов dom для xml
- •3.3.1. Узлы NodeList и NamedNodeMap
- •3.3.2. Узел Node
- •3.3.3. Узел Document
- •3.3.4. Узел DocumentFragment
- •3.3.5. Узел Element
- •3.3.6. Узел Attr
- •3.3.7. Узел Comment
- •3.3.8. Узел Text
- •4. Порядок выполнения работы
- •Вариант 2-01
- •Вариант 2-02
- •Вариант 2-03
- •Вариант 2-04
- •Вариант 2-05
- •Вариант 2-06
- •Вариант 2-07
- •Вариант 2-08
- •Вариант 2-09
- •Вариант 2-10
- •Вариант 2-11
- •Вариант 2-12
- •Вариант 2-13
- •Вариант 2-14
- •Вариант 2-15
- •Вариант 2-16
- •Вариант 2-17
- •Вариант 2-18
- •Вариант 2-19
- •Вариант 2-20
- •Вариант 2-21
- •Вариант 2-22
- •Вариант 2-23
- •Вариант 2-24
- •Вариант 2-25
- •Вариант 2-26
- •Вариант 2-27
- •Вариант 2-28
- •Вариант 2-29
- •Вариант 2-30
- •5. Содержание отчета
- •6. Вопросы для самоконтроля
Теория Вставка элементов html в xml-документы и использование пространства имен
Хотя вы можете использовать таблицы каскадных стилей для добавления базовых возможностей форматирования элементов XML в ваш документ, было бы хорошо иметь возможность добавлять стандартные HTML-элементы – такие, как гиперссылки, изображения и формы – чтобы ваш документ выигрывал от применения встроенных в эти элементы функций. К счастью, когда вы отображаете ваш документ с помощью присоединенной таблицы стилей, вы можете вставить в ваш документ любой стандартный элемент HTML и заставить браузер отобразить этот элемент с использованием специальных зарезервированных для этой цели имен элементов.
Вам может показаться, что можно вставить HTML-элемент, просто присвоив XML-элементу такое же имя. Например, вставить HTML-элемент IMG, просто создав элемент IMG следующим образом:
<IMG SRC="Raven.bmp" />
Однако у браузера нет возможности узнать, что это HTML-элемент, а не обычный созданный вами XML-элемент. Чтобы подобный механизм мог работать, все имена HTML-элементов (а их много) должны были быть зарезервированы исключительно для вставки HTML-элементов. Такой подход, однако, противоречил бы духу XML, в соответствии с которым вам разрешается использовать для ваших элементов любые корректно заданные имена.
К счастью, вы можете воспользоваться соглашением XML, известным как пространство имен, которое позволяет различать конфликтующие имена. Два разных элемента могут иметь одно и то же имя, если они принадлежат разным пространствам имен.
Идентификатор пространства имен добавляется в начале имени элемента и отделяется от остальной части имени двоеточием (:), как в следующем примере:
my-namespace:MY-ELEMENT
Элемент с именем my-namespace:MY-ELEMENT и элемент с именем MY-ELEMENT могут существовать в одном и том же документе и считаются различными элементами, поскольку принадлежат отдельным пространствам имен: my-namespace:MY-ELEMENT принадлежит пространству имен my-namespace, а элемент MY-ELEMENT по умолчанию принадлежит к пространству имен документа.
Однако прежде чем вы сможете использовать пространство имен, вы должны соответствующим образом объявить его. Хотя есть несколько мест, в которых вы можете сделать объявление пространства имен, проще всего это сделать внутри начального тега элемента, для которого вы хотите использовать пространство имен. Например, вы можете объявить пространство имен my-namespace, как показано на рисунке 1.
Рис. 1.
Заметим, что при такой форме объявления пространства имен вы можете использовать пространство имен только внутри элемента, в котором вы его объявили, либо внутри любого из его дочерних элементов.
Если имя XML-элемента совпадает с именем стандартного HTML-элемента (например, IMG, A или HR ) и если он принадлежит пространству имен html, Internet Explorer 5 интерпретирует его как HTML-элемент и поместит его на отображаемую страницу. Однако если элемент не принадлежит пространству имен html, Internet Explorer 5 интерпретирует его как обычный XML-элемент.
Пространство имен html является специальным, зарезервированным пространством имен, которое объявляется следующим образом:
xmlns:html='http://www.w3c.org/TR/REC-html40/'
Вот пример XML-элемента, который указывает Internet Explorer 5 вставить HTML-элемент IMG, для которого источником изображения является файл Raven.bmp:
<html:IMG xmlns:html='http://www.w3c.org/TR/REC-html40/'
src='Raven.bmp' />
Это корректно сформированный пустой XML-элемент. Его имя включает указание пространства имен, он также имеет два атрибута. Первый атрибут объявляет пространство имен, в то время как второй атрибут является стандартным HTML-атрибутом, который вы можете включить в начальный тег HTML-элемента IMG.
Имейте в виду, что если вы вставляете HTML-элемент описанным выше способом, XML-документ должен иметь присоединенную таблицу стилей, и вы должны открыть его непосредственно в браузере (как и все XML-документы, описанные в этой лекции).
Ссылка. Официальную спецификацию пространства имен вы можете найти на Web-странице консорциума W3C по адресу http://www.w3.org/TR/REC-xml-names/.
Пример
Версия документа RAVEN, представленная в Листинге 1, иллюстрирует технику включения HTML в XML-документ. Обратите внимание, что к этому документу присоединена оригинальная версия таблицы стилей Raven.css, которая содержится в Листинге 2.
Документ включает три стандартных HTML-элемента.
Он содержит изображение, представленное следующим XML-элементом:
<html:IMG xmlns:html='http://www.w3c.org/TR/REC-html40/'
SRC='Raven.bmp' ALIGN='LEFT' />
Этот элемент помещает стандартный HTML-элемент IMG (изображение). Атрибут HTML ALIGN='LEFT' делает изображение обтекаемым и размещает его слева от последующего текста документа. Этот метод является альтернативой методу, с которым вы познакомились ранее в разделе "Отобразите обтекаемое текстом изображение".
Он делает имя автора (которое ранее содержалось в элементе AUTHOR ) гиперссылкой с помощью следующего XML-элемента (вместо элемента AUTHOR ):
<html:A xmlns:html='http://www.w3c.org/TR/REC-html40/'
HREF='http://www.edgar.com'>
Edgar Allan Poe
</html:A>
Этот элемент вставляет стандартный элемент HTML A (якорь).
Он вставляет две горизонтальные разделительные линии с использованием следующего XML-элемента:
<html:HR xmlns:html='http://www.w3c.org/TR/REC-html40/' />
Этот элемент вставляет стандартный элемент HTML HR (горизонтальная линия).
На рисунке 2 показано как Internet Explorer отображает документ.
Рис. 2.
<?xml version="1.0"?>
<!-- File Name: Raven03.XML -->
<?xml-stylesheet type="text/css" href="Raven.css"?>
<POEM>
<html:IMG xmlns:html='http://www.w3c.org/TR/REC-html40/'
SRC='Raven.bmp' ALIGN='LEFT' />
<TITLE>The Raven</TITLE>
<html:A xmlns:html='http://www.w3c.org/TR/REC-html40/'
HREF='http://www.edgar.com'>
Edgar Allan Poe
</html:A>
<DATE>1845</DATE>
<html:HR xmlns:html='http://www.w3c.org/TR/REC-html40/' />
<STANZA>
<VERSE>Once upon a midnight dreary, while I pondered, weak and weary,</VERSE>
<VERSE>Over many a quaint and curious volume of forgotten lore—</VERSE>
<VERSE>While I nodded, nearly napping, suddenly there came a tapping,</VERSE>
<VERSE>As of some one gently rapping, rapping at my chamber door.</VERSE>
<VERSE>"'Tis some visitor," I muttered, "tapping at my chamber door—</VERSE>
<VERSE>Only this, and nothing more."</VERSE>
</STANZA>
<html:HR xmlns:html='http://www.w3c.org/TR/REC-html40/' />
<STANZA>
<VERSE>Ah, distinctly I remember it was in the bleak December,</VERSE>
<VERSE>And each separate dying ember wrought its ghost upon the floor.</VERSE>
<VERSE>Eagerly I wished the morrow;—vainly I had sought to borrow</VERSE>
<VERSE>From my books surcease of sorrow—sorrow for the lost
Lenore—</VERSE>
<VERSE>For the rare and radiant maiden whom the angels name Lenore—</VERSE>
<VERSE>Nameless here for evermore.</VERSE>
</STANZA>
</POEM>