Re: [xml] PEReferences - tricky and error-prone
- From: "Christopher R. Maden" <crism maden org>
- To: xml gnome org
- Subject: Re: [xml] PEReferences - tricky and error-prone
- Date: Mon, 03 Jun 2002 23:12:23 -0700
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
At 06:50 3/6/02, Peter Jacobi wrote:
Given that the original example is valid,
I had actually assumed that the original one was invalid, but I was wrong;
if is valid SGML and isn't ruled out by anything in the XML Recommendation,
then it's usually a good bet that it is intentionally correct XML (as
opposed to one of those places where we all took SGML knowledge for granted).
I assume
the following one is also valid, due to the automatic
insertion of blanks around the replacement text:
<!ENTITY % percent "%">
<!ENTITY%percent;def "ghi">
<!ENTITY abc "%def;">
<!ELEMENT root (#PCDATA)>
Ick - this seems to be one of those places. The space-adding rule is not
part of SGML, and so that would absolutely not be valid SGML. The
space-adding rule was intended to simplify things by making sure that the
PEs were always complete tokens (avoiding things like:
<!ENTITY % foo "foo">
<!ENTITY % bar "bar">
<!ELEMENT %foo;%bar; (#PCDATA)>
) but as usual, it appears to have had unintended consequences. My feeling
for now is that a parser should accept your example, but if at all
possible, issue a *very* strong warning, because it seems likely to be made
illegal in an erratum.
And I assume, that unescaped use of the
percent sign (as seen in Matthias' SGML
example) is not valid XML:
<!ENTITY % percent "%">
<!ENTITY %percent; def "ghi">
<!ENTITY abc "%def;">
<!ELEMENT root (#PCDATA)>
No, it wouldn't be valid XML. It's valid SGML because of the baroque
delimiter-in-context rules which mean that % isn't a pero unless followed
by a name start character.
~Chris, feeling unclean now
- --
Christopher R. Maden, Principal Consultant, crism consulting
DTDs/schemas - conversion - ebooks - publishing - Web - B2B - training
<URL: http://crism.maden.org/consulting/ >
PGP Fingerprint: BBA6 4085 DED0 E176 D6D4 5DFC AC52 F825 AFEC 58DA
-----BEGIN PGP SIGNATURE-----
Version: PGP Personal Privacy 6.5.8
iQA/AwUBPPxaR6xS+CWv7FjaEQJvvgCg+0LKbsxYtZV2pCjJ23X45mT8+8wAoKIr
ue9CuLL0y9rFlCue8dBWzOuF
=cybW
-----END PGP SIGNATURE-----
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]