DTDs

Richard Tobin richard at cogsci.ed.ac.uk
Thu May 27 15:59:18 BST 1999


> "If both the external and internal subsets are used, the internal subset is
>  considered to occur before the external subset."

This just means that your two examples:

> <!DOCTYPE example SYSTEM "example.dtd" [
>    <!ELEMENT example (something)>
>    <!-- and so on -->
> ]>

> <!DOCTYPE example [
>    <!ENTITY % external SYSTEM "example.dtd">
>    <!ELEMENT example (something)>
>    <!-- the same as above -->
>    %external;
> ]>

are equivalent, and in particular they are not equivalent to

<!DOCTYPE example [
   <!ENTITY % external SYSTEM "example.dtd">
   %external;
   <!ELEMENT example (something)>
   <!-- the same as above -->
]>

which is what you would use if you wanted the external part processed
first.

In the cases where multiple declarations of the same thing are allowed
(entities, attributes, notations(?) but not elements), the first
declaration applies; so the rule means that declarations in the internal
subset override ones in the external subset.  It also allows you to
parametrise the external subset by using conditionals that test
parameter entities defined in the internal subset.

-- Richard

xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at ic.ac.uk
Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/ and on CD-ROM/ISBN 981-02-3594-1
To (un)subscribe, mailto:majordomo at ic.ac.uk the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo at ic.ac.uk the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at ic.ac.uk)





More information about the Xml-dev mailing list