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