Что означает сокращение dtd

Что означает сокращение dtd

DTD (англ. Document Type Definition определение типа документа) — включает в себя два понятия:

Из-за определённых отличий между XML и SGML, применение DTD также имеет некоторые особенности в зависимости от целевого документа

Сейчас идёт отказ от использования DTD в XML-технологии по ряду причин:

На смену DTD пришёл стандарт консорциума W3C XML Schema.

Содержание

Описание схемы документа

DTD описывает схему документа для конкретного языка разметки посредством набора объявлений (объектов-параметров, элементов и атрибутов), которые описывают его класс (или тип) с точки зрения синтаксических ограничений этого документа. Также DTD может объявлять конструкции, которые всегда необходимы для определения структуры документа, но, зато, могут влиять на интерпретацию определённых документов.

Объявление объектов-параметров

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

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

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

Различные ключевые слова и символы определяют содержимое элемента:

Элемент DL должен содержать один и более элементов DT или DD в произвольном порядке.

Определение атрибутов

С каждым элементом DTD-документа можно сопоставить список атрибутов. Для этого используется директива !ATTLIST, в которой указываются имя элемента, с которым может быть сопоставлен список атрибутов и параметры каждого атрибута: его имя, тип и свойства по умолчанию.

Существуют такие типы атрибутов:

Существуют такие свойства по умолчанию:

Связь документа с определённым DTD

Чтобы связать документ с определённым DTD, необходимо в начале текста документа указать элемент Объявление Типа Документа.

В зависимости от места расположения DTD, Объявление Типа Документа может быть двух видов:

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

Пример

Пример очень простого XML DTD, описывающего список людей:

Начиная с первой строки:

содержит любое число элементов

. Знак означает что возможно 0, 1 или более элементов

Пример XML-документа, использующего этот DTD:

Источник

Что означает сокращение dtd

Определение типа документа (Document Type Definition, DTD) является тем фундаментом, на котором создаются XML-документы. Вы можете создать DTD или использовать заранее определенные DTD, которые специально созданы для применения в таких отраслях, как медицина и автомобильная промышленность, и которые описывают стандартизованные документы. Независимо от того, создаете ли вы собственное DTD, или же используете заранее определенное, вам необходимо знать, что такое DTD, как оно составляется и как работает.

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

DTD определяет части документа и указывает, каким образом они могут использоваться, что может быть в них размещено, и требуются ли им фрагменты документа. DTD представляет собой набор правил, определяющий инструкции, которые могут быть переданы анализатору (parser) для обработки им этого документа. DTD может включать в себя набор объявлений элементов и атрибутов, а также сущности (entities), условные обозначения (notations) и комментарии. Различные объявления компонентов определяют, как документ будет структурирован, и эта информация (в виде инструкций) передается анализатору (parser). Анализатор, в свою очередь, отправляет результаты в приложение, обеспечивающее просмотр данных.

На примере DTD, созданного для относительно простого документа, рассмотрим, что оно собой представляет и как работает. Это пример внутреннего DTD, то есть такого, которое содержится непосредственно в самом XML-документе:

Обратите внимание, что данное DTD целиком размещено в самом документе. Эти определения, которые в действительности являются ничем иным как инструкциями по обработке данных, точно указывают анализатору XML, как именно следует управлять различными данными, которые будут размещены в документе, а также какой информацией или текстом должны быть замещены расположенные в документе сущности. DTD, который включен в состав самого XML-документа, называется внутренним подмножеством DTD (internal DTD subset), поскольку все инструкции по обработке информации, а также сами данные документа расположены внутри единого документа.

После того как предыдущий пример будет обработан анализатором и отображен браузером на экране, результат может быть следующим (предполагается, что соответствующая таблица стилей уже подключена):

Today's Memo Памятка на сегодня
August 1, 2000 1 августа 2000 г.
200 West 34th Suite 953, Anchorage. 200 West 34th Suite 953, Anchorage.
This memo is to alert you to the Это — извещение о том, что
new XML Black Book has now been издательство Coriolis, в серии
printed. Published by The Coriolis Black Book, выпустило новую книгу
Group, this book outlines пo XML, которая содержит все
everything you need to know необходимые сведения об этом языке
about XML. разметки.

