140 likes | 259 Views
Дефиниција типа документа. ДТД (Document Type Definition). Дефиниција типа документа - дефиниција докумената одређене класе За XML документ који одговара ДТД-у каже се појава или инстанца В алидан XML документ ДТД може бити интерни и ли екстерни Екстензија .dtd.
E N D
ДТД(Document Type Definition) • Дефиниција типа документа - дефиниција докумената одређене класе • За XML документ који одговара ДТД-у каже се појава или инстанца • Валидан XML документ • ДТД може бити интерни или екстерни • Екстензија .dtd
<!ELEMENT CONTACT (NAME,ADDRESS,COMPANY,TEL_NUM,EMAIL)> <!ELEMENT NAME (#PCDATA)> <!ELEMENT ADDRESS (#PCDATA)> <!ELEMENT COMPANY (#PCDATA)> <!ELEMENT TEL_NUM (#PCDATA)> <!ELEMENT EMAIL (#PCDATA)> <?xml version="1.0" encoding="UTF-8"?> <CONTACT> <NAME>Petar Petrović</NAME> <ADDRESS>Dunavska 23, Novi Sad</ADDRESS> <COMPANY>Vojvođanska Banka</COMPANY> <TEL_NUM>444-333</TEL_NUM> <EMAIL>pp@yahoo.com</EMAIL> </CONTACT> <!DOCTYPE CONTACT SYSTEM "prim1.dtd">
Декларација елемената 1/2 • Унутар тага !ELEMENT • Име елемента • Тип података које елемент садржи (тј. спецификација садржаја) • листа других елемената, тј. content model <!ELEMENT CONTACT (NAME,ADDRESS,COMPANY,TEL_NUM,EMAIL)> • кључна реч EMPTY <!ELEMENT TEST EMPTY>
Декларација елемената 2/2 • Кључна реч ANY <!ELEMENT TEST ANY> • mixed content (мешовити садржај) <!ELEMENT NAME (FIRST | SECOND)> <!ELEMENT NAME (#PCDATA | FIRST | SECOND)*> <NAME> Ime:<FIRST>Petar</FIRST> Prezime:<SECOND> Petrović</SECOND> </NAME>
Типови података • #PCDATA - Parsed Character data • маркирани карактер подаци, тј. налазе се између тагова • XML процесор подразумева да је садржај XML фајла овог типа по дифолту • CDATA - Character data • обичан текст који може да садржи знаке који су иначе резервисани за маркирање
Structure Symbols 1/2 • ( ) - означавање секвенце елемената (content1,content2) • , - раздваја елементе унутар секвенце и одређује редослед њиховог појављивања • | - раздваја алтернативне групе елемената(content1|content2 |content3) • ? - елемент се појављује највише једномcontent1?
Structure Symbols 2/2 • * - елемент се појављује 0 или више пута content1* • + -елемент се појављује бар једномcontent1+ • без знака - елемент се појављује тачно једном content1
<!ELEMENT CONTACT (NAME,ADDRESS?,COMPANY?,TEL_NUM*,EMAIL*,NOTE*)> <!ELEMENT NAME (FIRST,SECOND)> <!ELEMENT FIRST (#PCDATA)> <!ELEMENT SECOND (#PCDATA)> <!ELEMENT ADDRESS (#PCDATA)> <!ATTLIST ADDRESS state CDATA "YU"> <!ELEMENT COMPANY (#PCDATA)> <!ELEMENT TEL_NUM (#PCDATA)> <!ATTLIST TEL_NUM type (home|business|mobile) #REQUIRED> <!ELEMENT EMAIL (#PCDATA)> <!ELEMENT NOTE (#PCDATA)> <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE CONTACT SYSTEM "prim1.dtd"> <CONTACT> <NAME> <FIRST>Petar</FIRST> <SECOND> Petrović</SECOND> </NAME> <ADDRESS state="YU">Dunavska 23, Novi Sad</ADDRESS> <COMPANY>Vojvođanska Banka</COMPANY> <TEL_NUM type="home">444-333</TEL_NUM> <TEL_NUM type="business">555-222</TEL_NUM> <EMAIL>pp@yahoo.com</EMAIL> <NOTE/> </CONTACT>
Декларације атрибута • <!ATTLIST ElementNameAttributeNameTypeDefault> • Typeможе бити: CDATA, ENTITY, ENTITIES, ID, IDREF, IDREFS, NMTOKEN, NMTOKENS, NOTATION или вредности морају бити експлицитно набројане • Default може бити: #REQUIRED, #IMPLIED, #FIXED vrednost или дифолт вредност атрибута
Коментари • Могу се појављивати и у ДТД-у и у инстанци • таг за коментар <!--Ovako izgleda komentar--> • може да садржи било коју комбинацију обичног текста, знакова за маркирање или симбола, осим комбинације симбола која представља таг за коментар
Употреба атрибута и елемената • разлика између садржаја документа (елемент) и особина везаних за поједине елементе у документу (атрибут) • набрајање дозвољених простих вредности дозвољено је само у дефиницији атрибута • референца на unparsed ентитете се наводи искључиво као вредност атрибута типа ENTITY • CTX сервер врши индексирање по садржају елемената • информације које користе програми за обраду XML докумената наводе се као вредности атрибута
<TEKST><NASLOV> Validan XML dokument </NASLOV><PARAGRAF> Ovaj tekst predstavlja <POJAM> dobro formiran </POJAM> i <POJAM> validan</POJAM> XML dokument. </PARAGRAF> <PARAGRAF>Drugi paragraf u kome nema elemenata POJAM </PARAGRAF></TEKST> <!ELEMENT TEKST (NASLOV, PARAGRAF+)> <!ELEMENT NASLOV (#PCDATA)> <!ELEMENT PARAGRAF (#PCDATA|POJAM)*> <!ELEMENT POJAM (#PCDATA)>