Что означает dtd описание документа

Можно сказать, что XML документы состоят из элементов и атрибутов. В DTD описываются и некоторые другие объекты, опредеделения которых смотрите ниже, но документы всегда поддерживают эти две основные концепции.

В данном случае анализатору указывается, что DTD находится во внешнем файле, по адресу «./dtd/msg_queue.dtd». Существует ряд общеизвестных DTD, разработанных для определенных целей. В случае использования такого DTD его объявление будет иметь несколько другой вид:

Приведем несколько доводов в пользу внешних DTD:

Далее в уроке подробно рассматриваются элементы DTD.

Сущности

В языке XML есть возможность продекларировать фрагменты содержания, а затем ссылаться на них при необходимости, что позволяет сэкономить время и силы разработчикам. Объявляя сущность в DTD мы определяем ее имя и содержание, на которое она ссылается. Ссылаясь на сущность, мы заставляем анализатор заменить ссылку на содержимое сущности. Сущности бывают

Ниже приведен пример объявления и использования анализируемых сущностей author и copyright (обратите внимание: сущность copyright ссылается на author):

Строка объявляет сущность author со значением «Иванов Иван Иванович». Ссылка на сущность выглядит как символьная подстановка в HTML: &author;. При разборе документа анализатор встретит ссылку на сущность и заменит ее на значение сущности. В итоге документ примет следующий вид:

Внешние сущности

Текст замещения может содержаться во внешнем файле, тогда объявление сущности будет выглядеть так:

В XML существует ряд предопределенных сущностей, служащих для преодоления ограничений, связанных с синтаксисом языка. Перечень их приведен в таблице ниже:

Источник

Описание структуры XML документа средствами DTD – Document Type Definition

Шпаргалка по DTD.

DTD – Один из способов формализованного описания схемы документа XML, сделанного на языке, понятном программе-анализатору.

В настоящее время идет отказ от использования DTD в пользу XSD (XML Schema Definition), по ряду причин:

Тем не менее этот способ ещё широко применяется поскольку является более простым и удобным для описания несложных схем документов.

КОНСТРУКЦИИ DTD

Описание схемы состоит из объявлений разметки (markup declaration), начинающихся с пары символов “ ”

ОБЪЯВЛЕНИЕ ТИПА ЭЛЕМЕНТА

(должен быть описан каждый элемент документа)

ОБЪЯВЛЕНИЕ АТРИБУТОВ

Атрибуты объявляются после объявления самого элемента. Все атрибуты одного элемента объявляются сразу, одним списком.

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

Типы атрибутов:
признак обязательности:

При исп пространства имен надо всегда указывать уточненное (QName), а не локальное имя.

Атрибуты не входят в пространство имен по умолчанию.

Атрибуты “xml:lang” и “xml:space” так же дол быть объявлены в DTD в случае их применения

ОБЪЯВЛЕНИЕ СУЩНОСТЕЙ

Внутренние сущности – задаются при объявлении сущности.

— можно применять дальше в самом DTD ниже объявления.

Внешние сущности – содержатся в отдельном файле или встроены в программу-анализатор.

Параметризованные сущности – исп только внутри описания DTD

Сущности делятся на разбираемые(parsed) и не разбираемые (unparsed). Разбираемые предст собой фрагмент документа XML или целый документ и подлежат обработке программой-анализатором после подстановки. После подстановки разборки сущность становится частью XML документа.

ПРЕДОПРЕДЕЛЕННЫЕ СУЩНОСТИ В XML

ОБЪЯВЛЕНИЕ ОБОЗНАЧЕНИЯ (NOTATION)

Объявляются подобно сущностям, также могут быть внутренними и внешними.

Внутренняя

Внешняя

SYSTEM | PUBLIC — в данном случае равнозначны т.к. в public не обязательно общеизвестная ссылка.

РАЗМЕЩЕНИЕ DTD

Либо в отдельном файле “*.dtd” указав его имя в кавычках во второй части пролога DOCTYPE, либо включить описание непосредственно во вторую часть пролога, заключив его в квадратные скобки.

