| Библиотека: XML: справочник
Глава 1 Общие сведения
Общие сведения
Как уже говорились во введении к книге, расширяемый язык
разметки (Extensible Markup Language — XML) позволяет
создавать новые языки разметки. К примеру, работая в какой-то
конкретной области, можно внедрять в новый язык специальную
отраслевую терминологию. Если большинство своих документов вы
создаете, используя стандартизованный обобщенный язык
разметки (Standard Generalized Markup Language —
SGML), то язык XML станет для вас хорошим подспорьем, а
поскольку он входит в состав SGML (является его диалектом),
можно преобразовать эти документы в формат XML, затем с
помощью языков XLink и XPointer добавить простые и расширенные
гипертекстовые ссылки, после чего опубликовать законченные
документы на Web-сервере в Интернете.
Во введении вы уже встретились с понятием
расширенной формы Бэкуса-Наура (Extended Backus-Naur
Form — EBNF). EBNF представляет собой стандартный способ
определения элементов и атрибутов какого-либо языка. Перед тем
как вы начнете работать над первым собственным документом на
языке XML (или знакомить ся с существующим определением нового
языка), вам следует лучше узнать, что такое EBNF. Более
подробно об этой нотации вы прочтете в приложении 4,
«Web-библиография» (раздел «Расширенная форма Бэкуса-Наура»).
Эта книга описывает язык XML на самом базовом
уровне и рассчитана в первую очередь на тех, кто создает
собственные языки разметки или «программиру ет» XML-документы
с помощью текстовых редакторов и текстовых процессоров. Однако
те, кто пользуется специальными XML-редакторами (их список
находится в приложении 2 , «Редакторы и утилиты XML»),
должны отдавать себе отчет в том, что за документами, которые
приятно смотрятся на экране компьютера, скрываются те же
конструкции и атрибуты XML, которые видят разработчики новых
языков.
Все производные языки разметки разработаны на
основе синтаксиса XML, и многие XML-документы, использующие
эти языки, должны редактироваться на уровне
«элемент-и-атрибут». Например, назначая XML-документ для
какой-то определенной цели, программист может обнаружить, что
быстрее и удобнее писать конструкции XML
непосредственно в документе, чем пользоваться командами меню и
диалоговыми окнами XML-редактора. Или же: автор документа,
желающий найти в документе все заголовки второго уровня и
заменить их заголовками третьего уровня, может воспользоваться
полнофункциональ ным текстовым процессором и использовать
только одну операцию «заменить все», вместо того чтобы
пользоваться XML-редактором, который допускает поиск и замену
только в том тексте, который виден на экране. Выбор текстового
процессора, текстового редактора или XML-редактора зависит от
задачи и от полноты функций выбранного приложения. Не
забывайте о том, что XML — это еще совсем молодой язык,
поэтому многие приложения, которые помогут вам писать и
редактировать XML-документы, еще находятся в стадии
разработки.
Помимо информации об основах языка XML,
разработки новых языков и создании документов, в этой главе
рассказывается о корнях и истории создания языка XML и его
«родственников» — языков SGML и HTML, о контроле за
состоятельностью страниц, о том, что надо сделать для
регистрации имени домена, а также о процедуре загрузки
страницы на сервер. Эта глава состоит из следующих разделов:
n История гипертекста — это
краткое описание World Wide Web, языков SGML, HTML, XML, а
также их история;
n Основы XML — обсуждение
структурных блоков XML, таких как элементы, теги, атрибуты и
содержание;
n Хорошо оформленные и состоятельные
XML-документы 1 — описание двух видов
документов: хорошо оформленных и состоятельных;
n Структура XML-документа —
обсуждение основных частей XML-документа: пролога и тела
документа;
n Создание определения типа документа
— процедура создания определения типа документа,
определения элементов XML и их атрибутов, а также других
компонентов XML-документа;
n Создание ссылок в XML-документе
— краткое описание того, как создавать простые и
расширенные ссылки и использовать расширенные указатели
(XPointers) для последующего уточнения ссылок;
n Совместное использование языков HTML и
XML — рассказ о возможнос тях использования ваших
HTML-документов под XML;
n Тестирование документа —
обсуждение хорошо оформленных и состоятель ных документов,
рассмотрение их различий и общих характеристик, а также
процедура тестирования или разбора (анализа) XML-документа;
n Публикация XML-документов —
подробное описание процесса выбора и регистрации имени домена,
а также процедуры загрузки документа на сервер.
Интерес к гипертексту стал проявляться не так давно, и он
обусловлен в первую очередь быстро растущей популярностью
Интернета и языка HTML, на котором в настоящее время написаны
документы для него. Гипертекст дает возможность
пользователю объединять разрозненные текстовые и
мультимедийные фрагменты — графику, анимацию, аудио и
видео — в неформальные
1 См. Computer Weekly № 22, 1998. —
Примеч. перев.
информационные блоки. По сути, пользователь создает
временный документ, отвечающий тем или иным задачам.
Концепции гипертекста более 50 лет. В июле
1945 года Ванневар Буш (Vannevar Bush) написал статью для
журнала Atlantic Monthly, озаглавленную «Как мы можем думать»
(«As We May Think»), в которой описал машину для «...просмот
ра и оставления заметок в обширной текстовой и графической
системе, подключенной к Сети».
В 1960 году Теодор (Тед) Холм Нелсон (Theodor
(Ted) Holm Nelson) запустил в оборот такие термины, как
гипертекст и гипермедиа (они относятся как к
тексту, так и к мультимедиа). Он написал книгу Computer
Lib/Dream Machines (первое издание Mindful Press в
1974 г., переиздана Microsoft Press в 1987 г.),
которая оказала неоспоримое влияние на распространение World
Wide Web. В конце 1970-х Нелсон осуществил проект Project
Xanadu, выпуская цифровые библиотеки и гипертекстовые
издательские системы — еще одно новшество, которое, к
сожалению, так и не прижилось.
Несмотря на то что в 60-х и 70-х годах
университеты и другие учебные и научные заведения
экспериментировали с гипертекстом, он так и оставался в тени,
пока в 1987 году фирма Apple не ввела HyperCard и пока Apple и
Microsoft не разработали свои справочные системы (Help),
пользуясь которыми для перехода от одной темы к другой или для
открытия окна с описанием достаточно было щелкнуть на
гипертекстовом термине.
Стандартизованный обобщенный язык разметки
(Standard Generalized Markup Language — SGML)
приобрел статус стандарта ISO (International Standardization
Organization — Международная организация по
стандартизации) в 1986 году. Будучи стандартом, язык SGML
повсеместно используется коммерческими организациями для
публикации и распространения документов, а также для
разработки новых языков разметки. Например, HTML — самое
популярное детище SGML. Документы, написанные на языке SGML,
могут содержать текст и мультимедийные элементы, так же как
заголовки всех уровней, абзацы и некоторые элементы
форматирования. В отличие от HTML-документов в документах,
написанных на SGML, нет форматирования и дополнительных
атрибутов, таких как полужирный шрифт, выравнивание по центру
и т. п. Каждый SGML-документ имеет ассоциированное с ним
определение типа документа (Document Type Definition —
DTD), которое задает правила для содержания документа.
Определения DTD могут быть и самостоятельными, например,
каждая версия HTML была определена в своем собственном DTD.
World Wide Web как нельзя лучше отражает истинную природу
гипертекста. Вы можете открыть большинство Web-документов либо
щелчком на гиперссылке, либо введя универсальный указатель
ресурса (Uniform Resource Locator —
URL), либо указав адрес, независимо от того, в
какой части света находится сервер с этим документом. К
примеру, вы можете начать с просмотра документа, находящегося
на Web-сервере в Калифорнии, затем щелкнуть на ссылке,
открывающий документ в Австралии или Японии, перейти на
следующий сервер во Франции или в Швеции и т. д., пока не
обогнете весь земной шар в считанные минуты. Гипертекст —
это как раз то, что отличает World Wide Web от всех остальных
ресурсов Интернета, так как предлагает альтернативу
традиционному способу чтения печатных или электронных
документов: последовательно, строка за строкой, сверху вниз,
страница за страницей, и так до конца документа или до тех
пор, пока не кончится ваше терпение (что случается чаще).
Web — это сравнительно новая часть
Интернета. В конце 1980-х ученые из Европейской лаборатории
физики частиц (European Laboratory for Particle Physics —
CERN) в Швейцарии изобрели «паутину» для облегчения своей
работы: им нужен был простой и быстрый доступ к
исследовательским документам, которые находились в сети
лаборатории. К 1990 году они разработали текстовый броузер и
язык HTML. В 1991 году «паутина» была опробована в рамках
CERN; а в 1992 году они сделали свою разработку доступной
пользователям Интернета. Заметьте: гипертекстовый транспортный
протокол (Hypertext Transport Protocol — HTTP) — это протокол
броузинга (Web browsing), то есть
процесса ссылки на определенный адрес (URL) в Сети.
Язык гипертекстовой разметки (Hypertext Markup
Language — HTML) был разработан с целью
обеспечения функциональности гипермедиа в Web. Внутри простого
текстового документа человек, пишущий на HTML, вставляет
элемент или команду, которыми «привязывает» один узел
Интернета к другому, описывает документ для броузеров,
поисковых систем, компьютеров, сетей и людей или определяет
вид документа. С момента зарождения языка HTML было
разработано несколько стандартов; в настоящее время
применяется HTML 4.0.
Элементы HTML позволяют определять,
форматировать или оформлять Web-страницы следующим образом:
n выбирать текст и изменять тип или размер
шрифта, а также использовать разные эффекты: полужирный,
курсив, подчеркнутый, зачеркнутый;
n создавать ссылки на другие разделы текущего
документа, документы, находящиеся на других Web-узлах, на
аудио- и видеофайлы;
n применять для оформления графические
объекты любых форм и размеров или использовать их как
графические карты, на которых для открытия других страниц
пользователь щелкает мышью; допустима также
GIF-анимация , которая представляет собой
последовательность графических файлов, объединенных в единый
файл;
n создавать таблицы, которые позволяют в
большей степени контролировать формат документа и более
наглядно передают информацию; указывать фоновые цвета для
HTML-документа, всей таблицы, строки таблицы или даже
отдельной ячейки;
n использовать фреймы, представляющие
собой окна, в каждом из которых может быть открыт отдельный
документ (вместо открытия отдельного окна для каждого
документа), например, можно использовать два небольших
статичных окна для отображения названия Web-узла и его
оглавления со ссылками на отдельные страницы; после чего
открыть третье — более крупное окно для показа каждой
отдельной страницы: она будет открываться при щелчке на ее
ссылке в оглавлении;
n создавать простые и сложные формы, с
помощью которых пользователь может отправить электронную
почту, ответить на вопросы анкеты или даже сделать заказ из
каталога;
n программировать и писать сценарии для
создания динамических страниц, которые изменяются, когда
пользователь перемещает на них мышь, нажимает клавиши и
т. п.
В настоящее время Интернет-консорциум World
Wide Web Consortium (W3C), организация, отвечающая за
определение стандартов HTML, планирует следующую версию языка
HTML, которая будет основана на наборе XML-тегов.
Дополнительную информацию о текущей и будущих версиях HTML вы
можете найти, периодически посещая страничку под названием
W3C's HTML Activity page (http://www.w3.org/
Markup/Activity/).
Расширяемый язык разметки (Extensible Markup
Language — XML) является составной частью
SGML: XML содержит в себе большинство возможностей SGML, но
при этом значительно проще. Как и SGML, язык XML служит для
разработки языков разметки с элементами и атрибутами,
адаптированными под специфические нужды фирмы или какой-либо
отрасли. После того как новый язык создан, можно использовать
XML так же, как и HTML — для создания документов.
Язык XML, как и HTML, поддерживает
универсальный набор символов Unicode (Unicode Consortium's Universal Character Set — UCS).
Этот набор включает в себя не только специальные символы, в
том числе знаки препинания и математические символы, но и
символы иностранных алфавитов, что делает XML международным
стандартом.
Языки XML и HTML поддерживают таблицы стилей,
которые помогают определить структуру и вид объемного,
сложного документа от начала до конца. Но если HTML использует
стили для того, чтобы один и тот же HTML-документ мог быть
отображен по-разному, в XML-документе стили обязательны для
элементов форматирования и оформления. Кроме того, язык XML
превосходит HTML в том, что поддерживает полную версию DSSSL
(Document Style Semantics and Specification Language —
язык семантики и спецификации стиля документа ) и CSS2
(Cascading Style Sheets 2 — каскадные таблицы
стилей 2). Следующим стандартом для таблиц стилей станет
XSL (XML Stylesheeet Language — язык таблиц стилей XML),
основанный на DSSSL Online — варианте DSSSL,
предназначенном специально для электронных документов.
ПРИМЕЧАНИЕ DSSSL применим к любому
SGML-документу. Будучи частью SGML, XML также работает с
DSSSL. Но именно из-за того, что XML лишь составная часть
SGML, некоторые возможности XML могут не работать с
процессорами DSSSL более ранних выпусков, если они не были
обновлены для работы как с SGML-, так и с XML-документами.
Данные XML могут быть отображены внутри документа HTML, и
наоборот. Но так как язык XML является еще достаточно новым
продуктом, правила в отношении таких преобразований до конца
не определены.
К числу других функций XML можно отнести
следующие:
n XML допускает различные типы отображения
документов не только для многих компьютерных платформ, но
также и для других устройств; для определения документов
программисты могут использовать любой язык программирования
или создания сценариев;
n XML поддерживает определения DTD, но они не
являются обязательны ми; при использовании DTD можно
определить конкретные типы документов как для броузеров, так и
для пользователей;
n XML поддерживает стандарты XLink и
XPointer, имеющие более широкие возможности создания ссылок,
чем HTML; в языках XML и HTML можно создать ссылку только на
один URL; однако указанные стандарты позволяют одновременное
использование как нескольких ссылок, так и групп ссылок;
n XML поддерживает стандарты как для
печатных, так и для электронных документов и других файлов
вывода, в которых содержание и вид могут быть изменены для
нужд разных пользователей;
n XML допускает обработку документов как на
компьютере клиента, так и на сервере, что способствует
совместной работе разработчиков и сберегает ресурсы.
ПРИМЕЧАНИЕ В настоящее время
определена спецификация XML 1.0, но языки XLink и XPointer все
еще находятся в стадии разработки и, возможно, в них будут
внесены изменения.
Если вы знаете, что такое элементы, атрибуты и теги HTML,
вам будет нетрудно понять язык XML. Но тем, кто не знаком с
HTML, следует запомнить, что элементы и теги — это
не одно и то же. Элемент начинается с открывающего
тега (символ левой угловой скобки [<], имя элемента и
символ правой угловой скобки [>]) и заканчивается
закрывающим тегом, в который между левой и правой
угловыми скобками добавляется дробная черта (/). Между
открывающим и закрывающим тегами находятся имя элемента,
некоторые атрибуты и другое содержание, например:
<text>This is an element.</text>
СОВЕТ В языке HTML можно опустить
закрывающий тег некоторых элементов. Отличие XML состоит в
том, что закрывающий тег должен присутствовать всегда.
Если в настоящее время для создания документов вы пользуетесь
языком HTML, но планируете перейти на XML, было бы очень
желательно, чтобы вы использовали закрывающие теги в том числе
и там, где их можно опустить, — тем самым вы обеспечите
совместимость ваших документов с XML. Язык XML имеет также
теги пустых элементов , которые представляют собой
элементы, в данный момент не имеющие содержания. Тег пустого
элемента относится к объекту (например, рисунку или концу
строки), который будет добавлен к документу при его выводе.
Однако броузеры, не обновлявшиеся в последнее время, не
распознают тегов пустых элементов.
Атрибуты позволяют определять значения элементов, например,
можно начать нумерованный список с некоторого значения, задать
цвет, сделать шрифт полужирным и т. п. — все это для
текста, находящегося под управлением данного элемента. Также
вы можете добавить идентификатор графическому объекту, чтобы
найти его затем в документе — для создания ссылки или для
указания начала (или конца) области, которая должна быть
форматирована или каким-либо другим образом оформлена.
Элементы с атрибутами выглядят приблизительно так:
<element optionl="valuel" option2="value2">
</element>
Обратите внимание, что в открывающем теге
между символами левой и правой угловой скобок помещаются все
атрибуты, например:
<box border width="70" height="50"></box>
Здесь присутствуют следующие символы:
n < — отмечает начало открывающего тега;
n box — является именем элемента;
n border — является атрибутом,
устанавливающим рамку;
n width=70 — является атрибутом,
устанавливающим ширину окна равной 70 пикселам;
n height=50 — является атрибутом,
устанавливающим высоту окна равной 50 пикселам;
n > — отмечает конец открывающего тега;
n < — отмечает начало закрывающего тега;
Хорошо оформленные и состоятельные XML-документы
n / — является важным сигналом, служащим для различения
открывающего и закрывающего тегов;
n box — является именем элемента;
n > — отмечает конец закрывающего тега.
ПРИМЕЧАНИЕ Если в документах
одновременно используются языки HTML и XML, принято вводить
элементы XML строчными, а элементы HTML прописными буквами.
Допускается помещать элементы XML внутри других элементов в
зависимос ти от того, как вы определяете эти элементы,
например:
<text size="12"><bold><ital>Watch this
space! </ital></bold></text>
Атрибут size элемента text изменяет размер
шрифта на 12 точек. Открывающий и закрывающий элементы bold
(полужирный) помещены внутри элементов text, а элементы ital
(курсив) находятся, в свою очередь, внутри элементов bold.
Заметьте, что элементы размещены внутри других абсолютно
симметрично и не перекрывают друг друга:
<text> </text>
<bold> </bold>
<ital> </ital>
Одно из правил, которое вы можете нарушить
при создании XML-документа, это перекрывание элементов,
то есть нарушение симметрии. Так, если вы введете
(основываясь на предыдущем примере):
<text size="12"><bold><ital>Watch this
space! </text></bold></ital>
и таким образом перекроете вставленные
элементы:
<text> </ital>
<bold> </bold>
<ital> </text>
обработка вашего документа завершится раньше
времени. О целостности XML-документов подробнее рассказывается
в следующем разделе.
- Хорошо оформленные и состоятельные
- XML-документы
Язык XML поддерживает два типа документов: хорошо
оформленные и состоятельные. Каждый из этих типов документов
имеет свойственный ему вывод.
- Хорошо оформленные документы
Хорошо оформленные документы должны содержать как минимум
один корневой элемент: <saying>Money is the root of all
evil.</saying>
Поэтому мы не можем считать хорошо
оформленным следующий документ:
Money is the root of all evil.
В хорошо оформленном документе дочерние
элементы должны располагаться внутри корневого элемента,
например:
<sayinglist>
<saying>Money is the root of all evil.</saying>
<saying>Money talks.</saying>
</sayinglist>
Поэтому мы не можем считать хорошо
оформленным ни этот документ (отсутствует корневой элемент):
<saying>Money is the root of all evil.</saying>
<saying>Money talks. </saying>
ни следующий (отсутствует открывающий тег и
некорректный закрывающий тег):
<sayinglist>
<saying>Money is the root of all evil.</saying>
Money talks.</saying>
<sayinglist>
В хорошо оформленных документах могут
использоваться практически все возможности языка XML, за
исключением объявлений элемента и атрибута. Эти объявления
относятся к определениям DTD, которые ассоциируются с
состоятельными документами (см. следующий раздел).
ПРИМЕЧАНИЕ Читая о возможностях языка
XML в главе 2, «XML», не пропустите комментария о хорошо
оформленных документах.
Состоятельные документы отвечают всем критериям,
применяемым к хорошо оформленным документам. Кроме того,
состоятельные документы всегда имеют ассоциированные
определения типа документа DTD. Как вы уже знаете, DTD задает
правила в отношении содержания документа, то есть
элементов и атрибутов языка разметки, с помощью которых создан
документ. Так как в предыдущих примерах мы рассматривали
хорошо оформленные документы, не имеющие ассоциированных DTD,
ни один из них не может считаться состоятельным.
Во время обработки XML-процессор, проверяющий
документ на состоятель ность, создает иерархию элементов с
корневым элементом, всеми дочерними и родственными элементами,
а также родственными элементами этих дочерних элементов. Эта
иерархия элементов XML имеет два преимущества:
Структура XML-документа при создании расширенных ссылок
XLink и расширенных указателей XPointer в документе можно
перейти к любому поколению элементов;
n при создании стилей в XML-документе таблицы
стилей используют данную иерархию элементов для определения
стилей элементов и их дочерних элементов.
Определения DTD также позволяют задать
стандарты, контролирующие содержание и вид каждого типа
документов для всей фирмы или подразделе ния. Таким образом,
при создании документа автору не придется разрабаты вать или
изменять какой-либо стиль, так как он уже определен в DTD.
ПРИМЕЧАНИЕ Объявления элементов и
атрибутов XML относятся только к DTD. О тех
возможностях XML, которые относятся только к DTD, можно узнать
из главы 2, «XML».
В ранних версиях языка HTML требовалось наличие элемента
<HTML> в начале и конце документа. Внутри него
помещались элементы <HEAD> и <BODY>, которые
определяли два основных раздела документа (в более поздних
версиях языка HTML эти элементы стали необязательными).
XML-документы унаследовали этот же формат, делящий документ на
два раздела. Пролог документа находится в его верхней
части, а все остальное является телом документа
(некоторые разработчики XML считают, что пролог тоже входит в
тело документа).
Пролог, предваряющий любой элемент, но при этом могущий
быть абсолютно пустым, может содержать идентификационную
информацию о XML-документе. В нее входит объявление XML (и
текущий стандарт XML) и объявление типа документа , например:
<?xml version="1.0"?>
<!DOCTYPE sampdoc[>
Это может быть удачным примером пролога
хорошо оформленного документа.
В следующем примере рассматривается внешнее
объявление типа документа DTD:
<?xml version="1.0"?>
<!DOCTYPE sampdoc SYSTEM "sample.dtd">
Пролог также может содержать комментарии и
другие инструкции по обработке , которые сообщают
XML-процессору, как обрабатывать конструкции, находящиеся
между <? и ?>.
Объявление XML может также содержать
объявление кодировки (encoding declaration) (обычно оно
выглядит как encoding="UTF-8"), которое указывает форму
символов Unicode, и объявление самостоятельности
(standalone declaration), которое указывает, является ли
документ самостоятельным (standalone= "yes") или же он
ассоциирован с внешним документом (standalone="no"). Допустимо
использовать и другие объявления кодировки. Следующее
объявление XML включает в себя объявление кодировки и
самостоятельности:
<?xml version="1.0" encoding="UTF-8"
standalone="yes"?>
К телу (instance) документа относится весь XML-документ,
кроме пролога. Тело содержит определения элементов и
атрибутов, а также единицы и содержание.
Знакомясь далее с DTD, вы узнаете больше о
том, что составляет тело в DTD — XML-документах, в
которых определяются все правила для элементов и атрибутов. В
других XML-документах тело содержит в себе само содержание
документа — символы, абзацы, страницы, рисунки и пробелы,
которые, собственно, и являются выводом XML-документа.
- Создание определения типа документа
В этом разделе описывается процедура создания определения
типа документа DTD шаг за шагом. Представьте, что вам нужно
создать базу данных о ресторанах, в которой есть следующие
идентифицирующие поля: обязательное — название ресторана,
и необязательные — улица и дом, город, область, индекс,
один или более номеров телефона и факса, одна или более
категорий кухонь, а также поля для протокола даты создания и
даты изменения записи.
Пролог — это то, с чего начинается любой XML-документ.
В нашем случае он выглядит так:
<?xml version="1.0"?>
<IDOCTYPE restaurant [
]>
- Определение корневого элемента и перечисление
- элементов верхнего уровня
Используйте объявление элемента для перечисления корневого
элемента и первого поколения его дочерних элементов .
Поколения элементов подобны поколениям людей. Они включают:
родителей (то есть корневые элементы); предков (все
элементы над родителями), потомков (все элементы под
родителями) и детей (дочерние элементы). Следует отметить, что
может быть несколько поколений дочерних элементов. Например,
первое поколение дочерних элементов находится сразу под
корнем, второе поколение (внуки) — под первым поколением
дочерних элементов, третье — под вторым и т. д.
В следующем примере рассматривается определение корневого
элемента restaurant и его дочерних элементов (они все
заключены в скобки):
Создание определения типа документа <!ELEMENT restaurant
(name, address, city, state, zip, tel_voice, tel_fax, info,
rating_icon, record_info)>
Объявление документа начинается с ключевого
слова, введенного строчными буквами, — !ELEMENT, а каждый
элемент верхнего уровня отделяется от другого запятой.
Запятая-разделитель указывает на то, что каждый элемент
должен появляться в том порядке, в котором он определен
в объявлении элементов. Однако вы можете разделять все или
некоторые элементы вертикальной чертой (|), которая допускает
большую гибкость: каждый элемент может встречаться один или
более раз и в любой последовательности. Можно использовать
комбинацию запятых и вертикальных черт для жесткого управления
некоторыми элементами и допущения некоторой степени свободы
для других элементов. Можно также заключать в скобки списки
элементов, разделенных вертикальными чертами или запятыми. Как
показывает предыдущий пример, скобки группируют подобные
элементы, в данном случае все дочерние элементы первого
поколения элемента restaurant.
- Определение частоты использования элементов
После определения корневого элемента и перечисления
элементов верхнего уровня для контроля за частотой
использования элемента в записи можно использовать следующие
символы нотации EBNF:
n ? — указывает на то, что элемент может
быть использован один раз или не использован совсем;
n * — указывает на то, что элемент
(например, несколько телефонных номеров) может использоваться
неограниченное количество раз;
n + — указывает на то, что элемент
(например, название ресторана) должен быть использован
один или более раз.
Теперь объявление элемента будет выглядеть
следующим образом:
<!ELEMENT restaurant (name+, address, city, state, zip,
tel_voice*, tel_fax*, info*, rating_icon, record_info?)>
Помните, что запятые в объявлении элемента
указывают на то, что данные должны вводиться точно в том
порядке, в котором расположены эти элементы. Чтобы допустить
неупорядоченный ввод тех или иных данных, замените запятые
вертикальной чертой (|):
<!ELEMENT restaurant (name+, address, city, state, zip,
(tel_voice|tel fax)*,info*, rating_icon, record_info?)>
Теперь вы можете вводить номера телефонов в
любом порядке.
- Определение элементов верхнего уровня и перечисление
дочерних элементов
После задания частоты использования элемента вы можете
указать содержание элементов сразу под корневым элементом и,
где необходимо, перечислить дочерние элементы: <!ELEMENT
name (#PCDATA)>
<!ELEMENT address (#PCDATA)>
<!ELEMENT city (#PCDATA)>
<!ELEMENT state (#PCDATA)>
<!ELEMENT zip (#PCDATA)>
<!ELEMENT tel_voice (#PCDATA)>
<!ELEMENT tel_fax (#PCDATA)>
<!ELEMENT info (#PCDATA)>
<!ELEMENT rating_icon EMPTY>
<!ELEMENT record_info (create_date, edit_date, editor)
Символы #PCDATA обозначают разобранные
символьные данные (parsed character data), которые не
служат для разметки документа, то есть — обычный текст.
ПРИМЕЧАНИЕ В #PCDATA могут входить как
элементы, так и символьные данные. Все переданные символьные
данные в конце концов будут разобраны, а некоторые из них
могут быть изменены анализатором.
Элемент EMPTY указывает на то, что содержание
элемента в настоящее время отсутствует. Закрывающий тег
отсутствует; наличие открывающего тега является лишь маркером
будущего содержания, например рисунка.
Элемент record_info содержит три дочерних
элемента: дату создания записи (create_date), дату последнего
изменения записи (edit_date) и имя того, кто редактировал
запись последним (editor).
ПРИМЕЧАНИЕ В XML-документе можно
задать любой способ выравнивания размеченных элементов. В
нашем примере имена и типы элементов представлены в виде
столбца.
Далее следует продолжить определение элементов и
перечисление дочерних элементов, пока все элементы не будут
описаны в определении типа документа DTD.
- Определение атрибутов элементов
Чтобы наложить условия на тот или иной элемент или
затребовать для него ввод информации, необходимо установить
его атрибуты. Так, если рассматри вать наш пример с
рестораном, ограничение категорий меню и категорий кухонь
представляется удачным решением, так как это облегчит
сортировку базы данных для дальнейшего вывода (не забывайте,
что в DTD всегда можно ввести дополнительные параметры). Но
при этом указание времени открытия и закрытия для каждой
записи может оказаться важной информацией для тех, кто будет
пользоваться путеводителем по ресторанам, поэтому ввод данных
в соответствующих полях следует сделать обязательным
(#REQUIRED). Другие
значения могут быть необязательными (#IMPLIED), так,
например, не все рестораны закрываются на обед. Ниже приведен
список атрибутов для элемента info:
<!ATTLIST info
meals (breakfast|brunch|lunch
|snacks|dinner|late) #IMPLIED
cuisine (american|bar|chinese
|french|german|gourmet
|italian|pizza|vegetarian) #IMPLIED
start_hours_1 #REQUIRED
end_hours_1 #REQUIRED
start_hours_2 #IMPLIED
end_hour_2 #IMPLIED
Единица (entities) — это многозначный термин,
который может относиться к специальному символу, специальному
тексту или даже файлу, такому, например, как рисунок. Язык XML
поддерживает несколько типов единиц: разобранные и
неразобранные, внешние и
внутренние, а также общие единицы и единицы параметров в
разных комбинациях.
Разобранная единица (parsed entity)
содержит поименованные данные для замещения, которые были
вызваны по ссылке на эту единицу и обработаны анализатором
XML. По завершении обработки разобранные анализатором данные
замещают текущее содержание единицы. В противоположность этому
неразобранные единицы (unparsed entity) обработке не
подвергаются. Они имеют поименованную нотацию
(notation) — набор символов, который XML-процессор
направляет приложению.
Как вы уже, вероятно, догадались, содержание
внутренней единицы (internal entity) полностью
сохраняется в DTD; внутренняя единица всегда является
разобранной. Содержание внешней единицы (external
entity) хранится в отдельном файле, находящемся полностью
вне XML-документа; внешняя единица может быть как разобранной,
так и неразобранной.
Общая единица (general entity) —
это переменная, поименованная внутри текста тела документа.
Общей единице предшествует символ амперсанд а (&) и другие
необязательные символы, за которыми следует точка с запятой
(;). Состоятельные общие единицы могут быть внутренними
разобранными, внешними разобранными и внешними неразобранными.
Общие единицы состоят из следующих подкатегорий :
n Разобранные общие единицы (parsed
general entities), которые начинаются с символа &.
n Десятичные символьные ссылки (decimal
character references), которые начинаются с символов
&#.
n Шестнадцатеричные символьные ссылки
(hexadecimal character references), которые начинаются с
символов &#x.
Единица параметра (parameter entity —
PE) является разобранной переменной, поименованной
в разметке документа (прологе или теле). Единице параметра
предшествует знак процента (%), а заканчивается она точкой с
запятой (;).
Объявление разобранных общих единиц
Разобранная общая единица содержит текст, который должен
быть подставлен анализатором XML. В следующем примере
рассматривается объявление общей единицы:
<!ENTITY copyright "This document is copyrighted by The
Eddy Group, Inc.">
Затем, когда вы укажете в документе единицу
©right;, XML-процессор заместит единицу текстом,
заданным в объявлении единицы.
Язык XML имеет зарезервированные общие
единицы (табл. 1.1). В первом столбце перечислены
единицы, используемые вместо специальных символов в хорошо
оформленных документах .
Таблица 1.1. Зарезервированные единицы
XML для хорошо оформленных документов Для вывода знака
Введите единицу
амперсанд (&) &
апостроф (') '
больше (>) >
меньше (<) <
кавычка (") "
В некоторых случаях можно объявить внешнюю
единицу, например, при работе над документами большого объема
(скажем, электронными книгами) разумно создать модули путем
объявления внешних страниц, разделов или даже глав. Ваша
домашняя страничка (или страничка-оглавление) может
представлять собой список внешних единиц, открывающих
конкретные документы. Потом, при редактировании страниц на
своем Web-узле, вы можете просто заменить устаревшую версию
странички более свежей. Например, пусть все перечисленные ниже
единицы хранятся в вашей локальной сети (ЛВС):
<!ELEMENT bigbook (#PCDATA)
<!ENTITY intro PUBLIC "intro.rtf">
<!ENTITY chap1 PUBLIC "chap1-001.rtf">
<!ENTITY chap2 PUBLIC "chap2-001.rtf">
<!ENTITY chap3 PUBLIC "chap3-001.rtf">
<!ENTITY chap4 PUBLIC "chap4-001.rtf">
Эти единицы можно заменить следующими:
<!ELEMENT bigbook (#PCDATA)
<!ENTITY intro PUBLIC "intro.rtf">
<!ENTITY chapl PUBLIC "chap1-002.rtf">
<!ENTITY chap2 PUBLIC "chap2-001.rtf">
<!ENTITY chap3 PUBLIC "chap3-001.rtf">
<!ENTITY chap4 PUBLIC "chap4-001.rtf">
А если внешняя единица хранится вне локальной
сети, просто замените PUBLIC на SYSTEM:
<!ELEMENT introduction (#PCDATA)
<!ENTITY introdoc SYSTEM "introdoc.rtf">
Объявление символьных и шестнадцатеричных ссылок
Можно объявлять символьные и шестнадцатеричные ссылки на
основании поддерживаемых языком XML символов набора ISO/IEC
10646 (IEC расшифровывается как International
Electrotechnical Commission — Международная комиссия по
электротехнике ). Для объявления символьной ссылки
использует ся следующий синтаксис :
&#{0-9[0-9[...0-9]};
Как видно из примера, символьная ссылка
начинается с символов (&#) и завершается символом (;).
Символьная ссылка как таковая состоит из комбинаций цифр от 0
до 9.
Для объявления шестнадцатеричной ссылки в
наборе символов ISO/IEC 10646 используйте следующий синтаксис
:
&#x{0-9|a-f|A-F[0-9|a-f|A-F[...0-9[a-f|A-F]]};
В этом случае шестнадцатеричная ссылка
начинается с символов (&#x). Символьная ссылка
состоит из цифр от 0 до 9 и из букв латинского алфавита от А
до F.
Объявление единиц параметра
Как вы уже знаете, единица параметра представляет собой
разобранную единицу, поименованную внутри объявления. Единица
параметра, начинающая ся со знака процента (%) и закрывающаяся
точкой с запятой (;), производит примерно то же действие, что
и общая разобранная единица: она может быть ярлыком для более
длинной строки содержания разметки, например:
<!ENTITY % HTMLlat1 PUBLIC
"-//W3C//ENTITIES Full Latin 1//EN//HTML">
%HTMLlat1;
В этом примере мы видим внешнюю единицу
параметра для внешнего набора символьных единиц Full Latin 1 и
относящуюся к ней общую единицу.
Единица параметра может группировать подобные
элементы, как видно из следующего примера:
<!ENTITY % InputType
"(TEXT | PASSWORD | CHECKBOX | RADIO | SUBMIT | RESET |
FILE | HIDDEN | IMAGE | BUTTON)"
>
или
<!ENTITY % list "(UL [ OL | DIR | MENU)">
В обоих примерах приведены единицы
параметров, используемых в стандарте HTML. В первом примере
элементы ввода сгруппированы под именем InputType, а во втором
элементы списка сгруппированы под именем list. Теперь можно
объявить группы дочерних элементов вместо большого, по всей
вероятности, списка элементов.
Ранее в этой главе рассматривался пример
дочернего элемента с его собственными дочерними элементами:
<!ELEMENT record_info (create_date, edit_date, editor)
Элементы даты можно сгруппировать и следующим
образом:
<!ENTITY % dates " (create_date | edit_date) "
после чего определить элементы:
<!ELEMENT record_info (%dates, editor)
- Создание ссылок в XML-документе
В стандарте XLink предусмотрены элементы, позволяющие
создавать расширенные ссылки, которые вместе с расширенными
указателями (XPointers) устанавливают гиперссылки в
XML-документах. XML-документы могут иметь в своем составе два
вида ссылок.
n Простые ссылки (simple links)
аналогичны элементу A языка HTML. Простая ссылка обеспечивает
переход с исходной позиции в текущем документе на заданную
позицию в том же или другом документе. Простые ссылки всегда
однонаправлены.
n Расширенные ссылки (extended links)
позволяют определить множество ссылок. С помощью расширенной
ссылки можно перемещаться с любой ссылки на любую другую
ссылку. Вы можете идентифицировать содержание, ассоциированное
с какой-либо конкретной ссылкой таким образом, что, если
содержание меняется, а идентификатор остается прежним, ссылка
все равно будет доступной.
Более подробно об использовании ссылок в
XML-документах рассказывается в разделах «Задание простой
ссылки в определении типа документа» и «Задание расширенной
ссылки в определении типа документа» в начале главы 3,
«XLink».
- Совместное использование языков HTML и XML
Каждый HTML-документ может являться хорошо оформленным
XML-документом. Для этого, в первую очередь, в верхней части
документа необходимо заменить инструкцию: <!DOCTYPE HTML
PUBLIC "-//W3C//DTD HTML 4.0//EN">
на
<?xml version="1.0"?>
Затем следует построчно проверить документ,
обращая внимание на следующее:
n каждый открывающий тег должен иметь
закрывающий тег;
n все значения атрибутов должны быть
заключены в простые или одинарные кавычки;
n все пустые теги (элементы, резервирующие
место под будущее содержание) должны иметь следующий
синтаксис: <br /> (заметьте, что между именем элемента и
дробной чертой стоит знак пробела) или <img
src="image.gif"/> (между значением атрибута и дробной
чертой пробел не ставится).
Если вы решили перейти с языка HTML на язык
XML, рассмотрите вопросы создания состоятельных документов.
Это значит, что вы должны ассоцииро вать определения типа
документа DTD с каждым документом. Не вызывает сомнений, что
использование одного DTD для всех ваших документов значительно
проще, чем создание нескольких отдельных DTD. Еще одно преимущество этого метода
состоит в едином стандарте и единых типах вывода для всех
XML-документов. Чтобы быть в курсе новостей, касающихся
разработок для языков XML и HTML, периодически заглядывайте на
страничку HTML Activity page
(http://www.w3.org/MarkUp/Activity/).
Наконец, вы могли бы написать свой
собственный язык XML, комбиниру я лучшие элементы и атрибуты
HTML с вашими персональными элементами и атрибутами.
Для проверки правильности синтаксиса документа ,
поддерживаемых элементов и атрибутов HTML, а также правильного
указания URL для ссылок и графики при создании HTML-документа
вы пользуетесь либо HTML-редактором, либо броузером. Вы также
проверяете, как смотрится страничка при использовании разных
броузеров. При создании XML-документа он тестируется примерно
также. Затем, в отличие от HTML-документа, состоятельность
которого должна проверяться в режиме подключения (online), вы
пропускае те XML-документ через XML-анализатор ; некоторые
анализаторы предназначе ны для работы с хорошо оформленными
документами, другие — для тестирования состоятельных
документов. XML-анализаторы проверяют синтаксис, элементы и
URL, используя запрограммированные критерии. XML-анализатор
оценивает каждую строку документа и создает дерево элементов,
иногда — диаграмму корневого элемента, его дочерних
элементов и, наконец, их дочерних элементов.
ПРИМЕЧАНИЕ Некоторые XML-анализаторы
требуют наличия Java на вашем компьютере. Список
XML-анализаторов и адрес узла, с которого вы можете загрузить
Java, находится в приложении 2, «Редакторы и утилиты
XML».
Заметьте, что XML-анализатор, проверяющий состоятельные
документы, должен проверить документ на его соответствие
ассоциированному с ним DTD.
- Публикация XML-документов
Приступая к созданию XML-документа впервые, вы наверняка
рассчитываете опубликовать этот документ в Сети (Интернете) и
тем самым сделать его доступным миллионам пользователей всего
мира. Но еще за несколько недель или даже месяцев до того, как
вы приступите к работе над документом, подумайте о
перечисленных ниже важных факторах.
n Хотите ли вы создать свое собственное,
уникальное «представительство» в World Wide Web? Если да, то
вам, возможно, придется зарегистрировать домен для себя или
своей компании.
n Вы готовы создать собственный Web-узел? В
первую очередь свяжитесь со своим поставщиком услуг Интернета
и уточните, на какой объем дискового пространства под ваши
документы вы можете рассчитывать и как пользователи смогут
выходить на вашу компанию (например, только отправлять
сообщения по электронной почте, или же вы можете разместить в
документах формы, которые пользователи смогут заполнять и
пересылать вам). Каким образом вы сможете публиковать
XML-документы на сервере поставщиком услуг?
В последних разделах этой главы
рассказывается о регистрации имени домена и публикации
XML-документа.
Многие предприниматели и частные лица хотели бы иметь
собственное имя домена, а не пользоваться доменом своего
поставщика услуг Интернета. Так, у вас может быть адрес, в
котором явно присутствует имя домена поставщика услуг:
http://www.provider.net/~example/
или адрес с уникальным именем вашего
собственного домена:
http://www.example.com/
Для регистрации домена необходимо выполнить
следующие шаги.
1. Придумайте имя (или два имени) для вашего
домена.
2. На узле InterNIC
(http://rs.internic.net/rs-internic.html) проверьте, можете ли
вы использовать какое-либо из придуманных вами имен.
3. Если подобное имя домена уже существует,
укажите другой вариант имени своего домена.
4. Заполните форму регистрации и выберите тип оплаты (можно
использовать даже кредитную карту).
5. Примерно через три недели ваша заявка в
InterNIC будет обработана.
ПРИМЕЧАНИЕ Многие поставщики услуг
Интернета могут зарегистри ровать ваш домен бесплатно (не
считая ежегодной абонентской платы) или за чисто символическую
плату.
Каждый поставщик услуг Интернета предлагает свою процедуру
загрузки XML- (или HTML-) документов и ассоциированных с ними
файлов на сервер. Возможно, вам придется установить соединение
по протоколу telnet, или вводить команды ОС UNIX, или работать
с клиентом FTP или эмулятором терминала, или же сочетать сразу
несколько вариантов. Однако все эти типы загрузки файлов имеют
общую последовательность действий.
1. Получите по электронной почте или по факсу
инструкции по загрузке от своего поставщика услуг Интернета.
Возможно, в них будут указаны права доступа
(permissions), то есть можете ли вы только читать свои
XML-файлы или же имеете право также редактировать их.
2. Поместите XML-документ и все
ассоциированные с ним файлы — рисунки, аудио,
видео — в один каталог или папку своего персонального
компьютера.
3. Откройте XML-документ на своем компьютере
и измените каталог, папку, имена файлов и URL на те имена,
которые им присвоены на сервере вашего поставщика услуг
Интернета.
4. Сохраните отредактированный XML-документ
на своем компьютере. Возможно, вам потребуется указать
расширение .xml для этого документа — в зависимости от
инструкций вашего поставщика услуг Интернета.
5. При необходимости установите на своем
компьютере все необходимые для загрузки утилиты, которые вам
порекомендует поставщик услуг Интернета.
6. Следуя инструкциям поставщика услуг
Интернета, подключитесь к указанному серверу и создайте один
или более каталогов или папок.
7. Загрузите XML-документ и ассоциированные
файлы в созданные каталоги или папки. Возможно, вам придется
переименовать XML-документ и ассоциированные файлы в
соответствии со стандартами поставщика услуг Интернета.
- Поиск нужной конструкции или атрибута
Порой весьма затруднительно увязать конкретную конструкцию
или атрибут с той ролью, которую они играют. Чтобы упростить
поиск нужной конструкции, в табл. 1.2 все они перечислены
в алфавитном порядке и также приведено назначение каждой из
них. Если вы забыли имя конструкции или атрибута, но хорошо
представляете проблему, то, пользуясь этой таблицей, вы легко
сможете найти нужный параметр по краткому описанию его
функций.
Если вам нужно полное описание конструкции
или атрибута, их синтаксиса, аргументов и другая информация,
откройте главу, где эта конструкция или атрибут описаны
подробно. В дальнейшем поиске вам поможет следующий
раздел — «XML от A до Z».
Таблица 1.2. Назначение конструкций и
атрибутов XML Конструкция Назначение или атрибут
AbsTerm Задание абсолютного определителя местоположения
actuate Инициирование процесса отслеживания ссылки по
явному запросу или без такового
Arguments Задание для ключевого слова аргументов,
указывающих на относительное местоположение выбираемого
элемента
AttDef Определение атрибута
AttlistDecl Определение списка атрибутов типа элемента,
включая имена атрибутов, типы данных и значения по
умолчанию
Attr Описание атрибута для управления выбором элемента
Attribute Расширение информации об атрибуте
AttTerm Задание определителя местоположения идентичного
атрибута
AttType Задание типа объявляемого атрибута
AttValue Задание значения атрибута
BaseChar Назначение базового символа
behavior Конкретизация поведения ссылки
Cdata Обозначение символьных данных внутри раздела
символьных данных
CDEnd Обозначение конца раздела символьных данных
CDSect Создание раздела символьных данных
CDStart Указание начала раздела символьных данных
Char Обозначение одного знака символьных данных
CharData Задание любых символьных данных, не являющихся
знаками разметки
CharRef Обозначение символа из набора ISO/IEC 10646
children Определение содержания дочернего элемента
choice Определение диапазона выбора частиц содержания
CombibingChar Задание комбинированного символа , который в
сочетании с другими буквами алфавита и символами
обозначает специальное произношение или имеет особое
значение
Поиск нужной конструкции или атрибута Конструкция
Назначение или атрибут
Comment Добавление непечатаемого и неанализируемого
комментария в XML-документ
conditionalSect Определение условного раздела
Connector Ввод символа коннектора для указания метода, с
помощью которого ссылка извлекается из содержащего ее
ресурса
content Определение содержания элемента между открывающим
и закрывающим тегами
content-role Задание роли ресурса локальной ссылки
contentspec Задание типа содержания элемента
content-title Задание заголовка ресурса локальной ссылки
cp Определение грамматики частицы содержания
DefaultDecl Задание атрибута по умолчанию в качестве
обязательного или необязательного
Digit Определение цифры
doctypedecl Задание объявления типа документа
document Создание XML-документа
element Определение элемента XML
elementdecl Наложение ограничения на содержание через
использование объявления типа элемента
EmptyElemTag Указание на пустой элемент
EncName Задание имени кодировки
EncodingDecl Объявление имени кодировки
ENTITIES Задание списка атрибутов состоятельных обобщенных
единиц
ENTITY Задание атрибута состоятельной обобщенной единицы
EntityDecl Объявление единицы
EntityDef Определение обобщенной единицы
EntityRef Идентификация указателя единицы
EntityValue Задание значения внутренней единицы
EnumeratedType Задание как минимум одного перечисляемого
имени нотации или части имени
Enumeration Перечисление всех возможных частей имен для
атрибута
Eq Добавление знака равенства в выражение
Etag Определение закрывающего тега для непустого элемента
Extender Вставка расширенного символа
ExternalID Идентификация разобранной внешней единицы
ExtParsedEnt Задание хорошо оформленной внешней обобщенной
разобранной единицы
продолжение * Конструкция Назначение или атрибут
ExtPE Задание хорошо оформленной внешней единицы параметра
extSubset Идентификация внешнего блока
extSubsetDecl Объявление внешнего блока разметки и условий
GEDecl Идентификация объявления обобщенной единицы
href Идентификация указателя удаленного ресурса
HTMLAddr Задание абсолютного адреса HTML
IanaCode Идентификация языкового кода IANA
ID Задание состоятельного атрибута идентификатора
Ideographic Задание идеографического символа
IdLoc Идентификация элемента с помощью конкретного
идентификатора
IDREF Задание состоятельной перекрестной ссылки на
идентификатор
IDREFS Задание списка состоятельных перекрестных ссылок
на идентификатор
Ignore Идентификация начала и конца игнорируемого раздела,
вложенного во внедренный раздел
ignoreSect Именование условно игнорируемого раздела
ignoreSect- Определение содержания игнорируемого
раздела Contents
includeSect Идентификация внедренного раздела
inline Идентификация внутристрочной или внестрочной ссылки
Instance Ввод номера экземпляра
InstanceOrAll Выбор одного или всех экземпляров указанного
элемента или подэлемента
ISO639Code Назначение языкового кода ISO639
Keyword Именование ключевого слова, указывающего на
относительное местоположение выбираемого элемента
Langcode Задание кода или идентификатора языка
LanguageID Именование идентификатора языка
Length Задание количества выбираемых символов в строке
Letter Задание буквы текущего алфавита
Locator Направление указателя на ресурс ссылки
markupdecl Объявление разметки элементов, списков
атрибутов, единиц или нотаций внутри единицы параметра
Misc Добавление разной информации в пролог документа
Конструкция Назначение или атрибут
Mixed Определение элемента, содержащего как символьные
данные, так и дочерние элементы
Name Задание состоятельного имени XML, начинающегося с
буквы или знака подчеркивания
NameChar Задание одного символа в имени
Names Задание одного или более состоятельных имен языка
XML, начинающихся с буквы
NdataDecl Объявление неразобранной внешней единицы
Nmtoken Задание состоятельного компонента имени XML,
начинающегося с любого символа
Nmtokens Задание одного или более состоятельных компонентов
имени XML, начинающихся с любого символа
NodeType Идентификация конкретного типа или номера узла
NotationDecl Объявление имени нотации
NotationType Задание списка всех возможных имен для типа
нотации
OtherTerm Идентификация типа определителя местоположения
OtherTerms Перечисление одного или более определителей
местоположения
PEDecl Объявление единицы параметра
PEDef Определение единицы параметра
PEReference Идентификация указателя единицы параметра
PI Задание инструкций XML-процессору
PITarget Идентификация целевого приложения для инструкции
по обработке
Position Смещение символа, не являющегося символом
разметки, относительно начала или конца строки
prolog Описание XML-документа
PubidChar Задание символа общего идентификатора внутри
литерала общего идентификатора
PubidLiteral Именование литерала общего идентификатора
PublicID Преобразование внешнего идентификатора в системный
идентификатор
Query Формулировка запроса для поиска расширенного
указателя XPointer
Reference Именование указателя единицы или единицы
параметра
RelTerm Задание относительного определителя местоположения
role Задание роли ресурса удаленной ссылки
продолжение * Конструкция Назначение или атрибут
S Вставка пропуска в XML-документ
SDDecl Объявление одиночного документа
seq Задание последовательного списка частиц содержания
show Идентификация необходимости отображения или обработки
ресурса ссылки
SpanTerm Поиск диапазона расширенных указателей XPointer
Stag Определение открывающего тега непустого или пустого
элемента XML
steps Задание числа уровней, на которых в других группах
продолжается обработка группы расширенных ссылок
StringTerm Задание определителя местоположения по
содержащейся в нем подстроке
StringType Задание строкового типа данных
Subcode Задание кода второго уровня для языка или страны
SystemLiteral Задание системного литерала, представляющего
собой системный идентификатор URI
TextDecl Предоставление информации о версии и кодировке
внешней разобранной единицы
title Задание заголовка ресурса удаленной ссылки
TokenizedType Назначение атрибута элемента в качестве
элементарного ряда
URI Задание единого идентификатора ресурса URI
UserCode Идентификация языка, заданного пользователем
Val Задание значения атрибута, исходя из которого
производится выбор элемента
VersionInfo Задание информации о версии XML
VersionNum Задание номера версии XML
xml:alternate Задание необходимости использования
XML-процессором style sheet альтернативной таблицы стилей
xml:attributes Маркировка выбранных пользователем имен
атрибутов для элемента, составляющего ссылку
xml:lang Задание языка, в соответствии с которым должен
быть интерпретирован документ
xml:link Обработка одного или более элементов, составляющих
ссылку XLink
xml:space Задание пропуска в XML-документе
xml:style sheet Инструкция XML-процессору по использованию
указанной таблицы стилей
XML от А до Z Конструкция Назначение или атрибут
role Задание роли ресурса удаленной ссылки
XMLDecl Идентификация документа в качестве написанного на
языке XML
Xpointer Нахождение частей разделов, целых разделов или
диапазонов разделов в содержащем их ресурсе, например
XML-документе
В табл. 1.3 в алфавитном порядке представлен список
конструкций и атрибутов, о которых подробно рассказывается в
главе 2, «XML», главе 3, «XLink» и главе 4,
«XPointer». Зная имя нужной конструкции или атрибута, с
помощью таблицы вы легко найдете номер главы, в которой можно
получить более полную информацию.
Таблица 1.3. Конструкции и атрибуты
XML Конструкция или атрибут Глава
AbsTerm Глава 4, «XPointer»
actuate Глава 3, «XLink»
Arguments Глава 4, «XPointer»
AttDef Глава 2, «XML»
AttlistDecl Глава 2, «XML»
Attr Глава 4, «XPointer»
Attribute Глава 2, «XML»
AttrTerm Глава 4, «XPointer»
AttType Глава 2, «XML»
AttValue Глава 2, «XML»
BaseChar Глава 2, «XML»
behavior Глава 3, «XLink»
Cdata Глава 2, «XML»
CDEnd Глава 2, «XML»
CDSect Глава 2, «XML»
CDStart Глава 2, «XML»
Char Глава 2, «XML»
CharData Глава 2, «XML»
CharRef Глава 2, «XML»
children Глава 2, «XML»
продолжение * Конструкция или атрибут Глава
choice Глава 2, «XML»
CombiningChar Глава 2, «XML»
Comment Глава 2, «XML»
conditionalSect Глава 2, «XML»
Connector Глава 3, «XLink»
content Глава 2, «XML»
content-role Глава 3, «XLink»
contentspec Глава 2, «XML»
content-title Глава 3, «XLink»
cp Глава 2, «XML»
DefaultDecl Глава 2, «XML»
Digit Глава 2, «XML»
doctypedecl Глава 2, «XML»
document Глава 2, «XML»
element Глава 2, «XML»
elementdecl Глава 2, «XML»
EmptyElemTag EncName Глава 2, «XML»
EncodingDecl Глава 2, «XML»
ENTITIES Глава 2, «XML»
ENTITY Глава 2, «XML»
EntityDecl Глава 2, «XML»
EntityDef Глава 2, «XML»
EntityRef Глава 2, «XML»
EntityValue Глава 2, «XML»
EnumeratedType Глава 2, «XML»
Enumeration Глава 2, «XML»
Eq Глава 2, «XML»
Etag Глава 2, «XML»
Extender Глава 2, «XML»
ExternalID Глава 2, «XML»
extParsedEnt Глава 2, «XML»
extPE Глава 2, «XML»
extSubset Глава 2, «XML»
extSubsetDecl Глава 2, «XML»
GEDecl Глава 2, «XML»
XML от А до Z
Конструкция или атрибут Глава
href Глава 3, «XLink»
HTMLAddr Глава 4, «XPointer»
IanaCode Глава 2, «XML»
Ideographic Глава 2, «XML»
ID Глава 2, «XML»
IdLoc Глава 4, «XPointer»
IDREF Глава 2, «XML»
IDREFS Глава 2, «XML»
Ignore Глава 2, «XML»
ignoreSect Глава 2, «XML»
ignoreSectContents Глава 2, «XML»
includeSect Глава 2, «XML»
inline Глава 3, «XLink»
Instance Глава 4, «XPointer»
InstanceOrAll Глава 4, «XPointer»
ISO639Code Глава 2, «XML»
Keyword Глава 4, «XPointer»
Langcode Глава 2, «XML»
LanguageID Глава 2, «XML»
Length Глава 4, «XPointer»
Letter Глава 2, «XML»
Locator Глава 3, «XLink»
markupdecl Глава 2, «XML»
Misc Глава 2, «XML»
Mixed Глава 2, «XML»
Name Глава 2, «XML»
NameChar Глава 2, «XML»
Names Глава 2, «XML»
NdataDecl Глава 2, «XML»
Nmtoken Глава 2, «XML»
Nmtokens Глава 2, «XML»
NodeType Глава 4, «XPointer»
NotationDecl Глава 2, «XML»
NotationType Глава 2, «XML»
OtherTerm Глава 4, «XPointer»
продолжение * Конструкция или атрибут Глава
OtherTerms Глава 4, «XPointer»
PEDecl Глава 2, «XML»
PEDef Глава 2, «XML»
PEReference Глава 2, «XML»
PI Глава 2, «XML»
PITarget Глава 2, «XML»
position Глава 4, «XPointer»
prolog Глава 2, «XML»
PubidChar Глава 2, «XML»
PubidLiteral Глава 2, «XML»
PublicID Глава 2, «XML»
Query Глава 3, «XLink»
Reference Глава 2, «XML»
RelTerm Глава 4, «XPointer»
role Глава 3, «XLink»
S Глава 2, «XML»
SDDecl Глава 2, «XML»
seq Глава 2, «XML»
show Глава 3, «XLink»
SpanTerm Глава 4, «XPointer»
Stag Глава 2, «XML»
steps Глава 3, «XLink»
StringTerm Глава 4, «XPointer»
StringType Глава 2, «XML»
Subcode Глава 2, «XML»
SystemLiteral Глава 2, «XML»
TextDecl Глава 2, «XML»
title Глава 3, «XLink»
TokenizedType Глава 2, «XML»
URI Глава 3, «XLink»
UserCode Глава 2, «XML»
Val Глава 4, «XPointer»
Versionlnfo Глава 2, «XML»
VersionNum Глава 2, «XML»
xml:attributes Глава 3, «XLink»
XML от А до Z Конструкция или атрибут Глава
XMLDecl Глава 2, «XML»
xml:lang Глава 2, «XML»
xml:link Глава 3, «XLink»
xml:space Глава 2, «XML»
xml:style sheet Глава 2, «XML»
Xpointer Глава 4, «XPointer»
|