Тема xml-схемы – описание структуры документа лекция Определение типа документа (dtd document Type Definition) icon

Тема xml-схемы – описание структуры документа лекция Определение типа документа (dtd document Type Definition)




Скачати 195.88 Kb.
НазваТема xml-схемы – описание структуры документа лекция Определение типа документа (dtd document Type Definition)
Дата25.10.2012
Розмір195.88 Kb.
ТипЛекция
1. /XML-Лекция 1. концепция Семантического Веб.doc
2. /XML-Лекция 10. XSL.doc
3. /XML-Лекция 11. Сортировка и фильтрация.doc
4. /XML-Лекция 12. Другие способы отображения XML документов.docx
5. /XML-Лекция 13. XLINK.doc
6. /XML-Лекция 14_RDF.doc
7. /XML-Лекция 15_OWL.doc
8. /XML-Лекция 1_Презентация.docx
9. /XML-Лекция 2. Основы XML.doc
10. /XML-Лекция 3. Создание XML-документов.doc
11. /XML-Лекция 4. Обработка XML в C#.docx
12. /XML-Лекция 5. Создание XML-документов в C#.docx
13. /XML-Лекция 6. Отображение XML-документов в помощью CSS.doc
14. /XML-Лекция 7. Атрибуты и пространства имен.doc
15. /XML-Лекция 8. Определение типа документа.doc
16. /XML-Лекция 9. Схемы XSD.doc
“семантический web и языки информационного обмена”
Тема Обработка документов xml лекция 10. Способы преобразования документов xml план
Тема Обработка документов xml лекция 11. Фильтрация и сортировка данных xml план
Лекция 12. Другие способы отображения xml документов План Связывание xml данных с html страницей с помощью dso
Тема Связь xml документов Лекция 12. Создание ссылок на языке xlink
Стандарты rdf пример практического применения rdf
Языки онтологий Создание онтологий в редакторе Protégé-2000
Тема концепция семантического web
Тема Язык xml лекция Введение
Тема Основы xml лекция Создание и отображение xml-документа
Лекция Работа с xml в. Net план Классы для работы с xml. Net чтение и запись потоков данных Xml Использование класса XmlReader Методы чтения данных
Лекция Создание xml-документов в. Net план Использование класса XmlWriter запись потоков данных Xml Использование dom в. Net Чтение xml-документа с помощью XmlNodeList
Тема Основы xml лекция Применение css для отображения xml-документа
Тема Основы xml лекция 7
Тема xml-схемы – описание структуры документа лекция Определение типа документа (dtd document Type Definition)
Тема xml-схемы – описание структуры документа лекция Описание схемы документа средствами xsd (xml schema Definition language)



Тема 4. XML-схемы – описание структуры документА

Лекция 8. Определение типа документа (DTD - Document Type Definition)


План

1. Понятие корректно сформированного и верного XML-документа

2. Требования корректности формирования и правильности (верности)

3. Добавление объявления типа документа DTD

4. Конструкции языка DTD

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

6. Описание содержимого элемента

7. Задание содержимого элемента

8. Задание смешанного содержимого

9. Объявление атрибутов

10. Тип атрибута

11. Объявление сущностей (макроопределений)

1. Понятие корректного и верного XML-документа


Каждая реализация XML вводит новые теги. Программа-анализатор документа должна «понимать» вложенность, порядок следования и взаимосвязь тегов, типы атрибутов, а также другие характеристики тегов, образующие схему документа. Для этого к XML-документу нужно приложить формализованное описание. Такое описание можно сделать разными способами. Создано несколько языков описания схемы документа XML, основные из которых:

DTD (Document Type Definition) – язык определения типа документа и

XSD (XML Schema Definition Language) – язык определения схемы.

Каждый XML-документ должен быть корректно сформированным (well-formed), т.е. отвечать минимальным требованиям по составлению XML-документа. Если документ не является корректно сформированным, он не может считаться XML-документом.

Корректно сформированный XML-Документ также может быть верным (валидным).

Верным (valid) называется корректно сформированный (well-formed) документ, отвечающий двум дополнительным требованиям:

  • пролог документа должен содержать специальное объявление типа документа, которое содержит определение типа документа (DTD), задающее структуру документа;

  • остальная часть документа должна отвечать структуре, заданной в DTD.

2. Требования корректности формирования и верности


