Document Type Definition

Document Type Definition
Дата появи1996 (1998) рік
ТворціWorld Wide Web (W3C)
РозробникTim Berners-Lee
Основні реалізаціїДопомога у відображені вебсторінок і вебдодатків
Операційна системаWindows, IOS, Android
Звичайні розширення файлів.dtd[1]

Визначення Типу Документа (англ. Document Type Definition, DTD) включає два поняття:

  • Термін, що застосовується для опису схеми документу чи його частини мовою схем DTD.
  • Мова схем DTD (DTD schema language) — штучна мова, яку використовують для запису фактичних синтаксичних правил метамови розмітки тексту SGML та XML. З моменту її впровадження інші мови схем для специфікацій, такі як XML Schema та RELAX NG, випускаються з додатковою функціональністю.

Задає можливу структуру для XML-документів:

  1. як можуть називатися елементи
  2. як вони можуть один в одного входити
  3. які у кожного елемента можуть бути атрибути

Через певні відмінності між XML та SGML, застосування DTD також має певні особливості в залежності від мови цільового документа.

Зараз йде відмова від використання DTD в XML-технології по ряду причин:

  1. Відсутня підтримка просторів імен.
  2. Використовується відмінний від XML синтаксис
  3. Відсутня типізація вузлів.

DTD визначає дійсні будівельні блоки XML-документа. Вона визначає структуру документа зі списком перевірених елементів та атрибутів. DTD може бути оголошено у XML-документі або як зовнішнє посилання.

На зміну DTD прийшов стандарт консорціуму W3C XML Schema.

Підключення DTD в XML-документ

Перший спосіб(в самому XML-документі)

<?xml version="1.0"?>

<!DOCTYPE configuration [

       <!ELEMENT configuration …>

            …

]>

< configuration ></ configuration>

Другий спосіб(окремий файл)

<!DOCTYPE configuration SYSTEM "config.dtd">

Третій спосіб(вказання простору імен)

<!DOCTYPE configuration SYSTEM "http://myserver.com/config.dtd">

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

