PEReferences in ElementDecls (Parsing of DTDs)
Falk, Alexander
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
Specification-Documents (http://www.w3.org/XML/1998/06/xmlspec-19980521.dtd)
contains several lines of the form:
<!ELEMENT head (%head.pcd.mix;)*>
This seems to be an Element-Declaration that uses a Parameter-Entity
Reference ([69] PEReference ::= '%' Name ';'). The current XML 1.0
Specification, however, includes the following EBNF-Rules for defining
Element-Declarations inside a DTD:
[45] elementdecl ::= '<!ELEMENT' S Name < l > S contentspec < l
> S? '>'
[46] contentspec ::= 'EMPTY' | 'ANY' | Mixed | children
[47] children ::= (choice | seq) ('?' | '*' | '+')?
[48] cp ::= (Name | choice | seq) ('?' | '*' | '+')?
[49] choice ::= '(' S? cp ( < l >? '|' < l >? cp < l > )* S? ')'
[50] seq ::= '(' < l >? cp ( < l >? ',' < l >? cp < l > )* S?
')'
[51] 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:
[48] 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
PEReferences?
Any comments would be greatly appreciated!
Alexander Falk
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;
(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