1 2004-02-17 Atsushi Enomoto <atsushi@ximian.com>
3 * XPathNavigator.cs : Only child and attribute axes are allowed for
5 * Expression.cs : Added IsPositional property.
6 * DefaultContext.cs : Added some overrides.
8 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
10 * XPathNavigator.cs : no, its still not ok. comment out now.
12 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
14 * Expression.cs : Added EvaluatedNodeType and NeedAbsoluteMatching
15 to reduce extraneous Matches() trial.
16 * Iterator.cs : Removed unused MergedIterator.
17 * XPathNavigator.cs : Optimized Matches() not to evaluate ancestors
18 unnecessarily. (Test with NeedAbsoluteMatching).
20 2004-02-10 Atsushi Enomoto <atsushi@ximian.com>
22 * Iterator.cs : Added overriden Count properties for some iterators
23 (this fixes the half of #50678).
24 Added ListIterator class (which can reduce GetEnumerator()).
25 In some places we can omit clone for Current property, so added
26 some check logic (It has no effect as yet).
27 * Expression.cs, DefaultContext.cs :
28 use ListIterator instead of EnumeratorIterator.
30 2004-02-08 Atsushi Enomoto <atsushi@ximian.com>
32 * DefaultContext.cs, Expression.cs, Iterator.cs :
33 tiny foreach elimination.
35 2004-02-05 Atsushi Enomoto <atsushi@ximian.com>
37 * DefaultContext.cs : trivial processing order fix.
39 2004-01-27 Atsushi Enomoto <atsushi@ximian.com>
41 * DefaultContext.cs : Avoid exception if possible.
42 * Iterator.cs : Fixed PrecedingSiblingIterator.MoveNext(). When the
43 nav was positioned at the first, it incorrectly points itself.
44 Don't add names to name table while it is useless and expensive.
46 2004-01-08 Nick Drochak <ndrochak@ieee.org>
48 * Iterator.cs: Removed unused variable.
50 2003-12-18 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
52 * Parser.jay : now it supresses error output from jay.
53 * DefaultContext.cs : (XPathFunctionSubstring) exclude -Infinity.
54 * Tokenizer.cs : better error message.
55 * XPathDocument.cs : Use XmlValidatingReader to support id() function.
56 (just found MS.NET actually supports it)
58 2003-12-16 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
60 * Iterator.cs : On its iteration, moving Current must not affect to
61 MoveNext(). To assure this, Current must be a clone of navigator.
64 2003-12-07 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
66 * Tokenizer.cs : Removed some TODOs. (trivial ;-)
67 * Iterator.cs : ParensIterator can inherit from BaseIterator.
68 SlashIterator copy .ctor() always failed to clone. This fixes Count.
70 2003-12-03 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
72 * Expression.cs : XPathSorters.Compare() should compare document
73 position. See last sentence of XSLT 1.0 secion 10.
75 2003-12-03 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
77 * DefaultContext.cs : Overrode all functions' ToString().
78 XPathFunctions.ToNumber() trims whitespaces at both side.
79 Fixed NullReferenceException in normalize-space().
80 * Iterator.cs : Fixed AncestorOrSelfIterator.MoveNext() didn't handle
81 attribute or namespace node correctly.
82 SlashIterator.Clone() didn't clone "next node iterator" correctly.
83 EnumeratorIterator.ctor() should raise an error (not at Clone())
84 when the target IEnumerator is not ICloneable.
86 2003-11-28 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
88 * Expression.cs : namespace axis now traversed in reverse order, so it
90 * Iterator.cs : UnionIterator.Clone() was incomplete.
91 NamespaceItarator() should be reverse order (special handling
92 because of XPathNavigator specification).
94 2003-11-24 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
96 * Iterator.cs : PrecedingIterator.MoveNext() now breaks up at Root.
97 * XPathNavigator.cs : ComparePosition() didn't handle attributes
100 2003-11-24 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
102 * Parser.jay, Expression.cs, Iterator.cs :
103 Added ExprParens and ParensIterator classes which is used to handle
104 precedence of parenthesized expressions.
105 (e.g. consider "(preceding::*)[3]" and "preceding::[3]" )
107 * Expression.cs, Iterator.cs :
108 Added RequireSorting property for each Expr and BaseIterator classes.
109 SlashIterator.MoveNext() now considers correct sorting. But
110 considering performance, it separates two logics, sorted and sortless
111 depending on RequireSorting of left iterator and right expression.
114 SimpleIterator.ctor() should consider when nav is null.
115 FollowingIterator.MoveNext() and PrecedingIterator.MoveNext() should
116 not return any nodes.
117 AncestorIterator and AncestorOrSelfIterator copy ctr() should clone
119 AncestorIterator.MoveNext() should skip Root if context node is
121 FollowingIterator.MoveNext() should not handle children of context
123 PrecedingIterator.MoveNext() should skip its ancestors.
124 AxisIterator.ReverseAxis should be dependent on its containing iter.
125 UnionIterator.MoveNext() should consider comparison of nodes in
126 different document. The behavior is implementation dependent.
129 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
131 * Added XPathComparer.cs
132 * DefaultContext.cs : Fixed XPathFunctionId.Evaluate() to iterate base
133 iterator correctly, and sort results.
135 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
137 * DefaultContext.cs : Imcomplete fix ;-)
139 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
141 * DefaultContext.cs : XPathFunctions.ToNumber() should catch overflow.
142 XPathFunctionId.cs : Exposed Id expression.
143 * Expression.cs : Added ExprLiteral.Value, and class ExprParens (it
144 will be used to solve evaluation precedence problem).
146 2003-11-09 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
148 * Iterator.cs : Fixed SlashIterator that might return nodes 1)in
149 inconsistent order, and 2)may return duplicate result nodes.
151 2003-11-06 Ben Maurer <bmaurer@users.sourceforge.net>
153 * Iterator.cs: (AxisIterator.ComparablePosition): Remove. Let
154 it inherit from the base class. This made b[2] evaluated on
155 <a /><b /><c /><a /><b /><c /> return the first b node because
156 in the ChildIterator it was the second node and seemed to satsify
159 2003-11-04 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
161 * Iterator.cs : Added bool ReverseAxis property to identify whether
162 the iterator is in reverse order or not. Added ComparablePosition
163 for correct position comparison for PredicateIterator and reverse-
164 order-axes. Modified AncestorIterator, AncestorOrSelfIterator,
165 PrecedingIterator and PrecedingSiblingIterator to make MoveNext()
166 return their nodes in document order. This fixes bugzilla #39079.
168 2003-10-15 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
170 * Iterator.cs : DescendantIterator and FollowingIterator also should
171 not MoveNext() after they reached to the end.
173 2003-10-13 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
175 * Iterator.cs : Fixed UnionIterator who ignores document order.
176 Fixed SlashIterator whose MoveNext() should finish at its end.
178 2003-09-27 Ben Maurer <bmaurer@users.sourceforge.net>
180 * Iterator.cs, Expression.cs, XPathNavigator.cs: In AxisIterator
181 use NameTable so we dont call strcmp.
183 2003-09-27 Ben Maurer <bmaurer@users.sourceforge.net>
185 * DefaultContext.cs (translate): translate ("abc", "c", "") = "ab"
187 * Iterator.cs, Expression.cs: All axes are
188 SimpleIterators. SimpleIterators are gaurenteed to give the same
189 XPathNavigator in Current. Make AxisIterator take a
190 SimpleIterator, not any old BaseIterator. Will allow us to make
191 NameTable optimizations and avoid quite a few strcmp's.
193 2003-09-24 Ben Maurer <bmaurer@users.sourceforge.net>
195 * Expression.cs: make // work right, must use another slash itr.
197 2003-09-21 Ben Maurer <bmaurer@users.sourceforge.net>
199 * Expression.cs: cant use $$ before assigned.
201 2003-09-21 Ben Maurer <bmaurer@users.sourceforge.net>
203 * Expression.cs, Parser.jay, XPathNavigator.cs: api beautification.
205 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
207 * Expression.cs: num != double.NaN does not work.
209 2003-09-19 Ben Maurer <bmaurer@users.sourceforge.net>
211 * Expression.cs: in NodeTypeTest dont throw an exception if it is
212 an unknown node type (allows for better Pattern debugging).
214 2003-09-17 Ben Maurer <bmaurer@users.sourceforge.net>
216 * DefaultContext.cs: implement sum () and translate ().
218 2003-09-13 Ben Maurer <bmaurer@users.sourceforge.net>
220 * XPathNavigator.cs: Make methods where you pass in the context,
221 so that we dont have to clone expressions so much.
223 2003-09-06 Ben Maurer <bmaurer@users.sourceforge.net>
225 * DefaultContext.cs, Expresssion.cs, Parser.jay: Rewrite so that
226 system functions are actually expressions. Will allow for some
229 2003-08-25 Ben Maurer <bmaurer@users.sourceforge.net>
231 * XPathNavigator.cs: "Smart" behavior in Matches. Nice 8x speed
232 improvement in the method (5ms/call -> .7 ms / call) measured by
233 monodoc's rendering of N:System.
234 * Expression.cs: Utility methods to support above.
236 2003-08-13 Piers Haken <piersh@friskit.com>
239 fix MergedIterator.Clone(), now clones other's iterators
240 fix DescendantIterator.Clone(), now copies depth
241 make iterator cloning constructors more type-specific
243 2003-08-01 Piers Haken <piersh@friskit.com>
245 * Expression.cs: added NodeNamespaceTest
246 * XPathNavigator.cs: implement Select* with namespaces
248 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
250 * Iterator.cs: Allow creation of an EnumeratorIterator with an
253 2003-07-31 Piers Haken <piersh@friskit.com>
256 Nested predicates (uses ExprFilter instead)
258 make grammar look more like w3c spec
260 remove ExprStep, ExprPredicates
261 NodeTest is now a NodeSet
264 PredicateIterator now only takes a single predicate expression
267 simplified SelectTest
271 2003-07-30 Duncan Mak <duncan@ximian.com>
277 2003-07-29 Piers Haken <piersh@friskit.com>
279 * DefaultContext.cs: 'local-name' returns String, not NodeSet!
281 2003-07-29 Piers Haken <piersh@friskit.com>
285 add typesafe Evaluate* methods
287 2003-07-29 Piers Haken <piersh@friskit.com>
289 * DefaultContext.cs: fix 'substring-after'
291 2003-07-29 Piers Haken <piersh@friskit.com>
293 * Iterator.cs: fix PredicateIterator.CurrentPosition bug (it wasn't incrementing)
295 2003-07-29 Ben Maurer <bmaurer@users.sourceforge.net>
297 * Iterator.cs: dont throw exceptions on tostring ()
299 2003-07-28 Piers Haken <piersh@friskit.com>
301 * DefaultContext.cs: better handling of null argument lists
302 * XPathNavigator.cs: implement ComparePosition
304 2003-07-28 Piers Haken <piersh@friskit.com>
306 * Expression.cs: boolean operators: handle comparing .Any better
308 2003-07-28 Piers Haken <piersh@friskit.com>
310 * DefaultContext.cs: count() should return a double
311 * Expression.cs: better support for handling non-double numbers
313 2003-07-28 Piers Haken <piersh@friskit.com>
315 * DefaultContext.cs: better function param matching
317 2003-07-27 Piers Haken <piersh@friskit.com>
321 catch FormatExceptions while parsing numbers
323 2003-07-27 Piers Haken <piersh@friskit.com>
326 fix case sorting order
327 allow EvaluateNumber to take XPathResultType.Any
329 2003-07-27 Piers Haken <piersh@friskit.com>
333 don't pass null to XmlQualifiedName constructor
335 2003-07-27 Piers Haken <piersh@friskit.com>
337 * DefaultContext.cs: allow 'concat' to take arbitrary-typed arguments (spec?)
339 2003-07-27 Piers Haken <piersh@friskit.com>
341 * Expression.cs: allow EvaluateNodeSet to take XPathResultType.Any
343 2003-07-26 Piers Haken <piersh@friskit.com>
345 * Expression.cs: fix function evaluation with ambigous argument types
346 * XPathNavigator.cs: fix silly null reference bug
348 2003-07-26 Piers Haken <piersh@friskit.com>
352 ArrayListIterator->EnumeratorIterator
353 * Expression.cs: add sorting support
355 2003-07-26 Piers Haken <piersh@friskit.com>
359 move QName parsing into tokenizer
361 fix evaluating XPathResultType.Any
362 fix ExprDiv.ToString()
363 fix NodeTypeTest.ToString() (for namespace axis)
365 2003-07-25 Piers Haken <piersh@friskit.com>
367 * Expression.cs: return clone of $var evaluation
369 2003-07-26 Piers Haken <piersh@friskit.com>
371 * Iterator.cs: add setter for NamespaceManager
372 * XPathNavigator.cs: propagate NamespaceManager from context on Evaluate
373 * Expression.cs: fix func/var exception strings
375 2003-07-25 Piers Haken <piersh@friskit.com>
377 * Expression.cs: implement ExprFilter.Evaluate
379 2003-07-25 Piers Haken <piersh@friskit.com>
381 * Expression.cs: implement ExprVariable.Evaluate
383 2003-07-24 Ben Maurer <bmaurer@users.sourceforge.net>
385 * DefaultContext.cs: implement lang ()
387 2003-07-24 Piers Haken <piersh@friskit.com>
391 allow ExprUNION to take non-nodeset (eg, $var) arguments
393 2003-07-24 Piers Haken <piersh@friskit.com>
395 * Tokenizer.cs: fix variable references
401 2003-06-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
403 * XPathDocument.cs : removed Driver class and restored authors' name
404 (though it is completely rewrote).
406 2003-06-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
408 * XPathDocument.cs : Replaced existing stub class with real
409 XPathDocument implementation.
411 2003-04-28 Piers Haken <piersh@friskit.com>
413 * Parser.jay, Tokenizer.cs: more compliant lexical parsing of ambiguous tokens
415 2003-03-07 Piers Haken <piersh@friskit.com>
417 * Tokenizer.cs: allow '.'s in NCNames
419 2003-03-07 Piers Haken <piersh@friskit.com>
423 fixed function argument resolution
425 2003-02-09 Piers Haken <piersh@friskit.com>
429 * Expression.cs: fix namespace handling
431 2003-01-04 Piers Haken <piersh@friskit.com>
433 * Parser.*: Remove extraneous "using" that was stopping the build. Permanently thisi time ;-)
435 2003-02-02 Piers Haken <piersh@friskit.com>
437 * Parser.jay: add token names
438 * Tokenizer.cs: fix NCName tokenization
440 2003-01-02 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
442 * Tokenizer.cs : Fixed ParseIdentifier to allow digits.
443 (It should be a temporary fix.)
445 2002-09-22 Nick Drochak <ndrochak@gol.com>
447 * Parser.cs: Remove extraneous "using" that was stopping the build.
449 2002-09-21 Piers Haken <piersh@friskit.com>
451 * XPathException: implementation
456 * XPathNavigator.jay:
459 2002-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
461 * Parser.cs: commented out non-existent namespace (it compiles fine
462 with mcs because of a bug that is already on bugzilla).
464 2002-09-12 Piers Haken <piersh@friskit.com>
466 * Tokenizer.cs: fix parsing numbers that start with '.'
467 * DefaultContext.cs: use MS-compatible formatting of doubles
469 2002-09-12 Piers Haken <piersh@friskit.com>
471 * Iterator.cs: added NullIterator to handle unspecified contexts
472 * XPathNavigator.cs: use NullIterator insted of SelfIterator when context is unspecified.
473 * XPathNodeIterator.cs: change default _count to -1 to prevent recalculations for NullIterators
475 2002-09-12 Piers Haken <piersh@friskit.com>
477 * Expression.cs, Parser.jay: allow ExprSLASH to take a generic expression as its left argument.
478 * Iterator.cs: fix SlashIterator.Clone() when _iterRight is null.
479 * DefaultContext.cs: fix id() return type.
481 2002-09-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
483 * DefaultContext.cs: fixed bug #28840.
484 * Expression.cs: added FIXME.
486 2002-08-17 Jason Diamond <jason@injektilo.org>
488 * XPathNavigator.cs: Fixed matching on patterns that look like
489 absolute XPath expressions.
491 2002-08-17 Jason Diamond <jason@injektilo.org>
493 * XPathNavigator.cs: Added naive (but working) implementation of
496 2002-07-31 Piers Haken <piersh@friskit.com>
498 * XPathDocument.cs: simple, XmlDocument-based implementation
500 2002-07-25 Piers Haken <piersh@friskit.com>
502 * DefaultContext.cs: implement XPathFunctionName 'name()' function.
504 2002-07-17 Piers Haken <piersh@friskit.com>
506 * DefaultContext.cs: implement 'string-length()', 'normalize-space()'
507 * Parser.jay: remove redundant production
508 * Expression.cs: add switches for debugging under VS.NET
510 2002-07-17 Piers Haken <piersh@friskit.com>
512 * Expression.cs: implement nodeset/nodeset comparisons (non-optimal)
514 2002-07-15 Piers Haken <piersh@friskit.com>
517 - rename UnionIterator to MergedIterator,
518 - create new UnionIterator to implment uniqueness for '|' operator
519 - fix position bug in ArrayListIterator.Clone()
520 * Expression.cs: use new UnionIterator constructor syntax
522 2002-07-12 Piers Haken <piersh@friskit.com>
524 * Iterator.cs: PredicateIterator: handle numeric predicates
525 * Parser.jay: add some debugging support: yyparseDebug
526 * Tokenizer.cs: cleanup, include '-' chars in identifier tokens
528 2002-06-29 Piers Haken <piersh@friskit.com>
532 - NodeTest uses XPathResultType instead of internal NodeTestTypes enum
533 - remove NodeTestTypes enum
534 - remove NodeTestTypeAny (functionality provided by base now)
535 - fix ExprStep to handle wildcard QNames
537 - moved to Mono.Xml.XPath namespace
538 - use XPathResultType
539 - handle wildcard QNames
541 * Tokenizer.cs: moved to Mono.Xml.XPath namespace
543 * XPathNavigator.cs: implement
549 * XPathResultType.cs: fix enum values
551 2002-06-24 Jason Diamond <jason@injektilo.org>
553 * XPathScanner.cs: Removed.
555 2002-06-24 Dick Porter <dick@ximian.com>
557 * XmlCaseOrder.cs: Fix namespace
559 2002-06-23 Piers Haken <piersh@friskit.com>
561 * DefaultContext.cs: implemented XPathFUnctionId
562 * Iterator.cs: new ArrayListIterator for id() support
564 2002-06-23 Piers Haken <piersh@friskit.com>
566 * XPathNavigator.cs: implement:
572 - some forwarding methods
574 * XPathNodeIterator: implement caching Count
576 * Tokenizer.cs: new XPath tokenizer
577 * Parser.jay: new XPath grammar
578 * Parser.cs: new precompiled XPath grammar
579 * Expression.cs: new XPath expression objects
580 * Iterator.cs: new XPath result/context objects
581 * DefaultContext.cs: new XPath function binding context
583 2002-05-08 Tim Coleman <tim@timcoleman.com>
585 * XPathException.cs: New stub files added.
587 2002-04-12 Duncan Mak <duncan@ximian.com>
589 * XmlCaseOrder.cs: Moved to here from System.Xml.
591 2002-03-26 Jason Diamond <jason@injektilo.org>
593 * XPathScanner.cs: Now handles name tests with wildacards. Abbreviated
594 steps. Both absolution and relative abbreviated location paths.
596 2002-03-25 Jason Diamond <jason@injektilo.org>
598 * XPathScanner.cs: Added new file. This class is supposed to be internal
599 but that would make it impossible to test.
601 2002-03-08 Duncan Mak <duncan@ximian.com>
603 * XPathNamespaceScope.cs:
605 * XPathResultType.cs:
607 * XmlSortOrder.cs: Used EnumCheck and realigned elements to be compatible with MS
608 implementation. XPathResultType is interesting as EnumCheck does
609 not show the Navigator element, but shows the String element twice.
611 2002-03-08 Jason Diamond <jason@injektilo.org>
613 * XmlDataType.cs, XmlSortOrder.cs, XPathNodeType.cs: Added files.
615 2002-03-06 Jason Diamond <jason@injektilo.org>
617 * ChangeLog: Added to this directory.
619 * XPathExpression.cs, XPathNamespaceScope.cs, XPathNodeIterator.cs,
620 XPathResultType.cs: New files.
622 * XPathNavigator.cs: Stubbed out all properties and methods.