2009-04-22 Sebastien Pouliot <sebastien@ximian.com>
[mono-project.git] / mcs / class / System.XML / System.Xml.XPath / ChangeLog
blob875e8aaf2cc4a3bcd68e6500368aa071e658df36
1 2009-04-15  Atsushi Enomoto <atsushi@ximian.com>
3         * Expression.cs : extensions could return null and it should be
4           regarded as empty node-set, not an error.
6 2009-03-17  Atsushi Enomoto <atsushi@ximian.com>
8         * Expression.cs : gave up another optimization for bug #443090.
10 2009-03-17  Atsushi Enomoto <atsushi@ximian.com>
12         * XPathExpression.cs : eliminate use of ExpressionCache and lose
13           significant performance in some use for the sake of multithreaded
14           use. Fixed bug #477049.
16 2009-01-20  Atsushi Enomoto <atsushi@ximian.com>
18         * Expression.cs : give up sortless iterator optimization.
19           Fixed bug #443490.
21 2008-12-09  Atsushi Enomoto <atsushi@ximian.com>
23         * Iterator.cs : DescendantIterator.Clone() was not cloning current
24           node in new code. Fixed bug #456103.
26 2008-10-08  Atsushi Enomoto <atsushi@ximian.com>
28         * Expression.cs : fix WeakReference usage for such case that it
29           might GC-ed between .IsAlive check and .Target retrieval.
31 2008-10-06  Atsushi Enomoto <atsushi@ximian.com>
33         * XPathExpression.cs, Expression.cs : Cache compiled xpath
34           expressions so that they don't have to be parsed repeatedly.
36 2008-10-06  Atsushi Enomoto <atsushi@ximian.com>
38         * Expression.cs : unindend cases that do not match our coding style.
40 2008-10-06  Atsushi Enomoto <atsushi@ximian.com>
42         * Expression.cs : fixed peer & subtree requirement and reduced extra
43           dependency on RequireSorting property.
45 2008-10-06  Atsushi Enomoto <atsushi@ximian.com>
47         * Expression.cs, Iterator.cs : simplify SlashIterator by introducing
48           SortedIterator.
50 2008-10-06  Atsushi Enomoto <atsushi@ximian.com>
52         * Expression.cs, Iterator.cs : ChildIterator is not a SimpleIterator
53           now. And reduced extra clone when the context node has no child.
55 2008-10-03  Atsushi Enomoto <atsushi@ximian.com>
57         * Iterator.cs : now we do not seem to need clone in
58           SimpleIterator.Current.
60 2008-10-03  Atsushi Enomoto <atsushi@ximian.com>
62         * XPathNavigator.cs : enable EnumerableIterator with some fixes.
63         * Iterator.cs : reduce extra steps for empty simple iterator.
65 2008-10-02  Atsushi Enomoto <atsushi@ximian.com>
67         * Iterator.cs, DefaultContext.cs, XPathNavigator.cs, Expression.cs:
68           couple of refactoring: reduced presumption on BaseIterator (it is
69           premised in not a few places, but it might change; see
70           EnumerableIterator in XPathNavigator.cs).
71           Now BaseIterator.Current is always null (to clean up ambiguous
72           implementation state). Current property is now always moved to
73           the current node in the iterator when returned.
75 2008-09-19  Atsushi Enomoto <atsushi@ximian.com>
77         * DefaultContext.cs, Expression.cs: do not premise BaseIterator.
79 2008-09-19  Atsushi Enomoto <atsushi@ximian.com>
81         * XPathComparer.cs : no need to limit to BaseIterator.
83 2008-09-19  Atsushi Enomoto <atsushi@ximian.com>
85         * XPathNavigator.cs : oops, wrong #if ranges.
87 2008-09-19  Atsushi Enomoto <atsushi@ximian.com>
89         * XPathNavigator.cs : made some 2.0-only methods available in 1.x
90           so that we don't have to hesitate to optimize xpath using them.
92 2008-06-03  Atsushi Enomoto <atsushi@ximian.com>
94         * Expression.cs : help diagnose variable resolution failure.
96 2008-04-02  Atsushi Enomoto <atsushi@ximian.com>
98         * XPathNavigator.cs : fixed InnerXml to not give up with root node.
99           Indent InnerXml. Fixed bug #376191.
101 2008-02-27  Atsushi Enomoto <atsushi@ximian.com>
103         * XPathNavigator.cs : in some MoveTo*() methods, it should allow any
104           destination node when "type" is XPathNodeType.All. Based on the
105           patch by Sanghyeon Seo, fixed bug #365112.
107 2008-02-12  Atsushi Enomoto <atsushi@ximian.com>
109         * DefaultContext.cs : now number formatting for "R" works fine, so
110           just use it (and remove conditional compilation for TARGET_JVM).
112 2008-01-10  Konstantin Triger <kostat@mainsoft.com>
114         * Iterator.cs: prevent endless recursion in AncestorIterator
115                 while collecting results.
117 2008-01-12  Sebastien Pouliot  <sebastien@ximian.com>
119         * DefaultContext.cs: Fix direct comparison with NaN. Found by 
120         Gendarme.
122 2007-12-17  Atsushi Enomoto <atsushi@ximian.com>
124         * Iterator.cs : oops, extra removal that causes perf. loss.
126 2007-12-17  Atsushi Enomoto <atsushi@ximian.com>
128         * Iterator.cs : be more strict to detect the end of
129           PredicateIterator. Fixed bug #349111.
131 2007-12-17  Atsushi Enomoto <atsushi@ximian.com>
133         * Expression.cs : In any comparison expr, treat RTF as equivalent to
134           string type (as specified in XSLT 1.0 section 11.1: "An operation
135           is permitted on a result tree fragment only if that operation would
136           be permitted on a string." ...). Fixed bug #349035.
138 2007-11-29  Atsushi Enomoto <atsushi@ximian.com>
140         * XPathNavigator.cs : implemented ValueAs().
142 2007-01-30  Atsushi Enomoto <atsushi@ximian.com>
144         * Expression.cs : typo. Close #80669
146 2007-01-05  Atsushi Enomoto <atsushi@ximian.com>
148         * Expression.cs : text() should match whitespace and significant
149           whitespace nodes.
151 2006-11-10  Atsushi Enomoto <atsushi@ximian.com>
153         * XPathNavigator.cs :
154           - ReadSubtree() should reject everything but Element or Root.
155           - InnerXml and OuterXml should not use ReadSubtree() when it is
156             not positioned on an Element or the Root. Thus, implement them
157             in their own ways. Fixed bug #79875.
159 2006-11-10  Atsushi Enomoto <atsushi@ximian.com>
161         * XPathNavigator.cs : InnerXml should allow Text-only content. Fixed
162           bug #79874, when tied to XPathNavigatorReader fix.
164 2006-04-10  Atsushi Enomoto <atsushi@ximian.com>
166         * XPathNavigator.cs : get_OuterXml() returns indented output, without
167           XML declaration.
169 2006-03-15  Atsushi Enomoto <atsushi@ximian.com>
171         * Expression.cs : extracted XPathSortElement, XPathSorters
172           and XPathSorter from CompiledExpression, and split
173           XPathSorters.Sort() into some methods. Those changes are to make
174           them reusable in XslSortEvaluator.
176 2006-02-26  Atsushi Enomoto <atsushi@ximian.com>
178         * Iterator.cs : seems like MS XPathNodeIterator.MoveNext() itself does
179           not handle XsltContext.PreserveWhitespace() unlike ours. It results
180           in not a small performance improvement. (just removed it since it
181           didn't cause any errors in XSLT standalone tests.)
183 2006-02-21  Atsushi Enomoto <atsushi@ximian.com>
185         * Iterator.cs : removed extra field from AxisIterator.
187 2006-02-14  Atsushi Enomoto <atsushi@ximian.com>
189         * Iterator.cs : tiny message fix (thanks to alp).
191 2006-01-25  Atsushi Enomoto <atsushi@ximian.com>
193         * XPathNavigator.cs : fixed IsNode signature found by updated
194           corcompare.
196 2006-01-11  Atsushi Enomoto <atsushi@ximian.com>
198         * Iterator.cs : Nowadays removal of cloning of the argument list
199           in ListIterator is safe. Thanks to Joshua Tauberer for the hint.
201 2006-01-11  Atsushi Enomoto <atsushi@ximian.com>
203         * Iterator.cs : (DescendantOrSelfIterator/DescendantIterator) the
204           error message is for blaming custom XPathNavigator
205           implementation, not us ;-) (see also #77194)
207 2006-01-06  Atsushi Enomoto <atsushi@ximian.com>
209         * XPathNavigator.cs : use WriteNode(XPathNavigator, bool)
210           rather than WriteNode(XmlWriter, bool) in WriteSubtree().
212 2005-12-14  Atsushi Enomoto <atsushi@ximian.com>
214         * XPathNavigator.cs : Added MonoTODO to CreateAttributes(). Removed
215           MonoTODO from ReadSubtree().
217 2005-12-14  Atsushi Enomoto <atsushi@ximian.com>
219         * XPathNavigator.cs : UnderlyingObject returns null by default.
221 2005-12-13  Atsushi Enomoto <atsushi@ximian.com>
223         * XPathNavigator.cs : Reimplemented MoveToFollowing() to avoid
224           inefficient MoveToDescendant() and to match .NET 2.0 behavior.
226 2005-12-13  Atsushi Enomoto <atsushi@ximian.com>
228         * XPathNavigator.cs : ReplaceSelf() should allow document fragment.
229           Moved implementation to XPathEditableDocument.
231 2005-12-13  Atsushi Enomoto <atsushi@ximian.com>
233         * XPathNavigator.cs : PrependChild() should use AppendChild() when
234           there is no child.
236 2005-12-13  Atsushi Enomoto <atsushi@ximian.com>
238         * XPathNavigator.cs : InsertAfter() should raise an error before
239           MoveToNext() when current node is either attribute or namespace.
241 2005-12-13  Atsushi Enomoto <atsushi@ximian.com>
243         * XPathNavigator.cs : InsertAfter() should append children after it
244           once moved to parent. This method shoulr raise an error when it is
245           placed on Root.
247 2005-12-13  Atsushi Enomoto <atsushi@ximian.com>
249         * XPathNavigator.cs : (CreateFragmentReader) return XmlReader that
250           considers current namespace contexts.
252 2005-12-12  Atsushi Enomoto <atsushi@ximian.com>
254         * XPathNavigator.cs : removed some MonoTODOs.
256 2005-12-08  Atsushi Enomoto <atsushi@ximian.com>
258         * XPathDocument.cs : garbage cleanup.
260 2005-11-23  Vladimir Krasnov  <vladimirk@mainsoft.com>
262         * Iterator.cs: fixed UnionIterator.SetCurrent method, the
263         navigators may be from different xml files.
265 2005-11-23  Vladimir Krasnov  <vladimirk@mainsoft.com>
267         * Iterator.cs: fixed SimpleSlashIterator.MoveNextCore method, the
268         navigators may be from different xml files.
270 2005-11-10  Atsushi Enomoto <atsushi@ximian.com>
272         * XPathNavigator.cs, XPathNodeIterator.cs :
273           [DebuggerDisplay] are not worthy of existing.
275 2005-11-07  Atsushi Enomoto <atsushi@ximian.com>
277         * XPathNavigator.cs, XPathNodeIterator.cs : DebuggerDisplayAttribute
278           values are fixed. However, they totally do not make sense since
279           there is no DebuggerDisplayProxy type in our impl.
281 2005-11-07  Atsushi Enomoto <atsushi@ximian.com>
283         * XPathException.cs : Message property is back in 2.0 RTM.
285 2005-11-07  Atsushi Enomoto <atsushi@ximian.com>
287         * XPathNodeIterator.cs : added [DebuggerDisplay]. pretty useless tho.
288         * XPathNavigator.cs : [DebuggerDisplay] as well.
289           SelectSingleNode() and AppendChildElement() are now virtual.
291 2005-10-23  Atsushi Enomoto <atsushi@ximian.com>
293         * XPathNavigator.cs : now 2.0 MoveToFirst() invokes internal
294           MoveToFirstImpl() and it is from what XmlDocumentNavigator did.
295           This fixes XPathEditableDocument.MoveToFirst().
297 2004-10-15  Atsushi Enomoto  <atsushi@ximian.com>
299         * XPathNavigator.cs : (DeleteRange, ReplaceRange) so they are not
300           likely to be implemented, thus MonoTODO.
302 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
304         * XPathNavigator.cs: Removed DebuggerDisplay attribute.
305         * XPathNodeIterator.cs: Removed DebuggerDisplay attribute.
307 2005-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
309         * XPathNavigator.cs: [NET_2_0] Added DebuggerDisplay attribute,
310         added ReplaceRange and DeleteRange methods.
311         * XPathNodeIterator.cs: [NET_2_0] Added DebuggerDisplay attribute.
313 2004-09-22  Atsushi Enomoto  <atsushi@ximian.com>
315         * Expression.cs : Now that managed collation is default, we don't need
316           reversive case-order anymore.
318 2004-09-21  Atsushi Enomoto  <atsushi@ximian.com>
320         * XPathNavigator.cs : added NavigatorComparer.
321         * XPathComparer.cs : XPathNavigatorComparer implements
322           IEqualityComparer under NET_2_0 profile.
324 2005-08-31  Sebastien Pouliot  <sebastien@ximian.com>
326         * XPathException.cs: Added a Demand for SerializationFormatter on
327         GetObjectData method.
329 2005-08-03  Gert Driesen  <drieseng@users.sourceforge.net>
331         * XPathNavigator.cs: GetNamespacesInScope returns generic IDictionary
332         in .NET 2.0 Beta 2.
334 2004-07-23  Atsushi Enomoto  <atsushi@ximian.com>
336         * Expression.cs : don't expect namespace resolver; namespace could be
337           supplied in QName without nsresolver need (i.e. SelectChildren()).
338           Fixed bug #75609.
340 2005-06-09  Andrew Skiba  <andrews@mainsoft.com>
342         * XmlDefaultContext.cs : add TARGET_JVM for roundtrip bug
344 2004-06-07  Atsushi Enomoto  <atsushi@ximian.com>
346         * Expression.cs : set TARGET_JVM where collation matters.
348 2004-05-05  Atsushi Enomoto  <atsushi@ximian.com>
350         * XPathAtomicValue.cs :
351           it is now XmlAtomicValue and in sys.xml.schema.
352         * XPathNavigator.cs, Expression.cs :
353           removed atomizedName related 2.0 members (deprecated).
355 2004-05-05  Atsushi Enomoto  <atsushi@ximian.com>
357         * XPathExpression.cs : added static Compile().
358         * XPathNavigator.cs :
359           Use XPathExpression.Compile() for now. 
360           Updated tree modification API to 2.0 beta2.
361         * XPathItem.cs, XPathNavigator.cs, XPathAtomicValue.cs :
362           updated to 2.0 beta2 API.
363         * XPathResultType.cs : removed [Serializable].
364         * XmlNodeChangeType.cs : removed obsolete file.
366 2004-03-25  Atsushi Enomoto  <atsushi@ximian.com>
368         * XPathNavigator.cs : 2.0 build fix
370 2004-03-25  Atsushi Enomoto  <atsushi@ximian.com>
372         * Expression.cs : In ExprSLASH2, replace A//B with A/descendant::B if
373           B is child axis test (thus peer&subtree optimization became possible)
374           Fixed warning (incorrect variable let).
376 2004-03-25  Atsushi Enomoto  <atsushi@ximian.com>
378         * XPathNavigator.cs : reduced some Clone().
379           Simplified ComparePosition().
380         * Iterator.cs : some iterators are not actually reverse axis.
382 2004-03-22  Atsushi Enomoto  <atsushi@ximian.com>
384         * Expression.cs : EvaluateBoolean() for RTF should check return true
385           for empty elements. Fixed static analysis for RTF.
387 2004-03-22  Atsushi Enomoto  <atsushi@ximian.com>
389         * Parser.jay, Tokenizer.cs : Now they are used as common code base for
390           XPath parser and XSLT pattern parser. Makefile now creates two
391           set of sources of them. (This change takes effect on the next change).
393 2004-03-16  Atsushi Enomoto  <atsushi@ximian.com>
395         * Parser.jay : rewrote step part to be reusable for upcoming XSLT
396           pattern parser.
398 2004-03-16  Atsushi Enomoto  <atsushi@ximian.com>
400         * Iterator.cs : reduced extra clone.
402 2004-03-15  Atsushi Enomoto  <atsushi@ximian.com>
404         * DefaultContext.cs,
405           Expression.cs,
406           Iterator.cs : Now RequireSorting is not required in BaseIterator
407           (it is now fully in Expression).
408           Removed the last ListIterator .ctor() argument.
410 2004-03-15  Atsushi Enomoto  <atsushi@ximian.com>
412         * XPathNavigator.cs : In ComparePosition(), make use of IsDescendant().
414 2004-03-14  Atsushi Enomoto  <atsushi@ximian.com>
416         * Expression.cs,
417           DefaultContext.cs : Basic constant folding optimization (not so
418           effective right now). Unified number-to-string conversion code into
419           XPathFunctions.ToString(double) to avoid roundtrip format right now.
420         * Iterator.cs : removed unused code.
422 2004-03-11  Atsushi Enomoto  <atsushi@ximian.com>
424         * Iterator.cs : more clone reduction.
426 2004-03-11  Atsushi Enomoto  <atsushi@ximian.com>
428         * Expression.cs, DefaultContext.cs : more Peer overrides.
430 2004-03-11  Atsushi Enomoto  <atsushi@ximian.com>
432         * Expression.cs,
433           DefaultContext.cs : Removed unused NeedAbsoluteMatching.
434           Added Peer and Subtree (for "peer & subtree optimization. See:
435           http://idealliance.org/papers/dx_xmle04/papers/02-03-02/02-03-02.html
436           Fixed some ToString() that caused NullReferenceException.
438         * Iterator.cs : Predicate does not affect on RequireSorting.
439           Added SimpleSlashIterator for peer & subtree optimization.
441           Added PreserveWhitespace() consideration in BaseIterator.MoveNext().
443 2004-03-09  Atsushi Enomoto  <atsushi@ximian.com>
445         * Expression.cs,
446           Iterator.cs, :
447           SlashIterator is now constructed with requireSorting parameter 
448           that thus just use RequireSorting from both left/right Expressions, 
449           not iterators.
450           When attribute axis is on the left expression, the result needs to
451           be sorted.
453 2004-03-09  Atsushi Enomoto  <atsushi@ximian.com>
455         * Iterator.cs : Now for most of iterator types, Current property always
456           returns the same instance. It results in huge memory reduction.
458 2004-03-04  Atsushi Enomoto  <atsushi@ximian.com>
460         * Iterator.cs : (SlashIterator.MoveNext()) For SortedList.Add(), the
461           key should be iterator itself. Key by list count never makes sense.
463 2004-03-04  Atsushi Enomoto  <atsushi@ximian.com>
465         * Expression.cs : Significant whitespace nodes must be returned in
466           text() NodeTypeTest.
468 2004-02-23  Atsushi Enomoto  <atsushi@ximian.com>
470         * Expression.cs : xsl:sort case-order was not handled properly.
472 2004-02-23  Atsushi Enomoto  <atsushi@ximian.com>
474         * Iterator.cs :
475           In FollowingIterator, attribute and namespace nodes should be 
476           considered to have following nodes. See XPath 1.0 section 5 (esp.
477           the description on "document order").
478           On fixing @*/following::*, attribute nodes are regarded as to be
479           RequireSorting = true (which might result in duplicate).
481 2004-02-18  Atsushi Enomoto  <atsushi@ximian.com>
483         * Expression.cs : string() function expects "Infinity" and "-Infinity"
484           instead of "INF" for conversion from number. XmlConvert is for XSD,
485           not for XSLT.
487 2004-02-09  Atsushi Enomoto  <atsushi@ximian.com>
489         * Expression.cs : RelationalExpr was comparing number and node in
490           reverse order. Patch by Kazuki Oikawa. Fixed bug #72343.
491           RelationalExpr should also handle result tree fragment as node-set
492           as well as EqualityExpr. This fixes RTF case wrt #72343.
494 2004-02-08  Atsushi Enomoto  <atsushi@ximian.com>
496         * Expression.cs : tiny code format fix by Andrew Skiba.
498 2004-12-26  Atsushi Enomoto  <atsushi@ximian.com>
500         * XPathNavigator.cs : Added CheckValidity() and ValueType.
501           For SetTypedValue(), throw NotSupportedException instead of
502           NotImplementedException.
504 2004-12-16  Atsushi Enomoto  <atsushi@ximian.com>
506         * XPathNavigator.cs :added MoveToFollowing(), ReplaceSelf() and
507           all the missing attributes.
509 2004-12-04  Atsushi Enomoto  <atsushi@ximian.com>
511         * XPathDocument.cs : switch to DTMXPathNavigator2 which fully
512           eliminated string fields from struct.
513           (When we switch from struct to class, revert this change to use
514           DTMXPathNavigator, since class-based DTMXPathNavigator2 is rather
515           wasting processing speed.)
517 2004-12-02  Atsushi Enomoto  <atsushi@ximian.com>
519         * Iterator.cs : when PredicateIterator has a numeric predicate, it
520           will never be true twice. So just break up the iteration on true.
521         * XPathNavigator.cs : implemented LookupPrefix().
522         * Expression.cs : ExprParens.Optimize() could just return the content
523           expression.
525 2004-12-01  Atsushi Enomoto  <atsushi@ximian.com>
527         * IXPathChangeNavigable.cs,
528           XmlChangeFilters.cs,
529           XPathDocumentNodeChangedAction.cs : removed old files.
531 2004-12-01  Atsushi Enomoto  <atsushi@ximian.com>
533         * Iterator.cs : with related to the previous patch, many comments
534           got making no sense. Thanks to Harinath.
536 2004-12-01  Atsushi Enomoto  <atsushi@ximian.com>
538         * Iterator.cs : actually I mean this patch.
540 2004-12-01  Atsushi Enomoto  <atsushi@ximian.com>
542         * Iterator.cs : Create _current clone only when required. So just set
543           null when MoveNextCore() succeeded (except for some cases that
544           _current is _nav, such as SelfIterator).
546 2004-11-30  Atsushi Enomoto  <atsushi@ximian.com>
548         * Iterator.cs : SlashIterator.RequireSorting is always false. Whether
549           it has to collect nodes in prior or not and whether it might return
550           nodes in inconsistent order is different matter.
551           (It still needs to store nodes when either of branches requires
552           sorting, because they might return the same node later.)
554 2004-11-30  Atsushi Enomoto  <atsushi@ximian.com>
556         * Iterator.cs : reduced some extraneous ComparePosition() that could
557           be written as IsSamePosition(). ParentIterator doesn't have to be
558           RequireSorting.
560 2004-11-30  Atsushi Enomoto  <atsushi@ximian.com>
562         * Iterator.cs : reimplemented AncestorIterator and 
563           AncestorOrSelfIterator just to collect parents and not to move to
564           siblings. In some cases like thousands of siblings, it used to be
565           so slow, while we usually don't have so deep ancestors.
567 2004-11-26  Atsushi Enomoto  <atsushi@ximian.com>
569         * Expression.cs : warning removal. Added Optimize() which is not
570           implemented at all.
571         * Tokenizer.cs : warning elimination
573 2004-11-24  Atsushi Enomoto  <atsushi@ximian.com>
575         * XPathEditableNavigator.cs, XPathChangeNavigator.cs,
576           IXPathEditable.cs : more removal of oldies.
578 2004-11-24  Atsushi Enomoto  <atsushi@ximian.com>
580         * NodeChangedEventArgs.cs, NodeChangedEventHandler.cs : removed oldies.
582 2004-11-08  Atsushi Enomoto  <atsushi@ximian.com>
584         * Tokenizer.cs : just use raw string instead of char[].
585         * XPathNavigator.cs : reuse NameTable when creating XmlTextReader.
587 2004-11-07  Atsushi Enomoto  <atsushi@ximian.com>
589         * Iterator.cs :
590           - Made copy constructor certainly different from other constructors.
591           - Position is never computed in each derived type. All MoveNext() are
592             now MoveNextCore().
593           - Most of the protected members could just be private.
595 2004-11-05  Atsushi Enomoto  <atsushi@ximian.com>
597         * Expression.cs, XPathNavigator.cs : hold raw expression field for
598           get_Expression. It is preparation for expression optimization.
600 2004-11-05  Atsushi Enomoto  <atsushi@ximian.com>
602         * Iterator.cs : SimpleIterator._current could be cloned only when
603           it is required.
605 2004-11-05  Atsushi Enomoto  <atsushi@ximian.com>
607         * Iterator.cs : Some removal of Clone() were harmless.
609 2004-10-22  Atsushi Enomoto  <atsushi@ximian.com>
611         * XPathDocument.cs : now all the new stuff that used to be in 2.0 are
612           reverted.
613         * XPathEditableNavigator.cs : It will be removed. Right now modified
614           a bit to pass build.
615         * XPathNavigator.cs : Added members that are merged from
616           XPathEditableNavigator. Updated members name.
618 2004-10-14  Atsushi Enomoto  <atsushi@ximian.com>
620         * Iterator.cs :
621           - Added WrapperIterator to return BaseIterator in such case that 
622             variable reference is resolved to XPathNodeIterator. This fixes
623             bug #68267.
624           - Path ".." is reverse axis (actually no effect).
625           - Fixed DescendantIterator.Clone() that missed "_finished" field.
626         * Expression.cs :
627           In ExprVariable.Evaluate(), use WrapperIterator() for custom
628           XPathNodeIterator.
630 2004-10-09  Atsushi Enomoto  <atsushi@ximian.com>
632         * XPathAtomicValue.cs : Init(string, XmlSchemaType) is private.
634 2004-10-05  Atsushi Enomoto  <atsushi@ximian.com>
636         * XPathAtomicValue.cs : missing Init() definition for float and string;
637           latter one resulted in infinite loop in Init(object,XmlSchemaType).
639 2004-10-04  Atsushi Enomoto  <atsushi@ximian.com>
641         * XPathNavigator.cs : TypedValue could be implemented.
642         * XPathEditableNavigator.cs : removed some MonoTODO since now there 
643           are implementations.
645 2004-09-13  Atsushi Enomoto  <atsushi@ximian.com>
647         * XPathAtomicValue.cs : All .ctor() are separeted from Init().
648           In .ctor(object, XmlSchemaType):
649           - For lists that contains just one item, Init() recursively.
650           - For XPathAtomicValue, Init() recursively for its content fields.
651           For Value and TypedValue, consider typecode from XmlSchemaType.
653 2004-09-06  Atsushi Enomoto  <atsushi@ximian.com>
655         * XPathEditableNavigator.cs :
656           AppendChild(xmlReader) ignored nodes after than first one, and
657           resulted in infinite loop.
658           Added get_OuterXml overrides. set_OuterXml should not move to
659           parent before deleting current.
661 2004-08-25  Atsushi Enomoto  <atsushi@ximian.com>
663         * XPathAtomicValue.cs : Value was not returning expected value when
664           it is created as new XPathAtomicValue (object, XmlSchemaType).
665           Compute stringValue and reuse.
666         * XPathNavigator.cs : Temporarily stubbed as to ignore SchemaInfo
667           (for checking XQuery implementation).
669 2004-08-25  Atsushi Enomoto  <atsushi@ximian.com>
671         * XPathAtomicValue.cs : Handle .ctor() with object parameter more
672           precisely (still not enough, for list argument).
673           Removed commended blocks.
675 2004-08-24  Atsushi Enomoto  <atsushi@ximian.com>
677         * XPathAtomicValue.cs : DateTime should be convertible to string.
678           Use schemaType's TypeCode for .ctor() that takes object.
679         * XPathNavigator.cs : copied get_InnerXml from XPathEditableNavigator.
680         * XPathEditableNavigator.cs : set_InnerXml should be different (new)
681           property from get_InnerXml. Removed get_InnerXml and get_OuterXml 
682           overrides.
684 2004-08-23  Atsushi Enomoto  <atsushi@ximian.com>
686         * XPathAtomicValue.cs, XPathNavigator.cs : Eliminate MS.Internal.Xml.*.
688 2004-08-03  Atsushi Enomoto  <atsushi@ximian.com>
690         * XPathEditableNavigator.cs : implemented some editor support methods.
692 2004-08-02  Atsushi Enomoto  <atsushi@ximian.com>
694         * XPathDocument.cs :
695           - For .NET 2.0, added a switch to support new XPathDocument2. 
696             If switch is off, then it uses DTM.
697           - Implemented remaining 2.0 bits (except for Obsolete ones).
699         To use them in XPathDocument, set environment MONO_XPATH_DOCUMENT_2=yes
700         (It is still too unstable to pass all nunit tests and standalone XSLT
701         tests).
703 2004-07-29  Atsushi Enomoto  <atsushi@ximian.com>
705         * XPathNavigator.cs : Implemented ReadSubtree().
707 2004-07-28  Atsushi Enomoto  <atsushi@ximian.com>
709         * XPathDocument.cs : for .ctor() and .ctor(XmlNameTable), now it 
710           creates Mono.Xml.XPath.XPathEditableDocument and thus supports
711           IXPathEditable.CreateEditor().
713 2004-07-28  Atsushi Enomoto  <atsushi@ximian.com>
715         * XPathEditableNavigator.cs : Implemented InsertAfter() and 
716           PrependChild(); they are virtual, not abstract.
717         * XPathNavigator.cs :
718           Implemented many 2.0 virtual properties and methods that were 
719           abstract in 1.x.
720           Implemented some Select() methods that uses IXmlNamespaceResolver.
721           Implemented most of ValueAsXxx() using XQueryConvert.
722           IsNode is always true. Implemented OuterXml and WriteSubtree() (but
723           actually they don't work because it depends on ReadSubtree()).
725 2004-07-26  Atsushi Enomoto  <atsushi@ximian.com>
727         * XPathDocument.cs : added missing && not-likely-to-be-removed members.
728         * XPathEditableNavigator.cs : added BuildSubTree().
729         * XPathException.cs : added missing methods. Hide Message in NET_2_0.
731 2004-07-23  Atsushi Enomoto  <atsushi@ximian.com>
733         * XPathNodeIterator.cs : implemented 2.0 GetEnumerator().
735 2004-07-21  Atsushi Enomoto  <atsushi@ximian.com>
737         * XPathExpression.cs, Expression.cs :
738           Added SetContext(IXmlNamespaceResolver).
739         * NodeChangedEventArgs.cs : Added missing [MonoTODO].
740         * XPathAtomicValue.cs : Halfly implemented.
741         * XPathDocument.cs : Added 2.0 members.
742         * XPathDocumentNodeChangedAction.cs : updated member names.
743         * XPathEditableNavigator.cs : Added missing 2.0 members and MonoTODO.
744         * XPathNavigator.cs : Added missing 2.0 members.
745           Fixed some members as virtual->override.
747 2004-07-13  Atsushi Enomoto  <atsushi@ximian.com>
749         * XmlNodeChageType.cs, XmlChangeFilters.cs : fixed enum values.
750         * XPathResultType.cs : marked [MonoFIX] on .Navigator.
752 2004-07-11  Atsushi Enomoto  <atsushi@ximian.com>
754         * Expression.cs, Iterator.cs, XPathNavigator.cs :
755           Use IXmlNamespaceResolver for net 2.0. Removed unused code.
756         * XPathEditableNavigator.cs : fixed namespace.
757         * XPathNavigator.cs :
758           Fixed inheritance. Added missing MonoTODO.
759           Removed old .net 1.2 code. 
761 2004-06-18  Atsushi Enomoto  <atsushi@ximian.com>
763         * DefaultContext.cs : Globalization.
764         * Iterator.cs : In SlashIterator.MoveNext() position might keep 0
765           in case of empty list. Thus extraneous iteration might happened.
766           Removed unused (and clone unsafe) EnumeratorIterator.
768 2004-06-06  Atsushi Enomoto  <atsushi@ximian.com>
770         * XPathDocument.s : The previous patch is still incomplete to close.
772 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
774         * XPathDocument.cs : close self-opened XmlTextReader in .ctor().
776 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
778         * Expression.cs : LookupNamespace() only allows already-atomized names.
779         * XPathEditableNavigator.cs : removed incorrect set_OuterXml() and 
780           set_InnerXml().
782 2004-05-22  Atsushi Enomoto  <atsushi@ximian.com>
784         * DefaultContext.cs : Add XPathNavigator input support for ToBoolean()
785           and ToNavigator().
786         * Expression.cs : In Equality comparison, evaluate XPathNavigator in
787           the same as well as NodeSet. This fixes bug #59134.
789 2004-05-22  Atsushi Enomoto  <atsushi@ximian.com>
791         * XPathAtomicValue.cs : missed NET_2_0.
793 2004-05-22  Atsushi Enomoto  <atsushi@ximian.com>
795         * IXPathChangeNavigable.cs,
796           IXPathEditable.cs,
797           NodeChangedEventArgs.cs,
798           NodeChangedEventHandler.cs,
799           XPathAtomicValue.cs,
800           XPathChangeNavigator.cs,
801           XPathDocumentNodeChangedAction.cs,
802           XPathEditableNavigator.cs,
803           XPathItem.cs,
804           XmlChangeFilters.cs,
805           XmlNodeChangeType.cs : added NET_2_0 classes.
806         * XPathDocument.cs,
807           XPathNavigator.cs : updated NET_2_0 members.
809 2004-05-20  Atsushi Enomoto  <atsushi@ximian.com>
811         * Expression.cs : We should not catch all kind of exception. Just
812           throwing any kind of exception would be preferable.
813           Added support for XPathNavigator values.
815 2004-05-13  Atsushi Enomoto  <atsushi@ximian.com>
817         * DefaultContext.cs : Removed MonoTODO. done.
818         * Expression.cs : handle XPathResultType.Navigator in some places and
819           removed MonoTODO. Mark MonoTODO with explicit comments (though they
820           are mostly pointing out possibilities of optimization).
821           Removed extra check that depended on the old bugs.
822         * XPathResultType.cs : Fixed .Navigator that had the same value as
823           .String.
825 2004-05-12  Atsushi Enomoto  <atsushi@ximian.com>
827         * Parser.jay : made class internal.
829 2004-03-16  Atsushi Enomoto  <atsushi@ximian.com>
831         * XPathNavigator.cs, Iterator.cs : Considered detached nodes, the 
832           result of MoveToParent() should be checked.
834 2004-02-17  Atsushi Enomoto  <atsushi@ximian.com>
836         * XPathNavigator.cs : Only child and attribute axes are allowed for
837           Matches().
838         * Expression.cs : Added IsPositional property.
839         * DefaultContext.cs : Added some overrides.
841 2004-02-16  Atsushi Enomoto  <atsushi@ximian.com>
843         * XPathNavigator.cs : no, its still not ok. comment out now.
845 2004-02-16  Atsushi Enomoto  <atsushi@ximian.com>
847         * Expression.cs : Added EvaluatedNodeType and NeedAbsoluteMatching
848           to reduce extraneous Matches() trial.
849         * Iterator.cs : Removed unused MergedIterator.
850         * XPathNavigator.cs : Optimized Matches() not to evaluate ancestors
851           unnecessarily. (Test with NeedAbsoluteMatching).
853 2004-02-10  Atsushi Enomoto  <atsushi@ximian.com>
855         * Iterator.cs : Added overriden Count properties for some iterators
856           (this fixes the half of #50678).
857           Added ListIterator class (which can reduce GetEnumerator()). 
858           In some places we can omit clone for Current property, so added 
859           some check logic (It has no effect as yet).
860         * Expression.cs, DefaultContext.cs :
861           use ListIterator instead of EnumeratorIterator.
863 2004-02-08  Atsushi Enomoto  <atsushi@ximian.com>
865         * DefaultContext.cs, Expression.cs, Iterator.cs :
866           tiny foreach elimination.
868 2004-02-05  Atsushi Enomoto  <atsushi@ximian.com>
870         * DefaultContext.cs : trivial processing order fix.
872 2004-01-27  Atsushi Enomoto  <atsushi@ximian.com>
874         * DefaultContext.cs : Avoid exception if possible.
875         * Iterator.cs : Fixed PrecedingSiblingIterator.MoveNext(). When the
876           nav was positioned at the first, it incorrectly points itself.
877           Don't add names to name table while it is useless and expensive.
879 2004-01-08  Nick Drochak <ndrochak@ieee.org>
881         * Iterator.cs: Removed unused variable.
882         
883 2003-12-18 Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
885         * Parser.jay : now it supresses error output from jay.
886         * DefaultContext.cs : (XPathFunctionSubstring) exclude -Infinity.
887         * Tokenizer.cs : better error message.
888         * XPathDocument.cs : Use XmlValidatingReader to support id() function.
889           (just found MS.NET actually supports it)
891 2003-12-16 Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
893         * Iterator.cs : On its iteration, moving Current must not affect to
894           MoveNext(). To assure this, Current must be a clone of navigator.
895           Removed unused code.
897 2003-12-07 Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
899         * Tokenizer.cs : Removed some TODOs. (trivial ;-)
900         * Iterator.cs : ParensIterator can inherit from BaseIterator.
901           SlashIterator copy .ctor() always failed to clone. This fixes Count.
903 2003-12-03 Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
905         * Expression.cs : XPathSorters.Compare() should compare document
906           position. See last sentence of XSLT 1.0 secion 10.
908 2003-12-03 Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
910         * DefaultContext.cs : Overrode all functions' ToString().
911           XPathFunctions.ToNumber() trims whitespaces at both side.
912           Fixed NullReferenceException in normalize-space().
913         * Iterator.cs : Fixed AncestorOrSelfIterator.MoveNext() didn't handle
914           attribute or namespace node correctly.
915           SlashIterator.Clone() didn't clone "next node iterator" correctly.
916           EnumeratorIterator.ctor() should raise an error (not at Clone())
917           when the target IEnumerator is not ICloneable.
919 2003-11-28  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
921         * Expression.cs : namespace axis now traversed in reverse order, so it
922           requires sorting.
923         * Iterator.cs : UnionIterator.Clone() was incomplete. 
924           NamespaceItarator() should be reverse order (special handling
925           because of XPathNavigator specification).
927 2003-11-24  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
929         * Iterator.cs : PrecedingIterator.MoveNext() now breaks up at Root.
930         * XPathNavigator.cs : ComparePosition() didn't handle attributes 
931           correctly.
933 2003-11-24  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
935         * Parser.jay, Expression.cs, Iterator.cs :
936           Added ExprParens and ParensIterator classes which is used to handle
937           precedence of parenthesized expressions.
938           (e.g. consider "(preceding::*)[3]" and "preceding::[3]" )
940         * Expression.cs, Iterator.cs :
941           Added RequireSorting property for each Expr and BaseIterator classes.
942           SlashIterator.MoveNext() now considers correct sorting. But
943           considering performance, it separates two logics, sorted and sortless
944           depending on RequireSorting of left iterator and right expression.
946         * Iterator.cs :
947           SimpleIterator.ctor() should consider when nav is null.
948           FollowingIterator.MoveNext() and PrecedingIterator.MoveNext() should
949           not return any nodes.
950           AncestorIterator and AncestorOrSelfIterator copy ctr() should clone
951           positions.
952           AncestorIterator.MoveNext() should skip Root if context node is
953           Root itself.
954           FollowingIterator.MoveNext() should not handle children of context
955           itself.
956           PrecedingIterator.MoveNext() should skip its ancestors.
957           AxisIterator.ReverseAxis should be dependent on its containing iter.
958           UnionIterator.MoveNext() should consider comparison of nodes in 
959           different document. The behavior is implementation dependent.
960           (see XSLT spec 12.1)
962 2003-11-19  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
964         * Added XPathComparer.cs
965         * DefaultContext.cs : Fixed XPathFunctionId.Evaluate() to iterate base 
966           iterator correctly, and sort results.
968 2003-11-19  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
970         * DefaultContext.cs : Imcomplete fix ;-)
972 2003-11-19  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
974         * DefaultContext.cs : XPathFunctions.ToNumber() should catch overflow.
975           XPathFunctionId.cs : Exposed Id expression.
976         * Expression.cs : Added ExprLiteral.Value, and class ExprParens (it
977           will be used to solve evaluation precedence problem).
979 2003-11-09  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
981         * Iterator.cs : Fixed SlashIterator that might return nodes 1)in
982           inconsistent order, and 2)may return duplicate result nodes.
984 2003-11-06 Ben Maurer  <bmaurer@users.sourceforge.net>
986         * Iterator.cs: (AxisIterator.ComparablePosition): Remove. Let
987         it inherit from the base class. This made b[2] evaluated on 
988         <a /><b /><c /><a /><b /><c /> return the first b node because
989         in the ChildIterator it was the second node and seemed to satsify
990         the predicate.
992 2003-11-04  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
994         * Iterator.cs : Added bool ReverseAxis property to identify whether
995           the iterator is in reverse order or not.  Added ComparablePosition
996           for correct position comparison for PredicateIterator and reverse-
997           order-axes.  Modified AncestorIterator, AncestorOrSelfIterator,
998           PrecedingIterator and PrecedingSiblingIterator to make MoveNext()
999           return their nodes in document order. This fixes bugzilla #39079.
1001 2003-10-15  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
1003         * Iterator.cs : DescendantIterator and FollowingIterator also should
1004           not MoveNext() after they reached to the end.
1006 2003-10-13  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
1008         * Iterator.cs : Fixed UnionIterator who ignores document order.
1009           Fixed SlashIterator whose MoveNext() should finish at its end.
1011 2003-09-27 Ben Maurer  <bmaurer@users.sourceforge.net>
1013         * Iterator.cs, Expression.cs, XPathNavigator.cs: In AxisIterator
1014         use NameTable so we dont call strcmp.
1016 2003-09-27 Ben Maurer  <bmaurer@users.sourceforge.net>
1018         * DefaultContext.cs (translate): translate ("abc", "c", "") = "ab"
1019         not "abc".
1020         * Iterator.cs, Expression.cs: All axes are
1021         SimpleIterators. SimpleIterators are gaurenteed to give the same
1022         XPathNavigator in Current. Make AxisIterator take a
1023         SimpleIterator, not any old BaseIterator. Will allow us to make
1024         NameTable optimizations and avoid quite a few strcmp's.
1026 2003-09-24 Ben Maurer  <bmaurer@users.sourceforge.net>
1028         * Expression.cs: make // work right, must use another slash itr.
1030 2003-09-21 Ben Maurer  <bmaurer@users.sourceforge.net>
1032         * Expression.cs: cant use $$ before assigned.
1034 2003-09-21 Ben Maurer  <bmaurer@users.sourceforge.net>
1036         * Expression.cs, Parser.jay, XPathNavigator.cs: api beautification.
1038 2003-09-20 Ben Maurer  <bmaurer@users.sourceforge.net>
1040         * Expression.cs: num != double.NaN does not work.
1042 2003-09-19 Ben Maurer  <bmaurer@users.sourceforge.net>
1044         * Expression.cs: in NodeTypeTest dont throw an exception if it is
1045         an unknown node type (allows for better Pattern debugging).
1047 2003-09-17 Ben Maurer  <bmaurer@users.sourceforge.net>
1049         * DefaultContext.cs: implement sum () and translate ().
1051 2003-09-13 Ben Maurer  <bmaurer@users.sourceforge.net>
1053         * XPathNavigator.cs: Make methods where you pass in the context,
1054         so that we dont have to clone expressions so much.
1056 2003-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
1058         * DefaultContext.cs, Expresssion.cs, Parser.jay: Rewrite so that
1059         system functions are actually expressions. Will allow for some
1060         nice optimizations.
1062 2003-08-25 Ben Maurer  <bmaurer@users.sourceforge.net>
1064         * XPathNavigator.cs: "Smart" behavior in Matches. Nice 8x speed
1065         improvement in the method (5ms/call -> .7 ms / call) measured by
1066         monodoc's rendering of N:System.
1067         * Expression.cs: Utility methods to support above.
1069 2003-08-13 Piers Haken  <piersh@friskit.com>
1070         
1071         * Iterator.cs:
1072                 fix MergedIterator.Clone(), now clones other's iterators
1073                 fix DescendantIterator.Clone(), now copies depth
1074                 make iterator cloning constructors more type-specific
1076 2003-08-01 Piers Haken  <piersh@friskit.com>
1078         * Expression.cs: added NodeNamespaceTest
1079         * XPathNavigator.cs: implement Select* with namespaces
1081 2003-07-31 Ben Maurer  <bmaurer@users.sourceforge.net>
1083         * Iterator.cs: Allow creation of an EnumeratorIterator with an
1084         XmlNamespaceManager.
1085         
1086 2003-07-31 Piers Haken  <piersh@friskit.com>
1088         * Parser.jay:
1089                 Nested predicates (uses ExprFilter instead)
1090                 more type safety
1091                 make grammar look more like w3c spec
1092         * Expression.cs:
1093                 remove ExprStep, ExprPredicates
1094                 NodeTest is now a NodeSet
1095                 more type-safety
1096         * Iterator.cs:
1097                 PredicateIterator now only takes a single predicate expression
1098                 more type-safety
1099         * XPathNavigator.cs:
1100                 simplified SelectTest
1101         * XPathException.cs:
1102                 fixed indenting
1104 2003-07-30  Duncan Mak  <duncan@ximian.com>
1106         * XPathException.cs
1107         (GetObjectData): 
1108         (Message): Added.
1110 2003-07-29 Piers Haken  <piersh@friskit.com>
1112         * DefaultContext.cs: 'local-name' returns String, not NodeSet!
1114 2003-07-29 Piers Haken  <piersh@friskit.com>
1116         * XPathNavigator.cs:
1117         * Expression.cs:
1118                 add typesafe Evaluate* methods
1120 2003-07-29 Piers Haken  <piersh@friskit.com>
1122         * DefaultContext.cs: fix 'substring-after'
1124 2003-07-29 Piers Haken  <piersh@friskit.com>
1126         * Iterator.cs: fix PredicateIterator.CurrentPosition bug (it wasn't incrementing)
1128 2003-07-29 Ben Maurer  <bmaurer@users.sourceforge.net>
1130         * Iterator.cs: dont throw exceptions on tostring ()
1131         
1132 2003-07-28  Piers Haken <piersh@friskit.com>
1134         * DefaultContext.cs: better handling of null argument lists
1135         * XPathNavigator.cs: implement ComparePosition
1137 2003-07-28  Piers Haken <piersh@friskit.com>
1139         * Expression.cs: boolean operators: handle comparing .Any better
1141 2003-07-28  Piers Haken <piersh@friskit.com>
1143         * DefaultContext.cs: count() should return a double
1144         * Expression.cs: better support for handling non-double numbers
1146 2003-07-28  Piers Haken <piersh@friskit.com>
1148         * DefaultContext.cs: better function param matching
1150 2003-07-27  Piers Haken <piersh@friskit.com>
1152         * Expression.cs:
1153         * DefaultContext.cs:
1154                 catch FormatExceptions while parsing numbers
1156 2003-07-27  Piers Haken <piersh@friskit.com>
1158         * Expression.cs:
1159                 fix case sorting order
1160                 allow EvaluateNumber to take XPathResultType.Any
1162 2003-07-27  Piers Haken <piersh@friskit.com>
1164         * Expression.cs:
1165         * Tokenizer.cs:
1166                 don't pass null to XmlQualifiedName constructor
1168 2003-07-27  Piers Haken <piersh@friskit.com>
1170         * DefaultContext.cs: allow 'concat' to take arbitrary-typed arguments (spec?)
1172 2003-07-27  Piers Haken <piersh@friskit.com>
1174         * Expression.cs: allow EvaluateNodeSet to take XPathResultType.Any
1176 2003-07-26  Piers Haken <piersh@friskit.com>
1178         * Expression.cs: fix function evaluation with ambigous argument types
1179         * XPathNavigator.cs: fix silly null reference bug
1181 2003-07-26  Piers Haken <piersh@friskit.com>
1183         * Iterator.cs:
1184         * DefaultContext.cs:
1185                 ArrayListIterator->EnumeratorIterator
1186         * Expression.cs: add sorting support
1188 2003-07-26  Piers Haken <piersh@friskit.com>
1190         * Tokenizer.cs:
1191         * Parser.jay:
1192                 move QName parsing into tokenizer
1193         * Expression.cs:
1194                 fix evaluating XPathResultType.Any
1195                 fix ExprDiv.ToString()
1196                 fix NodeTypeTest.ToString() (for namespace axis)
1198 2003-07-25  Piers Haken <piersh@friskit.com>
1200         * Expression.cs: return clone of $var evaluation
1202 2003-07-26  Piers Haken <piersh@friskit.com>
1204         * Iterator.cs: add setter for NamespaceManager
1205         * XPathNavigator.cs: propagate NamespaceManager from context on Evaluate
1206         * Expression.cs: fix func/var exception strings
1208 2003-07-25  Piers Haken <piersh@friskit.com>
1210         * Expression.cs: implement ExprFilter.Evaluate
1212 2003-07-25  Piers Haken <piersh@friskit.com>
1214         * Expression.cs: implement ExprVariable.Evaluate
1216 2003-07-24  Ben Maurer <bmaurer@users.sourceforge.net>
1217         
1218         * DefaultContext.cs: implement lang ()
1220 2003-07-24  Piers Haken <piersh@friskit.com>
1222         * Parser.jay:
1223         * Expression.cs:
1224                 allow ExprUNION to take non-nodeset (eg, $var) arguments
1226 2003-07-24  Piers Haken <piersh@friskit.com>
1228         * Tokenizer.cs: fix variable references
1229         * Parser.jay:
1230         * Expression.cs:
1231         * XPathNavigator.cs:
1232                 use XmlQualifiedName
1234 2003-06-30  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
1236         * XPathDocument.cs : removed Driver class and restored authors' name
1237           (though it is completely rewrote).
1239 2003-06-30  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
1241         * XPathDocument.cs : Replaced existing stub class with real
1242           XPathDocument implementation.
1244 2003-04-28  Piers Haken  <piersh@friskit.com>
1246         * Parser.jay, Tokenizer.cs: more compliant lexical parsing of ambiguous tokens
1248 2003-03-07  Piers Haken  <piersh@friskit.com>
1250         * Tokenizer.cs: allow '.'s in NCNames
1252 2003-03-07  Piers Haken  <piersh@friskit.com>
1254         * Exression.cs:
1255         * DefaultContext.cs:
1256                 fixed function argument resolution
1258 2003-02-09  Piers Haken  <piersh@friskit.com>
1260         * XPathNavigator.cs:
1261         * Iterator.cs:
1262         * Expression.cs: fix namespace handling
1264 2003-01-04  Piers Haken  <piersh@friskit.com>
1266         * Parser.*: Remove extraneous "using" that was stopping the build. Permanently thisi time ;-)
1268 2003-02-02  Piers Haken <piersh@friskit.com>
1270         * Parser.jay: add token names
1271         * Tokenizer.cs: fix NCName tokenization
1273 2003-01-02  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
1275         * Tokenizer.cs : Fixed ParseIdentifier to allow digits.
1276                 (It should be a temporary fix.)
1278 2002-09-22  Nick Drochak  <ndrochak@gol.com>
1280         * Parser.cs: Remove extraneous "using" that was stopping the build.
1282 2002-09-21  Piers Haken <piersh@friskit.com>
1284         * XPathException: implementation
1285         * Expression.cs:
1286         * Iterator.cs:
1287         * Parser.jay:
1288         * Tokenizer.jay:
1289         * XPathNavigator.jay:
1290                 use XPathException.
1292 2002-09-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1294         * Parser.cs: commented out non-existent namespace (it compiles fine
1295         with mcs because of a bug that is already on bugzilla).
1297 2002-09-12  Piers Haken <piersh@friskit.com>
1299         * Tokenizer.cs: fix parsing numbers that start with '.'
1300         * DefaultContext.cs: use MS-compatible formatting of doubles
1302 2002-09-12  Piers Haken <piersh@friskit.com>
1304         * Iterator.cs: added NullIterator to handle unspecified contexts
1305         * XPathNavigator.cs: use NullIterator insted of SelfIterator when context is unspecified.
1306         * XPathNodeIterator.cs: change default _count to -1 to prevent recalculations for NullIterators
1308 2002-09-12  Piers Haken <piersh@friskit.com>
1310         * Expression.cs, Parser.jay: allow ExprSLASH to take a generic expression as its left argument.
1311         * Iterator.cs: fix SlashIterator.Clone() when _iterRight is null.
1312         * DefaultContext.cs: fix id() return type.
1314 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1316         * DefaultContext.cs: fixed bug #28840.
1317         * Expression.cs: added FIXME.
1319 2002-08-17  Jason Diamond <jason@injektilo.org>
1321         * XPathNavigator.cs: Fixed matching on patterns that look like
1322         absolute XPath expressions.
1324 2002-08-17  Jason Diamond <jason@injektilo.org>
1326         * XPathNavigator.cs: Added naive (but working) implementation of
1327          Matches.
1329 2002-07-31  Piers Haken <piersh@friskit.com>
1331         * XPathDocument.cs: simple, XmlDocument-based implementation
1333 2002-07-25  Piers Haken <piersh@friskit.com>
1335         * DefaultContext.cs: implement XPathFunctionName 'name()' function.
1337 2002-07-17  Piers Haken <piersh@friskit.com>
1338         
1339         * DefaultContext.cs: implement 'string-length()', 'normalize-space()'
1340         * Parser.jay: remove redundant production
1341         * Expression.cs: add switches for debugging under VS.NET
1343 2002-07-17  Piers Haken <piersh@friskit.com>
1345         * Expression.cs: implement nodeset/nodeset comparisons (non-optimal)
1347 2002-07-15  Piers Haken <piersh@friskit.com>
1349         * Iterator.cs:
1350                 - rename UnionIterator to MergedIterator, 
1351                 - create new UnionIterator to implment uniqueness for '|' operator
1352                 - fix position bug in ArrayListIterator.Clone()
1353         * Expression.cs: use new UnionIterator constructor syntax
1355 2002-07-12  Piers Haken <piersh@friskit.com>
1357         * Iterator.cs: PredicateIterator: handle numeric predicates
1358         * Parser.jay: add some debugging support: yyparseDebug
1359         * Tokenizer.cs: cleanup, include '-' chars in identifier tokens
1361 2002-06-29  Piers Haken <piersh@friskit.com>
1363         * Expression.cs:
1364                 - remove dead code
1365                 - NodeTest uses XPathResultType instead of internal NodeTestTypes enum
1366                 - remove NodeTestTypes enum
1367                 - remove NodeTestTypeAny (functionality provided by base now)
1368                 - fix ExprStep to handle wildcard QNames
1369         * Parser.jay:
1370                 - moved to Mono.Xml.XPath namespace
1371                 - use XPathResultType
1372                 - handle wildcard QNames
1373                 
1374         * Tokenizer.cs: moved to Mono.Xml.XPath namespace
1375         
1376         * XPathNavigator.cs: implement
1377                 - IsDescendant
1378                 - SelectAncestors
1379                 - SelectDescendants
1380                 - SelectChildren
1381                 
1382         * XPathResultType.cs: fix enum values
1383         
1384 2002-06-24  Jason Diamond  <jason@injektilo.org>
1386         * XPathScanner.cs: Removed.
1388 2002-06-24  Dick Porter <dick@ximian.com>
1390         * XmlCaseOrder.cs: Fix namespace
1392 2002-06-23  Piers Haken <piersh@friskit.com>
1394         * DefaultContext.cs: implemented XPathFUnctionId
1395         * Iterator.cs: new ArrayListIterator for id() support
1397 2002-06-23  Piers Haken <piersh@friskit.com>
1399         * XPathNavigator.cs: implement:
1400                 - Compile
1401                 - Evaluate
1402                 - Clone
1403                 - Select
1404                 - ToString
1405                 - some forwarding methods
1407         * XPathNodeIterator: implement caching Count
1409         * Tokenizer.cs: new XPath tokenizer
1410         * Parser.jay: new XPath grammar
1411         * Parser.cs: new precompiled XPath grammar
1412         * Expression.cs: new XPath expression objects
1413         * Iterator.cs: new XPath result/context objects
1414         * DefaultContext.cs: new XPath function binding context
1416 2002-05-08  Tim Coleman <tim@timcoleman.com>
1417         * XPathDocument.cs:
1418         * XPathException.cs: New stub files added.
1420 2002-04-12  Duncan Mak  <duncan@ximian.com>
1422         * XmlCaseOrder.cs: Moved to here from System.Xml.
1424 2002-03-26  Jason Diamond  <jason@injektilo.org>
1426         * XPathScanner.cs: Now handles name tests with wildacards. Abbreviated 
1427         steps. Both absolution and relative abbreviated location paths.
1429 2002-03-25  Jason Diamond  <jason@injektilo.org>
1431         * XPathScanner.cs: Added new file. This class is supposed to be internal
1432         but that would make it impossible to test.
1434 2002-03-08  Duncan Mak  <duncan@ximian.com>
1436         * XPathNamespaceScope.cs:
1437         * XPathNodeType.cs:
1438         * XPathResultType.cs:
1439         * XmlDataType.cs:
1440         * XmlSortOrder.cs: Used EnumCheck and realigned elements to be compatible with MS
1441         implementation. XPathResultType is interesting as EnumCheck does
1442         not show the Navigator element, but shows the String element twice.
1444 2002-03-08  Jason Diamond  <jason@injektilo.org>
1446         * XmlDataType.cs, XmlSortOrder.cs, XPathNodeType.cs: Added files.
1448 2002-03-06  Jason Diamond  <jason@injektilo.org>
1450         * ChangeLog: Added to this directory.
1452         * XPathExpression.cs, XPathNamespaceScope.cs, XPathNodeIterator.cs,
1453         XPathResultType.cs: New files.
1455         * XPathNavigator.cs: Stubbed out all properties and methods.