[Mono-list] Xml Entity Resolution
colin at breame.net
colin at breame.net
Tue Mar 6 07:46:06 EST 2007
Tried that (see below) but it still gets "System.Xml.XmlException:
Reference to undeclared entity" exceptions.
Thanks again,
C.
XmlDocument doc = new XmlDocument();
XmlTextReader reader = new XmlTextReader(new
StringReader(xml_text_with_entities));
reader.XmlResolver = null;
doc.Load(reader);
On Tue, 06 Mar 2007 06:07:02 +0900, "Atsushi Eno" <atsushi at ximian.com>
said:
> 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