PEReferences in ElementDecls (Parsing of DTDs)
falk at icon.at
Fri Dec 18 22:55:19 GMT 1998
I have a question concerning the correct parsing and interpretation of
PEReferences in DTDs.
The "spec.dtd" W3C Document-Type-Definition (DTD) for
contains several lines of the form:
<!ELEMENT head (%head.pcd.mix;)*>
This seems to be an Element-Declaration that uses a Parameter-Entity
Reference ( PEReference ::= '%' Name ';'). The current XML 1.0
Specification, however, includes the following EBNF-Rules for defining
Element-Declarations inside a DTD:
 elementdecl ::= '<!ELEMENT' S Name < l > S contentspec < l
> S? '>'
 contentspec ::= 'EMPTY' | 'ANY' | Mixed | children
 children ::= (choice | seq) ('?' | '*' | '+')?
 cp ::= (Name | choice | seq) ('?' | '*' | '+')?
 choice ::= '(' S? cp ( < l >? '|' < l >? cp < l > )* S? ')'
 seq ::= '(' < l >? cp ( < l >? ',' < l >? cp < l > )* S?
 Mixed ::= '(' < l >? '#PCDATA' (S? '|' < l >? Name < l >)*
S? ')*' | '(' S? '#PCDATA' S? ')'
None of these rules allow for a PEReference inside an elementdecl! There
are, however, several textual references regarding the validity constraints
of nestes PEs and even an example that uses a PEReference:
<!ELEMENT dictionary-body (%div.mix; | %dict.mix;)*>
In order to allow for this elementdecl to be valid, at least one of the
EBNF-Rules would need to be modified:
 cp ::= ( ( Name | PEReference ) | choice | seq) ('?' | '*'
The same is also true for Attribute-List Declarations and many more things
inside a DTD.....
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
Any comments would be greatly appreciated!
Icon Informations-Systeme GmbH
mailto:falk at icon.at
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