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