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