An ATTLIST declaration is used to declare the attributes in a DTD.
Declaring Attributes:
Syntax: Attribute declaration:
Example: DTD:
Example: XML:
Attribute-type:
We can choose any of the below for the attribute-type:
Type | Uses |
CDATA | To specify that the value is character data. |
(en1|en2|..) | To specify that the value must be one from an enumerated list. |
ID | To specify that the value is a unique id. |
IDREF | To specify that the value is the id of another element. |
IDREFS | To specify that the value is a list of other ids. |
NMTOKEN | To specify that the value is a valid XML name. |
NMTOKENS | To specify that the value is a list of valid XML names. |
ENTITY | To specify that the value is an entity. |
ENTITIES | To specify that the value is a list of entities. |
NOTATION | To specify that the value is a name of a notation. |
xml: | To specify that the value is a predefined xml value. |
Attribute-value:
We can choose any of the below for the attribute-value:
Value | Uses |
value | To define the default value of the attribute. |
#REQUIRED | To specify that the attribute is required. |
#IMPLIED | To specify that the attribute is optional. |
#FIXED value | To specify that the attribute value is fixed. |
Default Attribute Value:
DTD:
Valid XML:
Explanation:
In the above example, we are defining the “rectangle” element as an empty element with a “width” attribute of type CDATA. It has a default value of 0, which is applicable if no width is specified.
#REQUIRED:
In case we don’t have an option for a default value, but still want to force the attribute to be present, we can use the #REQUIRED keyword.
Syntax:
Example:
DTD:
Valid XML:
Invalid XML:
#IMPLIED:
In case, we don’t want to force the author to include an attribute, and we also don’t have an option for a default value, we can use the #IMPLIED keyword.
Syntax:
Example:
DTD:
Valid XML:
Invalid XML:
#FIXED:
In case, we want an attribute to have a fixed value without allowing the author to change it, we can use the #FIXED keyword. When another value is included by the author, an error will be returned by the XML parser.
Syntax:
Example:
DTD:
Valid XML:
Invalid XML:
Enumerated Attribute Values:
In case, we want the attribute value to be one of a fixed set of legal values, we can use the enumerated attribute values.
Syntax:
Example:
DTD:
XML example:
or