[Mono-list] Xml Entity Resolution
colin at breame.net
colin at breame.net
Mon Mar 5 10:26:51 EST 2007
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