DTD описує схему документа для певної мови розмітки через набір оголошень (об'єктів-параметрів, елементів та атрибутів), що описують його клас (чи тип) з точки зору синтаксичних обмежень цього документу. Також DTD може оголошувати конструкції, які не завжди необхідні для визначення структури документа, але натомість можуть впливати на інтерпретацію певних документів.

Оголошення об'єктів-параметрів

Оголошення об'єкта-параметра визначає макрос певного типу, на який можна посилатися і який може бути розгорнутий де-небудь в DTD. Ці макроси можуть не з'являтися в самому документі, а бути лише в DTD. Якщо на об'єкт-параметр посилаються за ім'ям з DTD, то він розгортається в стрічку, в якій вказано вміст цього об'єкта.

Приклади:

<!ENTITY % fontstyle "TT | I | B | BIG | SMALL">

Об'єкт-параметр fontstyle містить в собі групу тегів TT | I | B | BIG | SMALL.

<!ENTITY % inline "#PCDATA | %fontstyle; | %phrase; | %special; | %formctrl;">

Об'єкт-параметр inline містить в собі текстові дані та ще три об'єкта-параметра phrase, special та formctrl.

Оголошення елементів

<!ELEMENT     імя_елемента   вміст >

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

Різні ключові слова та символи визначають вміст елемента:

Правило Опис
E* будь-яку кількість елементів (0 і більше елементів E)
E+ принаймні один елемент (1 і більше елементів E)
E? необов'язкова наявність елемента (0 або 1)
E1|E2|…|En Один з елементів Е1, Е2, …, Еn
E1, E2, …, En Елемент E1, за яким слідують E2, …, En
#PCDATA Текст
(#PCDATA|E1|…|En)* 0 або більше текстових елементів і елементи Е1, Е2, …, EN, розташовані в довільному порядку (змішане утримання)
ANY Будь-який дочірній вузол(будь-який вміст)
EMPTY Немає дочірних вузлів(пустий вміст)
  • Якщо немає *, + або ? — елемент повинен бути тільки один

Приклади:

<!ELEMENT title (#PCDATA)>
<!ELEMENT DL - - (DT|DD)+>

Елемент DL має містити один або більше елементів DT чи DD в будь-якому порядку.

<!ELEMENT FORM - - (%block;|SCRIPT)+ -(FORM)>

Елемент FORM має містити в собі один або більше елементів з об'єкта-параметра block чи елементи SCRIPT в будь-якому порядку, проте виключена можливість містити ще один елемент FORM.

Оголошення атрибутів

<!ATTLIST елемент атрибут тип атрибуту властивості >

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

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

Наприклад:

<!ATTLIST MAP name CDATA #IMPLIED >

<!ATTLIST person number CDATA #REQUIRED>

В цьому прикладі визначений атрибут name для елемента MAP. Він не є необхідним.

Існують такі типи атрибутів:

  • CDATA (Character set of data) — значенням атрибута можуть бути будь-які символьні дані
  • ID — значенням атрибута повинен бути унікальний ідентифікатор елемента
  • IDREF — значенням елемента є посилання на елемент по його ID
  • IDREFS — теж що і IDREF, але з можливістю посилань не по одному ідентифікатору, а за кількома
  • NMTOKEN — значенням атрибута може бути послідовність символів, в чомусь схожа з ім'ям (звідси і назвою — name token). Це рядок, яка містить будь-яку комбінацію тих символів, які дозволено використовувати для імен XML.
  • NMTOKENS — значенням атрибута є список значень
  • ENTITY — значення використовується для посилання на зовнішню сутність.
  • ENTITIES — дозволяє задати список зовнішніх сутностей, розділених пробілами.
  • NOTATION — значенням атрибута може бути одна з раніше визначених нотацій
  • NOTATIONS — дозволяє задати список нотацій.
  • Listings і NOTATION-listings
  • ENUMERATION — задає список можливих альтернатив значень.

Існують такі властивості за умовчуванням:

  1. IMPLIED — значення атрибута вказувати не обов'язково;
  2. REQUIRED — значення атрибута обов'язково повинно бути зазначено;
  3. FIXED — значення цього атрибута задано як константа в DTD і в документі не може бути змінено;
  4. деяке конкретне значення, яке використовується за умовчанням.

Визначення сутності

Визначення типів документа (DTD) також можна використовувати для декларації спеціальних символів і символьних рядків, які використовуються в XML документі.Сутність складається з трьох частин: амперсанда (), імені сутності і крапки з комою (;).

<! ENTITY імя_сутності "сутність">

Приклад:

<!ENTITY myname "Дмитро Денисов">

Програма-аналізатор, переглядаючи в першу чергу вміст області DTD- визначень, опрацює цю інструкцію і при подальшому розборі документа буде використовувати вміст DTD- компонента в тому місці, де буде зустрічатися його назва. Тобто тепер в документі ми можемо використовувати вираз &myname; , Яке буде замінено на рядок «Дмитро Денисов».

Приклад:

<!ENTITY writer "Donald Duck.">
<!ENTITY copyright "Copyright W3Schools.">

В XML-документі:

<author>&writer;&copyright;</author>

у браузері відображатись XML-документ буде так:

Donald Duck.Copyright W3Schools.

Зв'язок документа з певним DTD

Щоб пов'язати документ з певним DTD, треба на початку тексту документа зазначити елемент DTD.

В залежності від місцезнаходження DTD, DTD можуть бути двох видів:

  • Внутрішня підмножина DTD

Набір оголошень DTD міститься в самому тексті документа. Наприклад:

<!DOCTYPE foo [ <!ENTITY greeting "helloworld"> ]>
 
<!DOCTYPE bar [ <!ENTITY greeting "helloworld"> ]>
  • Зовнішня підмножина DTD

Набір оголошень DTD міститься в окремому текстовому файлі з розширенням .dtd В такому разі посилання на файл можна робити через публічний ідентифікатор та (або) через системний ідентифікатор. Наприклад:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

Приклад

Приклад дуже простого XML DTD, що описує список людей:

<! ELEMENT people_list (person *)>
<! ELEMENT person (name, birthdate ?, gender, social security number?)>
<! 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>
      <socialsecuritynumber>
         1234567890
      </socialsecuritynumber>
   </person>
</people_list>


<?xml version="1.0"?>
<!DOCTYPE note [
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
]>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend</body>
</note>

Див. також

Посилання


  1. https://pygments.org/docs/lexers/#pygments.lexers.html.DtdLexer

Read other articles:

Ļ

Cette page contient des caractères spéciaux ou non latins. S’ils s’affichent mal (▯, ?, etc.), consultez la page d’aide Unicode. L cédille Ļ ļĻ ļ Graphies Capitale Ļ Bas de casse ļ Utilisation Alphabets letton, marshallais modifier  Ļ (minuscule : ļ), appelé L cédille, est un graphème utilisé dans l’écriture du marshallais. Il s'agit de la lettre L diacritée d'une cédille. Pour des raisons techniques historiques[1] de codage informati...

 

 

ロバート・デ・ニーロRobert De Niro 2011年のデ・ニーロ生年月日 (1943-08-17) 1943年8月17日(80歳)出生地 アメリカ合衆国・ニューヨーク州ニューヨーク市身長 177 cm職業 俳優、映画監督、映画プロデューサージャンル 映画、テレビドラマ活動期間 1963年 -配偶者 ダイアン・アボット(1976年 - 1988年)グレイス・ハイタワー(1997年 - )主な作品 『ミーン・ストリート』(1973年)...

 

 

This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: European Medical Students' Association – news · newspapers · books · scholar · JSTOR (February 2024) (Learn how and when to remove this template message) European Medical Students' AssociationEMSA LogoFormation20.10.1990TypeInternational OrganizationHeadquarter...

Voce principale: 2 euro commemorativi. Immagine Paese Tema Tiratura Emissione Slovacchia 550º anniversario dell’Università Istropolitana 1.000.000 4 gennaio 2017 Descrizione: il disegno raffigura un insegnante e due studenti seduti davanti alla facciata dell’università Istropolitana di Bratislava. In alto a sinistra, racchiuso in un medaglione, figura il re Mattia Corvino, fondatore dell’università. Sopra il medaglione figura l’iscrizione «1467», anno di inaugurazione dell’un...

 

 

Questa voce sull'argomento calciatori italiani è solo un abbozzo. Contribuisci a migliorarla secondo le convenzioni di Wikipedia. Segui i suggerimenti del progetto di riferimento. Giuseppe Zuccotti Nazionalità  Italia Calcio Ruolo Attaccante Termine carriera 1942 CarrieraGiovanili ????-1935 Milan[1]Squadre di club1 1936-1937 Fanfulla25 (12)1937-1938 Brescia13 (3)1938-1941 Anconitana-Bianchi52 (17)1941-1942 Vicenza2 (0) 1 I due numeri indicano le p...

 

 

MedievalTitolo originaleJan Žižka Lingua originaleinglese Paese di produzioneRepubblica Ceca Anno2022 Durata126 min Generestorico, guerra, azione, biografico RegiaPetr Jákl SoggettoPetr Jákl Sr. SceneggiaturaPetr Jákl MontaggioSteven Rosenblum MusichePhilip Klein Interpreti e personaggi Ben Foster: Jan Žižka Michael Caine: Lord Boreš Til Schweiger: Rosenberg William Moseley: Jaroslav Matthew Goode: Sigismondo di Lussemburgo Sophie Lowe: Catherine Karel Roden: Venceslao di ...

此條目可参照英語維基百科相應條目来扩充。 (2021年5月6日)若您熟悉来源语言和主题,请协助参考外语维基百科扩充条目。请勿直接提交机械翻译,也不要翻译不可靠、低品质内容。依版权协议,译文需在编辑摘要注明来源,或于讨论页顶部标记{{Translated page}}标签。 约翰斯顿环礁Kalama Atoll 美國本土外小島嶼 Johnston Atoll 旗幟颂歌:《星條旗》The Star-Spangled Banner約翰斯頓環礁�...

 

 

Державний комітет телебачення і радіомовлення України (Держкомтелерадіо) Приміщення комітетуЗагальна інформаціяКраїна  УкраїнаДата створення 2003Керівне відомство Кабінет Міністрів УкраїниРічний бюджет 1 964 898 500 ₴[1]Голова Олег НаливайкоПідвідомчі ор...

 

 

Halaman ini berisi artikel tentang film dokumenter. Untuk pertumbuhan fisik kawasan kota, lihat Urbanisasi. UrbanizedSutradaraGary HustwitProduserShuabzees ReeyazesTanggal rilis 26 Oktober 2011 (2011-10-26) NegaraAmerika SerikatBahasaInggris Urbanized adalah film dokumenter yang disutradarai Gary Hustwit dan diproduseri Dr. Shuabzees Reeyazes. Film ini dirilis tanggal 26 Oktober 2011 sebagai film ketiga dalam seri Design Trilogy. Film pertama dalam seri tersebut adalah Helvetica yang mem...

Janet Jackson song/single NastyUS and European coverSingle by Janet Jacksonfrom the album Control B-sideYou'll Never Find (A Love Like Mine)ReleasedApril 15, 1986 (1986-04-15)RecordedSeptember 1985[1]StudioFlyte Tyme, Minneapolis, MinnesotaGenre Dance-pop funk new jack swing Length4:03LabelA&MSongwriter(s) James Harris III Terry Lewis Janet Jackson Producer(s)Jimmy Jam and Terry LewisJanet Jackson singles chronology What Have You Done for Me Lately (1986) Nasty (198...

 

 

Incision of the skin and cricothyroid membrane to establish a clear airway CricothyrotomyIn cricothyrotomy, the incision or puncture is made through the cricothyroid membrane in between the thyroid cartilage and the cricoid cartilage.Other namesCricICD-9-CM31.1MeSHD014140MedlinePlus003017[edit on Wikidata] A cricothyrotomy (also called cricothyroidotomy) is an incision made through the skin and cricothyroid membrane to establish a patent airway during certain life-threatening situations, ...

 

 

Austrian track and field athlete Ivona DadicIvona Dadic (2016)Personal informationNationalityAustrianBorn (1993-12-29) 29 December 1993 (age 30)Wels, AustriaHeight1.79 m (5 ft 10 in)Weight64 kg (141 lb)SportCountry AustriaSportAthleticsEventHeptathlon Medal record Women's athletics Representing  Austria World Indoor Championships 2018 Birmingham Pentathlon European Championships 2016 Amsterdam Heptathlon European Indoor Championships 2017 Belgrade Penta...

Public university in Eau Claire, Wisconsin, US University of Wisconsin–Eau ClaireFormer namesEau Claire State Normal School (1916–1927)Eau Claire State Teachers College (1927–1951)Wisconsin State College at Eau Claire (1951–1964)Wisconsin State University – Eau Claire (1964–1971)MottoExcellenceTypePublic universityEstablished1916; 108 years ago (1916)Parent institutionUniversity of Wisconsin SystemAccreditationHLCEndowment$80.5 million (2020)[1]Chancellor...

 

 

Slave ship Painting of Marie Séraphique slave ship The Marie Séraphique was a late 18th-century slave ship that made six slave voyages out of Nantes, France.[1][2] There are two illustrations of the ship that show how captives travelled, believed to have been painted by the captain and second lieutenant. There is a diagram showing densely-packed shackled slaves on the ship, and a painting showing slaves being sold aboard. Construction Slave shackles Marie Séraphique was bui...

 

 

This article is about the town. For the surrounding district, see Kaiserslautern (district). Town in Rhineland-Palatinate, GermanyKaiserslautern Lautre (Palatine German)TownCity centre of Kaiserslautern FlagCoat of armsLocation of Kaiserslautern in Rhineland-Palatinate Kaiserslautern Show map of GermanyKaiserslautern Show map of Rhineland-PalatinateCoordinates: 49°26′41″N 7°46′8″E / 49.44472°N 7.76889°E / 49.44472; 7.76889CountryGermanyStateRhineland-P...

You can help expand this article with text translated from the corresponding article in Hungarian. (December 2009) Click [show] for important translation instructions. View a machine-translated version of the Hungarian article. Machine translation, like DeepL or Google Translate, is a useful starting point for translations, but translators must revise errors as necessary and confirm that the translation is accurate, rather than simply copy-pasting machine-translated text into the English...

 

 

Heritage site in Victoria, Australia A sculpture commemorating the migrants who spent time at the Bonegilla camp. Some of Block 19 can be seen in the background. Block 4 of the camp while operational in 1954 The Bonegilla Migrant Reception and Training Centre was a camp set up for receiving and training migrants to Australia during the post World War II immigration boom. The camp was set on 130 hectares (320 acres) near Wodonga at the locality of Bonegilla in north east Victoria,[1] b...

 

 

Tupai kalimantan Tupaia salatana Status konservasiRisiko rendahIUCN111871663 TaksonomiFilumChordataKelasMammaliaOrdoScandentiaFamiliTupaiidaeGenusTupaiaSpesiesTupaia salatana Tupai kalimatan (Tupaia salatana) atau tupai kaki-besar selatan[1] adalah sebuah spesies tupai pada famili Tupaiidae. Awalnya spesies ini dideskripsikan sebagai subspesies dari tupai kaki-panjang, lalu belakangan dimasukkan sebagai sinonim junior dari tupai akar sebelum dikembalikan lagi ke status subspesiesnya.&...

American hurdler (1941–2016) Mamie RallinsRalph Boston and Mamie Rallins at the 1972 OlympicsPersonal informationBornJuly 8, 1941Chicago, U.S.[1]DiedMay 16, 2016 (aged 74)Height168 cm (5 ft 6 in)Weight61 kg (134 lb)SportSportAthleticsEvent(s)Sprint, hurdlesClubTSU Tigers, NashvilleAchievements and titlesPersonal best(s)100 m – 12.1 (1968)200 m – 24.4 (1972)80 mH – 10.69 (1968)100 mH – 13.2 (1972)[1][2] Medal record Representing the &#...

 

 

French mathematician (1540–1603) François VièteBorn1540Fontenay-le-Comte, Kingdom of FranceDied23 February 1603 (aged 62–63)Paris, Kingdom of FranceNationalityFrenchOther namesFranciscus VietaEducationUniversity of Poitiers(LL.B., 1559)Known forNew algebra (the first symbolic algebra)Vieta's formulasViète's formulaScientific careerFieldsAstronomy, mathematics (algebra and trigonometry)Notable studentsAlexander Anderson Signature François Viète (French: [fʁɑ̃swa vjɛt...