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