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