Источник

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

Зачем нужно DTD.

Написание определений DTD: общие принципы.

Ассоциирование DTD с документом XML

Блок внутренней декларации разметки тега DOCTYPE состоит из левой квадратной скобки, списка деклараций и правой квадратной скобки:

Если внешние DTD переписываются очень часто, они начинают терять свое значение, а это признак плохого первоначального проекта.

Основные декларации разметки

Конструкция DTDЗначение
ELEMENTДекларация типа элемента XML
ATTLISTДекларация атрибутов, которые могут быть назначены конкретным типам элементов, а также разрешенных значений этих атрибутов
ENTITYДекларация повторно используемого содержания
NOTATIONДекларация форматирования для внешнего содержания, которое не должно быть проанализировано (например, двоичные данные), а также для внешних приложений, обрабатывающих содержание

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

Объявление элементов.

Иногда из нескольких вложенных элементов или списков (список элементов указанных в скобках) может встретиться только один. В таком случае их имена перечисляются через вертикальную черту( | ). Например:

Элементы появляются именно в таком порядке.

Если вложенный элемент можно записать в объявляемом элементе несколько раз, то необходимо это указать используя звездочку, плюс или вопросительным знак.

Источник

Почему важен DOCTYPE и как его правильно использовать

Решил проводить регулярные лекции и практические занятия со своими сотрудниками по программированию на PHP, MySQL, Javascript. А также другим технологиям необходимым для выпуска качественных сайтов. Начать решил с самого «верха», с HTML тэгов. Буду рад, любым комментариям 🙂
Сразу оговорюсь, что бОльшая часть информации я нашел в интернете, внизу статьи будут приведены ссылки на источники. Часть информации была переведена совместно с google translate.
Итак:

Почему так важен DOCTYPE

Вроде бы вы сделали все правильно, но ваш сайт почему-то не выглядит или не работает, как ожидалось, в последних версиях броузеров.
Вы написали правильный стандартный XHTML код и стандартный CSS. Вы воспользовались стандартной спецификацией для работы с DOM (Document Object Model), чтобы управлять динамическими элементами на странице. И все-таки, в броузерах, которые казалось бы сделаны с соблюдением именно этих стандартов, ваш сайт не работает. Скорей всего, ошибка кроется в неправильном заголовке DOCTYPE.
Эта небольшая статья расскажет вам о заголовках DOCTYPE, которые работают, а также объяснит практическое и теоретическое значение этого, казалось бы отвлеченного от реальности, тега.

Что такое DOCTYPE?

Согласно спецификациям HTML и XHTML тег DOCTYPE (что означает «объявление типа документа») сообщает валидатору, какую именно версию (X)HTML вы используете в своей странице. Этот тег должен всегда находиться в первой строке каждой страницы. Тег DOCTYPE — ключевой компонент web-страниц, претендующих на соответствие стандартам: без него ваш код и CSS не пройдут проверку валидатором.
Тег DOCTYPE также важен для правильного отображения и работы страницы в броузерах, соответствующих стандартам (Mozilla, IE5/Mac, и IE6/Win).
Тег DOCTYPE, в атрибутах которого указывается полный URI (полный web-адрес), сообщает броузерам, что страницу нужно вывести с соблюдением определенного стандарта или подвида этого стандарта.
Если вы будете пользоваться неполным тегом DOCTYPE, устаревшим его видом, или вообще забудете про него, броузер перейдет в «загадочный» (quirk) режим и будет исходить из предположения, что вы писали код страницы с ошибками и вольно отступали от стандартов, т.е. так, как писали в конце 90-ых годов.
В этом режиме броузер попытается разобрать вашу страницу по правилам обратной совместимости и выведет на экран, например, CSS так, как его вывел бы Internet Explorer 4-ой версии, а DOM будет работать так, как он работал именно в этом броузере (IE переключается в свой старый DOM, а Mozilla и Netscape 6 переключается вообще в бог знает что).
Понятно, что для вас эти выкрутасы не желательны. Но именно это вы и получите, если будете пользоваться неполным или неправильным тегом DOCTYPE.

