1 Dr Alexiei Dingli XML Technologies DTD. 2 Document Type Definition Defines –the legal building...
-
Upload
herbert-sutton -
Category
Documents
-
view
220 -
download
3
Transcript of 1 Dr Alexiei Dingli XML Technologies DTD. 2 Document Type Definition Defines –the legal building...
1
Dr Alexiei Dingli
XML Technologies
DTD
2
• Document Type Definition
• Defines – the legal building blocks of an XML document– the document structure– The legal elements and attributes
• A DTD can be defined inside an xml document or outside
What’s in a DTD?
3
• An XML file can carry a description of its own format
• Independent groups of people can agree to use a standard DTD for interchanging data
• Applications can use a standard DTD to verify that the data received from the outside world is valid
• A DTD can be used to verify the data
Why do we need a DTD?
4
<!DOCTYPE root-element [element-declarations]>
An inside DTD (1)
5
An inside DTD (2)
6
• !DOCTYPE note defines that the root element of this document is note.
• !ELEMENT note defines that the note element contains four elements: "to,from,heading,body".
• !ELEMENT to defines the to element to be of the type "#PCDATA".
• !ELEMENT from defines the from element to be of the type "#PCDATA".
• !ELEMENT heading defines the heading element to be of the type "#PCDATA".
• !ELEMENT body defines the body element to be of the type "#PCDATA".
An inside DTD (3)
7
<!DOCTYPE root-element SYSTEM "filename">
<!DOCTYPE note SYSTEM "note.dtd">
External DTD
8
• Elements
• Attributes
• Entities
• PCDATA
• CDATA
The building blocks
9
• Main building block
• Can contain text, other elements or be empty
• The elements b, title and br can be used as follows:
<b>Hello world</b>
<title>Hello <b>Tom</b></title>
<br />
Elements
10
• Provide extra information about elements
• Always placed inside the opening tag
• Always have a name/value pair
Which is the element, attribute and value?
<img src="computer.gif" />
Attributes
11
Entity References Character
< <
> >
& &
" "
' '
Entities
12
• Text that will NOT be parsed by a parser
• Tags inside the text will NOT be treated as markup and entities will not be expanded
CDATA
13
• Parsed character data• Character data is the text found between the start tag
and the end tag of an XML element• Text that WILL be parsed by a parser
– The text will be examined by the parser for entities and markup
• Tags inside the text will be treated as markup and entities will be expanded
• However, parsed character data should not contain any &, <, or > characters; these need to be represented by the & < and > entities, respectively
PCDATA
14
<!ELEMENT element-name category>
Different Elements
15
<!ELEMENT br EMPTY>
<br />
The Empty Element
16
<!ELEMENT element-name (#PCDATA)>
<!ELEMENT from (#PCDATA)>
Element with PCDATA
17
<!ELEMENT element-name ANY>
<!ELEMENT note ANY>
Element with Any
18
<!ELEMENT element-name (child1,child2,...)>
<!ELEMENT note (to,from,heading,body)>
*Sequence must be respected
Elements with Children
19
<!ELEMENT element-name (child-name)>
<!ELEMENT note (message)>
Element with one child
20
• One or more
– <!ELEMENT element-name (child-name+)>
– <!ELEMENT note (message+)>
• Zero or more
– <!ELEMENT element-name (child-name*)>
– <!ELEMENT note (message*)>
• Zero or One
– <!ELEMENT element-name (child-name?)>
– <!ELEMENT note (message?)>
Occurrences
21
• Either or
– <!ELEMENT note (to,from,header,(message|body))>
• Mixed content
– <!ELEMENT note (#PCDATA|to|from|header|message)*>
Mixing ...
22
<!ATTLIST element-name attribute-name attribute-type default-value>
<!ATTLIST payment type CDATA "check">
<payment type="check" />
Declaring Attributes
23
Type Description
CDATA The value is character data
(en1|en2|..) The value must be one from an enumerated list
ID The value is a unique id
IDREF The value is the id of another element
IDREFS The value is a list of other ids
NMTOKEN The value is a valid XML name
NMTOKENS The value is a list of valid XML names
ENTITY The value is an entity
ENTITIES The value is a list of entities
NOTATION The value is a name of a notation
xml: The value is a predefined xml value
Atribute Type
24
Value Explanation
value The default value of the attribute
#REQUIRED The attribute is required
#IMPLIED The attribute is not required
#FIXED value The attribute value is fixed
Attribute Value
25
<!ATTLIST mountain country CDATA "New Zealand">
<mountains>
<mountain country="New Zealand">
<name>Mount Cook</name>
</mountain>
CDATA example
26
<!ATTLIST tutorial published (yes | no) "no">
<tutorial published="yes">
<name>XML Tutorial</name>
</tutorial>
Enumerated Example
27
<!ATTLIST mountain mountain_id ID #REQUIRED>
<mountain mountain_id="m10001">
<name>Mount Cook</name>
</mountain>
ID example
28
<!ATTLIST employee employee_id ID #REQUIRED manager_id IDREF #IMPLIED>
<employees>
<employee employee_id="e10001" manager_id="e10002"> <first_name>Homer</first_name>
<last_name>Flinstone</last_name>
</employee>
<employee employee_id="e10002"> <first_name>Fred</first_name> <last_name>Burns</last_name>
</employee>
</employees>
ID Ref example
29
<!ATTLIST individual individual_id ID #REQUIRED parent_id IDREFS #IMPLIED>
<individual individual_id="e10001" parent_id="e10002 e10003">
<first_name>Bart</first_name> <last_name>Simpson</last_name>
</individual>
ID Refs example
30
<!ATTLIST tutorial published NMTOKEN #REQUIRED>
* Can contain only letters, digits, points, hyphen, underline and colon
<mountain country="NZ">
<name>Mount Cook</name>
</mountain>
NMTOKEN example
31
<!NOTATION name SYSTEM "external_id"> * Allow you to add data which is not XML
<!NOTATION GIF SYSTEM "image/gif">
<!NOTATION JPG SYSTEM "image/jpeg">
<!NOTATION PNG SYSTEM "image/png">
<!ATTLIST mountain photo ENTITY #IMPLIED photo_type NOTATION (GIF | JPG | PNG) #IMPLIED>
Notation example
32
<!ATTLIST mountain photo ENTITY #IMPLIED>
<!ENTITY mt_cook_1 SYSTEM "mt_cook1.jpg">
<mountain photo="mt_cook_1">
<name>Mount Cook</name>
</mountain>
Entity example
33
• Entities are variables used to define shortcuts to standard text or special characters– Entity references are references to entities– Entities can be declared internal or external
More about Entities
34
<!ENTITY writer “Alexiei Dingli">
<!ENTITY copyright "Copyright Dingli@UOM">
<author>&writer;©right;</author>
Internal Entities
35
<!ENTITY writer SYSTEM "http://www.um.edu.mt/entities.dtd">
<!ENTITY copyright SYSTEM "http://www.um.edu.mt/entities.dtd">
<author>&writer;©right;</author>
External Entities
36
Example
37
• Define an XML Vocabulary for a Toaster Markup Language (TML)
• It must support features such as:– Print message on toast– Display on LCD– Time stamp
Exercise
38
Questions?