From: Oleg T. <he...@us...> - 2004-10-31 09:07:27
|
Update of /cvsroot/mvp-xml/XPointer/v1/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15144/v1/src Modified Files: Pointer.cs SchemaBasedPointer.cs ShorthandPointer.cs XPointerReader.cs Log Message: Fixing bugs. Index: Pointer.cs =================================================================== RCS file: /cvsroot/mvp-xml/XPointer/v1/src/Pointer.cs,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- Pointer.cs 9 Oct 2004 19:52:18 -0000 1.2 +++ Pointer.cs 31 Oct 2004 08:07:15 -0000 1.3 @@ -30,10 +30,10 @@ /// Evaluates <see cref="XPointer"/> pointer and returns /// iterator over pointed nodes. /// </summary> - /// <param name="doc">Document to evaluate the + /// <param name="nav">Navigator to evaluate the /// <see cref="XPointer"/> on.</param> /// <returns><see cref="XPathNodeIterator"/> over pointed nodes. Note - this iterator is moved to the first node already.</returns> - public abstract XPathNodeIterator Evaluate(IXPathNavigable doc); + public abstract XPathNodeIterator Evaluate(XPathNavigator nav); #endregion } Index: ShorthandPointer.cs =================================================================== RCS file: /cvsroot/mvp-xml/XPointer/v1/src/ShorthandPointer.cs,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- ShorthandPointer.cs 28 Oct 2004 12:55:01 -0000 1.4 +++ ShorthandPointer.cs 31 Oct 2004 08:07:15 -0000 1.5 @@ -50,12 +50,11 @@ /// iterator over pointed nodes. /// </summary> /// <remarks>Note, that returned XPathNodeIterator is already moved once.</remarks> - /// <param name="doc">Document to evaluate the + /// <param name="nav">XPathNavigator to evaluate the /// <see cref="XPointer"/> on.</param> /// <returns><see cref="XPathNodeIterator"/> over pointed nodes</returns> - public override XPathNodeIterator Evaluate(IXPathNavigable doc) - { - XPathNavigator nav = doc.CreateNavigator(); + public override XPathNodeIterator Evaluate(XPathNavigator nav) + { XPathNodeIterator result = XPathCache.Select("id('"+ _NCName + "')", nav, (XmlNamespaceManager)null); if (result != null && result.MoveNext()) { Index: SchemaBasedPointer.cs =================================================================== RCS file: /cvsroot/mvp-xml/XPointer/v1/src/SchemaBasedPointer.cs,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- SchemaBasedPointer.cs 28 Oct 2004 12:55:01 -0000 1.4 +++ SchemaBasedPointer.cs 31 Oct 2004 08:07:15 -0000 1.5 @@ -56,13 +56,12 @@ /// Evaluates <see cref="XPointer"/> pointer and returns /// iterator over pointed nodes. /// </summary> - /// <param name="doc">Document to evaluate the + /// <param name="nav">XPathNavigator to evaluate the /// <see cref="XPointer"/> on.</param> /// <returns><see cref="XPathNodeIterator"/> over pointed nodes</returns> - public override XPathNodeIterator Evaluate(IXPathNavigable doc) + public override XPathNodeIterator Evaluate(XPathNavigator nav) { - XPathNodeIterator result; - XPathNavigator nav = doc.CreateNavigator(); + XPathNodeIterator result; XmlNamespaceManager nm = new XmlNamespaceManager(nav.NameTable); for (int i=0; i<_parts.Count; i++) { Index: XPointerReader.cs =================================================================== RCS file: /cvsroot/mvp-xml/XPointer/v1/src/XPointerReader.cs,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- XPointerReader.cs 28 Oct 2004 18:21:23 -0000 1.6 +++ XPointerReader.cs 31 Oct 2004 08:07:15 -0000 1.7 @@ -29,10 +29,10 @@ /// <summary> /// Initializes the <c>XPointerReader</c>. /// </summary> - private void Init(IXPathNavigable doc, string xpointer) + private void Init(XPathNavigator nav, string xpointer) { Pointer pointer = XPointerParser.ParseXPointer(xpointer); - _pointedNodes = pointer.Evaluate(doc); + _pointedNodes = pointer.Evaluate(nav); //There is always at least one identified node //XPathNodeIterator is already at the first node _reader = new XPathNavigatorReader(_pointedNodes.Current); @@ -49,12 +49,19 @@ #region constructors /// <summary> - /// Creates <c>XPointerReader</c> instnace with given <see cref="IXpathNavigable"/> + /// Creates <c>XPointerReader</c> instnace with given <see cref="IXPathNavigable"/> /// and xpointer. /// </summary> public XPointerReader(IXPathNavigable doc, string xpointer) + : this (doc.CreateNavigator(), xpointer) {} + + /// <summary> + /// Creates <c>XPointerReader</c> instnace with given <see cref="XPathNavigator"/> + /// and xpointer. + /// </summary> + public XPointerReader(XPathNavigator nav, string xpointer) { - Init(doc, xpointer); + Init(nav, xpointer); } /// <summary> @@ -113,7 +120,7 @@ vr.ValidationEventHandler += new System.Xml.Schema.ValidationEventHandler(ValidationCallback); XPathDocument doc = new XPathDocument(vr, XmlSpace.Preserve); vr.Close(); - Init(doc, xpointer); + Init(doc.CreateNavigator(), xpointer); } #endregion |