コード例 #1
0
ファイル: XPointerReader.cs プロジェクト: zanyants/mvp.xml
        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);
        }
コード例 #2
0
ファイル: XPointerReader.cs プロジェクト: zanyants/mvp.xml
 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;
 }