The XML spec in XML: missing tags

Michael Kay M.H.Kay at
Mon Feb 23 16:48:47 GMT 1998

I have been playing with the BNF rules in the XML spec as an exercise in XML

I noticed that in the XML version of the XML spec, the non-terminal symbol
"S" is incorrectly tagged in rules 60, 62, and 63, and in consequence it is
hyperlinked in the HTML version.

Some comments on the XML tagging in the BNF rules:
- it is useful to have the non-terminals tagged, though the way in which it
done is a little clumsy, since the internal identifier and the visible name
of the non-terminal are necessarily in a one-to-one correspondence. The way
it is done seems designed primarily to enable a particular translation to
- it is a shame that there is no tagging to distinguish terminal symbols
from metasymbols, since this would enable nicer renditions of the rules,
e.g. exploiting colour, without having to parse the BNF
- it would seem more logical for each rule to have a single <rhs>, with any
<vc> and <wfc> constraints being embedded within the <rhs>, rather than
these being separate elements interspersed among multiple <rhs> elements.

Two comments on the definition of notation in section 6:
- the distinction between non-terminals with an initial upper case and those
with an initial lower case is not at all clear (to me).
- the precedence of the metalanguage operators (e.g. that "A B | C" means
"(A B) | C" is not stated.

Thanks to Peter M-R for prompting me to look at this XML exemplar, it has
been very stimulating!

Mike Kay

xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at
Archived as:
To (un)subscribe, mailto:majordomo at the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo at the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at

More information about the Xml-dev mailing list