6.3 Attribute Declarations

<!ATTLIST element { name type default } ... >
data type


(value | ... | value)

enumerated type; one value is to be chosen



CDATA

character data



ID

unique identifier; at most one per element



IDREF

reference to an id



IDREFS

space separated list of references to ids



NMTOKEN

name token; like ID but need not be unique (e.g., class name)



NMTOKENS

separated list of name tokens



ENTITY

name of an entity



ENTITIES

space separated list of entity names



NOTATION (name | ... | name)

foreign data



xml:

predefined xml name

default value


"value" assumed value, if none supplied in the document


#IMPLIED value can be supplied but not required


#REQUIRED value must be specified in the document


#FIXED "value"only allowed value
<!ELEMENT person (name)+ >  
<!ELEMENT name   (#PCDATA) >  
<!ATTLIST person  
          ssn        ID                #REQUIRED  
          spouse     IDREF             #IMPLIED  
          friends    IDREFS            #IMPLIED  
          profession NMTOKEN           "student"  
          employer   CDATA             #FIXED     "osu"  >  
<!ATTLIST name type (first | middle | last) #IMPLIED  >

<person ssn="n123456789" employer="osu" >
  <name>Me</name>
  <name type="first">Alone</name>
</person>
<person ssn="n012345678" employer="osu" >
  <name>You</name>
  <name type="first">Fun</name>
</person>
<person ssn="n987654321"
        spouse="n123456789"
        friends="n123456789 n012345678"
        employer="osu" >

  <name type="first">One</name>
  <name>Some</name>
</person>