Проблема

Когда создавали NN4, IE4 выполняли правила CSS не совсем в соответствии со стандартом. Реализация Netscape была просто ужасной, IE4 подошел к реализации стандарта лучше, но тем не менее, реализовал его не до конца. Хотя IE 5 Windows исправил множество ошибок IE 4, но оставались другие сбои в CSS (в основном в модели окон (window model)).
Поэтому, когда соответствие стандартам стало важным, W3C поставил производителей браузеров перед жестким выбором.
Приблизится к спецификации W3C было одним из решений проблемы, но если бы производители браузеров просто изменили реализацию CSS, чтобы соответствовать стандартам полностью, многие веб-сайты, «поползли» бы в большей или меньшей степени или оказались полностью неработоспособными. Такое сближение с соблюдением стандарта повлекло бы за собой проблемы. С другой стороны, не приведение к соответствию стандартов могло бы внести вечную путаницу в эпоху войны браузеров.

Решение

Иными словами, всем браузерам необходимо было работать в двух режимах: режим совместимости для старых правил, и строгого режима для стандарта.
IE Mac был первым браузером использовавшим оба режима, а Windows IE 6, Mozilla, Safari, Opera и последовали его примеру.
IE 5 Windows, а также старые браузеры, как Netscape 4, постоянно заблокированы в режиме совместимости.

Решение о выборе, какой режим отображения требуется вызвать, было найдено в использовании «DOCTYPE» переключения. Согласно стандартам, любой (X) HTML документ должен иметь DOCTYPE который рассказывает всему миру, какой тип (X) HTML документа он использует.

Допустимые DTD

DOCTYPEОписание
HTML 4.01
www.w3.org/TR/html4/strict.dtd»>Строгий синтаксис HTML.
www.w3.org/TR/html4/loose.dtd»>Переходный синтаксис HTML.
www.w3.org/TR/html4/frameset.dtd»>В HTML-документе применяются фреймы.
XHTML 1.0
www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd»>Строгий синтаксис XHTML.
www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd»>Переходный синтаксис XHTML.
www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd»>Документ написан на XHTML и содержит фреймы.
XHTML 1.1
www.w3.org/TR/xhtml11/DTD/xhtml11.dtd»>Разработчики XHTML 1.1 предполагают, что он постепенно вытеснит HTML. Никакого деления на виды это определение не имеет, синтаксис один и подчиняется четким правилам.

HTML 4.01 DTDs

XHTML 1.0 DTDs

XHTML 1.1 DTD

Это новый DTD, который имеет строгость как у XHTML 1.0 Strict, и основан на фреймворке и модулях описанных в Modularization of XHTML (не стал искать что это такое :).

Источник

DTD — Краткое руководство

Объявление типа документа XML, широко известное как DTD, является способом точного описания языка XML. DTD проверяют правильность структуры и словаря XML-документа по отношению к грамматическим правилам соответствующего языка XML.

XML-документ может быть определен как —

Следующая диаграмма показывает, что DTD используется для структурирования XML-документа:

Что означает dtd описание документа. Смотреть фото Что означает dtd описание документа. Смотреть картинку Что означает dtd описание документа. Картинка про Что означает dtd описание документа. Фото Что означает dtd описание документа

DTD может быть классифицирован на основе декларации в XML-документе, например:

Мы узнаем больше об этом в главе Синтаксис DTD

Характеристики

Ниже приведены некоторые важные моменты, которые описывает DTD:

элементы, которые могут появиться в документе XML.

порядок, в котором они могут появляться.

необязательные и обязательные элементы.

атрибуты элемента и являются ли они необязательными или обязательными.

могут ли атрибуты иметь значения по умолчанию.

элементы, которые могут появиться в документе XML.

порядок, в котором они могут появляться.

необязательные и обязательные элементы.

