1 / 64

Средства за дефиниране на XML документи - DTD

Средства за дефиниране на XML документи - DTD. Дефиниране на XML документи. При дефинирането на тип XML документ се разчита на: Самият XML Пространствата на данните ( Namespaces ) Модел на данните Процедурата е: Моделиране на информацията Използване на “ well-formed ” XML

melina
Download Presentation

Средства за дефиниране на XML документи - DTD

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Средства за дефиниране на XML документи - DTD

  2. Дефиниране на XML документи • При дефинирането на тип XML документ се разчита на: • Самият XML • Пространствата на данните (Namespaces) • Модел на данните • Процедурата е: • Моделиране на информацията • Използване на “well-formed” XML • Дефиниране на: а) DTD; b) XDR (XML Data Reduced Schema); c) XML Schema • Използване на пространства данни (namespaces) за комбиниране на информация отразлични източници

  3. Дефиниране на XML документи • Три технологии за създаване на модели на данните: • DTD (Document Type Definition) • Описва структурата на документа и е полезен при създаване на документа. Прави т.нар. нестриктно валидиране. Има недостатъци като: различен от XML синтаксис; не може да се дефинира брой на повторение на елементи; не е съобразен с Обектно Ориентираните принципи; фиксиран модел; не подържа области на данни, нито числа, дати и т.н. • XDR Schema • Подържа и други типове данни. Ограничен е за продуктите на MicroSoft.

  4. Дефиниране на XML документи • XSD (XML Schema Definition) • Разработен от W3C • Описание на XML схемите със синтаксиса на XML • Описва XML документа в термините на типове данни (например елемент peopleсъдържа различен брой елементи person) • Позволява стриктно валидиране (например за положителни цели числа) • Препоръчва се като модел

  5. Валидиране на документа • Възможно е използване на XML процесор (парсер) за осигуряване на добре конструиран XML документ. • Много парсери (валидиращи) осъществяват и верификация за определяне на съдържанието на XML документа като валидно. • Т.е. документът може да се стартира сXML parserза да се определи дали е валиден. Този парсер се използва заедно с DTD дефиниции.

  6. XML – Въведение в DTD • Валидните документи се подчиняват на структура за дефиниране на типа (DTD). • DTD (Document Type Definition) са множество от правила за създаване на XML документ. • Валидиране на документ означава верифициране на: • Документът е съобразен със синтаксиса на езика XML. • Документът се подчинява на дефинираната с DTD структура. • Всички указани в документа единици могат да бъдат намерени. • Съществуват средства за създаване на DTD. • DTD е множеството от всички декларации, които се съдържат директно или посредством указатели към външни единици в декларацията на типа на документа DOCTYPE.

  7. XML – Въведение в DTD Защо DTD са от съществено значение за документа? • За да могат да си взаимодействат, компютрите трябва да се съгласуват на базата на определени правила. • Съобразявайки се с общи стандарти, компютрите могат да обменят информация. • Възможността да се обменя информация, води до създаването на мощни приложения. • Отделянето на описанието на данните от приложенията позволява на коопериращите се приложения да споделят единствено описание на данните – т.нар. XML речник. • Група от XML документи с общ речник – документен тип. • Отделният документ, отговарящ на типа – документна инстанция.

  8. XML – Въведение в DTD • Спецификацията на XML 1.0 съдържа стандартизиран метод за описание на XML документни типове:DTD. • DTD дефинициите са XML документи, които могат да се вграждат в XML документа, или да съществуват като отделен документ и описват правилата за структуриране. • Чрез споделени DTD дефиниции има само едно място, където се извършват промени в описанието на данните (вместо на три места – в спецификацията, в изпращащия и приемащия модул)

  9. XML – Въведение в DTD • “Валиден" XML документедобре структуриранияXML документ, който се подчинява на правилата на дефиницията за типа на документа (DTD). • Целта на DTD е дефиниране на легални изграждащи блокове на XML документ. DTD дефинира структурата на документа с множеството на легални (валидни) елементи. Latin-1/West European кодировка. <?xml version="1.0" encoding="ISO-8859-1"?> <!--<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE note SYSTEM "InternalNote.dtd"> <note> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note> Или Unicode Transformation - 8 bit кодировка. Декларация на типа на документа

  10. XML – Въведение в DTD • Предизвикателства при създаването на DTD • За да бъдат полезни, DTD трябва да бъдат широко приложими. • Има изисквания за това,компании/организациида си сътрудничат при създаването на DTD. • Резултатите могат да бъдат бавни и частични. • Възможни са резултати при създаване на стандарти. • Възможна е появата на много XML DTD в близкото бъдеще.

  11. XML – Въведение в DTD • Какво ще бъде предмет на разглежданията? • DTD могат да бъдат много сложни. • Целта е да се изучат основите, така че да могат да се четат основните DTD правила. • Ще се фокусираме върху структурата на елементите, атрибутите и изясняване на различията между вътрешни и външни DTD.

  12. XML – Въведение в DTD • DTDмоделира документа чрез: • Дефиниране на множеството от елементи • Дефиниране на модела на съдържание на всеки елемент (под - елементи + данни) • Дефиниране на множеството от атрибути за всеки елемент • DTD дефинициите: • Осигуряват дефиниция на XML речника; • Те са поделяемо описание на структурата на XML документа; • Те са начин за валидиране на XML документи и ограничаване на съдържанието им; • Те се ограничавата до една дефиниция за документа екземпляр.

  13. XML – Въведение в DTD • Само една DTD дефиниция може да се свърже с даден документ, но тя може да бъде декларирана вътрешно(inline)в XML документа, външно или смесено (вътрешна и външна части н DTD). • Привътрешното деклариране (включване в документа) се използва единствената декларация DOCTYPE. • Тя трябва да следва XML декларацията • За включване на DTD в XML сорс файла, се използва следния синтаксис на декларация: <!DOCTYPE root-element [element-declarations]>

  14. Съдържание на DTD 1. Пролог • Вътрешно DTD 2. Деклариране тип на документа <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE DOCUMENT [ <!ELEMENT DOCUMENT (#PCDATA)> <!ENTITY Description "This is entity content."> ]> <DOCUMENT> This is element text and an entity follows:&Description; </DOCUMENT> 3. DTD -правила 4. XML документ -данни

  15. XML – Въведение в DTD DTD е включено • Примерен XML документ с включен DTD <?xml version="1.0" encoding="ISO-8859-1 " standalone =“yes”?> <!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> Декларация на включен DTD Екземпляр на документа

  16. XML – Въведение в DTD • DTD се интерпретира по следния начин:!DOCTYPE note (2 ред) дефинира, че това е документ от типnote (това е коренния елемент на документа).!ELEMENT note (ред 3) дефинира елементаnoteкато съставен от 4елемента: "to, from, heading, body".!ELEMENT to (ред 4) дефинира елементtoкато елемент от тип "#PCDATA".!ELEMENT from (ред 5) дефинира елементfromкато елемент от тип "#PCDATA"и т.н...... • PCDATA (Parsed Character Data)

  17. XML – Въведение в DTD • Декларация на външенDTD с DOCTYPE • Ако DTD е външен за XML сорс файла, трябва да се обяви с DOCTYPE и следния синтаксис: • Същият XML документ, но с външен DTD ще изглежда по следния начин. PUBLIC или SYSTEM <!DOCTYPE root-element source "filename"> <?xml version="1.0" encoding="ISO-8859-1"standalone =“no”?> <!DOCTYPE note SYSTEM "note.dtd"> <note> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note> Съществуват декларации на DTD във външни единици

  18. XML – Въведение в DTD • Файлът "note.dtd" съдържащ DTD има вида: • Защо се използва DTD? • DTD позволява всеки XML файлда съдържа описанието на собствения му формат. • Посредством DTD, независими групи от хора могат да използватобщо DTD за обмен на данни. • Приложението може да съдържа стандартен DTD за верификация на факта, че данните, които се получават от вън са валидни. • DTD може да се използва за верифициране на собствени данни. <!ELEMENT note (to,from,heading,body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)>

  19. Съдържание на DTD • Кодиране на символите • XML Парсери (средства, позволяващи достъп до XML данни на приложения или сървлети)подържат три типа кодировки: • UTF-8: Unicode Transformation - 8 bit • UCS-2: Canonical Unicode Character site • UTF-16: Unicode format • Защо кодировката е съществена? • Позволява интернационализацияна софтуерните приложения.

  20. Съдържание на DTD • Декларация на типа на документа Име на DTD <!DOCTYPE DOCUMENT [ • Определя началото на DTD. • Определя името на DTD. Това име трябва да съвпада с името на коренния елемент.

  21. Съдържание на DTD Общ вид на DTD декларация • DTD форматиране • Ключови думи: ELEMENT, ATTLIST, ENTITY, NOTATION • ELEMENT (декларация за елементен тип) - две форми: • Категории за съдържание на елемент: ANY, EMPTY, element, mixed, PCDATA • ANY– елементите могат да съдържат произволен, добре конструиран XML код. Губят се проверките за валидност. <! ключова_дума параметър1 параметър2... параметърn> <! ELEMENT name category> <! ELEMENT name (content_model)>

  22. Съдържание на DTD • DTD форматиране • Категории за съдържание на елемент: ANY, EMPTY, element, mixed, PCDATA • EMPTY– елементи, които не съдържат друго освен атрибути (празни елементи). • Останалите три категории се използват за ограничаване на съдържанието на елементите до определен тип данни и са свързани с моделите на съдържание. • Модели на съдържание – използват се за описание на структурата и съдържанието на даден елементен тип. • Базовият синтаксис на модела на съдържание е списък от имената на елементните типове и/или #PCDATA в скоби. • Основната разлика между елементно и смесено съдържание е в #PCDATA. Ако я има в декларацията – съдържанието е mixedили #PCDATAи елементно в противен случай.

  23. Съдържание на DTD • DTD форматиране • Модели на съдържание • #PCDATA – елементите позволяват само символни данни. • Елементно съдържание – тези елементи могат да съдържат само други елементи (наследници). <name> Character data can include entity references (&amp; or &gt;) </name> За частта от документа: <!ELEMENT name (#PCDATA)> Извън таговете на елементите няма текст <name> <child1>Content1</child1> <child2>Content2</child2> <child3>Content3</child3> </name> За частта от документа: <!ELEMENT name (child1,child2,child3)>

  24. Съдържание на DTD • DTD форматиране • Модели на съдържание • Смесено съдържание – освен елементите наследници има и текст извън тях. Извън таговете на елементите има текст <name> Text1 <child1>Content1</child1> <child2>Content2</child2> Text2 </name> За частта от документа: <!ELEMENT name (#PCDATA,child1,child2)> Или <!ELEMENT name (#PCDATA,child2,child1)>

  25. Съдържание на DTD • DTD форматиране • Списъци с последователности и списъци с избори • Оператори за разделяне на имената на елементите наследници в модела на съдържание: , (запетая) и | (вертикална черта) • Незадължителни елементи и ограничаване на броя на появявания - оператори за мощност: [никакъв], ?, *, + <!ELEMENT Name (Title, FirstName, MiddleName,LastName, Suffix)> <!ELEMENT Title (#PCDATA)> <!ELEMENT FirstName (#PCDATA)> <!ELEMENT MiddleName (#PCDATA)> <!ELEMENT LastName (#PCDATA)> <!ELEMENT Suffix (#PCDATA)>

  26. Съдържание на DTD • ? (0 или 1); * (0,1 или повече); + (1 или повече). Ако няма суфикс – елементът се среща веднъж. елемент section съдържа произволен брой пъти елементите р или а в произволен ред <! ELEMENT section (p | a)*> всяка част може да се среща произволен брой пъти и в произволен ред <! ELEMENT p (#PCDATA | em | exp | index)*>

  27. Съдържание на DTD • DTD форматиране • Примери с оператори за мощност <!ELEMENT Name ( (Mr|Ms|Dr)?, FirstName, MiddleName*, LastName, (Jr|Sr)? ) > Два до пет елемента наследници <!ELEMENT Name ( Singlename | ((Mr|Ms|Dr)?, FirstName, MiddleName*, LastName, (Jr|Sr)?) ) >

  28. Съдържание на DTD • DTD правила <!ELEMENT DOCUMENT (#PCDATA)> <!ENTITY Description "This is entity content."> • ELEMENT: декларира специфичен елемент. Тук е деклариран коренния елемент, наречен DOCUMENT. • #PCDATA: текстови данни, които не съдържат символи като &, <, или >. • ENTITY: декларира съкращение. • Когато парсерът срещне&Description, той ще го замести с:"This is entity content."

  29. Съдържание на DTD • XML документ -данни <DOCUMENT> This is element text and an entity follows:&Description; </DOCUMENT> • Този документсъдържасамо един елемент: DOCUMENT, следователно тойсе съобразява (придържа)към DTD. • Следователно документът е валиден. • XML Parser ще замести &Description с "This is entity content."

  30. Съдържание на DTD • Деклариране на атрибути • Атрибутът (име – стойност) специфицира кои са атрибутите, които могат да се асоциират с една инстанция на елемента. • Параметърът параметър_pопределя поведението на парсера (дава стойност за атрибута на приложението дори и при отсъствието на атрибут). • тип_атрибут може да бъде: CDATA (стойността е символен низ); ID/IDREF (указване към документа);ENTITY (стойността може да бъде име на външни единици, не XML); NMTOKEN(S) (стойността може да бъде символично име – произволен стринг); NOTATION (ще бъде обяснен по-късно); списък на стойности за атрибута зададен с (А | B | C). <!ATTLIST име_елементиме_атрибуттип_атрибут параметър_pдекларация>

  31. Съдържание на DTD • Деклариране на атрибути • декларация може да бъде: #RECUIRED (атрибутът е задължителен и създателят на документа трябва да задава стойността му); #IMPLIED(присъствието на атрибута в инстанцията на елемента е факултативна); #FIXED ‘value’(атрибутът взима винаги тази стойност); зададена стойност за атрибута. • Пример за атрибут CDATA (символен низ с фиксирана стойност). <!ATTLIST f at1 CDATA #FIXED ‘&lt;08.25A/3445&gt;’

  32. Съдържание на DTD <!ATTLIST Element attr CDATA #REQUIRED> • Деклариране на атрибути- примери Задължителен атрибут Пример: <Element attr=“string”… </Element> <!ELEMENT Name (First, Middle, Last)> <!ATTLIST Name title (Mr | Ms | Dr) #IMPLIED suffix (Jr | Sr) #IMPLIED > <!ELEMENT First (#PCDATA)> <!ELEMENT Middle (#PCDATA)> <!ELEMENT Last (#PCDATA)> Двата атрибута са низове, но всеки трябва да има стойност, която съответства на декларацията

  33. Съдържание на DTD <!ELEMENT Name (First, Middle, Last)> <!ATTLIST Name title NMTOKENS #IMPLIED suffix NMTOKEN #IMPLIED > <!ELEMENT First (#PCDATA)> <!ELEMENT Middle (#PCDATA)> <!ELEMENT Last (#PCDATA)> • Деклариране на атрибути- примери Списък от стойности, разделени с интервал Двата атрибута не са ограничени като стойности <!ELEMENT Document (#PCDATA)> <!ATTLIST Document version CDATA #FIXED “1.0”> Единствена валидна стойност за версия

  34. Съдържание на DTD • Деклариране на атрибути • Пример за атрибут ENTITY – vrmlе нотация, свързана с приложение cosmo, а в празния елемент f2се дефинира атрибут graph. <!-- В DTD -- > <!NOTATION vrml SYSTEM “usr/local/bin/cosmo”> <!ELEMENT f2 EMPTY> <!ATTLIST f2 graph ENTITY #REQUIRED> <!-- In a document’s instance -- > <!-- Internal DTD part -- > <!ENTITY labyrinth SYSTEM “./models/lab.vrml” NDATA vrml > <!– В документа -- > <f2 graph=‘labyrinth’ /> Декларира се единица, не XML с име labyrinth Стойността на graph е labyrinth

  35. XML – Въведение в DTD • СмесенDTD с вътрешна и външна части. <?xml version="1.0“encoding=‘ISO-8859-1’ standalone =“no”?> <!DOCTYPE example SYSTEM “example.dtd" [ <!--Декларация на вътрешна част -- > <!ENTITY ab “in English” <--Край на декларация на вътрешна част -- > ]> <example> language=‘en’>Text &ab;</example> Вътрешна част на DTD <?xml version="1.0“encoding=‘ISO-8859-1’> <!-- Начало на външна част -- > <!ELEMENT example (#PCDATA) > <!– Край на външна част на DTD -- > Файл example.dtd за външна част на DTD

  36. XML – Въведение в DTD • Външни единици за декларация на DTD . • Включват се външни файлове. <?xml version="1.0“encoding=‘ISO-8859-1’ standalone =‘no’?> <!DOCTYPE article SYSTEM ‘./dtd/article.dtd’ [ <!ENTITY % table SYSTEM ‘./dtd/tab.xml’ > <!ENTITY % bib SYSTEM ‘./dtd/biblio.xml’ > %table; %bib; ] <article> …</article> Външни единици С параметри се указват външни файлове

  37. Съдържание на DTD Декларация – свързва тип mail с приложение • Пример за атрибут NOTATION <!NOTATION mail SYSTEM “/usr/local/bin/xmail”> <!ELEMENT mail-buffer ANY > <!ATTLIST mail-buffer m1 NOTATION (mail) #IMPLIED > Дефинира атрибут ml от тип mail

  38. Съдържание на DTD • Пример за атрибут ID/IDREF За една инстанция: <!ELEMENT section (#PCDATA | xref)* > <!ATTLIST section target ID #IMPLIED > <!– xref and its attribute declaration -- > <!ELEMENT xref EMPTY > <!ATTLISTxref ref IDREF #REQUIRED > ID означава, че ще има указване IDREF – за елемента с който се прави указване <section target=‘X321’>This is the first section.</section> <section>In a second section – a pointer to the first<xref ref=‘X321’</section>

  39. Съдържание на DTD Добавят се два атрибута към елемента Document • Пример с атрибути <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE DOCUMENT [ <!ELEMENT DOCUMENT (#PCDATA)> <!ATTLIST DOCUMENT trackNum CDATA #REQUIRED secLevel (unclassified|classified) "unclassified"> <!ENTITY Description "This is a very simple sample document."> ]> <DOCUMENT trackNum="1234">This is element text and an entity follows:&Description; </DOCUMENT>

  40. Съдържание на DTD • Атрибутите за примера <!ATTLIST DOCUMENT trackNum CDATA #REQUIRED secLevel (unclassified|classified) "unclassified"> <!ENTITY Description "This is a very simple sample document."> ]> • Определя се, чеtrackNumатрибутаможе да съдържа произволен текст и е задължителен. • Определя се, че атрибутsecLevelможе да се установи в една от двете стойности: unclassified или classified. По подразбиране е unclassified.

  41. Съдържание на DTD • Многократни елементи • Добавят се три нови елемента към елемента DOCUMENT.. Тези нови елементи трябва да се появяват в редаTITLE,AUTHOR,SUMMARY,NOTE.

  42. Съдържание на DTD <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE DOCUMENT [ <!ELEMENT DOCUMENT (TITLE,AUTHOR+,SUMMARY*,NOTE?)> <!ATTLIST DOCUMENT trackNum CDATA #REQUIRED secLevel (unclassified|classified) "unclassified"> <!ELEMENT TITLE (#PCDATA)> <!ELEMENT AUTHOR (#PCDATA)> <!ELEMENT SUMMARY (#PCDATA)> <!ELEMENT NOTE (#PCDATA)> <!ENTITY Description "This is a very simple sample document."> ]> <DOCUMENT trackNum="1234"> <TITLE>Sample Document</TITLE> <AUTHOR>Simon St.Laurent</AUTHOR> <SUMMARY>This is element text and an entity follows:&Description; </SUMMARY> </DOCUMENT>

  43. Съдържание на DTD <!ELEMENT DOCUMENT (TITLE,AUTHOR+,SUMMARY*,NOTE?)> • При деклариране на елемент се специфицира: • Списъка от елементи; • Изисквани правила за елементи; • Последователността, в която да се появяват; • Колко пъти могат да се появяват

  44. Съдържание на DTD Структура на елемента <!ELEMENT DOCUMENT (TITLE,AUTHOR+,SUMMARY*,NOTE?)> За този елемент: • Зададена последователност: TITLE, AUTHOR, SUMMARY, NOTE • TITLE (изисква се само едно заглавие) • AUTHOR (поне един автор) • SUMMARY (нула или повече елементи) • NOTE (нула или един)

  45. Съдържание на DTD • Ще бъдат добавени нови четири елемента към елемента AUTHOR. Тези елементи трябва да се появяват в ред: FIRSTNAME, LASTNAME, (UNIVERSITY | COMPANY)

  46. Съдържание на DTD <?xml version="1.0" encoding="UTF-8"?> 1/2 <!DOCTYPE DOCUMENT [ <!ELEMENT DOCUMENT (TITLE,AUTHOR+,SUMMARY*,NOTE?)> <!ATTLIST DOCUMENT trackNum CDATA #REQUIRED secLevel (unclassified|classified)"unclassified"> <!ELEMENT TITLE (#PCDATA)> <!ELEMENT AUTHOR (FIRSTNAME, LASTNAME, (UNIVERSITY | COMPANY)?)> <!ELEMENT FIRSTNAME (#PCDATA)> <!ELEMENT LASTNAME (#PCDATA)> <!ELEMENT UNIVERSITY (#PCDATA)> <!ELEMENT COMPANY (#PCDATA)> <!ELEMENT SUMMARY (#PCDATA)> <!ENTITY Description "This is a very simple sample document."> ]>

  47. Съдържание на DTD <DOCUMENT trackNum="1234"> 2/2 <TITLE>Sample Document</TITLE> <AUTHOR> <FIRSTNAME>Simon</FIRSTNAME> <LASTNAME>St.Laurent</LASTNAME> <COMPANY>XML Mania</COMPANY> </AUTHOR> <SUMMARY>This is element text and an entity follows: &Description; </SUMMARY></DOCUMENT>

  48. Съдържание на DTD Външно DTD: simple.dtd <!ELEMENT DOCUMENT (TITLE,AUTHOR+,SUMMARY*,NOTE?)> 1/2 <!ATTLIST DOCUMENT trackNum CDATA #REQUIRED secLevel (unclassified|classified) "unclassified"> <!ELEMENT TITLE (#PCDATA)> <!ELEMENT AUTHOR (FIRSTNAME,LASTNAME, (UNIVERSITY | COMPANY)?)> <!ELEMENT FIRSTNAME (#PCDATA)> <!ELEMENT LASTNAME (#PCDATA)> <!ELEMENT UNIVERSITY (#PCDATA)> <!ELEMENT COMPANY (#PCDATA)> <!ELEMENT SUMMARY (#PCDATA)> <!ENTITY Description "This is a very simple sample document.">

  49. Съдържание на DTD XML Документ <?xml version="1.0" encoding="UTF-8"?> 2/2 <!DOCTYPE DOCUMENT SYSTEM "simple.dtd"> <DOCUMENT trackNum="1234"> <TITLE>Sample Document</TITLE> <AUTHOR><FIRSTNAME>Simon</FIRSTNAME> <LASTNAME>St.Laurent</LASTNAME> <COMPANY>XML Mania</COMPANY></AUTHOR> <SUMMARY>This is element text and an entity follows:&Description; </SUMMARY></DOCUMENT> Указва се външното DTD: simple.dtd

  50. Съдържание на DTD • Пример за келнер в ресторант, който обслужва някои от масите. <?xml version="1.0" encoding="UTF-8"?>1/2 <!DOCTYPE restaurant [ <!- - елемент restaurant - -> <!ELEMENT restaurant (tables, waiter)> <!ELEMENT tables (table+)> <!ELEMENT table EMPTY> <!- - всяка маса има уникален ref - -> <!ATTLIST table refID #REQUIRED> <!- - елемент waiter - -> <!ELEMENT waiter (service Table+)> <!ATTLIST waiter Name CDATA #REQUIRED> <!- - обслужване на маси - -> <!ELEMENT service Table EMPTY> <!ATTLIST service Table tableRef IDREF #REQUIRED> ]> Колекция от елементи table Атрибут, който се отнася за други уникални ID <!ATTLIST service Table tableRef IDREFS #REQUIRED>

More Related