0f5c1c726c8e9a6a1a7b5993d5ce60fd1a4c6657
[mono.git] / mcs / class / System.XML / System.Xml.XPath / ChangeLog
1 2003-11-19  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
2
3         * Added XPathComparer.cs
4         * DefaultContext.cs : Fixed XPathFunctionId.Evaluate() to iterate base 
5           iterator correctly, and sort results.
6
7 2003-11-19  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
8
9         * DefaultContext.cs : Imcomplete fix ;-)
10
11 2003-11-19  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
12
13         * DefaultContext.cs : XPathFunctions.ToNumber() should catch overflow.
14           XPathFunctionId.cs : Exposed Id expression.
15         * Expression.cs : Added ExprLiteral.Value, and class ExprParens (it
16           will be used to solve evaluation precedence problem).
17
18 2003-11-09  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
19
20         * Iterator.cs : Fixed SlashIterator that might return nodes 1)in
21           inconsistent order, and 2)may return duplicate result nodes.
22
23 2003-11-06 Ben Maurer  <bmaurer@users.sourceforge.net>
24
25         * Iterator.cs: (AxisIterator.ComparablePosition): Remove. Let
26         it inherit from the base class. This made b[2] evaluated on 
27         <a /><b /><c /><a /><b /><c /> return the first b node because
28         in the ChildIterator it was the second node and seemed to satsify
29         the predicate.
30
31 2003-11-04  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
32
33         * Iterator.cs : Added bool ReverseAxis property to identify whether
34           the iterator is in reverse order or not.  Added ComparablePosition
35           for correct position comparison for PredicateIterator and reverse-
36           order-axes.  Modified AncestorIterator, AncestorOrSelfIterator,
37           PrecedingIterator and PrecedingSiblingIterator to make MoveNext()
38           return their nodes in document order. This fixes bugzilla #39079.
39
40 2003-10-15  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
41
42         * Iterator.cs : DescendantIterator and FollowingIterator also should
43           not MoveNext() after they reached to the end.
44
45 2003-10-13  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
46
47         * Iterator.cs : Fixed UnionIterator who ignores document order.
48           Fixed SlashIterator whose MoveNext() should finish at its end.
49
50 2003-09-27 Ben Maurer  <bmaurer@users.sourceforge.net>
51
52         * Iterator.cs, Expression.cs, XPathNavigator.cs: In AxisIterator
53         use NameTable so we dont call strcmp.
54
55 2003-09-27 Ben Maurer  <bmaurer@users.sourceforge.net>
56
57         * DefaultContext.cs (translate): translate ("abc", "c", "") = "ab"
58         not "abc".
59         * Iterator.cs, Expression.cs: All axes are
60         SimpleIterators. SimpleIterators are gaurenteed to give the same
61         XPathNavigator in Current. Make AxisIterator take a
62         SimpleIterator, not any old BaseIterator. Will allow us to make
63         NameTable optimizations and avoid quite a few strcmp's.
64
65 2003-09-24 Ben Maurer  <bmaurer@users.sourceforge.net>
66
67         * Expression.cs: make // work right, must use another slash itr.
68
69 2003-09-21 Ben Maurer  <bmaurer@users.sourceforge.net>
70
71         * Expression.cs: cant use $$ before assigned.
72
73 2003-09-21 Ben Maurer  <bmaurer@users.sourceforge.net>
74
75         * Expression.cs, Parser.jay, XPathNavigator.cs: api beautification.
76
77 2003-09-20 Ben Maurer  <bmaurer@users.sourceforge.net>
78
79         * Expression.cs: num != double.NaN does not work.
80
81 2003-09-19 Ben Maurer  <bmaurer@users.sourceforge.net>
82
83         * Expression.cs: in NodeTypeTest dont throw an exception if it is
84         an unknown node type (allows for better Pattern debugging).
85
86 2003-09-17 Ben Maurer  <bmaurer@users.sourceforge.net>
87
88         * DefaultContext.cs: implement sum () and translate ().
89
90 2003-09-13 Ben Maurer  <bmaurer@users.sourceforge.net>
91
92         * XPathNavigator.cs: Make methods where you pass in the context,
93         so that we dont have to clone expressions so much.
94
95 2003-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
96
97         * DefaultContext.cs, Expresssion.cs, Parser.jay: Rewrite so that
98         system functions are actually expressions. Will allow for some
99         nice optimizations.
100
101 2003-08-25 Ben Maurer  <bmaurer@users.sourceforge.net>
102
103         * XPathNavigator.cs: "Smart" behavior in Matches. Nice 8x speed
104         improvement in the method (5ms/call -> .7 ms / call) measured by
105         monodoc's rendering of N:System.
106         * Expression.cs: Utility methods to support above.
107
108 2003-08-13 Piers Haken  <piersh@friskit.com>
109         
110         * Iterator.cs:
111                 fix MergedIterator.Clone(), now clones other's iterators
112                 fix DescendantIterator.Clone(), now copies depth
113                 make iterator cloning constructors more type-specific
114
115 2003-08-01 Piers Haken  <piersh@friskit.com>
116
117         * Expression.cs: added NodeNamespaceTest
118         * XPathNavigator.cs: implement Select* with namespaces
119
120 2003-07-31 Ben Maurer  <bmaurer@users.sourceforge.net>
121
122         * Iterator.cs: Allow creation of an EnumeratorIterator with an
123         XmlNamespaceManager.
124         
125 2003-07-31 Piers Haken  <piersh@friskit.com>
126
127         * Parser.jay:
128                 Nested predicates (uses ExprFilter instead)
129                 more type safety
130                 make grammar look more like w3c spec
131         * Expression.cs:
132                 remove ExprStep, ExprPredicates
133                 NodeTest is now a NodeSet
134                 more type-safety
135         * Iterator.cs:
136                 PredicateIterator now only takes a single predicate expression
137                 more type-safety
138         * XPathNavigator.cs:
139                 simplified SelectTest
140         * XPathException.cs:
141                 fixed indenting
142
143 2003-07-30  Duncan Mak  <duncan@ximian.com>
144
145         * XPathException.cs
146         (GetObjectData): 
147         (Message): Added.
148
149 2003-07-29 Piers Haken  <piersh@friskit.com>
150
151         * DefaultContext.cs: 'local-name' returns String, not NodeSet!
152
153 2003-07-29 Piers Haken  <piersh@friskit.com>
154
155         * XPathNavigator.cs:
156         * Expression.cs:
157                 add typesafe Evaluate* methods
158
159 2003-07-29 Piers Haken  <piersh@friskit.com>
160
161         * DefaultContext.cs: fix 'substring-after'
162
163 2003-07-29 Piers Haken  <piersh@friskit.com>
164
165         * Iterator.cs: fix PredicateIterator.CurrentPosition bug (it wasn't incrementing)
166
167 2003-07-29 Ben Maurer  <bmaurer@users.sourceforge.net>
168
169         * Iterator.cs: dont throw exceptions on tostring ()
170         
171 2003-07-28  Piers Haken <piersh@friskit.com>
172
173         * DefaultContext.cs: better handling of null argument lists
174         * XPathNavigator.cs: implement ComparePosition
175
176 2003-07-28  Piers Haken <piersh@friskit.com>
177
178         * Expression.cs: boolean operators: handle comparing .Any better
179
180 2003-07-28  Piers Haken <piersh@friskit.com>
181
182         * DefaultContext.cs: count() should return a double
183         * Expression.cs: better support for handling non-double numbers
184
185 2003-07-28  Piers Haken <piersh@friskit.com>
186
187         * DefaultContext.cs: better function param matching
188
189 2003-07-27  Piers Haken <piersh@friskit.com>
190
191         * Expression.cs:
192         * DefaultContext.cs:
193                 catch FormatExceptions while parsing numbers
194
195 2003-07-27  Piers Haken <piersh@friskit.com>
196
197         * Expression.cs:
198                 fix case sorting order
199                 allow EvaluateNumber to take XPathResultType.Any
200
201 2003-07-27  Piers Haken <piersh@friskit.com>
202
203         * Expression.cs:
204         * Tokenizer.cs:
205                 don't pass null to XmlQualifiedName constructor
206
207 2003-07-27  Piers Haken <piersh@friskit.com>
208
209         * DefaultContext.cs: allow 'concat' to take arbitrary-typed arguments (spec?)
210
211 2003-07-27  Piers Haken <piersh@friskit.com>
212
213         * Expression.cs: allow EvaluateNodeSet to take XPathResultType.Any
214
215 2003-07-26  Piers Haken <piersh@friskit.com>
216
217         * Expression.cs: fix function evaluation with ambigous argument types
218         * XPathNavigator.cs: fix silly null reference bug
219
220 2003-07-26  Piers Haken <piersh@friskit.com>
221
222         * Iterator.cs:
223         * DefaultContext.cs:
224                 ArrayListIterator->EnumeratorIterator
225         * Expression.cs: add sorting support
226
227 2003-07-26  Piers Haken <piersh@friskit.com>
228
229         * Tokenizer.cs:
230         * Parser.jay:
231                 move QName parsing into tokenizer
232         * Expression.cs:
233                 fix evaluating XPathResultType.Any
234                 fix ExprDiv.ToString()
235                 fix NodeTypeTest.ToString() (for namespace axis)
236
237 2003-07-25  Piers Haken <piersh@friskit.com>
238
239         * Expression.cs: return clone of $var evaluation
240
241 2003-07-26  Piers Haken <piersh@friskit.com>
242
243         * Iterator.cs: add setter for NamespaceManager
244         * XPathNavigator.cs: propagate NamespaceManager from context on Evaluate
245         * Expression.cs: fix func/var exception strings
246
247 2003-07-25  Piers Haken <piersh@friskit.com>
248
249         * Expression.cs: implement ExprFilter.Evaluate
250
251 2003-07-25  Piers Haken <piersh@friskit.com>
252
253         * Expression.cs: implement ExprVariable.Evaluate
254
255 2003-07-24  Ben Maurer <bmaurer@users.sourceforge.net>
256         
257         * DefaultContext.cs: implement lang ()
258
259 2003-07-24  Piers Haken <piersh@friskit.com>
260
261         * Parser.jay:
262         * Expression.cs:
263                 allow ExprUNION to take non-nodeset (eg, $var) arguments
264
265 2003-07-24  Piers Haken <piersh@friskit.com>
266
267         * Tokenizer.cs: fix variable references
268         * Parser.jay:
269         * Expression.cs:
270         * XPathNavigator.cs:
271                 use XmlQualifiedName
272
273 2003-06-30  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
274
275         * XPathDocument.cs : removed Driver class and restored authors' name
276           (though it is completely rewrote).
277
278 2003-06-30  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
279
280         * XPathDocument.cs : Replaced existing stub class with real
281           XPathDocument implementation.
282
283 2003-04-28  Piers Haken  <piersh@friskit.com>
284
285         * Parser.jay, Tokenizer.cs: more compliant lexical parsing of ambiguous tokens
286
287 2003-03-07  Piers Haken  <piersh@friskit.com>
288
289         * Tokenizer.cs: allow '.'s in NCNames
290
291 2003-03-07  Piers Haken  <piersh@friskit.com>
292
293         * Exression.cs:
294         * DefaultContext.cs:
295                 fixed function argument resolution
296
297 2003-02-09  Piers Haken  <piersh@friskit.com>
298
299         * XPathNavigator.cs:
300         * Iterator.cs:
301         * Expression.cs: fix namespace handling
302
303 2003-01-04  Piers Haken  <piersh@friskit.com>
304
305         * Parser.*: Remove extraneous "using" that was stopping the build. Permanently thisi time ;-)
306
307 2003-02-02  Piers Haken <piersh@friskit.com>
308
309         * Parser.jay: add token names
310         * Tokenizer.cs: fix NCName tokenization
311
312 2003-01-02  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
313
314         * Tokenizer.cs : Fixed ParseIdentifier to allow digits.
315                 (It should be a temporary fix.)
316
317 2002-09-22  Nick Drochak  <ndrochak@gol.com>
318
319         * Parser.cs: Remove extraneous "using" that was stopping the build.
320
321 2002-09-21  Piers Haken <piersh@friskit.com>
322
323         * XPathException: implementation
324         * Expression.cs:
325         * Iterator.cs:
326         * Parser.jay:
327         * Tokenizer.jay:
328         * XPathNavigator.jay:
329                 use XPathException.
330
331 2002-09-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
332
333         * Parser.cs: commented out non-existent namespace (it compiles fine
334         with mcs because of a bug that is already on bugzilla).
335
336 2002-09-12  Piers Haken <piersh@friskit.com>
337
338         * Tokenizer.cs: fix parsing numbers that start with '.'
339         * DefaultContext.cs: use MS-compatible formatting of doubles
340
341 2002-09-12  Piers Haken <piersh@friskit.com>
342
343         * Iterator.cs: added NullIterator to handle unspecified contexts
344         * XPathNavigator.cs: use NullIterator insted of SelfIterator when context is unspecified.
345         * XPathNodeIterator.cs: change default _count to -1 to prevent recalculations for NullIterators
346
347 2002-09-12  Piers Haken <piersh@friskit.com>
348
349         * Expression.cs, Parser.jay: allow ExprSLASH to take a generic expression as its left argument.
350         * Iterator.cs: fix SlashIterator.Clone() when _iterRight is null.
351         * DefaultContext.cs: fix id() return type.
352
353 2002-09-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
354
355         * DefaultContext.cs: fixed bug #28840.
356         * Expression.cs: added FIXME.
357
358 2002-08-17  Jason Diamond <jason@injektilo.org>
359
360         * XPathNavigator.cs: Fixed matching on patterns that look like
361         absolute XPath expressions.
362
363 2002-08-17  Jason Diamond <jason@injektilo.org>
364
365         * XPathNavigator.cs: Added naive (but working) implementation of
366          Matches.
367
368 2002-07-31  Piers Haken <piersh@friskit.com>
369
370         * XPathDocument.cs: simple, XmlDocument-based implementation
371
372 2002-07-25  Piers Haken <piersh@friskit.com>
373
374         * DefaultContext.cs: implement XPathFunctionName 'name()' function.
375
376 2002-07-17  Piers Haken <piersh@friskit.com>
377         
378         * DefaultContext.cs: implement 'string-length()', 'normalize-space()'
379         * Parser.jay: remove redundant production
380         * Expression.cs: add switches for debugging under VS.NET
381
382 2002-07-17  Piers Haken <piersh@friskit.com>
383
384         * Expression.cs: implement nodeset/nodeset comparisons (non-optimal)
385
386 2002-07-15  Piers Haken <piersh@friskit.com>
387
388         * Iterator.cs:
389                 - rename UnionIterator to MergedIterator, 
390                 - create new UnionIterator to implment uniqueness for '|' operator
391                 - fix position bug in ArrayListIterator.Clone()
392         * Expression.cs: use new UnionIterator constructor syntax
393
394 2002-07-12  Piers Haken <piersh@friskit.com>
395
396         * Iterator.cs: PredicateIterator: handle numeric predicates
397         * Parser.jay: add some debugging support: yyparseDebug
398         * Tokenizer.cs: cleanup, include '-' chars in identifier tokens
399
400 2002-06-29  Piers Haken <piersh@friskit.com>
401
402         * Expression.cs:
403                 - remove dead code
404                 - NodeTest uses XPathResultType instead of internal NodeTestTypes enum
405                 - remove NodeTestTypes enum
406                 - remove NodeTestTypeAny (functionality provided by base now)
407                 - fix ExprStep to handle wildcard QNames
408         * Parser.jay:
409                 - moved to Mono.Xml.XPath namespace
410                 - use XPathResultType
411                 - handle wildcard QNames
412                 
413         * Tokenizer.cs: moved to Mono.Xml.XPath namespace
414         
415         * XPathNavigator.cs: implement
416                 - IsDescendant
417                 - SelectAncestors
418                 - SelectDescendants
419                 - SelectChildren
420                 
421         * XPathResultType.cs: fix enum values
422         
423 2002-06-24  Jason Diamond  <jason@injektilo.org>
424
425         * XPathScanner.cs: Removed.
426
427 2002-06-24  Dick Porter <dick@ximian.com>
428
429         * XmlCaseOrder.cs: Fix namespace
430
431 2002-06-23  Piers Haken <piersh@friskit.com>
432
433         * DefaultContext.cs: implemented XPathFUnctionId
434         * Iterator.cs: new ArrayListIterator for id() support
435
436 2002-06-23  Piers Haken <piersh@friskit.com>
437
438         * XPathNavigator.cs: implement:
439                 - Compile
440                 - Evaluate
441                 - Clone
442                 - Select
443                 - ToString
444                 - some forwarding methods
445
446         * XPathNodeIterator: implement caching Count
447
448         * Tokenizer.cs: new XPath tokenizer
449         * Parser.jay: new XPath grammar
450         * Parser.cs: new precompiled XPath grammar
451         * Expression.cs: new XPath expression objects
452         * Iterator.cs: new XPath result/context objects
453         * DefaultContext.cs: new XPath function binding context
454
455 2002-05-08  Tim Coleman <tim@timcoleman.com>
456         * XPathDocument.cs:
457         * XPathException.cs: New stub files added.
458
459 2002-04-12  Duncan Mak  <duncan@ximian.com>
460
461         * XmlCaseOrder.cs: Moved to here from System.Xml.
462
463 2002-03-26  Jason Diamond  <jason@injektilo.org>
464
465         * XPathScanner.cs: Now handles name tests with wildacards. Abbreviated 
466         steps. Both absolution and relative abbreviated location paths.
467
468 2002-03-25  Jason Diamond  <jason@injektilo.org>
469
470         * XPathScanner.cs: Added new file. This class is supposed to be internal
471         but that would make it impossible to test.
472
473 2002-03-08  Duncan Mak  <duncan@ximian.com>
474
475         * XPathNamespaceScope.cs:
476         * XPathNodeType.cs:
477         * XPathResultType.cs:
478         * XmlDataType.cs:
479         * XmlSortOrder.cs: Used EnumCheck and realigned elements to be compatible with MS
480         implementation. XPathResultType is interesting as EnumCheck does
481         not show the Navigator element, but shows the String element twice.
482
483 2002-03-08  Jason Diamond  <jason@injektilo.org>
484
485         * XmlDataType.cs, XmlSortOrder.cs, XPathNodeType.cs: Added files.
486
487 2002-03-06  Jason Diamond  <jason@injektilo.org>
488
489         * ChangeLog: Added to this directory.
490
491         * XPathExpression.cs, XPathNamespaceScope.cs, XPathNodeIterator.cs,
492         XPathResultType.cs: New files.
493
494         * XPathNavigator.cs: Stubbed out all properties and methods.