2004-03-04 Atsushi Enomoto <atsushi@ximian.com>
[mono.git] / mcs / class / System.XML / System.Xml.XPath / ChangeLog
1 2004-03-04  Atsushi Enomoto  <atsushi@ximian.com>
2
3         * Iterator.cs : (SlashIterator.MoveNext()) For SortedList.Add(), the
4           key should be iterator itself. Key by list count never makes sense.
5
6 2004-03-04  Atsushi Enomoto  <atsushi@ximian.com>
7
8         * Expression.cs : Significant whitespace nodes must be returned in
9           text() NodeTypeTest.
10
11 2004-02-23  Atsushi Enomoto  <atsushi@ximian.com>
12
13         * Expression.cs : xsl:sort case-order was not handled properly.
14
15 2004-02-23  Atsushi Enomoto  <atsushi@ximian.com>
16
17         * Iterator.cs :
18           In FollowingIterator, attribute and namespace nodes should be 
19           considered to have following nodes. See XPath 1.0 section 5 (esp.
20           the description on "document order").
21           On fixing @*/following::*, attribute nodes are regarded as to be
22           RequireSorting = true (which might result in duplicate).
23
24 2004-02-18  Atsushi Enomoto  <atsushi@ximian.com>
25
26         * Expression.cs : string() function expects "Infinity" and "-Infinity"
27           instead of "INF" for conversion from number. XmlConvert is for XSD,
28           not for XSLT.
29
30 2004-02-09  Atsushi Enomoto  <atsushi@ximian.com>
31
32         * Expression.cs : RelationalExpr was comparing number and node in
33           reverse order. Patch by Kazuki Oikawa. Fixed bug #72343.
34           RelationalExpr should also handle result tree fragment as node-set
35           as well as EqualityExpr. This fixes RTF case wrt #72343.
36
37 2004-02-08  Atsushi Enomoto  <atsushi@ximian.com>
38
39         * Expression.cs : tiny code format fix by Andrew Skiba.
40
41 2004-12-26  Atsushi Enomoto  <atsushi@ximian.com>
42
43         * XPathNavigator.cs : Added CheckValidity() and ValueType.
44           For SetTypedValue(), throw NotSupportedException instead of
45           NotImplementedException.
46
47 2004-12-16  Atsushi Enomoto  <atsushi@ximian.com>
48
49         * XPathNavigator.cs :added MoveToFollowing(), ReplaceSelf() and
50           all the missing attributes.
51
52 2004-12-04  Atsushi Enomoto  <atsushi@ximian.com>
53
54         * XPathDocument.cs : switch to DTMXPathNavigator2 which fully
55           eliminated string fields from struct.
56           (When we switch from struct to class, revert this change to use
57           DTMXPathNavigator, since class-based DTMXPathNavigator2 is rather
58           wasting processing speed.)
59
60 2004-12-02  Atsushi Enomoto  <atsushi@ximian.com>
61
62         * Iterator.cs : when PredicateIterator has a numeric predicate, it
63           will never be true twice. So just break up the iteration on true.
64         * XPathNavigator.cs : implemented LookupPrefix().
65         * Expression.cs : ExprParens.Optimize() could just return the content
66           expression.
67
68 2004-12-01  Atsushi Enomoto  <atsushi@ximian.com>
69
70         * IXPathChangeNavigable.cs,
71           XmlChangeFilters.cs,
72           XPathDocumentNodeChangedAction.cs : removed old files.
73
74 2004-12-01  Atsushi Enomoto  <atsushi@ximian.com>
75
76         * Iterator.cs : with related to the previous patch, many comments
77           got making no sense. Thanks to Harinath.
78
79 2004-12-01  Atsushi Enomoto  <atsushi@ximian.com>
80
81         * Iterator.cs : actually I mean this patch.
82
83 2004-12-01  Atsushi Enomoto  <atsushi@ximian.com>
84
85         * Iterator.cs : Create _current clone only when required. So just set
86           null when MoveNextCore() succeeded (except for some cases that
87           _current is _nav, such as SelfIterator).
88
89 2004-11-30  Atsushi Enomoto  <atsushi@ximian.com>
90
91         * Iterator.cs : SlashIterator.RequireSorting is always false. Whether
92           it has to collect nodes in prior or not and whether it might return
93           nodes in inconsistent order is different matter.
94           (It still needs to store nodes when either of branches requires
95           sorting, because they might return the same node later.)
96
97 2004-11-30  Atsushi Enomoto  <atsushi@ximian.com>
98
99         * Iterator.cs : reduced some extraneous ComparePosition() that could
100           be written as IsSamePosition(). ParentIterator doesn't have to be
101           RequireSorting.
102
103 2004-11-30  Atsushi Enomoto  <atsushi@ximian.com>
104
105         * Iterator.cs : reimplemented AncestorIterator and 
106           AncestorOrSelfIterator just to collect parents and not to move to
107           siblings. In some cases like thousands of siblings, it used to be
108           so slow, while we usually don't have so deep ancestors.
109
110 2004-11-26  Atsushi Enomoto  <atsushi@ximian.com>
111
112         * Expression.cs : warning removal. Added Optimize() which is not
113           implemented at all.
114         * Tokenizer.cs : warning elimination
115
116 2004-11-24  Atsushi Enomoto  <atsushi@ximian.com>
117
118         * XPathEditableNavigator.cs, XPathChangeNavigator.cs,
119           IXPathEditable.cs : more removal of oldies.
120
121 2004-11-24  Atsushi Enomoto  <atsushi@ximian.com>
122
123         * NodeChangedEventArgs.cs, NodeChangedEventHandler.cs : removed oldies.
124
125 2004-11-08  Atsushi Enomoto  <atsushi@ximian.com>
126
127         * Tokenizer.cs : just use raw string instead of char[].
128         * XPathNavigator.cs : reuse NameTable when creating XmlTextReader.
129
130 2004-11-07  Atsushi Enomoto  <atsushi@ximian.com>
131
132         * Iterator.cs :
133           - Made copy constructor certainly different from other constructors.
134           - Position is never computed in each derived type. All MoveNext() are
135             now MoveNextCore().
136           - Most of the protected members could just be private.
137
138 2004-11-05  Atsushi Enomoto  <atsushi@ximian.com>
139
140         * Expression.cs, XPathNavigator.cs : hold raw expression field for
141           get_Expression. It is preparation for expression optimization.
142
143 2004-11-05  Atsushi Enomoto  <atsushi@ximian.com>
144
145         * Iterator.cs : SimpleIterator._current could be cloned only when
146           it is required.
147
148 2004-11-05  Atsushi Enomoto  <atsushi@ximian.com>
149
150         * Iterator.cs : Some removal of Clone() were harmless.
151
152 2004-10-22  Atsushi Enomoto  <atsushi@ximian.com>
153
154         * XPathDocument.cs : now all the new stuff that used to be in 2.0 are
155           reverted.
156         * XPathEditableNavigator.cs : It will be removed. Right now modified
157           a bit to pass build.
158         * XPathNavigator.cs : Added members that are merged from
159           XPathEditableNavigator. Updated members name.
160
161 2004-10-14  Atsushi Enomoto  <atsushi@ximian.com>
162
163         * Iterator.cs :
164           - Added WrapperIterator to return BaseIterator in such case that 
165             variable reference is resolved to XPathNodeIterator. This fixes
166             bug #68267.
167           - Path ".." is reverse axis (actually no effect).
168           - Fixed DescendantIterator.Clone() that missed "_finished" field.
169         * Expression.cs :
170           In ExprVariable.Evaluate(), use WrapperIterator() for custom
171           XPathNodeIterator.
172
173 2004-10-09  Atsushi Enomoto  <atsushi@ximian.com>
174
175         * XPathAtomicValue.cs : Init(string, XmlSchemaType) is private.
176
177 2004-10-05  Atsushi Enomoto  <atsushi@ximian.com>
178
179         * XPathAtomicValue.cs : missing Init() definition for float and string;
180           latter one resulted in infinite loop in Init(object,XmlSchemaType).
181
182 2004-10-04  Atsushi Enomoto  <atsushi@ximian.com>
183
184         * XPathNavigator.cs : TypedValue could be implemented.
185         * XPathEditableNavigator.cs : removed some MonoTODO since now there 
186           are implementations.
187
188 2004-09-13  Atsushi Enomoto  <atsushi@ximian.com>
189
190         * XPathAtomicValue.cs : All .ctor() are separeted from Init().
191           In .ctor(object, XmlSchemaType):
192           - For lists that contains just one item, Init() recursively.
193           - For XPathAtomicValue, Init() recursively for its content fields.
194           For Value and TypedValue, consider typecode from XmlSchemaType.
195
196 2004-09-06  Atsushi Enomoto  <atsushi@ximian.com>
197
198         * XPathEditableNavigator.cs :
199           AppendChild(xmlReader) ignored nodes after than first one, and
200           resulted in infinite loop.
201           Added get_OuterXml overrides. set_OuterXml should not move to
202           parent before deleting current.
203
204 2004-08-25  Atsushi Enomoto  <atsushi@ximian.com>
205
206         * XPathAtomicValue.cs : Value was not returning expected value when
207           it is created as new XPathAtomicValue (object, XmlSchemaType).
208           Compute stringValue and reuse.
209         * XPathNavigator.cs : Temporarily stubbed as to ignore SchemaInfo
210           (for checking XQuery implementation).
211
212 2004-08-25  Atsushi Enomoto  <atsushi@ximian.com>
213
214         * XPathAtomicValue.cs : Handle .ctor() with object parameter more
215           precisely (still not enough, for list argument).
216           Removed commended blocks.
217
218 2004-08-24  Atsushi Enomoto  <atsushi@ximian.com>
219
220         * XPathAtomicValue.cs : DateTime should be convertible to string.
221           Use schemaType's TypeCode for .ctor() that takes object.
222         * XPathNavigator.cs : copied get_InnerXml from XPathEditableNavigator.
223         * XPathEditableNavigator.cs : set_InnerXml should be different (new)
224           property from get_InnerXml. Removed get_InnerXml and get_OuterXml 
225           overrides.
226
227 2004-08-23  Atsushi Enomoto  <atsushi@ximian.com>
228
229         * XPathAtomicValue.cs, XPathNavigator.cs : Eliminate MS.Internal.Xml.*.
230
231 2004-08-03  Atsushi Enomoto  <atsushi@ximian.com>
232
233         * XPathEditableNavigator.cs : implemented some editor support methods.
234
235 2004-08-02  Atsushi Enomoto  <atsushi@ximian.com>
236
237         * XPathDocument.cs :
238           - For .NET 2.0, added a switch to support new XPathDocument2. 
239             If switch is off, then it uses DTM.
240           - Implemented remaining 2.0 bits (except for Obsolete ones).
241
242         To use them in XPathDocument, set environment MONO_XPATH_DOCUMENT_2=yes
243         (It is still too unstable to pass all nunit tests and standalone XSLT
244         tests).
245
246 2004-07-29  Atsushi Enomoto  <atsushi@ximian.com>
247
248         * XPathNavigator.cs : Implemented ReadSubtree().
249
250 2004-07-28  Atsushi Enomoto  <atsushi@ximian.com>
251
252         * XPathDocument.cs : for .ctor() and .ctor(XmlNameTable), now it 
253           creates Mono.Xml.XPath.XPathEditableDocument and thus supports
254           IXPathEditable.CreateEditor().
255
256 2004-07-28  Atsushi Enomoto  <atsushi@ximian.com>
257
258         * XPathEditableNavigator.cs : Implemented InsertAfter() and 
259           PrependChild(); they are virtual, not abstract.
260         * XPathNavigator.cs :
261           Implemented many 2.0 virtual properties and methods that were 
262           abstract in 1.x.
263           Implemented some Select() methods that uses IXmlNamespaceResolver.
264           Implemented most of ValueAsXxx() using XQueryConvert.
265           IsNode is always true. Implemented OuterXml and WriteSubtree() (but
266           actually they don't work because it depends on ReadSubtree()).
267
268 2004-07-26  Atsushi Enomoto  <atsushi@ximian.com>
269
270         * XPathDocument.cs : added missing && not-likely-to-be-removed members.
271         * XPathEditableNavigator.cs : added BuildSubTree().
272         * XPathException.cs : added missing methods. Hide Message in NET_2_0.
273
274 2004-07-23  Atsushi Enomoto  <atsushi@ximian.com>
275
276         * XPathNodeIterator.cs : implemented 2.0 GetEnumerator().
277
278 2004-07-21  Atsushi Enomoto  <atsushi@ximian.com>
279
280         * XPathExpression.cs, Expression.cs :
281           Added SetContext(IXmlNamespaceResolver).
282         * NodeChangedEventArgs.cs : Added missing [MonoTODO].
283         * XPathAtomicValue.cs : Halfly implemented.
284         * XPathDocument.cs : Added 2.0 members.
285         * XPathDocumentNodeChangedAction.cs : updated member names.
286         * XPathEditableNavigator.cs : Added missing 2.0 members and MonoTODO.
287         * XPathNavigator.cs : Added missing 2.0 members.
288           Fixed some members as virtual->override.
289
290 2004-07-13  Atsushi Enomoto  <atsushi@ximian.com>
291
292         * XmlNodeChageType.cs, XmlChangeFilters.cs : fixed enum values.
293         * XPathResultType.cs : marked [MonoFIX] on .Navigator.
294
295 2004-07-11  Atsushi Enomoto  <atsushi@ximian.com>
296
297         * Expression.cs, Iterator.cs, XPathNavigator.cs :
298           Use IXmlNamespaceResolver for net 2.0. Removed unused code.
299         * XPathEditableNavigator.cs : fixed namespace.
300         * XPathNavigator.cs :
301           Fixed inheritance. Added missing MonoTODO.
302           Removed old .net 1.2 code. 
303
304 2004-06-18  Atsushi Enomoto  <atsushi@ximian.com>
305
306         * DefaultContext.cs : Globalization.
307         * Iterator.cs : In SlashIterator.MoveNext() position might keep 0
308           in case of empty list. Thus extraneous iteration might happened.
309           Removed unused (and clone unsafe) EnumeratorIterator.
310
311 2004-06-06  Atsushi Enomoto  <atsushi@ximian.com>
312
313         * XPathDocument.s : The previous patch is still incomplete to close.
314
315 2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
316
317         * XPathDocument.cs : close self-opened XmlTextReader in .ctor().
318
319 2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
320
321         * Expression.cs : LookupNamespace() only allows already-atomized names.
322         * XPathEditableNavigator.cs : removed incorrect set_OuterXml() and 
323           set_InnerXml().
324
325 2004-05-22  Atsushi Enomoto  <atsushi@ximian.com>
326
327         * DefaultContext.cs : Add XPathNavigator input support for ToBoolean()
328           and ToNavigator().
329         * Expression.cs : In Equality comparison, evaluate XPathNavigator in
330           the same as well as NodeSet. This fixes bug #59134.
331
332 2004-05-22  Atsushi Enomoto  <atsushi@ximian.com>
333
334         * XPathAtomicValue.cs : missed NET_2_0.
335
336 2004-05-22  Atsushi Enomoto  <atsushi@ximian.com>
337
338         * IXPathChangeNavigable.cs,
339           IXPathEditable.cs,
340           NodeChangedEventArgs.cs,
341           NodeChangedEventHandler.cs,
342           XPathAtomicValue.cs,
343           XPathChangeNavigator.cs,
344           XPathDocumentNodeChangedAction.cs,
345           XPathEditableNavigator.cs,
346           XPathItem.cs,
347           XmlChangeFilters.cs,
348           XmlNodeChangeType.cs : added NET_2_0 classes.
349         * XPathDocument.cs,
350           XPathNavigator.cs : updated NET_2_0 members.
351
352 2004-05-20  Atsushi Enomoto  <atsushi@ximian.com>
353
354         * Expression.cs : We should not catch all kind of exception. Just
355           throwing any kind of exception would be preferable.
356           Added support for XPathNavigator values.
357
358 2004-05-13  Atsushi Enomoto  <atsushi@ximian.com>
359
360         * DefaultContext.cs : Removed MonoTODO. done.
361         * Expression.cs : handle XPathResultType.Navigator in some places and
362           removed MonoTODO. Mark MonoTODO with explicit comments (though they
363           are mostly pointing out possibilities of optimization).
364           Removed extra check that depended on the old bugs.
365         * XPathResultType.cs : Fixed .Navigator that had the same value as
366           .String.
367
368 2004-05-12  Atsushi Enomoto  <atsushi@ximian.com>
369
370         * Parser.jay : made class internal.
371
372 2004-03-16  Atsushi Enomoto  <atsushi@ximian.com>
373
374         * XPathNavigator.cs, Iterator.cs : Considered detached nodes, the 
375           result of MoveToParent() should be checked.
376
377 2004-02-17  Atsushi Enomoto  <atsushi@ximian.com>
378
379         * XPathNavigator.cs : Only child and attribute axes are allowed for
380           Matches().
381         * Expression.cs : Added IsPositional property.
382         * DefaultContext.cs : Added some overrides.
383
384 2004-02-16  Atsushi Enomoto  <atsushi@ximian.com>
385
386         * XPathNavigator.cs : no, its still not ok. comment out now.
387
388 2004-02-16  Atsushi Enomoto  <atsushi@ximian.com>
389
390         * Expression.cs : Added EvaluatedNodeType and NeedAbsoluteMatching
391           to reduce extraneous Matches() trial.
392         * Iterator.cs : Removed unused MergedIterator.
393         * XPathNavigator.cs : Optimized Matches() not to evaluate ancestors
394           unnecessarily. (Test with NeedAbsoluteMatching).
395
396 2004-02-10  Atsushi Enomoto  <atsushi@ximian.com>
397
398         * Iterator.cs : Added overriden Count properties for some iterators
399           (this fixes the half of #50678).
400           Added ListIterator class (which can reduce GetEnumerator()). 
401           In some places we can omit clone for Current property, so added 
402           some check logic (It has no effect as yet).
403         * Expression.cs, DefaultContext.cs :
404           use ListIterator instead of EnumeratorIterator.
405
406 2004-02-08  Atsushi Enomoto  <atsushi@ximian.com>
407
408         * DefaultContext.cs, Expression.cs, Iterator.cs :
409           tiny foreach elimination.
410
411 2004-02-05  Atsushi Enomoto  <atsushi@ximian.com>
412
413         * DefaultContext.cs : trivial processing order fix.
414
415 2004-01-27  Atsushi Enomoto  <atsushi@ximian.com>
416
417         * DefaultContext.cs : Avoid exception if possible.
418         * Iterator.cs : Fixed PrecedingSiblingIterator.MoveNext(). When the
419           nav was positioned at the first, it incorrectly points itself.
420           Don't add names to name table while it is useless and expensive.
421
422 2004-01-08  Nick Drochak <ndrochak@ieee.org>
423
424         * Iterator.cs: Removed unused variable.
425         
426 2003-12-18 Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
427
428         * Parser.jay : now it supresses error output from jay.
429         * DefaultContext.cs : (XPathFunctionSubstring) exclude -Infinity.
430         * Tokenizer.cs : better error message.
431         * XPathDocument.cs : Use XmlValidatingReader to support id() function.
432           (just found MS.NET actually supports it)
433
434 2003-12-16 Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
435
436         * Iterator.cs : On its iteration, moving Current must not affect to
437           MoveNext(). To assure this, Current must be a clone of navigator.
438           Removed unused code.
439
440 2003-12-07 Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
441
442         * Tokenizer.cs : Removed some TODOs. (trivial ;-)
443         * Iterator.cs : ParensIterator can inherit from BaseIterator.
444           SlashIterator copy .ctor() always failed to clone. This fixes Count.
445
446 2003-12-03 Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
447
448         * Expression.cs : XPathSorters.Compare() should compare document
449           position. See last sentence of XSLT 1.0 secion 10.
450
451 2003-12-03 Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
452
453         * DefaultContext.cs : Overrode all functions' ToString().
454           XPathFunctions.ToNumber() trims whitespaces at both side.
455           Fixed NullReferenceException in normalize-space().
456         * Iterator.cs : Fixed AncestorOrSelfIterator.MoveNext() didn't handle
457           attribute or namespace node correctly.
458           SlashIterator.Clone() didn't clone "next node iterator" correctly.
459           EnumeratorIterator.ctor() should raise an error (not at Clone())
460           when the target IEnumerator is not ICloneable.
461
462 2003-11-28  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
463
464         * Expression.cs : namespace axis now traversed in reverse order, so it
465           requires sorting.
466         * Iterator.cs : UnionIterator.Clone() was incomplete. 
467           NamespaceItarator() should be reverse order (special handling
468           because of XPathNavigator specification).
469
470 2003-11-24  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
471
472         * Iterator.cs : PrecedingIterator.MoveNext() now breaks up at Root.
473         * XPathNavigator.cs : ComparePosition() didn't handle attributes 
474           correctly.
475
476 2003-11-24  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
477
478         * Parser.jay, Expression.cs, Iterator.cs :
479           Added ExprParens and ParensIterator classes which is used to handle
480           precedence of parenthesized expressions.
481           (e.g. consider "(preceding::*)[3]" and "preceding::[3]" )
482
483         * Expression.cs, Iterator.cs :
484           Added RequireSorting property for each Expr and BaseIterator classes.
485           SlashIterator.MoveNext() now considers correct sorting. But
486           considering performance, it separates two logics, sorted and sortless
487           depending on RequireSorting of left iterator and right expression.
488
489         * Iterator.cs :
490           SimpleIterator.ctor() should consider when nav is null.
491           FollowingIterator.MoveNext() and PrecedingIterator.MoveNext() should
492           not return any nodes.
493           AncestorIterator and AncestorOrSelfIterator copy ctr() should clone
494           positions.
495           AncestorIterator.MoveNext() should skip Root if context node is
496           Root itself.
497           FollowingIterator.MoveNext() should not handle children of context
498           itself.
499           PrecedingIterator.MoveNext() should skip its ancestors.
500           AxisIterator.ReverseAxis should be dependent on its containing iter.
501           UnionIterator.MoveNext() should consider comparison of nodes in 
502           different document. The behavior is implementation dependent.
503           (see XSLT spec 12.1)
504
505 2003-11-19  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
506
507         * Added XPathComparer.cs
508         * DefaultContext.cs : Fixed XPathFunctionId.Evaluate() to iterate base 
509           iterator correctly, and sort results.
510
511 2003-11-19  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
512
513         * DefaultContext.cs : Imcomplete fix ;-)
514
515 2003-11-19  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
516
517         * DefaultContext.cs : XPathFunctions.ToNumber() should catch overflow.
518           XPathFunctionId.cs : Exposed Id expression.
519         * Expression.cs : Added ExprLiteral.Value, and class ExprParens (it
520           will be used to solve evaluation precedence problem).
521
522 2003-11-09  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
523
524         * Iterator.cs : Fixed SlashIterator that might return nodes 1)in
525           inconsistent order, and 2)may return duplicate result nodes.
526
527 2003-11-06 Ben Maurer  <bmaurer@users.sourceforge.net>
528
529         * Iterator.cs: (AxisIterator.ComparablePosition): Remove. Let
530         it inherit from the base class. This made b[2] evaluated on 
531         <a /><b /><c /><a /><b /><c /> return the first b node because
532         in the ChildIterator it was the second node and seemed to satsify
533         the predicate.
534
535 2003-11-04  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
536
537         * Iterator.cs : Added bool ReverseAxis property to identify whether
538           the iterator is in reverse order or not.  Added ComparablePosition
539           for correct position comparison for PredicateIterator and reverse-
540           order-axes.  Modified AncestorIterator, AncestorOrSelfIterator,
541           PrecedingIterator and PrecedingSiblingIterator to make MoveNext()
542           return their nodes in document order. This fixes bugzilla #39079.
543
544 2003-10-15  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
545
546         * Iterator.cs : DescendantIterator and FollowingIterator also should
547           not MoveNext() after they reached to the end.
548
549 2003-10-13  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
550
551         * Iterator.cs : Fixed UnionIterator who ignores document order.
552           Fixed SlashIterator whose MoveNext() should finish at its end.
553
554 2003-09-27 Ben Maurer  <bmaurer@users.sourceforge.net>
555
556         * Iterator.cs, Expression.cs, XPathNavigator.cs: In AxisIterator
557         use NameTable so we dont call strcmp.
558
559 2003-09-27 Ben Maurer  <bmaurer@users.sourceforge.net>
560
561         * DefaultContext.cs (translate): translate ("abc", "c", "") = "ab"
562         not "abc".
563         * Iterator.cs, Expression.cs: All axes are
564         SimpleIterators. SimpleIterators are gaurenteed to give the same
565         XPathNavigator in Current. Make AxisIterator take a
566         SimpleIterator, not any old BaseIterator. Will allow us to make
567         NameTable optimizations and avoid quite a few strcmp's.
568
569 2003-09-24 Ben Maurer  <bmaurer@users.sourceforge.net>
570
571         * Expression.cs: make // work right, must use another slash itr.
572
573 2003-09-21 Ben Maurer  <bmaurer@users.sourceforge.net>
574
575         * Expression.cs: cant use $$ before assigned.
576
577 2003-09-21 Ben Maurer  <bmaurer@users.sourceforge.net>
578
579         * Expression.cs, Parser.jay, XPathNavigator.cs: api beautification.
580
581 2003-09-20 Ben Maurer  <bmaurer@users.sourceforge.net>
582
583         * Expression.cs: num != double.NaN does not work.
584
585 2003-09-19 Ben Maurer  <bmaurer@users.sourceforge.net>
586
587         * Expression.cs: in NodeTypeTest dont throw an exception if it is
588         an unknown node type (allows for better Pattern debugging).
589
590 2003-09-17 Ben Maurer  <bmaurer@users.sourceforge.net>
591
592         * DefaultContext.cs: implement sum () and translate ().
593
594 2003-09-13 Ben Maurer  <bmaurer@users.sourceforge.net>
595
596         * XPathNavigator.cs: Make methods where you pass in the context,
597         so that we dont have to clone expressions so much.
598
599 2003-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
600
601         * DefaultContext.cs, Expresssion.cs, Parser.jay: Rewrite so that
602         system functions are actually expressions. Will allow for some
603         nice optimizations.
604
605 2003-08-25 Ben Maurer  <bmaurer@users.sourceforge.net>
606
607         * XPathNavigator.cs: "Smart" behavior in Matches. Nice 8x speed
608         improvement in the method (5ms/call -> .7 ms / call) measured by
609         monodoc's rendering of N:System.
610         * Expression.cs: Utility methods to support above.
611
612 2003-08-13 Piers Haken  <piersh@friskit.com>
613         
614         * Iterator.cs:
615                 fix MergedIterator.Clone(), now clones other's iterators
616                 fix DescendantIterator.Clone(), now copies depth
617                 make iterator cloning constructors more type-specific
618
619 2003-08-01 Piers Haken  <piersh@friskit.com>
620
621         * Expression.cs: added NodeNamespaceTest
622         * XPathNavigator.cs: implement Select* with namespaces
623
624 2003-07-31 Ben Maurer  <bmaurer@users.sourceforge.net>
625
626         * Iterator.cs: Allow creation of an EnumeratorIterator with an
627         XmlNamespaceManager.
628         
629 2003-07-31 Piers Haken  <piersh@friskit.com>
630
631         * Parser.jay:
632                 Nested predicates (uses ExprFilter instead)
633                 more type safety
634                 make grammar look more like w3c spec
635         * Expression.cs:
636                 remove ExprStep, ExprPredicates
637                 NodeTest is now a NodeSet
638                 more type-safety
639         * Iterator.cs:
640                 PredicateIterator now only takes a single predicate expression
641                 more type-safety
642         * XPathNavigator.cs:
643                 simplified SelectTest
644         * XPathException.cs:
645                 fixed indenting
646
647 2003-07-30  Duncan Mak  <duncan@ximian.com>
648
649         * XPathException.cs
650         (GetObjectData): 
651         (Message): Added.
652
653 2003-07-29 Piers Haken  <piersh@friskit.com>
654
655         * DefaultContext.cs: 'local-name' returns String, not NodeSet!
656
657 2003-07-29 Piers Haken  <piersh@friskit.com>
658
659         * XPathNavigator.cs:
660         * Expression.cs:
661                 add typesafe Evaluate* methods
662
663 2003-07-29 Piers Haken  <piersh@friskit.com>
664
665         * DefaultContext.cs: fix 'substring-after'
666
667 2003-07-29 Piers Haken  <piersh@friskit.com>
668
669         * Iterator.cs: fix PredicateIterator.CurrentPosition bug (it wasn't incrementing)
670
671 2003-07-29 Ben Maurer  <bmaurer@users.sourceforge.net>
672
673         * Iterator.cs: dont throw exceptions on tostring ()
674         
675 2003-07-28  Piers Haken <piersh@friskit.com>
676
677         * DefaultContext.cs: better handling of null argument lists
678         * XPathNavigator.cs: implement ComparePosition
679
680 2003-07-28  Piers Haken <piersh@friskit.com>
681
682         * Expression.cs: boolean operators: handle comparing .Any better
683
684 2003-07-28  Piers Haken <piersh@friskit.com>
685
686         * DefaultContext.cs: count() should return a double
687         * Expression.cs: better support for handling non-double numbers
688
689 2003-07-28  Piers Haken <piersh@friskit.com>
690
691         * DefaultContext.cs: better function param matching
692
693 2003-07-27  Piers Haken <piersh@friskit.com>
694
695         * Expression.cs:
696         * DefaultContext.cs:
697                 catch FormatExceptions while parsing numbers
698
699 2003-07-27  Piers Haken <piersh@friskit.com>
700
701         * Expression.cs:
702                 fix case sorting order
703                 allow EvaluateNumber to take XPathResultType.Any
704
705 2003-07-27  Piers Haken <piersh@friskit.com>
706
707         * Expression.cs:
708         * Tokenizer.cs:
709                 don't pass null to XmlQualifiedName constructor
710
711 2003-07-27  Piers Haken <piersh@friskit.com>
712
713         * DefaultContext.cs: allow 'concat' to take arbitrary-typed arguments (spec?)
714
715 2003-07-27  Piers Haken <piersh@friskit.com>
716
717         * Expression.cs: allow EvaluateNodeSet to take XPathResultType.Any
718
719 2003-07-26  Piers Haken <piersh@friskit.com>
720
721         * Expression.cs: fix function evaluation with ambigous argument types
722         * XPathNavigator.cs: fix silly null reference bug
723
724 2003-07-26  Piers Haken <piersh@friskit.com>
725
726         * Iterator.cs:
727         * DefaultContext.cs:
728                 ArrayListIterator->EnumeratorIterator
729         * Expression.cs: add sorting support
730
731 2003-07-26  Piers Haken <piersh@friskit.com>
732
733         * Tokenizer.cs:
734         * Parser.jay:
735                 move QName parsing into tokenizer
736         * Expression.cs:
737                 fix evaluating XPathResultType.Any
738                 fix ExprDiv.ToString()
739                 fix NodeTypeTest.ToString() (for namespace axis)
740
741 2003-07-25  Piers Haken <piersh@friskit.com>
742
743         * Expression.cs: return clone of $var evaluation
744
745 2003-07-26  Piers Haken <piersh@friskit.com>
746
747         * Iterator.cs: add setter for NamespaceManager
748         * XPathNavigator.cs: propagate NamespaceManager from context on Evaluate
749         * Expression.cs: fix func/var exception strings
750
751 2003-07-25  Piers Haken <piersh@friskit.com>
752
753         * Expression.cs: implement ExprFilter.Evaluate
754
755 2003-07-25  Piers Haken <piersh@friskit.com>
756
757         * Expression.cs: implement ExprVariable.Evaluate
758
759 2003-07-24  Ben Maurer <bmaurer@users.sourceforge.net>
760         
761         * DefaultContext.cs: implement lang ()
762
763 2003-07-24  Piers Haken <piersh@friskit.com>
764
765         * Parser.jay:
766         * Expression.cs:
767                 allow ExprUNION to take non-nodeset (eg, $var) arguments
768
769 2003-07-24  Piers Haken <piersh@friskit.com>
770
771         * Tokenizer.cs: fix variable references
772         * Parser.jay:
773         * Expression.cs:
774         * XPathNavigator.cs:
775                 use XmlQualifiedName
776
777 2003-06-30  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
778
779         * XPathDocument.cs : removed Driver class and restored authors' name
780           (though it is completely rewrote).
781
782 2003-06-30  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
783
784         * XPathDocument.cs : Replaced existing stub class with real
785           XPathDocument implementation.
786
787 2003-04-28  Piers Haken  <piersh@friskit.com>
788
789         * Parser.jay, Tokenizer.cs: more compliant lexical parsing of ambiguous tokens
790
791 2003-03-07  Piers Haken  <piersh@friskit.com>
792
793         * Tokenizer.cs: allow '.'s in NCNames
794
795 2003-03-07  Piers Haken  <piersh@friskit.com>
796
797         * Exression.cs:
798         * DefaultContext.cs:
799                 fixed function argument resolution
800
801 2003-02-09  Piers Haken  <piersh@friskit.com>
802
803         * XPathNavigator.cs:
804         * Iterator.cs:
805         * Expression.cs: fix namespace handling
806
807 2003-01-04  Piers Haken  <piersh@friskit.com>
808
809         * Parser.*: Remove extraneous "using" that was stopping the build. Permanently thisi time ;-)
810
811 2003-02-02  Piers Haken <piersh@friskit.com>
812
813         * Parser.jay: add token names
814         * Tokenizer.cs: fix NCName tokenization
815
816 2003-01-02  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
817
818         * Tokenizer.cs : Fixed ParseIdentifier to allow digits.
819                 (It should be a temporary fix.)
820
821 2002-09-22  Nick Drochak  <ndrochak@gol.com>
822
823         * Parser.cs: Remove extraneous "using" that was stopping the build.
824
825 2002-09-21  Piers Haken <piersh@friskit.com>
826
827         * XPathException: implementation
828         * Expression.cs:
829         * Iterator.cs:
830         * Parser.jay:
831         * Tokenizer.jay:
832         * XPathNavigator.jay:
833                 use XPathException.
834
835 2002-09-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
836
837         * Parser.cs: commented out non-existent namespace (it compiles fine
838         with mcs because of a bug that is already on bugzilla).
839
840 2002-09-12  Piers Haken <piersh@friskit.com>
841
842         * Tokenizer.cs: fix parsing numbers that start with '.'
843         * DefaultContext.cs: use MS-compatible formatting of doubles
844
845 2002-09-12  Piers Haken <piersh@friskit.com>
846
847         * Iterator.cs: added NullIterator to handle unspecified contexts
848         * XPathNavigator.cs: use NullIterator insted of SelfIterator when context is unspecified.
849         * XPathNodeIterator.cs: change default _count to -1 to prevent recalculations for NullIterators
850
851 2002-09-12  Piers Haken <piersh@friskit.com>
852
853         * Expression.cs, Parser.jay: allow ExprSLASH to take a generic expression as its left argument.
854         * Iterator.cs: fix SlashIterator.Clone() when _iterRight is null.
855         * DefaultContext.cs: fix id() return type.
856
857 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
858
859         * DefaultContext.cs: fixed bug #28840.
860         * Expression.cs: added FIXME.
861
862 2002-08-17  Jason Diamond <jason@injektilo.org>
863
864         * XPathNavigator.cs: Fixed matching on patterns that look like
865         absolute XPath expressions.
866
867 2002-08-17  Jason Diamond <jason@injektilo.org>
868
869         * XPathNavigator.cs: Added naive (but working) implementation of
870          Matches.
871
872 2002-07-31  Piers Haken <piersh@friskit.com>
873
874         * XPathDocument.cs: simple, XmlDocument-based implementation
875
876 2002-07-25  Piers Haken <piersh@friskit.com>
877
878         * DefaultContext.cs: implement XPathFunctionName 'name()' function.
879
880 2002-07-17  Piers Haken <piersh@friskit.com>
881         
882         * DefaultContext.cs: implement 'string-length()', 'normalize-space()'
883         * Parser.jay: remove redundant production
884         * Expression.cs: add switches for debugging under VS.NET
885
886 2002-07-17  Piers Haken <piersh@friskit.com>
887
888         * Expression.cs: implement nodeset/nodeset comparisons (non-optimal)
889
890 2002-07-15  Piers Haken <piersh@friskit.com>
891
892         * Iterator.cs:
893                 - rename UnionIterator to MergedIterator, 
894                 - create new UnionIterator to implment uniqueness for '|' operator
895                 - fix position bug in ArrayListIterator.Clone()
896         * Expression.cs: use new UnionIterator constructor syntax
897
898 2002-07-12  Piers Haken <piersh@friskit.com>
899
900         * Iterator.cs: PredicateIterator: handle numeric predicates
901         * Parser.jay: add some debugging support: yyparseDebug
902         * Tokenizer.cs: cleanup, include '-' chars in identifier tokens
903
904 2002-06-29  Piers Haken <piersh@friskit.com>
905
906         * Expression.cs:
907                 - remove dead code
908                 - NodeTest uses XPathResultType instead of internal NodeTestTypes enum
909                 - remove NodeTestTypes enum
910                 - remove NodeTestTypeAny (functionality provided by base now)
911                 - fix ExprStep to handle wildcard QNames
912         * Parser.jay:
913                 - moved to Mono.Xml.XPath namespace
914                 - use XPathResultType
915                 - handle wildcard QNames
916                 
917         * Tokenizer.cs: moved to Mono.Xml.XPath namespace
918         
919         * XPathNavigator.cs: implement
920                 - IsDescendant
921                 - SelectAncestors
922                 - SelectDescendants
923                 - SelectChildren
924                 
925         * XPathResultType.cs: fix enum values
926         
927 2002-06-24  Jason Diamond  <jason@injektilo.org>
928
929         * XPathScanner.cs: Removed.
930
931 2002-06-24  Dick Porter <dick@ximian.com>
932
933         * XmlCaseOrder.cs: Fix namespace
934
935 2002-06-23  Piers Haken <piersh@friskit.com>
936
937         * DefaultContext.cs: implemented XPathFUnctionId
938         * Iterator.cs: new ArrayListIterator for id() support
939
940 2002-06-23  Piers Haken <piersh@friskit.com>
941
942         * XPathNavigator.cs: implement:
943                 - Compile
944                 - Evaluate
945                 - Clone
946                 - Select
947                 - ToString
948                 - some forwarding methods
949
950         * XPathNodeIterator: implement caching Count
951
952         * Tokenizer.cs: new XPath tokenizer
953         * Parser.jay: new XPath grammar
954         * Parser.cs: new precompiled XPath grammar
955         * Expression.cs: new XPath expression objects
956         * Iterator.cs: new XPath result/context objects
957         * DefaultContext.cs: new XPath function binding context
958
959 2002-05-08  Tim Coleman <tim@timcoleman.com>
960         * XPathDocument.cs:
961         * XPathException.cs: New stub files added.
962
963 2002-04-12  Duncan Mak  <duncan@ximian.com>
964
965         * XmlCaseOrder.cs: Moved to here from System.Xml.
966
967 2002-03-26  Jason Diamond  <jason@injektilo.org>
968
969         * XPathScanner.cs: Now handles name tests with wildacards. Abbreviated 
970         steps. Both absolution and relative abbreviated location paths.
971
972 2002-03-25  Jason Diamond  <jason@injektilo.org>
973
974         * XPathScanner.cs: Added new file. This class is supposed to be internal
975         but that would make it impossible to test.
976
977 2002-03-08  Duncan Mak  <duncan@ximian.com>
978
979         * XPathNamespaceScope.cs:
980         * XPathNodeType.cs:
981         * XPathResultType.cs:
982         * XmlDataType.cs:
983         * XmlSortOrder.cs: Used EnumCheck and realigned elements to be compatible with MS
984         implementation. XPathResultType is interesting as EnumCheck does
985         not show the Navigator element, but shows the String element twice.
986
987 2002-03-08  Jason Diamond  <jason@injektilo.org>
988
989         * XmlDataType.cs, XmlSortOrder.cs, XPathNodeType.cs: Added files.
990
991 2002-03-06  Jason Diamond  <jason@injektilo.org>
992
993         * ChangeLog: Added to this directory.
994
995         * XPathExpression.cs, XPathNamespaceScope.cs, XPathNodeIterator.cs,
996         XPathResultType.cs: New files.
997
998         * XPathNavigator.cs: Stubbed out all properties and methods.