Требования корректности формирования представляют собой набор правил, определенных в спецификации XML в дополнение к основным синтаксическим требованиям. Поскольку XML-документ должен быть корректно сформированным, любое отклонение от требований корректности формирования считается фатальной ошибкой (fatal error). Если XML-процессор сталкивается с фатальной ошибкой, он останавливает нормальную обработку документа и не пытаться ее возобновить.

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

Язык DTD обеспечивает стандартный шаблон для процессора, чтобы при проверке документа он мог следовать требуемой структуре и гарантировать, что ваш документ соответствует установленным стандартам. Если какая-либо часть документа не отвечает DTD-cneцификации, процессор может отобразить сообщение об ошибке, чтобы можно было отредактировать документ и исправить несоответствия.

Фактически, стандарт XML определяет DTD как «грамматику для определенного класса документов».

Хотя в настоящее время язык DTD считается устаревшим, и вытесняется более современным языком XSD, существует много документов, написанных с применением разметки DTD.

3. Добавление объявления типа документа DTD


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




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

Содержание объявления типа зависит от способа объявления тегов.

В обще виде его структура имеет вид:


DOCTYPE Имя корневого элемента [описание определения типа документа DTD] >


Определение DTD может размещаться в том же документе или вынесено в отдельный файл. В последнем случае вместо квадратных скобок записывается одно из ключевых слов: SYSTEM или PUBLIC.

За словом SYSTEM следует адрес в форме URI-файла с определением DTD, а за словом PUBLIC, кроме того, можно записать дополнительную информацию.

Определение DTD позволяет убедиться в верности (валидности, valid) документа.

В нашем примере:




SYSTEM “inv.dtd” означает ссылку на файл с описанием структуры документа INVENTORY.

4. Конструкции языка DTD


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

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

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

ELEMENT …….


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

ATTLIST …….

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

ENTITY …….

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

NOTATION …….


Кроме этого, в описание можно включать:

  • Инструкции по обработке.

  • Комментарии.

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


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

Объявление типа элемента имеет следующую обобщенную форму:


Здесь Имя есть имя объявляемого типа элемента. Описание одержимого - это описание, которое определяет, что может содержать элемент.

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


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



[


]

>



Mozart Violin Concertos 1,2, and 3

Telemann Trumpet Concertos

Handel Concetti Grossi Op. 3 




Примечание. Вы можете объявить определенный тип элемента в данном документе только один раз.

6. Описание содержимого элемента


Вы можете описать содержимое элемента различными способами.

  • Пустое содержимое (EMPTY). Ключевое слово EMPTY указывает, что элемент должен быть пустым, т.е. не может иметь содержимого. Например:



Ниже приведены верные элементы IMAGE, которые вы можете поместить в документ:





  • Любое содержимое (ANY). Ключевое слово ANY указывает, что элемент может иметь любое допустимое для этого типа содержимое. Элемент этого типа может содержать или не содержать дочерние элементы в любом порядке и с любым количеством вхождений, иметь или не иметь чередующиеся символьные данные. Это наиболее неопределенный тип описания содержимого, он дает возможность создавать типы элементов без ограничений на их содержимое. Вот пример соответствующего объявления:




  • Содержимое элемента (также называемое дочернее содержимое). При таком описании типа содержимого элемент может содержать дочерние элементы, но не может непосредственно содержать символьные данные.




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

7. Задание содержимого элемента


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

Рассмотрим следующий пример XML-документа, описывающий одну книгу:




[


]

>



The Scarlet Letter

NathanielHawthorne



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

  • Последовательная. Последовательная форма модели содержимого указывает, что элемент должен иметь заданную последовательность дочерних элементов. Вы отделяете имена типов дочерних элементов запятыми. Например, следующее DTD указывает, что элемент MOUNTAIN должен иметь один дочерний элемент NAME, после которого идет один дочерний элемент HEIGHT, за которым следует один дочерний элемент STATE:


[


]

>

Следовательно, следующий элемент Документ будет валидным:



Wheeler

13161

New Mexico 



Следующий элемент Документ, однако, не будет валидным, поскольку порядок дочерних элементов не соответствует объявленному:



New Mexico

Wheeler

1316K/HEIGHT>



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

  • Выборочная. Выборочная форма модели содержимого указывает, что элемент может иметь любой из серии допустимых дочерних элементов, разделяемых символом |. Например, следующее DTD указывает, что элемент FILM может состоять из одного дочернего элемента STAR, или одного дочернего элемента NARRATOR, или одного дочернего элемента INSTRUCTOR:



[


]

>

Следовательно, следующий элемент Документ будет валидным:



Robert Redford



как и элемент:



