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