атрибуты элемента и являются ли они необязательными или обязательными.

могут ли атрибуты иметь значения по умолчанию.

Преимущества использования DTD

Документация — Вы можете определить свой собственный формат для файлов XML. Глядя на этот документ, пользователь / разработчик может понять структуру данных.

Проверка — это дает возможность проверить достоверность файлов XML, проверив, отображаются ли элементы в правильном порядке, имеются ли обязательные элементы и атрибуты, не были ли вставлены элементы и атрибуты неправильно, и так далее.

Документация — Вы можете определить свой собственный формат для файлов XML. Глядя на этот документ, пользователь / разработчик может понять структуру данных.

Проверка — это дает возможность проверить достоверность файлов XML, проверив, отображаются ли элементы в правильном порядке, имеются ли обязательные элементы и атрибуты, не были ли вставлены элементы и атрибуты неправильно, и так далее.

Недостатки использования DTD

Он не поддерживает пространства имен. Пространство имен — это механизм, с помощью которого имена элементов и атрибутов могут быть назначены группам. Однако в DTD пространства имен должны быть определены внутри DTD, что нарушает цель использования пространств имен.

Поддерживается только тип данных текстовой строки.

Это не объектно-ориентированный. Следовательно, концепция наследования не может быть применена к DTD.

Ограниченные возможности выразить мощность элементов.

Он не поддерживает пространства имен. Пространство имен — это механизм, с помощью которого имена элементов и атрибутов могут быть назначены группам. Однако в DTD пространства имен должны быть определены внутри DTD, что нарушает цель использования пространств имен.

Поддерживается только тип данных текстовой строки.

Это не объектно-ориентированный. Следовательно, концепция наследования не может быть применена к DTD.

Ограниченные возможности выразить мощность элементов.

DTD — Синтаксис

XML DTD может быть либо указан внутри документа, либо его можно сохранить в отдельном документе, а затем документ можно связать с документом DTD для его использования.

Синтаксис

Основной синтаксис DTD выглядит следующим образом —

В приведенном выше синтаксисе —

Элемент указывает синтаксическому анализатору проанализировать документ из указанного корневого элемента.

DTD-идентификатор — это идентификатор для определения типа документа, который может быть путем к файлу в системе или URL-адресом к файлу в Интернете. Если DTD указывает на внешний путь, он называется внешним подмножеством.

Элемент указывает синтаксическому анализатору проанализировать документ из указанного корневого элемента.

DTD-идентификатор — это идентификатор для определения типа документа, который может быть путем к файлу в системе или URL-адресом к файлу в Интернете. Если DTD указывает на внешний путь, он называется внешним подмножеством.

Внутренний DTD

Синтаксис

Синтаксис внутреннего DTD выглядит так:

где root-element — это имя корневого элемента, а element-объявлений — это место, где вы объявляете элементы.

пример

Ниже приведен простой пример внутреннего DTD —

Давайте пройдемся по приведенному выше коду —

Начать декларацию — Начните декларацию XML со следующего заявления.

Объявление DOCTYPE имеет восклицательный знак (!) В начале имени элемента. DOCTYPE сообщает анализатору, что DTD связан с этим документом XML.

Тело DTD — за объявлением DOCTYPE следует тело DTD, где вы объявляете элементы, атрибуты, сущности и нотации —

Завершение объявления — Наконец, раздел объявления DTD закрывается с помощью закрывающей скобки и закрывающей угловой скобки (]>). Это эффективно завершает определение, и после этого документ XML следует сразу же.

правила

Объявление типа документа должно появляться в начале документа (с предшествующим только заголовком XML) — оно не разрешено где-либо еще в документе.

Подобно объявлению DOCTYPE, объявления элементов должны начинаться с восклицательного знака.

Имя в объявлении типа документа должно соответствовать типу элемента корневого элемента.

Объявление типа документа должно появляться в начале документа (с предшествующим только заголовком XML) — оно не разрешено где-либо еще в документе.

