Marcus Carr mrc at
Sun Mar 22 22:27:20 GMT 1998

Rick Jelliffe wrote:

> Many people recommend that an attribute should only be called
> "ID" if it is an ID attribute. So in the following, x1 is good and
> x2 is naughty:
> <!ATTLIST x1           ID     ID            #REQURIED>
> <!ATTLIST x2           ID     CDATA  #REQURIED>
> I think it is good practice anyway: dont name an attribute
> using an XML keyword if that is not the type you want.

True, but the requirements of the attribute may not be known until processing
time. You may use a parameter entity in the declaration subset and assign the
value based on whether the parser will have access to the rest of the dataset or
whether this is a subset that would result on the generation of useless and
unwanted errors, ie:

<!ATTLIST x1           ID     %IDorCDATA;         #REQURIED>

in the DTD, and then, depending on the doctype element, generate either:

<!DOCTYPE WholeDataSet  PUBLIC   "-//My//DTD for example//EN"  [
<!ATTLIST IDorCDATA        "ID">]>


<!DOCTYPE DataSetFrag  PUBLIC   "-//My//DTD for example//EN"  [

at the head of the instance.


Marcus Carr                  email:  mrc at
Allette Systems (Australia)  email:  info at
Level 10, 91 York Street     www:
Sydney 2000 NSW Australia    phone:  +61 2 9262 4777
                             fax:    +61 2 9262 4774

xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at
Archived as:
To (un)subscribe, mailto:majordomo at the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo at the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at

More information about the Xml-dev mailing list