[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 <, >,
>> ' and ") 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