Document Type Definition (DTD) Hendra Setia Budi
Apa itu DTD?? Document Type Definition (DTD) secara formal menyatakan struktur dan isi elemen (tag, hubungan di antara tag-tag berbeda, dan seterusnya) dari dokumen XML valid yang diberikan. Dokumen XML dapat dikategorikan menjadi 3 jenis, yaitu Well Formed XML: Valid XML: Invalid XML: DTD terdiri dari 2 komponen dasar, yaitu ELEMENT dan ATTLIST
Contoh DTD <!DOCTYPE NEWSPAPER [ <!ELEMENT NEWSPAPER (ARTICLE+)> <!ELEMENT ARTICLE (HEADLINE,BYLINE,LEAD,BODY,NOTES)> <!ELEMENT HEADLINE (#PCDATA)> <!ELEMENT BYLINE (#PCDATA)> <!ELEMENT LEAD (#PCDATA)> <!ELEMENT BODY (#PCDATA)> <!ELEMENT NOTES (#PCDATA)> <!ATTLIST ARTICLE AUTHOR CDATA #REQUIRED> <!ATTLIST ARTICLE EDITOR CDATA #IMPLIED> <!ATTLIST ARTICLE DATE CDATA #IMPLIED> <!ATTLIST ARTICLE EDITION CDATA #IMPLIED> ]>`
ELEMENT Setiap elemen yang digunakan dalam dokumen XML harus dinyatakan dengan menggunakan tag <!ELEMEN> di DTD. Syntax untuk mendeklarasikan sebuah elemen pada DTD adalah seperti berikut : “<!ELEMENT ElementName (Rule)>” 3 Jenis ELEMENT : #PCDATA #ANY #EMPTY One or more elements
ELEMENT <?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>
One or More Elements <!ELEMENT people (phone_number*)>
ATTRIBUT
ATTRIBUT CONTOH !! <?xml version="1.0" encoding="UTF-8" standalone="yes" ?> <!DOCTYPE orang [ <!ELEMENT orang (nama, profesi*)> <!ELEMENT nama (#PCDATA)> <!ATTLIST nama profesi CDATA #REQUIRED hobi CDATA #REQUIRED umur CDATA #IMPLIED jenis_kelamin CDATA #FIXED "Laki-laki"> ]> <orang> <nama hobi="bola" profesi="Asdos">Gue</nama> </orang>
ATTRIBUT CDATA CDATA terdisi dari data karakter. Block tag di dalam CDATA tidak diproses di dalam XML. Sebagai contoh, kita dapat menggunakan DATA untuk informasi berisi karakter <, > atau &. CDATA dimulai dengan <![CDATA dan diakhiri dengan ]>. Contoh CDATA adalah sebagai berikut.
ATTRIBUT #REQUIRED DTD: <!ATTLIST person number CDATA #REQUIRED> Valid XML: <person number="5677" /> Invalid XML: <person />
ATTRIBUT #IMPLIED DTD: <!ATTLIST contact fax CDATA #IMPLIED> Valid XML: <contact fax="555-667788" /> Valid XML: <contact />
ATTRIBUT #FIXED DTD: <!ATTLIST sender company CDATA #FIXED "Microsoft"> Valid XML: <sender company="Microsoft" /> Invalid XML: <sender company="W3Schools" />
ENTITY <!ENTITY entity-name "entity-value"> DTD Example: <!ENTITY writer "Donald Duck."> <!ENTITY copyright "Copyright W3Schools."> XML example: <author>&writer;©right;</author> Note: An entity has three parts: an ampersand (&), an entity name, and a semicolon (;).
QUIZ ah.. Buatlah DTD External Memiliki Sequences (children) Entity minimal 4 Memiliki minimal 2 tipe Element (#PCDATA, #ANY, #EMPTY) Memiliki minimal 2 attribute (Fixed, Required, Implied) Memiliki 2 entity (internal) Buatlah XML document berdasarkan DTD External yang telah dibuat (minimal 2 record)