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