Анализатор XML сверяет разметку документа по объявлениям различных элементов. Он также осуществляет замещение сущности, для которой в DTD было определено конкретное значение. В данном примере анализатор заменяет ссылку на сущность &PUBLISHER;- объявленным значением этой сущности, т. е. — The Coriolis Group. Таблица стилей, которая будет описана позднее в отдельном HTML-файле, управляет отображением данных.

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

Объявления

Объявлением называют разметку, которая служит для процессора XML специальной инструкцией, указывающей, как он должен обрабатывать данный документ. Существуют объявления элементов, атрибутов, сущностей, условных обозначений, объявление процессора и объявление типа документа. Рассмотрим два самых важных из них — объявление процессора и объявление типа документа. В отличие от остальных объявлений, объявление процессора и объявление типа документа не участвуют в конструировании самого документа. Они не поясняют структурную роль каждого отдельного элемента или атрибута. Наоборот, они указывают процессору, какой стандарт необходимо использовать, к какому типу относится обрабатываемый документ, а также где хранится DTD, в соответствии с которым сконструирован данный документ. Еще раз обратите внимание на две строки кода, которые определяют объявление процессора или так называемое объявление XML (XML declaration) и объявление типа документа:

<?XML version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE DOC [

Объявление XML

Первая строка в предыдущем примере называется объявлением XML. Это объявление указывает процессору, что для обработки XML-документа необходимо использовать спецификацию XML используемой версии (в настоящее время — версии 1.0. Вторая часть объявления XML указывает кодировку символов в данном документе. В этом примере применена 8-битная кодировка Unicode.

Заключительный фрагмент информации, который мы включаем в объявление XML, называется объявлением отдельного документа (standalone document declaration). Это объявление указывает, существуют ли внешние источники информации для данного документа. Так, значение «yes» говорит, что в данном документе не используется внешнее DTD или же какие-либо внешние параметрические сущности (external parameter entities). Другими словами, данный документ является самодостаточным и вся необходимая информация содержится в нем самом. Значение «yes» также указывает процессору, что в разметке необходимо игнорировать любые объявления внешних ссылок. Значение «nо» указывает процессору, что он может обрабатывать любые внешние объявления. Устанавливая для атрибута standalone значение «nо», вы сообщаете XML-процессорy, что данный документ может иметь ссылки на любые внешние объявления, например на любые внешние DTD. Это не означает, что вы должны включать внешние ссылки, а лишь то, что процессор должен принять и обработать любую внешнюю ссылку, если она указана в документе.

Когда устанавливать значение «yes», а когда «nо»? Если внешнее DTD содержит объявления атрибутов с любыми установками значений по умолчанию, и эти значения применяются по отношению к элементам, встречающимся в вашем документе, то следует установить значение «nо». Также необходимо установить значение «nо», если документ содержит какие-либо пустые участки, или в документе есть сущности, и ссылки на них встречаются в самом содержании документа. Значение «yes» можно установить, если в документе нет ссылок на внешние сущности, и если вы только используете общие сущности (general entities), являющиеся частью языка XML, например, амперсанд, символы «больше чем», «меньше чем», апостроф или же кавычки.

Объявление типа документа

Строка кода &lt! DOCTYPE DOC [ называется объявлением типа документа, и она служит для связи XML-документа с соответствующим DTD. Выражение, следующее за &lt! DOCTYPE, является именем используемого DTD. В том случае если DTD является внутренним, то за объявлением &lt! DOCTYPE следует список элементов и атрибутов, определенных для внутреннего DTD. Именно в объявлении типа документа автор XML-документа указывает, является ли данное DTD общим (public), или же частным (private). Далее, после закрывающей скобки указывается либо само DTD, либо локатор ссылки (reference locator)-на его местоположение. Если вы не опишете DTD, то процессор не получит информацию, необходимую для конструирования документа.

Вы можете указать, что DTD является частью документа, поместив его в скобках в самом документе, либо можете указать внешнее DTD. Далее в этой главе в разделе «Внешние и внутренние DTD» рассматривается вопрос, когдаа следует применять внешнее, а когда внутреннее DTD.

Вот пример DTD, содержащегося в самом документе:

<!DOCTYPE DOC [
<!ELEMENT DOC (SUBJECT, DATE, ADDRESS, MEMO) >
<ELEMENT SUBJECT (#PCDATA)>
<!ELEMENT DATE (#PCDATA)>
<!ELEMENT ADDRESS (#PCDATA)>
<!ELEMENT MEMO (# PCDATA) >
<!ENTITY PUBLISHER "The Corioiis Group">
]>

Вот пример того, как DTD хранится вне документа:

Где могут храниться DTD

DTD могут храниться как внутри самого документа, так и вне его. В данном примере мы храним DTD внутри документа:

<?XML version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE DOC [

Внутренние DTD объединяют все элементы, атрибуты, условные обозначения и сущности в самом документе. Внутренние DTD размещаются вначале документа, в объявлении типа документа. Объявление типа документа указывает процессору на DTD. Это объявление соединяет DTD с документом. Внутренние DTD указываются при помощи следующей строки кода, содержащейся в определении типа документа:

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

Общие и системные DTD

У вас есть возможность использовать как общедоступные (publicy available) DTD, которые разработаны для определенных целей, либо создать собственные DTD. Работая с общедоступными DTD, необходимо в объявлении типа документа указать ключевое имя PUBLIC. А если вы собираетесь использовать собственное DTD, то укажите ключевое слово SYSTEM. Вот пример кода для объявления общедоступного DTD:

<! DOCTYPE book PUBLIC "-//CompanyXYZ//DTD book//EN"
”http://www.site.com/dtds/book.dtd">

В XML для указания общедоступных DTD применяется точно такая же структура, как и в SGML. Если указанная сущность или DTD является стандартом ISO, то DTD начинается словом ISO. Если же указанная сущность или DTD не является стандартом ISO, однако используемый стандарт официально принят группой стандартизации, то объявление следует начинать со знака плюс (+). Если же он не принят официально группой стандартизации, то объявление следует начинать со знака минус (-). Далее следуют две наклонных черты (//), а затем владелец данного DTD. Если мы проанализируем DTD из предыдущего примера, то обнаружим, что указанное DTD не является стандартным, и что владельцем данного DTD является компания CompanyXYZ. Мы также увидим, что имя данного DTD — book, и что DTD расположено по адресу http://www.site.com/ в каталоге dtds.

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

<! DOCTYPE book SYSTEM "http://www.site.com/dtds/book.dtd">

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

Примечание
Можно встраивать одно DTD в другое, тогда встроенное DTD вызывается внешним DTD.

Быть или не быть DTD

Как вы уже знаете, в XML применение DTD не обязательно (в отличие от SGML). Поскольку XML был изначально приспособлен для работы в World Wide Web, в нем предусмотрены случаи, когда DTD просто не может работать из-за ограничений, накладываемых пропускной способностью. В таких случаях можно включать определения элементов и атрибутов непосредственно в сам документ.

Как же узнать, когда нужно использовать DTD, а когда нет? И как узнать каким DTD должно быть — внутренним или внешним?

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

Внешние и внутренние DTD

Приняв решение о создании DTD, следует определить способ его хранения. Размер документа — лишь один из факторов, которые следует учитывать Необходимо также тщательно рассмотреть, нужна ли проверка действительности (validity) документа.

Внутренние DTD

Первый вопрос, на который следует ответить при создании документа, можно сформулировать так: нужно ли, чтобы документ был самодостаточным (self-contained). Самодостаточный документ можно перемещать из системы в систему, без потери компонентов. С таким документом можно работать в локальной системе, без выхода в Internet, а можно поместить его сменный носитель и иметь его при себе. И любой процессор XML сможет его обработать.

Кроме того, размещение информации в едином файле снижает время загрузки, анализа, отображения и обработки файла. При размещении DTD в самом документе процессор XML для отображения информации должен прочитать один файл, а не два или три (или больше).

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

Внешние DTD

Источник

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

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

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

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

Что означает сокращение 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