Персональные инструменты
 

DTD

Материал из CustisWiki

Версия от 12:55, 4 августа 2008; WikiSysop (обсуждение | вклад) (1 версия)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Это снимок страницы. Он включает старые, но не удалённые версии шаблонов и изображений.
Перейти к: навигация, поиск

DTD (Document Type Definition — определение типа документа) — язык описания структуры SGML- (и в частности XML)-документа.

Сейчас идет отказ от формата по ряду причин:

  1. Во-первых, он использует отличный от XML синтаксис.
  2. Во-вторых, отсутствие типизации узлов.

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

Пример

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

<!ELEMENT people_list (person*)>
<!ELEMENT person (name, birthdate?, gender?, socialsecuritynumber?)>
<!ELEMENT name (#PCDATA) >
<!ELEMENT birthdate (#PCDATA) >
<!ELEMENT gender (#PCDATA) >
<!ELEMENT socialsecuritynumber (#PCDATA) >

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

  1. Элемент <people_list> элемент содержит любое число элементов <person> . Знак <*> означает что возможно 0, 1 или более элементов <person> внутри элемента <people_list>.
  2. Элемент <person> содержит элементы <name>, <birthdate>, <gender> и <socialsecuritynumber>. Знак <?> означает что элемент необязателен. Элемент <name> не содержит <?>, что означает что элемент <person> обязательно должен содержать элемент <name>.
  3. Элемент <name> содержит данные.
  4. Элемент <birthdate> содержит данные.
  5. Элемент <gender> содержит данные.
  6. Элемент <socialsecuritynumber> содержит данные.

Пример XML-файла использующего этот DTD:

 <?xml version="1.0" encoding="UTF-8"?>
 
 <![[DOCTYPE]] people_list SYSTEM "example.dtd">
 
 <people_list>
   <person>
     <name>Fred Bloggs</name>
     <birthdate>27/11/2008</birthdate>
     <gender>Male</gender>
   </person>
 </people_list>

Репликация: База Знаний «Заказных Информ Систем» → «DTD»

Любые правки этой статьи будут перезаписаны при следующем сеансе репликации. Если у вас есть серьезное замечание по тексту статьи, запишите его в раздел «discussion».