DTD-Attributes

In a DTD, attributes are declared with an ATTLIST
declaration.
Declaring Attributes
The ATTLIST declaration defines the element having a
attribute with attribute name , attribute type , and attribute
default value. An attribute declaration has the following syntax:
<!ATTLIST element-name attribute-name attribute-type default-value>
|
DTD example:
| <!ATTLIST
reciept type CDATA "check"> |
XML example:
Attribute-type
The attribute-type can be one of the following:
| 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
|
Default-value
The default-value can be one of the following:
| 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
|
A Default Attribute Value
DTD Example:
<!ELEMENT Scale EMPTY>
<!ATTLIST Scale length CDATA "0">
|
In the example above, the DTD defines a "Scale"
element to be empty with a "length " attribute of
type CDATA . If no length is specified, it has a default value of 0.
Valid XML:
REQUIRED
Syntax
<!ATTLIST element-name attribute_name attribute-type #REQUIRED>
|
DTD Example
| <!ATTLIST person number CDATA #REQUIRED> |
Valid XML:
Invalid XML:
Use the #REQUIRED keyword if you don't have an option
for a default value, but still want to force the attribute to be present.
IMPLIED
Syntax
<!ATTLIST element-name attribute-name attribute-type #IMPLIED>
|
DTD Example
| <!ATTLIST emergency no. CDATA #IMPLIED> |
Valid XML:
| <emergency no.="555-667788"
/> |
Valid XML:
Use the #IMPLIED keyword if you don't want to force the
author to include an attribute, and you don't have an option for a default
value.
FIXED
Syntax
<!ATTLIST element-name attribute-name attribute-type #FIXED "value">
|
DTD Example
| <!ATTLIST Client CDATA
#FIXED "RoseIndia"> |
Valid XML:
Invalid XML:
Use the #FIXED keyword when you want an attribute to
have a fixed value without allowing the author to change it. If an author
includes another value, the XML parser will return an error.
Enumerated Attribute Values
Syntax
<!ATTLIST element-name attribute-name (en1|en2|..) default-value>
|
DTD Example
| <!ATTLIST reciept type (check|cash)
"cash"> |
XML example:
<reciept type="check" />
or
<reciept type="cash" />
|
Use enumerated attribute values when you want the
attribute value to be one of a fixed set of legal values.

|
Current Comments
0 comments so far (post your own) View All Comments Latest 10 Comments: