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