[xml] Error of Canonical while replacing External Entities



Hello Sir,

I've a doubt that
We are very sure that Canonical module takes a Document pointer as an input which can be get after parsing of XML document. Now the doubt is If user has not set below value before parsing
xmlLoadExtDtdDefaultValue = XML_DETECT_IDS | XML_COMPLETE_ATTRS;
xmlSubstituteEntitiesDefault(1);

The Parser will not replace the Entity reference. The Canonical module is returning the error in this case.
But As per the specification, Character and parsed entity references are replaced with the literal characters (excepting special characters).
Can you tell me How can I overcome this problem.

Example:

<!DOCTYPE doc [

<!ATTLIST doc attrExtEnt ENTITY #IMPLIED>

<!ENTITY ent1 "Hello">

<!ENTITY ent2 SYSTEM "world.txt">

<!ENTITY entExt SYSTEM "earth.gif" NDATA gif>

<!NOTATION gif SYSTEM "viewgif.exe">

]>

<doc attrExtEnt="entExt">

  &ent1;, &ent2;!

</doc>



<!-- Let world.txt contain "world" (excluding the quotes) -->





In the above case If I'm setting these two things

xmlLoadExtDtdDefaultValue = XML_DETECT_IDS | XML_COMPLETE_ATTRS;
xmlSubstituteEntitiesDefault(1);

Then canonical module is working fine or else returning error.

Can you say me what might be the solution?.



Regards

Gopa





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]