Подобно объявлению DOCTYPE, объявления элементов должны начинаться с восклицательного знака.

Имя в объявлении типа документа должно соответствовать типу элемента корневого элемента.

Внешний DTD

Синтаксис

Ниже приводится синтаксис для внешнего DTD —

пример

В следующем примере показано использование внешнего DTD —

Содержимое файла DTD address.dtd выглядит так:

Системный идентификатор позволяет указать местоположение внешнего файла, содержащего объявления DTD. Синтаксис выглядит следующим образом —

Как вы можете видеть, он содержит ключевое слово SYSTEM и ссылку URI, указывающую на местоположение документа.

Публичные идентификаторы предоставляют механизм для определения местоположения ресурсов DTD и записываются следующим образом:

Как видите, он начинается с ключевого слова PUBLIC, за которым следует специальный идентификатор. Публичные идентификаторы используются для идентификации записи в каталоге. Публичные идентификаторы могут следовать любому формату, однако обычно используемый формат называется формальными общедоступными идентификаторами или FPI.

DTD — Компоненты

В этой главе мы обсудим компоненты XML с точки зрения DTD. DTD будет в основном содержать объявления следующих компонентов XML:

элементы

Элементы XML могут быть определены как строительные блоки документа XML. Элементы могут вести себя как контейнер для хранения текста, элементов, атрибутов, объектов мультимедиа или их комбинации.

Каждый документ XML содержит один или несколько элементов, границы которых либо ограничены начальными и конечными тегами, либо пустыми элементами.

пример

Ниже приведен простой пример элементов XML

Атрибуты

пример

Ниже приведен простой пример атрибутов XML —

Если атрибуты используются в XML DTD, их необходимо объявить, что будет подробно обсуждаться в главе Атрибуты DTD.

юридические лица

Сущности являются заполнителями в XML. Они могут быть объявлены в прологе документа или в DTD. Объекты могут быть в первую очередь классифицированы как —

Есть пять встроенных сущностей, которые играют в правильно сформированном XML, они —

Мы подробнее рассмотрим объявления сущностей в XML DTD в главе DTD Entities

DTD — Элементы

Элементы XML могут быть определены как строительные блоки документа XML. Элементы могут вести себя как контейнер для хранения текста, элементов, атрибутов, объектов мультимедиа или их комбинации.

Элемент DTD объявляется с объявлением ELEMENT. Когда файл XML проверяется DTD, анализатор сначала проверяет корневой элемент, а затем проверяются дочерние элементы.

Синтаксис

Все объявления элементов DTD имеют эту общую форму —

Объявление ELEMENT используется для указания синтаксического анализатора, который вы собираетесь определить элемент.

elementname — это имя элемента (также называемое универсальным идентификатором ), которое вы определяете.

content определяет, какой контент (если есть) может идти внутри элемента.

Объявление ELEMENT используется для указания синтаксического анализатора, который вы собираетесь определить элемент.

elementname — это имя элемента (также называемое универсальным идентификатором ), которое вы определяете.

content определяет, какой контент (если есть) может идти внутри элемента.

Типы содержимого элемента

Содержимое объявления элементов в DTD можно классифицировать следующим образом:

Пустой контент

Ниже приводится синтаксис объявления пустого элемента —

В приведенном выше синтаксисе —

ELEMENT — объявление элемента категории EMPTY

elementname — имя пустого элемента.

ELEMENT — объявление элемента категории EMPTY

elementname — имя пустого элемента.

Ниже приведен простой пример, демонстрирующий объявление пустого элемента —

Элемент Содержимое

В объявлении элемента с содержимым элемента содержимое будет допустимым элементом в скобках. Мы также можем включить более одного элемента.

Ниже приведен синтаксис объявления элемента с содержимым элемента:

ELEMENT — тег объявления элемента

elementname — это имя элемента.

ELEMENT — тег объявления элемента

elementname — это имя элемента.

Ниже приведен простой пример объявления элемента с содержимым элемента —

Список операторов и синтаксических правил

