[Mono-list] Xml Entity Resolution

Atsushi Eno atsushi at ximian.com
Mon Mar 5 16:07:02 EST 2007


Well, you could just try XmlTextReader.XmlResolver = null here ...

Atsushi Eno

Colin John Nicholas Breame wrote:
> Hi,
> 
> I've tried your solution with both XmlTextReader and XmlValidatingReader
> but I can't make it work.  The problem is that the XmlTextReader
> actually requires entities to be resolved.
> 
> As a work around I've subclassed XmlTextReader to return false for
> CanResolveEntity, which seems to (at least initially) do the trick.  See
> below.
> 
> Thanks
> C.
> 
> using System.IO;
> using System.Xml;
> 
> public class NonEntityResolvingXmlTextReader : XmlTextReader {
>   public NonResolvingXmlTextReader(TextReader reader) : base(reader) {
>   }
> 
>   public override bool CanResolveEntity {
>     get {
>       return false;
>     }
>   }
> }
> 
> 
> On Mon, 05 Mar 2007 14:00:00 +0900, "Atsushi Eno" <atsushi at ximian.com>
> said:
>> Hi,
>>
>> If you skip the DTD, any entity references (except for &lt;, &gt;, 
>> &apos; and &quot;) are rejected during XmlDocument.Load().
>>
>> If you don't care such buggy document, you can try
>>
>> 	while (!reader.EOF)
>> 		doc.AppendChild (doc.ReadNode (reader));
>>
>> which does not reject unresolved entity references (funny, but
>> this is what .net System.Xml.dll does).
>>
>> Atsushi Eno
>>
>> colin at breame.net wrote:
>>> I'm trying to turn off entity resolution using XmlDocument as I don't
>>> have a DTD and I'm getting "System.Xml.XmlException: Cannot resolve
>>> entity without DTD".  I can't see an explicit "ResolveEntity" property I
>>> could set to off.  Any ideas?  Is there a mono specific way of doing
>>> this?
>>>
>>> Thanks
>>> Colin.
>>> _______________________________________________
>>> Mono-list maillist  -  Mono-list at lists.ximian.com
>>> http://lists.ximian.com/mailman/listinfo/mono-list
>>>
>> _______________________________________________
>> Mono-list maillist  -  Mono-list at lists.ximian.com
>> http://lists.ximian.com/mailman/listinfo/mono-list
> 



More information about the Mono-list mailing list