PEReferences in ElementDecls (Parsing of DTDs)
colds at nwlink.com
Sat Dec 19 00:11:03 GMT 1998
>So the question is: is the XML-grammar inside the XML 1.0 Spec incomplete?
>Is there a new version? What rules do need to be adapted to allow for
The answer is found just after production  in the XML spec:
Document Type Definition
 doctypedecl ::= '<!DOCTYPE' S Name (S ExternalID)? S? ('['
(markupdecl | PEReference | S)* ']' S?)? '>'
 markupdecl ::= elementdecl | AttlistDecl | EntityDecl | NotationDecl
| PI | Comment
The markup declarations may be made up in whole or in part of the
replacement text of parameter entities. The productions later in this
specification for individual nonterminals (elementdecl, AttlistDecl, and so
on) describe the declarations after all the parameter entities have been
Tim Bray's (excellent) annotation on this says (in part) "This little
paragraph is awfully important. [...] the grammar describes what the text
looks like after [parameter entities ]have all been expanded." (full text is
at http://www.xml.com/axml/notes/PEs-1.html ).
Another easily overlooked gotcha about PEs is that they can be used for
parts of a markupdecl () (e.g. all or part of a content model) in the
external part(s) of a DTD, but can only replace an entire markupdecl in the
internal portion of a DTD.
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/
To (un)subscribe, mailto:majordomo at ic.ac.uk the following message;
To subscribe to the digests, mailto:majordomo at ic.ac.uk the following message;
List coordinator, Henry Rzepa (mailto:rzepa at ic.ac.uk)
More information about the Xml-dev