Ниже в таблице приведен список операторов и синтаксических правил, которые можно применять при определении дочерних элементов.

Имя дочернего элемента может встречаться один или несколько раз внутри адреса имени элемента.

Имя дочернего элемента может встречаться ноль или более раз внутри адреса имени элемента.

Имя дочернего элемента может встречаться ноль или один раз внутри адреса имени элемента.

Имя дочернего элемента может встречаться один или несколько раз внутри адреса имени элемента.

Имя дочернего элемента может встречаться ноль или более раз внутри адреса имени элемента.

Имя дочернего элемента может встречаться ноль или один раз внутри адреса имени элемента.

правила

Мы должны следовать определенным правилам, если есть более одного элемента контента —

Последовательности — часто элементы в документах DTD должны отображаться в определенном порядке. Если это так, вы определяете содержимое с помощью последовательности.

— и что они должны появляться в этом порядке. Например —

Последовательности — часто элементы в документах DTD должны отображаться в определенном порядке. Если это так, вы определяете содержимое с помощью последовательности.

— и что они должны появляться в этом порядке. Например —

Выбор. Предположим, вам нужно разрешить один или другой элемент, но не оба. В таких случаях вы должны использовать символ трубы (|). Труба функционирует как эксклюзивное ИЛИ. Например —

Выбор. Предположим, вам нужно разрешить один или другой элемент, но не оба. В таких случаях вы должны использовать символ трубы (|). Труба функционирует как эксклюзивное ИЛИ. Например —

Содержание смешанного элемента

