> <!DOCTYPE test [
> <!ELEMENT test (#PCDATA)>
> <!ENTITY % p0 "a quote (") test">
> <!ENTITY % p1 "<!ENTITY e1 "">
> %p1;%p0;">
> ]>
> <test>This is&e1; .</test>
>
> My first thought for expanding PEReferences at the lexical level was to
> just convert any quotes in the replacement text to %, but that would
> break the above example. How does one tell to escape the quote when
> substituting p0, but not when substituting p1? Ahhh!
Well, I figured out a way to solve this problem in my parser, when
asking the lexical level for a character, the object in the grammar/parser
layer can just pass down a this pointer which will give the lexical layer
access to the current production hierarchy up to the point where
the character is being requested. That will let me know if I am in a
Comment, EntityValue, DocTypeDecl, or whatever, and allow me to take the
appropriate action. I think. :-)
> 4. It shall be easy to write programs which process XML documents.
Did somebody say easy? :-) Compared to what? Ok, so it isn't
_that_ hard, but I don't know if I would call this easy in the trivial
sense of the word. PE References definitely take this beyond quick
weekend hack.
--- Chris Hubick mailto:chris@hubick.com http://www.hubick.com/