Вход/Регистрация
Технология XSLT
вернуться

Валиков Алексей Н.

Шрифт:

Расширенные имена считаются совпадающими, если их локальные части равны и, при этом, они относятся к одному пространству имен.

Префикс в расширенном имени может быть опущен. В таком случае идентификатор пространства имен будет либо выбран по умолчанию (если имеется соответствующее объявление), либо будет нулевым.

Для описания имен элементов и атрибутов, которые должны иметь расширенное представление, используется продукция

QName
:

[NS6] QName ::= (Prefix ':')? LocalPart

Нетерминалу

Prefix
соответствует префикс имени, который может быть опущен вместе со следующим за ним разделяющим двоеточием,
LocalPart
соответствует локальной части имени.

[NS7] Prefix ::= NCName

[NS8] LocalPart ::= NCName

Структура XML-документа

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

В первой версии XML для определения логической структуры документов использовался набор формальных правил, называемый DTD — декларацией типа документа (document type declaration). Помимо этого, в начале мая 2001 года была принята новая техническая рекомендация языка под названием XML-схема (XML Schema), которая также формально задает логическую структуру документа, определяет используемые типы данных, количество повторений и многое другое.

В этой главе мы разберем основы логического построения ХМL-документов с использованием DTD.

Декларация типа документа (DTD)

Декларация типа документа состоит из одного или нескольких правил-ограничений структуры документа. В частности, DTD позволяет задавать следующие правила:

□ 

ELEMENT
— определение элемента;

□ 

ATTLIST
— определение списка атрибутов элемента;

□ 

ENTITY
— определение сущности;

□ 

NOTATION
— определение нотации.

Эти определения могут быть заданы с использованием конструкции

DOCTYPE
непосредственно в документе:

<!DOCTYPE advert [

<!-- определение– ->

<!-- определение– ->

и т.д.

]>

Другой возможностью определения декларации документа является использование внешнего файла:

<!DOCTYPE advert SYSTEM "advert.dtd">

В этом случае можно также дополнять внешние определения внутренними:

<!DOCTYPE advert SYSTEM "advert.dtd" [

<!-- определение– ->

<!-- определение– ->

и т.д.

]>

Декларация типа документа определяется следующей EBNF-продукцией:

[28] doctypedecl ::= '<!DOCTYPE' S Name (S ExternalID)? S?

('[' (markupdecl | DeclSep)* ']' S?)? '>'

Имя, соответствующее продукции

Name
, которая идет следом за ключевым словом
DOCTYPE
, определяет имя корневого элемента ХМL-документа. В предыдущем примере в корне документа должен стоять элемент
advert
.

Выражение

(S ExternalID) ?
указывает на то, что декларация типа документа может указываться во внешнем источнике (например, в файле), который описывается внешним идентификатором
ExternalID
.

[75] ExternalID ::= 'SYSTEM' S SystemLiteral

| 'PUBLIC' S PubidLiteral S SystemLiteral

В случае системного идентификатора (

"SYSTEM"
),
SystemLiteral
определяет URI определения типа документа. В случае публичного идентификатора, к этому параметру добавляется
PubidLiteral
, сообщающий дополнительную информацию о ресурсе. Обрабатывающее программное обеспечение может включать в себя DTD для заданного публичного идентификатора. Например, документы, написанные на языке XHTML, должны начинаться следующим объявлением:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN"

 "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">

Программа, обрабатывающая документ с таким заголовком, сможет по публичному идентификатору понять, что документ создан на языке XHTML, а значит, обрабатывать его нужно в соответствии со стандартом этого языка. Если же обрабатывающая программа не в курсе определений XHTML, она сможет загрузить декларацию типа по адресу http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd. Публичные идентификаторы, как правило, используются в языках, получающих широкое распространение, поскольку в этом случае формат логической структуры будет известен и без загрузки DTD.

  • Читать дальше
  • 1
  • ...
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: