From: Oleg T. <he...@us...> - 2005-10-28 21:51:57
|
Update of /cvsroot/mvp-xml/XPointer/v2/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10326/v2/src Modified Files: XPointer.csproj XPointerReader.cs Log Message: Index: XPointer.csproj =================================================================== RCS file: /cvsroot/mvp-xml/XPointer/v2/src/XPointer.csproj,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- XPointer.csproj 28 Oct 2005 20:16:46 -0000 1.4 +++ XPointer.csproj 28 Oct 2005 21:51:34 -0000 1.5 @@ -138,9 +138,7 @@ <Compile Include="ShorthandPointer.cs"> <SubType>Code</SubType> </Compile> - <Compile Include="SR.cs"> - <SubType>Code</SubType> - </Compile> + <Compile Include="SR.cs" /> <Compile Include="XmlnsSchemaPointerPart.cs"> <SubType>Code</SubType> </Compile> @@ -169,6 +167,7 @@ <EmbeddedResource Include="..\..\..\Common\v2\src\SR.resx"> <Link>Common\SR.resx</Link> <DependentUpon>SR.cs</DependentUpon> + <SubType>Designer</SubType> </EmbeddedResource> <EmbeddedResource Include="SR.resx"> <DependentUpon>SR.cs</DependentUpon> Index: XPointerReader.cs =================================================================== RCS file: /cvsroot/mvp-xml/XPointer/v2/src/XPointerReader.cs,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- XPointerReader.cs 26 Oct 2005 15:46:35 -0000 1.3 +++ XPointerReader.cs 28 Oct 2005 21:51:34 -0000 1.4 @@ -45,24 +45,11 @@ _reader = _pointedNodes.Current.ReadSubtree(); } - private XPathDocument CreateAndCacheDocument(XmlReader r, bool supportSchemaDeterminedIDs) + private XPathDocument CreateAndCacheDocument(XmlReader r) { - 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(); + string uri = r.BaseURI; + XPathDocument doc = new XPathDocument(r, XmlSpace.Preserve); + r.Close(); lock (_cache) { @@ -70,13 +57,7 @@ _cache.Add(uri, new WeakReference(doc)); } return doc; - } - - //Dummy validation even handler - private static void ValidationCallback(object sender, ValidationEventArgs args) - { - //do nothing - } + } #endregion @@ -102,79 +83,49 @@ /// Creates <c>XPointerReader</c> instance with given uri and xpointer. /// </summary> public XPointerReader(string uri, string xpointer) - : this(new XmlTextReader(uri), xpointer, false) { } + : this(new XmlTextReader(uri), xpointer) { } /// <summary> /// Creates <c>XPointerReader</c> instance with given uri, nametable and xpointer. /// </summary> public XPointerReader(string uri, XmlNameTable nt, string xpointer) - : this(new XmlTextReader(uri, nt), xpointer, false) { } - - /// <summary> - /// Creates <c>XPointerReader</c> instance with given uri, nametable and xpointer. - /// Additionally sets a flag whether to support schema-determined IDs. - /// </summary> - public XPointerReader(string uri, XmlNameTable nt, string xpointer, bool supportSchemaDeterminedIDs) - : this(new XmlTextReader(uri, nt), xpointer, supportSchemaDeterminedIDs) { } + : this(new XmlTextReader(uri, nt), xpointer) { } /// <summary> /// Creates <c>XPointerReader</c> instance with given uri, stream, nametable and xpointer. /// </summary> public XPointerReader(string uri, Stream stream, XmlNameTable nt, string xpointer) - : this(uri, stream, nt, xpointer, false) { } - - /// <summary> - /// Creates <c>XPointerReader</c> instance with given uri, stream, nametable and xpointer. - /// Additionally sets a flag whether to support schema-determined IDs. - /// </summary> - public XPointerReader(string uri, Stream stream, XmlNameTable nt, string xpointer, - bool supportSchemaDeterminedIDs) - : this(new XmlTextReader(uri, stream, nt), xpointer, supportSchemaDeterminedIDs) { } + : this(new XmlTextReader(uri, stream, nt), xpointer) { } /// <summary> /// Creates <c>XPointerReader</c> instance with given uri, stream and xpointer. /// </summary> public XPointerReader(string uri, Stream stream, string xpointer) - : this(uri, stream, new NameTable(), xpointer) { } - - /// <summary> - /// Creates <c>XPointerReader</c> instance with given uri, stream and xpointer. - /// Additionally sets a flag whether to support schema-determined IDs. - /// </summary> - public XPointerReader(string uri, Stream stream, string xpointer, - bool supportSchemaDeterminedIDs) - : this(uri, stream, new NameTable(), xpointer, supportSchemaDeterminedIDs) { } + : this(uri, stream, new NameTable(), xpointer) { } /// <summary> /// Creates <c>XPointerReader</c> instance with given XmlReader and xpointer. /// Additionally sets a flag whether to support schema-determined IDs. /// </summary> public XPointerReader(XmlReader reader, string xpointer) - : this(reader, xpointer, false) { } - - /// <summary> - /// Creates <c>XPointerReader</c> instance with given XmlReader and xpointer. - /// Additionally sets a flag whether to support schema-determined IDs. - /// </summary> - public XPointerReader(XmlReader reader, string xpointer, bool supportSchemaDeterminedIDs) { - XPathDocument doc = null; - if (_cache == null) - _cache = new Dictionary<string, WeakReference>(); - WeakReference wr = _cache[reader.BaseURI]; - if (wr != null && wr.IsAlive) - { - doc = (XPathDocument)wr.Target; - reader.Close(); - } - else - { - //Not cached or GCollected - doc = CreateAndCacheDocument(reader, supportSchemaDeterminedIDs); - } - Init(doc.CreateNavigator(), xpointer); + XPathDocument doc = null; + if (_cache == null) + _cache = new Dictionary<string, WeakReference>(); + WeakReference wr; + if (_cache.TryGetValue(reader.BaseURI, out wr) && wr.IsAlive) + { + doc = (XPathDocument)wr.Target; + reader.Close(); + } + else + { + //Not cached or GCollected + doc = CreateAndCacheDocument(reader); + } + Init(doc.CreateNavigator(), xpointer); } - + /// <summary> /// Creates <c>XPointerReader</c> instance with given /// document's URI and content. @@ -183,34 +134,24 @@ /// <param name="content">XML document's content</param> /// <param name="xpointer">XPointer pointer</param> public XPointerReader(string uri, string content, string xpointer) - : this(uri, content, xpointer, false) { } - - /// <summary> - /// Creates <c>XPointerReader</c> instance with given - /// document's URI and content. - /// </summary> - /// <param name="uri">XML document's base URI</param> - /// <param name="content">XML document's content</param> - /// <param name="xpointer">XPointer pointer</param> - /// <param name="supportSchemaDeterminedIDs">A flag whether to - /// support schema-determined IDs</param> - public XPointerReader(string uri, string content, string xpointer, bool supportSchemaDeterminedIDs) { - XPathDocument doc = null; - if (_cache == null) - _cache = new Dictionary<string, WeakReference>(); - WeakReference wr = _cache[uri]; - if (wr != null && wr.IsAlive) - doc = (XPathDocument)wr.Target; - else - { - //Not cached or GCollected - XmlTextReader r = new XmlTextReader(uri, new StringReader(content)); - doc = CreateAndCacheDocument(r, supportSchemaDeterminedIDs); - } - Init(doc.CreateNavigator(), xpointer); + XPathDocument doc = null; + if (_cache == null) + _cache = new Dictionary<string, WeakReference>(); + WeakReference wr; + if (_cache.TryGetValue(uri, out wr) && wr.IsAlive) + { + doc = (XPathDocument)wr.Target; + } + else + { + //Not cached or GCollected + XmlReader r = XmlReader.Create(new StringReader(content), null, uri); + doc = CreateAndCacheDocument(r); + } + Init(doc.CreateNavigator(), xpointer); } - + #endregion #region XmlReader overrides |