A question on the interpretation of the XML specification and the correctness of
Xerces C++ 1.6.0.

Consider the following XML document:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE mydoc SYSTEM "mydoc.dtd">
    <mydoc myattr="cheese"/>

and the associated mydoc.dtd DTD:

    <!ELEMENT mydoc EMPTY>
    <!ATTLIST mydoc myattr ( CDATA ) #REQUIRED>

Is the XML document valid? Xerces C++ 1.6.0 says no. Some other XML parsers
(e.g. xmlspy) say yes.

Xerces appears to consider the "CDATA" in the DTD to be an uninterpreted
literal. Some other parsers interpret it to mean "any valid name token", thus
considering myattr to be an enumeration of anything at all, including nothing?!
My gut feeling, based on a shallow reading of the XML spec, is that Xerces is
right. Can anyone with a deeper understanding of the XML standard confirm?

I'm interested in this oddity because the FIX 4.3v1.0 DTD
(http://www.fixprotocol.org/cgi-bin/Spec.cgi?menu=4), an open standard, has some
definitions that effectively reduce to the simplified examples above.

Regards,
--MikeL




_____________________________________________________

This transmission has been issued by a member of the HSBC Group 
"HSBC" for the information of the addressee only and should not be 
reproduced and / or distributed to any other person. Each page attached 
hereto must be read in conjunction with any disclaimer which forms part 
of it. Unless otherwise stated, this transmission is neither an offer nor the 
solicitation of an offer to sell or purchase any investment. Its contents are 
based on information obtained from sources believed to be reliable but
HSBC makes no representation and accepts no responsibility or liability as 
to its completeness or accuracy.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to