private XPathDocument CreateAndCacheDocument(XmlReader r, bool supportSchemaDeterminedIDs) { string uri = r.BaseURI; XmlValidatingReader vr = null; if (supportSchemaDeterminedIDs) { vr = new IdAssuredValidatingReader(r); vr.ValidationType = ValidationType.Auto; } else { vr = new XmlValidatingReader(r); vr.ValidationType = ValidationType.None; } vr.EntityHandling = EntityHandling.ExpandEntities; vr.ValidationEventHandler += new System.Xml.Schema.ValidationEventHandler(ValidationCallback); XPathDocument doc = new XPathDocument(vr, XmlSpace.Preserve); vr.Close(); lock (_cache) { if (!_cache.ContainsKey(uri)) { _cache.Add(uri, new WeakReference(doc)); } } return(doc); }
private XPathDocument CreateAndCacheDocument(XmlReader r, bool supportSchemaDeterminedIDs) { string uri = r.BaseURI; XmlValidatingReader vr = null; if (supportSchemaDeterminedIDs) { vr = new IdAssuredValidatingReader(r); vr.ValidationType = ValidationType.Auto; } else { vr = new XmlValidatingReader(r); vr.ValidationType = ValidationType.None; } vr.EntityHandling = EntityHandling.ExpandEntities; vr.ValidationEventHandler += new System.Xml.Schema.ValidationEventHandler(ValidationCallback); XPathDocument doc = new XPathDocument(vr, XmlSpace.Preserve); vr.Close(); lock(_cache) { if (!_cache.ContainsKey(uri)) _cache.Add(uri, new WeakReference(doc)); } return doc; }