Lists Home |
Date Index |
Cabbar Duzayak wrote:
> I have an XML which is similar to:
> <?xml version="1.0" encoding="UTF-8"?>
> <!DOCTYPE TestData [<!ENTITY var1
> When I try to parse this, I am getting an exception:
> '<' cannot appear in attribute value.
> Looks like parser replaces &var1; with
and since attribute values
> can not have "<" in them, this xml can not be parsed.
> And the problem goes away if I replace the entity
> definition with:
> <!DOCTYPE TestData [<!ENTITY var1 'testvalue'>]>
> However, I have to use CDATA here,
But you **cannot** use a CDATA section in an attribute value. A CDATA
section, legal only in element content, simply signals to the processor
that characters otherwise considered to be markup are to be treated as
text. A CDATA section does not do any escaping.
An entity, however, is a substitution macro, and effectively sticks
characters into the source. Wrapping them with a CDATA section doe snot
>cause I don't know
> what the value of "var1" can be at runtime, and it
> might contain quote characters or any other special
> characters and it will be hard to deal with various
> cases if I don't use CDATA...
Too bad, you have to escape the data before the processor sees it.