Sir Gregory Parsloe 



а также элемент:



GalahadThreepwood 



Следующий элемент Документ не будет валидным, поскольку вы можете включить только один из дочерних элементов:



Sir Gregory Parsloe

GalahadThreepwood




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

Символ

Значение

?

Ни одного или один из предшествующих элементов

+

Один или несколько из предшествующих элементов

*

Ни одного или несколько из предшествующих элементов


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


Таким образом, следующий элемент будет правильным:



Pueblo Peak

Taos Mountain

New Mexico



Другой пример: следующее объявление означает, что вы можете включить несколько или ни одного дочернего элемента STAR, либо один дочерний элемент NARRATOR, либо один дочерний элемент INSTRUCTOR:

Соответственно, каждый из следующих трех элементов будет корректным:



Tom Hanks

Meg Ryan





Sir Gregory Parsloe





Вы также можете воспользоваться символами ?, + или * для модификации всей модели содержимого, помещая символы непосредственно после закрывающих скобок. Например, следующее объявление дает вам возможность включить один или несколько дочерних элементов любого из этих трех типов в любом порядке:

Такое объявление делает корректными следующие элементы:



BertramWooster

Sean Connery

Plug Basham





Sean Connery

Meg Ryan





StinkerPike 



Наконец, вы можете формировать более сложные модели содержимого путем вложения выборочной модели содержимого внутрь последовательной модели, либо последовательной модели в выборочную модель. Например, следующее DTD задает, что каждый элемент FILM должен иметь один дочерний элемент TITLE; за ним должен следовать один дочерний элемент CLASS; после него должен идти один дочерний элемент STAR, NARRATOR или INSTRUCTOR:


[


]

>

В соответствии с этим DTD, следующий элемент Документ будет корректным:



