HI WELCOME TO SIRIS

DTD Attribute Token Types

DTD attribute token types allow only certain value in a specific structure. following are some token type.

CDATA

CDATA specifies the character string type data.
Syntax
<ATTLIST element_name attr_name CDATA attr_declaration>
Example
<?xml version="1.0" standalone="yes"?>
<!DOCTYPE empinfo [
  <!ELEMENT empinfo (employee)>
  <!ELEMENT employee (designation)>
  <!ELEMENT designation (#PCDATA)>
  <!ATTLIST designation discipline CDATA "web_developer">
]>

<empinfo>
  <employee id="1">
    <designation>Senior Engineer</designation>
  </employee>
  <employee id="2">
    <designation discipline="DBA">Senior Engineer</designation>
  </employee>
</empinfo>

Example Result

ID

ID specifies the unique identifier. No element can have same ID in XML document.
Syntax
<ATTLIST element_name attr_name ID attr_declaration>
Example
<?xml version="1.0" standalone="yes"?>
<!DOCTYPE empinfo [
  <!ELEMENT empinfo (employee)>
  <!ELEMENT employee (designation)>
  <!ATTLIST employee id CDATA #REQUIRED>
  <!ELEMENT designation (#PCDATA)>
  <!ATTLIST designation discipline CDATA "web_developer">
]>

<empinfo>
  <employee id="1">
    <designation>Senior Engineer</designation>
  </employee>
  <employee id="2">
    <designation discipline="DBA">Senior Engineer</designation>
  </employee>
</empinfo>

Example Result

IDREF

IDREF specifies to a another elements id attribute value.
Syntax
<ATTLIST element_name attr_name IDREF attr_declaration>
Example
<?xml version="1.0" standalone="yes"?>
<!DOCTYPE empinfo [
  <!ELEMENT empinfo (employee)>
  <!ELEMENT employee (designation)>
  <!ATTLIST employee id ID #REQUIRED>
  <!ATTLIST employee user_id IDREF #REQUIRED>
  <!ELEMENT designation (#PCDATA)>
]>

<empinfo>
  <employee id="1" user_id="2">
    <designation>Senior Engineer</designation>
  </employee>
  <employee id="2" user_id="3">
    <designation>Senior Engineer</designation>
  </employee>
  <employee id="3" user_id="1">
    <designation>Senior Engineer</designation>
  </employee>
</empinfo>

Example Result

IDREFS

IDREFS specifies one or more ID reference value separated by blank spaces.
Syntax
<ATTLIST element_name attr_name IDREFS attr_declaration>
Example
<?xml version="1.0" standalone="yes"?>
<!DOCTYPE empinfo [
  <!ELEMENT empinfo (employee)>
  <!ELEMENT employee (designation)>
  <!ATTLIST employee id ID #REQUIRED>
  <!ATTLIST employee user_id IDREFS #IMPLIED>
  <!ELEMENT designation (#PCDATA)>
]>

<empinfo>
  <employee id="1" user_id="2 3">
    <designation>Senior Engineer</designation>
  </employee>
  <employee id="2">
    <designation>Senior Engineer</designation>
  </employee>
  <employee id="3">
    <designation>Senior Engineer</designation>
  </employee>
</empinfo>

Example Result

ENTITY

ENTITY refer to a name of the entity. Allow only specified entity.
Syntax
<ATTLIST element_name attr_name IDREFS attr_declaration>
<ENTITY entity_name entity_definition>
...
Example
<?xml version="1.0" standalone="yes"?>
<!DOCTYPE empinfo [
  <!ELEMENT empinfo (employee)>
  <!ELEMENT employee (designation)>

  <!ELEMENT designation (#PCDATA)>
  <!ATTLIST designation discipline ENTITY #IMPLIED>
  <!ENTITY web "web_developer">
  <!ENTITY dba "DBA">
]>

<empinfo>
  <employee>
    <designation discipline="&web;">Senior Engineer</designation>
  </employee>
  <employee>
    <designation discipline="&dba;">Administrator</designation>
  </employee>
</empinfo>

Example Result

ENTITIES

ENTITIES refer to a list of entity name separated by blank spaces.
Syntax
<ATTLIST element_name attr_name ENTITIES attr_declaration>
<ENTITY entity_name entity_definition>
...
Example
<?xml version="1.0" standalone="yes"?>
<!DOCTYPE empinfo [
  <!ELEMENT empinfo (employee)>
  <!ELEMENT employee (designation)>

  <!ELEMENT designation (#PCDATA)>
  <!ATTLIST designation discipline ENTITIES #IMPLIED>
  <!ENTITY web "web_developer">
  <!ENTITY dba "DBA">
  <!ENTITY soft "software_developer">
]>

<empinfo>
  <employee>
    <designation discipline="&web; &soft;">Senior Engineer</designation>
  </employee>
  <employee>
    <designation discipline="&dba;">Administrator</designation>
  </employee>
</empinfo>
Example Result

NMTOKEN

NMTOKEN specifies the any string character exclude whitespace. Before and after whitespace automatic trimmed.
Syntax
<ATTLIST element_name attr_name NMTOKEN attr_declaration>
Example
<?xml version="1.0" standalone="yes"?>
<!DOCTYPE empinfo [
  <!ELEMENT empinfo (employee)>
  <!ELEMENT employee (designation)>

  <!ELEMENT designation (#PCDATA)>
  <!ATTLIST designation discipline NMTOKEN "web_developer">
]>

<empinfo>
  <employee>
    <designation>Developer</designation>
  </employee>
  <employee>
    <designation discipline="DBA">Senior Engineer</designation>
  </employee>
  <employee>
    <designation discipline="software_developer">Administrator</designation>
  </employee>
</empinfo>

Example Result

NMTOKENS

NMTOKENS specifies the multiple NMTOKEN separated by whitespace.
Syntax
<ATTLIST element_name attr_name NMTOKENS attr_declaration>
Example
<?xml version="1.0" standalone="yes"?>
<!DOCTYPE empinfo [
  <!ELEMENT empinfo (employee)>
  <!ELEMENT employee (designation)>

  <!ELEMENT designation (#PCDATA)>
  <!ATTLIST designation discipline NMTOKENS "web_developer Trainee">
]>

<empinfo>
  <employee>
    <designation>Developer</designation>
  </employee>
  <employee>
    <designation discipline="DBA software_developer">Senior Engineer</designation>
  </employee>
</empinfo>

Example Result