|    For a document that contains XLinks to be valid, all the XLink attributes that the document uses have to be declared in a DTD just like any other attributes. In most cases some of the attributes can be declared  #FIXED  . For example, this DTD fragment describes the  novel  element seen earlier:    <!ELEMENT novel  (title, author, year)> <!ATTLIST novel  xmlns:xlink CDATA   #FIXED 'http://www.w3.org/1999/xlink'                  xlink:type (simple) #FIXED 'simple'                  xlink:href  CDATA   #REQUIRED> <!ELEMENT title  (#PCDATA)> <!ELEMENT author (#PCDATA)> <!ELEMENT year   (#PCDATA)>      Given this DTD to fill in the fixed attributes  xmlns:xlink  and  xlink:type  , a  novel  element only needs an  xlink:href  attribute to be a complete simple XLink:    <novel xlink:href = "urn:isbn:0688069444">   <title>The Wonderful Wizard of Oz</title>   <author>L. Frank Baum</author>   <year>1900</year> </novel>      Documents that contain many XLink elements often use parameter entity references to define the common attributes. For example, suppose  novel  ,  anthology  , and  nonfiction  are all simple XLink elements. Their XLink attributes could be declared in a DTD like this:    <!ENTITY % simplelink   "xlink:type (simple) #FIXED 'simple'    xlink:href  CDATA   #REQUIRED    xmlns:xlink CDATA   #FIXED 'http://www.w3.org/1999/xlink'    xlink:role  CDATA   #IMPLIED    xlink:title CDATA   #IMPLIED    xlink:actuate (onRequest  onLoad  other  none) 'onRequest'    xlink:show (new  replace  embed  other  none) 'new'" > <!ATTLIST anthology   %simplelink;> <!ATTLIST novel       %simplelink;> <!ATTLIST nonfiction  %simplelink;>      Similar techniques can be applied to declarations of attributes for extended XLinks.    |