Глава 4.5. Дополнительные интерфейсы базовой модели

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

4.5.1. Секция CDATA: интерфейс CDATASection

Поддержка: Internet Explorer Соответствует стандарту (XMLDOMCDATASection).
           Gecko Соответствует стандарту.

Интерфейс CDATASection реализует секции CDATA XML-документов. Он наследует все свойства и методы интерфейса Text и содержит текст секции CDATA, т. е. все, что находится между ограничителями <![CDATA[ и ]]>. Собственных свойств и методов у него нет. Основным отличием узлов данного типа от узлов типа Text является то, что при нормализации узлов методом Node.normalize соседние секции CDATA не сливаются в одну секцию.

4.5.2. Тип документа: интерфейс DocumentType

Поддержка: Internet Explorer Соответствует DOM 1 (XMLDOMDocumentType).
           Gecko Соответствует DOM 2.

Каждый объект типа Document имеет атрибут doctype, значением которого является либо null, либо объект DocumentType. Интерфейс DocumentType обеспечивает доступ ко всем разделам и нотациям, определенным для данного документа. DOM 2 не допускает редактирования узлов этого типа; они предназначены только для чтения. Интерфейс DocumentType наследует методы и свойства интерфейса Node и имеет дополнительно следующие свойства.

Свойства интерфейса DocumentType
Свойство Изменяемое Модель Описание
entities Нет DOM 1 Список деклараций разделов.
internalSubset Нет DOM 2 Внутреннее подмножество DTD.
name Нет DOM 1 Имя DTD.
notations Нет DOM 1 Список деклараций нотаций.
publicId Нет DOM 2 Публичный идентификатор DTD.
systemId Нет DOM 2 Системный идентификатор DTD.

Свойство entities

Синтаксис:  объект.entities
Изменяемое: нет
Поддержка: Internet Explorer Только для XML-документов.
           Gecko Соответствует стандарту.

Свойство entities возвращает объект типа NamedNodeMap, содержащий список всех деклараций разделов в документе, как внутренних, так и внешних. Параметрические разделы в список не включаются. Каждому разделу соответствует объект типа Entity. Пример:

alert(document.doctype.entities.length);

Свойство internalSubset

Синтаксис:  объект.internalSubset
Изменяемое: нет
Поддержка: Internet Explorer Не поддерживается.
           Gecko Соответствует стандарту.

Свойство internalSubset возвращает текст внутреннего подмножества DTD в виде строки. Фактически возвращаемое значение определяется конкретной реализацией XML-процессора. Пример:

alert(document.doctype.internalSubset);

Свойство name

Синтаксис:  объект.name
Изменяемое: нет
Поддержка: Internet Explorer Только для XML-документов.
           Gecko Соответствует стандарту.

Свойство name возвращает строку, содержащую имя DTD, т. е. имя, непосредственно следующее за ключевым словом !DOCTYPE. Пример:

alert(document.doctype.name);

Свойство notations

Синтаксис:  объект.notations
Изменяемое: нет
Поддержка: Internet Explorer Только для XML-документов.
           Gecko Соответствует стандарту.

Свойство notations возвращает объект типа NamedNodeMap, содержащий список всех деклараций нотаций в документе. Каждой нотации соответствует объект типа Notation. Пример:

alert(document.doctype.notations.length);

Свойство publicId

Синтаксис:  объект.publicId
Изменяемое: нет
Поддержка: Internet Explorer Не поддерживается.
           Gecko Соответствует стандарту.

Свойство publicId возвращает строку, содержащую публичный идентификатор внешнего подмножества DTD. Пример:

alert(document.doctype.publicId);

Свойство systemId

Синтаксис:  объект.systemId
Изменяемое: нет
Поддержка: Internet Explorer Не поддерживается.
           Gecko Соответствует стандарту.

Свойство systemId возвращает строку, содержащую системный идентификатор внешнего подмножества DTD. Пример:

alert(document.doctype.systemId);

4.5.3. Нотация: интерфейс Notation

Поддержка: Internet Explorer Соответствует стандарту (XMLDOMNotation).
           Gecko Соответствует стандарту.

Интерфейс Notation соответствует декларации нотации в DTD XML-документа. DOM 2 не допускает редактирования узлов этого типа; они предназначены только для чтения. Интерфейс Notation наследует методы и свойства интерфейса Node и имеет дополнительно следующие свойства (имя нотации хранится в свойстве nodeName).

Свойства интерфейса Notation
Свойство Изменяемое Модель Описание
publicId Нет DOM 1 Публичный идентификатор нотации.
systemId Нет DOM 1 Системный идентификатор нотации.

Свойство publicId

Синтаксис:  объект.publicId
Изменяемое: нет
Поддержка: Internet Explorer Соответствует стандарту.
           Gecko Соответствует стандарту.