The Net<aitle> <br /> <br /><CLASS>fictionaK/CLASS> <br /> <br /><STAR>Sandra Bullok</STAR>  <br /> <br /></FILM> <br /> <br />так же, как такой: <br /> <br /><FILM> <br /> <br /><TITLE>How to Use XML<aitle> <br /> <br /><CLASS>instructionaK/CLASS> <br /> <br /><INSTRUCTOR>PennyDonaldson</INSTRUCTOR>  <br /> <br /></FILM> <br /><br /><h2>8 Задание смешанного содержимого </h2> <br />Если элемент имеет <i>смешанное содержимое</i>, он может включать символьные данные. Если же вы зададите в объявлении один или несколько типов дочерних элементов, он может содержать любые из этих дочерних элементов в любом порядке и с любым количеством вхождений (нуль и более). Другими словами, при смешанном содержимом вы можете задавать <i>типы дочерних элементов</i>, но не можете задавать <i>порядок</i> или количество вхождений дочерних элементов, а также задавать обязательность включения для определенных типов дочерних элементов. <br /> <br />Чтобы объявить <i>тип элемента смешанного содержимого, </i>вы можете воспользоваться одной из следующих форм <i>модели содержимого</i>. <br /> <ul> <li><br /><b>Только символьные данные</b>. Чтобы объявить тип элемента, который может содержать только символьные данные, используйте модель содержимого (#PCDATA). Так, следующее объявление указывает, что для элемента SUBTITLE допускаются только символьные данные: <br /> </ul> <br /><br /><br />Следующие два элемента будут корректными: <br /><br /><br /><subtitle>A New Approach</subtitle> <br /> <br /><subtitle></subtitle> <br /><br /><br />Заметим, что элемент, который в соответствии с объявлением должен содержать символьные данные, может и не иметь никаких символов, т.е. быть пустым. <br /> <br /><b>Примечание.</b> Ключевое слово <i>PCDATA</i> относится к синтаксически анализируемым символьным данным. XML-процессор синтаксически разбирает символьные данные внутри элемента, т.е. сканирует элемент в поиске XML-разметки. В связи с этим вы <i>не можете</i> использовать правую угловую скобку (<) или знак амперсанда (&) или символы ]]> как часть символьных данных, поскольку синтаксический анализатор будет интерпретировать каждый из этих символов или группы символов как разметку. Однако вы можете использовать любые символы с помощью ссылки на символ или на предопределенный примитив или с помощью раздела CDATA. <br /> <ul> <li><br /><b>Символьные данные с необязательными дочерними элементами</b>. Чтобы объявить тип элемента, который может содержать символьные данные плюс ни одного или несколько дочерних элементов, перечислите каждый тип дочернего элемента после ключевого слова PCDATA в модели содержимого, разделяя их символами | и помещая звездочку (*) в конце всей модели содержимого. Каждое имя элемента может появляться в модели содержимого только один раз. Например, следующее объявление указывает, что элемент TITLE может содержать символьные данные плюс ни одного или несколько дочерних элементов SUBTITLE: <br /> </ul> <br /> <br /> <br />В соответствии с этим объявлением следующие элементы TITLE являются допустимыми: <br /> <br /><TITLE> <br /> <br />Moby-Dick <br /> <br /><subtitle>Or, the Whale</subtitle> <br /> <br />

Or, the Whale

<br /> <br />Moby-Dick <br /> <br />

<br /> <br /><subtitle>Or, theWhale</subtitle> <br /> <br /><subtitle>Another Subtitle</subtitle> <br /> <br />

<ТITLE>


9. Объявление атрибутов


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

  • определяет имена атрибутов элемента. Вы можете включить в начальный тег элемента только те атрибуты, которые определены для элемента;

  • устанавливает тип данных каждого атрибута;

  • задает обязательность каждого атрибута. Если атрибут не обязательный, в объявлении списка атрибутов указывается, что должен делать процессор, если атрибут опущен.

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

Здесь Имя представляет собой имя элемента, ассоциированного с атрибутом или атрибутами. OnpAmp - это одно или несколько определений атрибутов, каждое из которых определяет один атрибут.

Определение атрибута имеет следующую форму записи:

Имя ОпрАтр ОбъявУмолч

Здесь Имя представляет собой имя атрибута.

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

Примеры

Допустим, вы объявили тип элемента с именем FILM следующим образом:

Вот пример объявления списка атрибутов, которое описывает два атрибута - Class и Year - для элемента FILM:

На следующем рисунке представлены составные части этого объявления.




Вы можете присвоить атрибуту Class любую строку в кавычках (ключевое слово CDATA); если вы опускаете атрибут для определенного элемента, ему будет автоматически присвоено значение по умолчанию «fictional». Вы можете присвоить атрибуту Year любую строку в кавычках; этот атрибут, однако, должен быть обязательно присвоен для каждого элемента FILM (ключевое слово #REQUIRED), поэтому он не имеет значения по умолчанию.

Следующий полный XML-документ включает это объявление списка атрибутов, а также элемент FILM:




[




]

>



The Morning Аfter

Morgan Attenbury




Для элемента FILM атрибуту Year присвоено значение «1948». Атрибут Class опущен; однако, поскольку этот атрибут имеет значение по умолчанию («fictional»), оно присваивается атрибуту, как если бы вы записали его в качестве значения атрибута.

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

10 Тип атрибута


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





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

  • Строковый тип. Строковый тип атрибута может быть назначен любой строке в кавычках (литералу), которая отвечает общим правилам/. Вы должны объявить строковый тип атрибута с использованием ключевого слова CDATA, например:



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

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

Также в определении атрибута можно использовать следующие параметры:

  • #REQUIRED - определяет обязательный атрибут, который должен быть задан во всех элементах данного типа

  • #IMPLIED - атрибут не является обязательным

  • #FIXED "значение" - указывает, что атрибут должен иметь только указанное значение, однако само определение атрибута не является обязательным, но в процессе разбора его значение в любом случае будет передано программе-анализатору

  • Значение - задает значение атрибута по умолчанию

10.1 Задание маркерного типа


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

Кроме того, значение должно отвечать определенному ограничению, которое вы задаете в описании атрибута с помощью соответствующего ключевого слова. Например, в приведенном ниже XML-документе для атрибута StockCode определен маркерный тип с использованием ключевого слова ID. (ID - это только одно из ключевых слов, которые вы можете использовать для объявления маркерного типа.) Это ключевое слово означает, что для каждого элемента атрибуту должно быть присвоено уникальное значение. (Например, присвоение товарного кода «S021» двум элементам ITEM не допускается.)



[


] >



Peach Tea Pot

Electric Cofee Grinder

Candy Thermometer



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

  • ID. Для каждого элемента атрибут должен иметь уникальное значение. Данный тип элемента может иметь только один атрибут типа ID, а в объявлении значения атрибута по умолчанию должно фигурировать #REQUIRED или #IMPLIED.

  • IDREF. Этот тип атрибута является ссылкой на уникальный идентификатор другого атрибута. Например, вы можете добавить атрибут IDREF с именем GoesWith к элементу ITEM:



StockCode ID #REQUIRED GoesWith IDREF #IMPLIED>


Далее вы можете использовать этот атрибут для ссылки на другой элемент ITEM:

Electric Cofee Grinder


Cofee Grinder Brush



  • IDREFS. Этот тип атрибута похож на тип IDREF, но при этом значение может включать ссылки на несколько идентификаторов — разделенных пробелами - внутри строки в кавычках. Например, если вы назначите атрибуту GoesWith тип IDREFS таким образом:



то можете использовать его на ссылки на несколько других элементов:

Electric Cofee Grinder



1 pound Breakfast Blend Cofee Beans



Атрибуты типа ID играют ту же роль, что и первичный ключ в таблицах БД. Они позволяют различать элементы и индексировать их. Это позволяет различать элементы и ссылаться на них. Ссылки выполняются атрибутами типа IDREF или IDREFS.

  • ENTITY. Значение атрибута должно совпадать с именем примитива, объявленного в DTD. Этот примитив не обрабатывается синтаксическим анализатором и ссылается на внешний файл, обычно содержащий не XML-данные. О таких примитивах будет рассказано в главе 6.

Например, в DTD вы объявляете элемент с именем IMAGE и атрибут типа ENTITY с именем Source, указывающий на источник рисунка:



  • ENTITIES. Этот тип атрибута похож на тип ENTITY, за исключением того, что значение может содержать имена нескольких не анализируемых примитивов - разделенных пробелами - внутри строки в кавычках. Например, если вы назначили атрибуту Source тип ENTITIES следующим образом:



LIST IMAGE Source ENTITIES #REQUIRED>

то сможете использовать его для ссылки на несколько не анализируемых примитивов (допустим, примитивов, содержащих графические данные в альтернативных форматах), например, так:



(Здесь подразумевается, что LogoGif и LogoBmp - имена не анализируемых примитивов)

  • NMTOKEN. Это значение есть элементарное имя (name token), представляющее собой имя, состоящее из символов, применяемых в именах. Например, если вы назначите атрибуту ISBN тип NMTOKEN следующим образом:



LIST BOOK ISBN NMTOKEN #REQUIRED>

то можете присвоить ему значение, начинающееся с цифры (цифры в качестве первых символов допустимы только для маркерных типов NMTOKEN и NMTOKENS):

<ВООК ISBN="9-99999-999-9">The Portrait of a Lady


NMTOKENS. Этот тип атрибута похож на тип NMTOKEN, но значение может содержать несколько элементарных имен, разделенных пробелами внутри строки в кавычках. Например, если вы назначите атрибуту Codes тип NMTOKENS следующим образом:


LIST SHIRT Codes NMTOKENS #REQUIRED>

вы можете присвоить ему несколько значений в виде элементарных имен:

long sleeve Henley

10.2. Задание нумерованных типов


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

Открывающая скобка, вслед за которой идет список элементарных имен, разделенных символами, после чего следует закрывающая скобка. Например, если вы хотите ограничить значения атрибута Class словами «fictional», «instructional» или «documentary», то можете определить это атрибут как нумерованный тип следующим образом:


Class (fictional | instructional | documentary)

"fictional"

Вот законченный XML-документ, демонстрирующий использование атрибута Class:

 

[


Class (fictional | instructional | documentary) "fictional"> 




>



The Use and Care of ХМL

Michael Young 



Если вы опустили атрибут Class, ему будет по умолчанию присвоено значение «fictional». Присвоение атрибуту Class значения, отличного от «fictional», «instructional» или «documentary», приведет к ошибке.

  • Ключевое слово NOTATION, за которым идет пробел, затем открывающая скобка, затем список имен нотаций, разделяемых символами, после чего следует закрывающая скобка. Каждое из этих имен должно точно соответствовать имени нотации, объявленному в DTD. Нотация описывает формат данных или идентифицирует программу, применяемую для обработки определенного формата (подробнее о нотациях будет рассказано в главе 6).

Например, в вашем DTD объявлены нотации HTML, SGML и RTF. Тогда вы можете ограничить значения атрибута Format одним из этих имен нотаций с помощью следующего объявления:

 

Format NOTATION (HTML | SGML | RTF) #REQUIRED>

В дальнейшем вы можете использовать элемент Format для указания формата определенного элемента EXAMPLE_DOCUMENT, как в следующем примере:

 

 



Mike's Home Рage 

 




Welcome!
 

 



]]> 



Присвоение атрибуту Format значения, отличного от «HTML», «SGML» или «RTF», приведет к ошибке. (Обратите внимание на использование здесь раздела СDАТА — при этом вы можете свободно использовать символ левой угловой скобки (<) внутри символьных данных элемента.)

Ниже приведен еще один пример определения атрибутов с использованием списка возможных значений:

id ID #REQUIRED

about CDATA #IMPLIED

type (actual | review | teach ) 'actual'

>

В данном примере для элемента article определяются три атрибута: id, about и type, которые имеют типы ID, CDATA и список возможных значений соответственно.

11. Объявление сущностей (макроопределений)


Сущность (entity) представляет собой определения, содержимое которых может быть повторно использовано в документе. В других языках программирования подобные элементы называются макроопределениями. Создаются DTD- компоненты при помощи инструкции !ENTITY:

Программа-анализатор, просматривая в первую очередь содержимое области DTD- определений, обработает эту инструкцию и при дальнейшем разборе документа будет использовать содержимое DTD- компонента в том месте, где будет встречаться его название. Т.е. теперь в документе мы можем использовать выражение &hello; , которое будет заменено на строчку "Мы рады приветствовать Вас"

В общем случае, внутри DTD можно задать три типа макроопределений:

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

В XML существует пять предустановленных внутренних символьных констант:

  • < - символ "<"

  • > - символ ">"

  • & - символ "&"

  • ' - символ апострофа "'"

  • " - символ двойной кавычки """

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

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

Например, для следующего фрагмента документа:


можно использовать более короткую форму записи:


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


'size CDATA'>

Схожі:

Тема xml-схемы – описание структуры документа лекция Определение типа документа (dtd document Type Definition) iconДіловодство ● Документна лінгвістика
Документ як частина системи соціальних комунікацій. Характеристика документа як системного об’єкта. Властивості документа. Ознаки...
Тема xml-схемы – описание структуры документа лекция Определение типа документа (dtd document Type Definition) iconЛекция № Библиографическое описание документа. Рассмотрим, какие виды библиографических описаний документов в зависимости от объекта библиографического описания бывают. Различают
Монографическое описание содержит сведения, характеризующие однотомное издание в целом, а также отдельные тома многотомного или сериального...
Тема xml-схемы – описание структуры документа лекция Определение типа документа (dtd document Type Definition) iconОткрытие существующего документа
...
Тема xml-схемы – описание структуры документа лекция Определение типа документа (dtd document Type Definition) iconІнформації про предметну область. Вивчаються основні технології, пов’язані з аналізом І трансформацією xml-документів (xslt та xpath, sax, dom та TrAX), описом структури документів (dtd та xmlschema). Розглядаються також специфікації xlink та xpointer
Вивчення курсу передбачає виконання практичного Інтернет-проекту, основними цілями якого є розробка інформаційної системи з підтримкою...
Тема xml-схемы – описание структуры документа лекция Определение типа документа (dtd document Type Definition) iconОголошення про втрату документа (серію та номер документа можна дізнатись в ауд. 305)
Прошу видати дублікат студентського квитка / залікової книжки / у зв’язку з його втратою
Тема xml-схемы – описание структуры документа лекция Определение типа документа (dtd document Type Definition) iconРежимы отображения документа
Разметка страниц – отображает документ в точном соответствии с тем, как он будет выведен на печать; в этом режиме удобно работать...
Тема xml-схемы – описание структуры документа лекция Определение типа документа (dtd document Type Definition) iconЛекция №1. Формы существования библиографической информации
И так, действия по отчуждению сведений о документе от самого документа есть исторически и логически исходный пункт всякой библиографической...
Тема xml-схемы – описание структуры документа лекция Определение типа документа (dtd document Type Definition) iconВимоги до оформлення тексту доповідей
Текст доповідей повинен бути набраний в редакторі Microsoft Word українською, англійською або російською мовами. Формат документа...
Тема xml-схемы – описание структуры документа лекция Определение типа документа (dtd document Type Definition) iconВимоги до оформлення тексту доповідей
Текст доповідей повинен бути набраний в редакторі Microsoft Word українською, англійською або російською мовами. Формат документа...
Тема xml-схемы – описание структуры документа лекция Определение типа документа (dtd document Type Definition) iconПрізвище, ім’я, по батькові
Підвищення кваліфікації (найменування навчального закладу, вид документа, тема, дата видачі)
Додайте кнопку на своєму сайті:
Документи


База даних захищена авторським правом ©zavantag.com 2000-2013
При копіюванні матеріалу обов'язкове зазначення активного посилання відкритою для індексації.
звернутися до адміністрації
Документи