PEReferences in ElementDecls (Parsing of DTDs)

Chris Olds colds at nwlink.com
Sat Dec 19 00:11:03 GMT 1998


You ask:
>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
>PEReferences?


The answer is found just after production [28] in the XML spec:
================================
Document Type Definition
[28]  doctypedecl ::=  '<!DOCTYPE' S Name (S ExternalID)? S? ('['
(markupdecl | PEReference | S)* ']' S?)? '>'
[29]  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
included.
================================
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 ([29]) (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.

    /cco



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;
(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