Свойство publicId возвращает строку, содержащую публичный идентификатор нотации, или null, если его нет. Пример:

alert(document.doctype.notations[0].publicId);

Свойство systemId

Синтаксис:  объект.systemId
Изменяемое: нет
Поддержка: Internet Explorer Соответствует стандарту.
           Gecko Соответствует стандарту.

Свойство systemId возвращает строку, содержащую системный идентификатор нотации, или null, если его нет. Пример:

alert(document.doctype.notations[0].systemId);

4.5.4. Раздел: интерфейс Entity

Поддержка: Internet Explorer Соответствует стандарту (XMLDOMEntity).
           Gecko Соответствует стандарту.

Интерфейс Entity соответствует разделу XML-документа. DOM 2 не допускает редактирования узлов этого типа; они предназначены только для чтения. Интерфейс Entity наследует методы и свойства интерфейса Node и имеет дополнительно следующие свойства (имя раздела хранится в свойстве nodeName).

Свойства интерфейса Entity
Свойство Изменяемое Модель Описание
notationName Нет DOM 1 Имя нотации.
publicId Нет DOM 1 Публичный идентификатор раздела.
systemId Нет DOM 1 Системный идентификатор раздела.

Свойство notationName

Синтаксис:  объект.notationName
Изменяемое: нет
Поддержка: Internet Explorer Соответствует стандарту.
           Gecko Соответствует стандарту.

Свойство notationName возвращает строку, содержащую нотацию раздела для неанализируемых разделов или null, если раздел анализируемый. Пример:

alert(document.doctype.entities[0].notationName);

Свойство publicId

Синтаксис:  объект.publicId
Изменяемое: нет
Поддержка: Internet Explorer Соответствует стандарту.
           Gecko Соответствует стандарту.

Свойство publicId возвращает строку, содержащую публичный идентификатор раздела, или null, если его нет. Пример:

alert(document.doctype.entities[0].publicId);

Свойство systemId

Синтаксис:  объект.systemId
Изменяемое: нет
Поддержка: Internet Explorer Соответствует стандарту.
           Gecko Соответствует стандарту.

Свойство systemId возвращает строку, содержащую системный идентификатор раздела, или null, если его нет. Пример:

alert(document.doctype.entities[0].systemId);

4.5.5. Ссылка на раздел: интерфейс EntityReference

Поддержка: Internet Explorer Соответствует стандарту (XMLDOMEntityReference).
           Gecko Соответствует стандарту.

Интерфейс EntityReference реализует ссылки на разделы в XML-документах. Он наследует все свойства и методы интерфейса Node; собственных свойств и методов у него нет. Отметим, что специальные символы XML- и HTML-документов, которые являются частным случаем ссылок, всегда заменяются в процессе синтаксического анализа документа на соответствующие символы Unicode. Что касается остальных ссылок разделов, то момент их замены на соответствующие текстовые строки зависит от конкретного XML-процессора.

4.5.6. Директива: интерфейс ProcessingInstruction

Поддержка: Internet Explorer Соответствует стандарту (XMLDOMProcessingInstruction).
           Gecko Соответствует стандарту.

Интерфейс ProcessingInstruction соответствует директивам в XML-документах. Он наследует все свойства и методы интерфейса Node. Кроме того, он имеет следующие свойства.

Свойства интерфейса ProcessingInstruction
Свойство Изменяемое Модель Описание
data Да DOM 1 Текст директивы.
sheet Нет DOM 2 Указатель на таблицу стилей.
target Нет DOM 1 Имя директивы.

Свойство data

Синтаксис:  объект.data
Изменяемое: да
Исключения: NO_MODIFICATION_ALLOWED_ERR
Поддержка: Internet Explorer Соответствует стандарту.
           Gecko Соответствует стандарту.

Свойство data возвращает или задает строку, содержащую текст директивы, т. е. все, что содержится в ней от первого пробела до ограничителя ?>. Например, для директивы <?xml version="1.0"?> это свойство вернет строку 'version="1.0"'. Значение этого свойства совпадает со значением свойства nodeValue.

Свойство sheet

Синтаксис:  объект.sheet
Изменяемое: нет
Поддержка: Internet Explorer Не поддерживается.
           Gecko Соответствует стандарту.

Свойство sheet возвращает указатель на объект StyleSheet, соответствующий внешней таблице стилей, если это директива xml-stylesheet и если данная реализация DOM поддерживает таблицы стилей.

Свойство target

Синтаксис:  объект.target
Изменяемое: нет
Поддержка: Internet Explorer Соответствует стандарту.
           Gecko Соответствует стандарту.

Свойство target возвращает строку, содержащую имя директивы, т. е. все, что содержится в ней до первого пробела. Например, для директивы <?xml version="1.0"?> это свойство вернет строку 'xml'.