Это комбинация (#PCDATA) и дочерних элементов. PCDATA обозначает проанализированные символьные данные, то есть текст, который не является разметкой. В моделях со смешанным содержимым текст может появляться сам по себе или между элементами. Правила для моделей со смешанным содержимым аналогичны элементам содержимого, как обсуждалось в предыдущем разделе.

Ниже приведен общий синтаксис для содержимого смешанных элементов:

ELEMENT — тег объявления элемента.

elementname — это имя элемента.

PCDATA — это текст, который не является разметкой. #PCDATA должен стоять первым в объявлении смешанного содержимого.

Оператор (*) должен следовать за смешанным объявлением контента, если включены дочерние элементы

Объявления (#PCDATA) и дочерних элементов должны быть разделены оператором (|).

ELEMENT — тег объявления элемента.

elementname — это имя элемента.

PCDATA — это текст, который не является разметкой. #PCDATA должен стоять первым в объявлении смешанного содержимого.

Оператор (*) должен следовать за смешанным объявлением контента, если включены дочерние элементы

Объявления (#PCDATA) и дочерних элементов должны быть разделены оператором (|).

Ниже приведен простой пример, демонстрирующий объявление смешанного элемента содержимого в DTD.

ЛЮБОЙ элемент контента

Вы можете объявить элемент, используя ключевое слово ANY в содержимом. Это чаще всего упоминается как элемент смешанной категории. ЛЮБОЙ полезно, когда вам еще предстоит определить допустимое содержимое элемента.

Ниже приведен синтаксис объявления элементов с ЛЮБЫМ контентом:

Ниже приведен простой пример, демонстрирующий объявление элемента с ЛЮБОЙ информацией.

DTD — Атрибуты

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

Объявление атрибута очень похоже на объявление элемента во многих отношениях, кроме одного; вместо того, чтобы объявлять допустимый контент для элементов, вы объявляете список допустимых атрибутов для каждого элемента. Эти списки называются декларацией ATTLIST.

Синтаксис

Основной синтаксис объявления атрибутов DTD следующий:

В приведенном выше синтаксисе —

Атрибуты DTD начинаются с ключевого слова

element-name указывает имя элемента, к которому применяется атрибут.

имя-атрибута указывает имя атрибута, который включен в имя-элемента.

attribute-type определяет тип атрибутов. Мы обсудим это подробнее в следующих разделах.

Значение атрибута принимает фиксированное значение, которое атрибуты должны определить. Мы обсудим это подробнее в следующих разделах.

Атрибуты DTD начинаются с ключевого слова

element-name указывает имя элемента, к которому применяется атрибут.

имя-атрибута указывает имя атрибута, который включен в имя-элемента.

attribute-type определяет тип атрибутов. Мы обсудим это подробнее в следующих разделах.

Значение атрибута принимает фиксированное значение, которое атрибуты должны определить. Мы обсудим это подробнее в следующих разделах.

пример

Ниже приведен простой пример объявления атрибута в DTD.

Давайте пройдемся по приведенному выше коду —

Начните с объявления XML со следующего утверждения —

Начните с объявления XML со следующего утверждения —

Сразу за заголовком XML следует объявление типа документа, обычно называемое DOCTYPE, как показано ниже —

DOCTYPE сообщает анализатору, что DTD связан с этим документом XML. Объявление DOCTYPE имеет восклицательный знак (!) В начале имени элемента.

Сразу за заголовком XML следует объявление типа документа, обычно называемое DOCTYPE, как показано ниже —

DOCTYPE сообщает анализатору, что DTD связан с этим документом XML. Объявление DOCTYPE имеет восклицательный знак (!) В начале имени элемента.

Ниже приводится тело DTD. Здесь мы объявили элемент и атрибут —

Ниже приводится тело DTD. Здесь мы объявили элемент и атрибут —

Идентификатор атрибута для имени элемента определен как дано ниже —

Идентификатор атрибута для имени элемента определен как дано ниже —

Правила декларации атрибута

Все атрибуты, используемые в документе XML, должны быть объявлены в определении типа документа (DTD) с использованием объявления списка атрибутов.

Атрибуты могут появляться только в начальных или пустых тегах.

Ключевое слово ATTLIST должно быть в верхнем регистре

Повторные имена атрибутов не будут разрешены в списке атрибутов для данного элемента.

Все атрибуты, используемые в документе XML, должны быть объявлены в определении типа документа (DTD) с использованием объявления списка атрибутов.

Атрибуты могут появляться только в начальных или пустых тегах.

Ключевое слово ATTLIST должно быть в верхнем регистре

Повторные имена атрибутов не будут разрешены в списке атрибутов для данного элемента.

Типы атрибутов

При объявлении атрибутов вы можете указать, как процессор должен обрабатывать данные, которые появляются в значении. Мы можем классифицировать типы атрибутов в трех основных категориях —

В следующей таблице приведена сводка различных типов атрибутов.

операторСинтаксисОписаниепример
+Это указывает на то, что дочерний элемент может встречаться один или несколько раз внутри родительского элемента.
*Это указывает, что дочерний элемент может встречаться ноль или более раз внутри родительского элемента.
?Это указывает на то, что дочерний элемент может появляться ноль или один раз внутри родительского элемента.
,Это дает последовательность дочерних элементов, разделенных запятой, которая должна быть включена в имя элемента.

Объявление значения атрибута

В каждом объявлении атрибута вы должны указать, как значение будет отображаться в документе. Вы можете указать, если атрибут —

может иметь значение по умолчанию

может иметь фиксированное значение

может иметь значение по умолчанию

может иметь фиксированное значение

Значения по умолчанию

Содержит значение по умолчанию. Значения могут быть заключены в одинарные кавычки (‘) или двойные кавычки («).

Ниже приводится синтаксис значения —

где default-value — это определенное значение атрибута.

Ниже приведен простой пример объявления атрибута со значением по умолчанию —

ИСПРАВЛЕНО Значения

Ключевое слово #FIXED, за которым следует фиксированное значение, используется, когда вы хотите указать, что значение атрибута является постоянным и не может быть изменено. Обычное использование фиксированных атрибутов — указание номеров версий.

Ниже приводится синтаксис фиксированных значений —

где #FIXED — определенное значение атрибута.

Ниже приведен простой пример объявления атрибута со значением FIXED —

Следующее является недействительным DTD —

ТРЕБУЕМЫЕ ЦЕННОСТИ

Всякий раз, когда вы хотите указать, что атрибут является обязательным, используйте ключевое слово #REQUIRED.

Ниже приведен синтаксис #REQUIRED —

где #REQUIRED — это определенный тип атрибута.

Ниже приведен простой пример объявления атрибута DTD с ключевым словом #REQUIRED —

В этом примере мы использовали ключевое слово #REQUIRED, чтобы указать, что для имени элемента должен быть указан идентификатор атрибута.

ПОДРАЗУМЕВАЕМЫЕ ЦЕННОСТИ

Ниже приводится синтаксис #IMPLIED —

где #IMPLIED — это определенный тип атрибута.

Ниже приведен простой пример # ПРЕДПОЛАГАЕТСЯ

В этом примере мы использовали ключевое слово #IMPLIED, поскольку мы не хотим указывать какие-либо атрибуты, которые будут включены в имя элемента. Это необязательно.

DTD — Сущности

Объекты используются для определения ярлыков для специальных символов в документах XML. Объекты могут быть в основном четырех типов —

Синтаксис декларации объекта

Внутренняя сущность

Если объект объявлен в DTD, он называется внутренним объектом.

Ниже приводится синтаксис объявления внутренней сущности:

В приведенном выше синтаксисе —

entity_name — это имя объекта, за которым следует его значение в двойных или одинарных кавычках.

entity_value содержит значение для имени объекта.

Значение сущности Внутреннего Сущности отменяется путем добавления префикса & к имени сущности, т. Е. & Entity_name.

entity_name — это имя объекта, за которым следует его значение в двойных или одинарных кавычках.

entity_value содержит значение для имени объекта.

Значение сущности Внутреннего Сущности отменяется путем добавления префикса & к имени сущности, т. Е. & Entity_name.

Ниже приведен простой пример для объявления внутренней сущности:

Внешняя сущность

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

Ниже приведен синтаксис объявления внешнего объекта:

В приведенном выше синтаксисе —

имя это имя объекта.

СИСТЕМА это ключевое слово.

URI / URL — это адрес внешнего источника, заключенный в двойные или одинарные кавычки.

имя это имя объекта.

СИСТЕМА это ключевое слово.

URI / URL — это адрес внешнего источника, заключенный в двойные или одинарные кавычки.

Вы можете обратиться к внешнему DTD, используя —

Как вы можете видеть, он содержит ключевое слово SYSTEM и ссылку URI, указывающую на местоположение документа. Синтаксис выглядит следующим образом —

Как вы можете видеть, он содержит ключевое слово SYSTEM и ссылку URI, указывающую на местоположение документа. Синтаксис выглядит следующим образом —

Публичные идентификаторы — Публичные идентификаторы предоставляют механизм для определения местоположения ресурсов DTD и записываются, как показано ниже:

Как видите, он начинается с ключевого слова PUBLIC, за которым следует специальный идентификатор. Публичные идентификаторы используются для идентификации записи в каталоге. Публичные идентификаторы могут иметь любой формат; однако обычно используемый формат называется формальными общедоступными идентификаторами или FPI.

Публичные идентификаторы — Публичные идентификаторы предоставляют механизм для определения местоположения ресурсов DTD и записываются, как показано ниже:

Как видите, он начинается с ключевого слова PUBLIC, за которым следует специальный идентификатор. Публичные идентификаторы используются для идентификации записи в каталоге. Публичные идентификаторы могут иметь любой формат; однако обычно используемый формат называется формальными общедоступными идентификаторами или FPI.

Давайте поймем внешнюю сущность со следующим примером —

Ниже приводится содержимое файла DTD address.dtd

Встроенные объекты

Все анализаторы XML должны поддерживать встроенные объекты. В общем, вы можете использовать эти ссылки на сущности где угодно. Вы также можете использовать обычный текст в документе XML, например, в содержимом элемента и значениях атрибута.

Есть пять встроенных сущностей, которые играют свою роль в правильно сформированном XML, они —

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Sr.No.Тип и описание
1