1 2004-06-18 Atsushi Enomoto <atsushi@ximian.com>
3 * DefaultContext.cs : Globalization.
4 * Iterator.cs : In SlashIterator.MoveNext() position might keep 0
5 in case of empty list. Thus extraneous iteration might happened.
6 Removed unused (and clone unsafe) EnumeratorIterator.
8 2004-06-06 Atsushi Enomoto <atsushi@ximian.com>
10 * XPathDocument.s : The previous patch is still incomplete to close.
12 2004-06-05 Atsushi Enomoto <atsushi@ximian.com>
14 * XPathDocument.cs : close self-opened XmlTextReader in .ctor().
16 2004-06-03 Atsushi Enomoto <atsushi@ximian.com>
18 * Expression.cs : LookupNamespace() only allows already-atomized names.
19 * XPathEditableNavigator.cs : removed incorrect set_OuterXml() and
22 2004-05-22 Atsushi Enomoto <atsushi@ximian.com>
24 * DefaultContext.cs : Add XPathNavigator input support for ToBoolean()
26 * Expression.cs : In Equality comparison, evaluate XPathNavigator in
27 the same as well as NodeSet. This fixes bug #59134.
29 2004-05-22 Atsushi Enomoto <atsushi@ximian.com>
31 * XPathAtomicValue.cs : missed NET_2_0.
33 2004-05-22 Atsushi Enomoto <atsushi@ximian.com>
35 * IXPathChangeNavigable.cs,
37 NodeChangedEventArgs.cs,
38 NodeChangedEventHandler.cs,
40 XPathChangeNavigator.cs,
41 XPathDocumentNodeChangedAction.cs,
42 XPathEditableNavigator.cs,
45 XmlNodeChangeType.cs : added NET_2_0 classes.
47 XPathNavigator.cs : updated NET_2_0 members.
49 2004-05-20 Atsushi Enomoto <atsushi@ximian.com>
51 * Expression.cs : We should not catch all kind of exception. Just
52 throwing any kind of exception would be preferable.
53 Added support for XPathNavigator values.
55 2004-05-13 Atsushi Enomoto <atsushi@ximian.com>
57 * DefaultContext.cs : Removed MonoTODO. done.
58 * Expression.cs : handle XPathResultType.Navigator in some places and
59 removed MonoTODO. Mark MonoTODO with explicit comments (though they
60 are mostly pointing out possibilities of optimization).
61 Removed extra check that depended on the old bugs.
62 * XPathResultType.cs : Fixed .Navigator that had the same value as
65 2004-05-12 Atsushi Enomoto <atsushi@ximian.com>
67 * Parser.jay : made class internal.
69 2004-03-16 Atsushi Enomoto <atsushi@ximian.com>
71 * XPathNavigator.cs, Iterator.cs : Considered detached nodes, the
72 result of MoveToParent() should be checked.
74 2004-02-17 Atsushi Enomoto <atsushi@ximian.com>
76 * XPathNavigator.cs : Only child and attribute axes are allowed for
78 * Expression.cs : Added IsPositional property.
79 * DefaultContext.cs : Added some overrides.
81 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
83 * XPathNavigator.cs : no, its still not ok. comment out now.
85 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
87 * Expression.cs : Added EvaluatedNodeType and NeedAbsoluteMatching
88 to reduce extraneous Matches() trial.
89 * Iterator.cs : Removed unused MergedIterator.
90 * XPathNavigator.cs : Optimized Matches() not to evaluate ancestors
91 unnecessarily. (Test with NeedAbsoluteMatching).
93 2004-02-10 Atsushi Enomoto <atsushi@ximian.com>
95 * Iterator.cs : Added overriden Count properties for some iterators
96 (this fixes the half of #50678).
97 Added ListIterator class (which can reduce GetEnumerator()).
98 In some places we can omit clone for Current property, so added
99 some check logic (It has no effect as yet).
100 * Expression.cs, DefaultContext.cs :
101 use ListIterator instead of EnumeratorIterator.
103 2004-02-08 Atsushi Enomoto <atsushi@ximian.com>
105 * DefaultContext.cs, Expression.cs, Iterator.cs :
106 tiny foreach elimination.
108 2004-02-05 Atsushi Enomoto <atsushi@ximian.com>
110 * DefaultContext.cs : trivial processing order fix.
112 2004-01-27 Atsushi Enomoto <atsushi@ximian.com>
114 * DefaultContext.cs : Avoid exception if possible.
115 * Iterator.cs : Fixed PrecedingSiblingIterator.MoveNext(). When the
116 nav was positioned at the first, it incorrectly points itself.
117 Don't add names to name table while it is useless and expensive.
119 2004-01-08 Nick Drochak <ndrochak@ieee.org>
121 * Iterator.cs: Removed unused variable.
123 2003-12-18 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
125 * Parser.jay : now it supresses error output from jay.
126 * DefaultContext.cs : (XPathFunctionSubstring) exclude -Infinity.
127 * Tokenizer.cs : better error message.
128 * XPathDocument.cs : Use XmlValidatingReader to support id() function.
129 (just found MS.NET actually supports it)
131 2003-12-16 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
133 * Iterator.cs : On its iteration, moving Current must not affect to
134 MoveNext(). To assure this, Current must be a clone of navigator.
137 2003-12-07 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
139 * Tokenizer.cs : Removed some TODOs. (trivial ;-)
140 * Iterator.cs : ParensIterator can inherit from BaseIterator.
141 SlashIterator copy .ctor() always failed to clone. This fixes Count.
143 2003-12-03 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
145 * Expression.cs : XPathSorters.Compare() should compare document
146 position. See last sentence of XSLT 1.0 secion 10.
148 2003-12-03 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
150 * DefaultContext.cs : Overrode all functions' ToString().
151 XPathFunctions.ToNumber() trims whitespaces at both side.
152 Fixed NullReferenceException in normalize-space().
153 * Iterator.cs : Fixed AncestorOrSelfIterator.MoveNext() didn't handle
154 attribute or namespace node correctly.
155 SlashIterator.Clone() didn't clone "next node iterator" correctly.
156 EnumeratorIterator.ctor() should raise an error (not at Clone())
157 when the target IEnumerator is not ICloneable.
159 2003-11-28 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
161 * Expression.cs : namespace axis now traversed in reverse order, so it
163 * Iterator.cs : UnionIterator.Clone() was incomplete.
164 NamespaceItarator() should be reverse order (special handling
165 because of XPathNavigator specification).
167 2003-11-24 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
169 * Iterator.cs : PrecedingIterator.MoveNext() now breaks up at Root.
170 * XPathNavigator.cs : ComparePosition() didn't handle attributes
173 2003-11-24 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
175 * Parser.jay, Expression.cs, Iterator.cs :
176 Added ExprParens and ParensIterator classes which is used to handle
177 precedence of parenthesized expressions.
178 (e.g. consider "(preceding::*)[3]" and "preceding::[3]" )
180 * Expression.cs, Iterator.cs :
181 Added RequireSorting property for each Expr and BaseIterator classes.
182 SlashIterator.MoveNext() now considers correct sorting. But
183 considering performance, it separates two logics, sorted and sortless
184 depending on RequireSorting of left iterator and right expression.
187 SimpleIterator.ctor() should consider when nav is null.
188 FollowingIterator.MoveNext() and PrecedingIterator.MoveNext() should
189 not return any nodes.
190 AncestorIterator and AncestorOrSelfIterator copy ctr() should clone
192 AncestorIterator.MoveNext() should skip Root if context node is
194 FollowingIterator.MoveNext() should not handle children of context
196 PrecedingIterator.MoveNext() should skip its ancestors.
197 AxisIterator.ReverseAxis should be dependent on its containing iter.
198 UnionIterator.MoveNext() should consider comparison of nodes in
199 different document. The behavior is implementation dependent.
202 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
204 * Added XPathComparer.cs
205 * DefaultContext.cs : Fixed XPathFunctionId.Evaluate() to iterate base
206 iterator correctly, and sort results.
208 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
210 * DefaultContext.cs : Imcomplete fix ;-)
212 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
214 * DefaultContext.cs : XPathFunctions.ToNumber() should catch overflow.
215 XPathFunctionId.cs : Exposed Id expression.
216 * Expression.cs : Added ExprLiteral.Value, and class ExprParens (it
217 will be used to solve evaluation precedence problem).
219 2003-11-09 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
221 * Iterator.cs : Fixed SlashIterator that might return nodes 1)in
222 inconsistent order, and 2)may return duplicate result nodes.
224 2003-11-06 Ben Maurer <bmaurer@users.sourceforge.net>
226 * Iterator.cs: (AxisIterator.ComparablePosition): Remove. Let
227 it inherit from the base class. This made b[2] evaluated on
228 <a /><b /><c /><a /><b /><c /> return the first b node because
229 in the ChildIterator it was the second node and seemed to satsify
232 2003-11-04 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
234 * Iterator.cs : Added bool ReverseAxis property to identify whether
235 the iterator is in reverse order or not. Added ComparablePosition
236 for correct position comparison for PredicateIterator and reverse-
237 order-axes. Modified AncestorIterator, AncestorOrSelfIterator,
238 PrecedingIterator and PrecedingSiblingIterator to make MoveNext()
239 return their nodes in document order. This fixes bugzilla #39079.
241 2003-10-15 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
243 * Iterator.cs : DescendantIterator and FollowingIterator also should
244 not MoveNext() after they reached to the end.
246 2003-10-13 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
248 * Iterator.cs : Fixed UnionIterator who ignores document order.
249 Fixed SlashIterator whose MoveNext() should finish at its end.
251 2003-09-27 Ben Maurer <bmaurer@users.sourceforge.net>
253 * Iterator.cs, Expression.cs, XPathNavigator.cs: In AxisIterator
254 use NameTable so we dont call strcmp.
256 2003-09-27 Ben Maurer <bmaurer@users.sourceforge.net>
258 * DefaultContext.cs (translate): translate ("abc", "c", "") = "ab"
260 * Iterator.cs, Expression.cs: All axes are
261 SimpleIterators. SimpleIterators are gaurenteed to give the same
262 XPathNavigator in Current. Make AxisIterator take a
263 SimpleIterator, not any old BaseIterator. Will allow us to make
264 NameTable optimizations and avoid quite a few strcmp's.
266 2003-09-24 Ben Maurer <bmaurer@users.sourceforge.net>
268 * Expression.cs: make // work right, must use another slash itr.
270 2003-09-21 Ben Maurer <bmaurer@users.sourceforge.net>
272 * Expression.cs: cant use $$ before assigned.
274 2003-09-21 Ben Maurer <bmaurer@users.sourceforge.net>
276 * Expression.cs, Parser.jay, XPathNavigator.cs: api beautification.
278 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
280 * Expression.cs: num != double.NaN does not work.
282 2003-09-19 Ben Maurer <bmaurer@users.sourceforge.net>
284 * Expression.cs: in NodeTypeTest dont throw an exception if it is
285 an unknown node type (allows for better Pattern debugging).
287 2003-09-17 Ben Maurer <bmaurer@users.sourceforge.net>
289 * DefaultContext.cs: implement sum () and translate ().
291 2003-09-13 Ben Maurer <bmaurer@users.sourceforge.net>
293 * XPathNavigator.cs: Make methods where you pass in the context,
294 so that we dont have to clone expressions so much.
296 2003-09-06 Ben Maurer <bmaurer@users.sourceforge.net>
298 * DefaultContext.cs, Expresssion.cs, Parser.jay: Rewrite so that
299 system functions are actually expressions. Will allow for some
302 2003-08-25 Ben Maurer <bmaurer@users.sourceforge.net>
304 * XPathNavigator.cs: "Smart" behavior in Matches. Nice 8x speed
305 improvement in the method (5ms/call -> .7 ms / call) measured by
306 monodoc's rendering of N:System.
307 * Expression.cs: Utility methods to support above.
309 2003-08-13 Piers Haken <piersh@friskit.com>
312 fix MergedIterator.Clone(), now clones other's iterators
313 fix DescendantIterator.Clone(), now copies depth
314 make iterator cloning constructors more type-specific
316 2003-08-01 Piers Haken <piersh@friskit.com>
318 * Expression.cs: added NodeNamespaceTest
319 * XPathNavigator.cs: implement Select* with namespaces
321 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
323 * Iterator.cs: Allow creation of an EnumeratorIterator with an
326 2003-07-31 Piers Haken <piersh@friskit.com>
329 Nested predicates (uses ExprFilter instead)
331 make grammar look more like w3c spec
333 remove ExprStep, ExprPredicates
334 NodeTest is now a NodeSet
337 PredicateIterator now only takes a single predicate expression
340 simplified SelectTest
344 2003-07-30 Duncan Mak <duncan@ximian.com>
350 2003-07-29 Piers Haken <piersh@friskit.com>
352 * DefaultContext.cs: 'local-name' returns String, not NodeSet!
354 2003-07-29 Piers Haken <piersh@friskit.com>
358 add typesafe Evaluate* methods
360 2003-07-29 Piers Haken <piersh@friskit.com>
362 * DefaultContext.cs: fix 'substring-after'
364 2003-07-29 Piers Haken <piersh@friskit.com>
366 * Iterator.cs: fix PredicateIterator.CurrentPosition bug (it wasn't incrementing)
368 2003-07-29 Ben Maurer <bmaurer@users.sourceforge.net>
370 * Iterator.cs: dont throw exceptions on tostring ()
372 2003-07-28 Piers Haken <piersh@friskit.com>
374 * DefaultContext.cs: better handling of null argument lists
375 * XPathNavigator.cs: implement ComparePosition
377 2003-07-28 Piers Haken <piersh@friskit.com>
379 * Expression.cs: boolean operators: handle comparing .Any better
381 2003-07-28 Piers Haken <piersh@friskit.com>
383 * DefaultContext.cs: count() should return a double
384 * Expression.cs: better support for handling non-double numbers
386 2003-07-28 Piers Haken <piersh@friskit.com>
388 * DefaultContext.cs: better function param matching
390 2003-07-27 Piers Haken <piersh@friskit.com>
394 catch FormatExceptions while parsing numbers
396 2003-07-27 Piers Haken <piersh@friskit.com>
399 fix case sorting order
400 allow EvaluateNumber to take XPathResultType.Any
402 2003-07-27 Piers Haken <piersh@friskit.com>
406 don't pass null to XmlQualifiedName constructor
408 2003-07-27 Piers Haken <piersh@friskit.com>
410 * DefaultContext.cs: allow 'concat' to take arbitrary-typed arguments (spec?)
412 2003-07-27 Piers Haken <piersh@friskit.com>
414 * Expression.cs: allow EvaluateNodeSet to take XPathResultType.Any
416 2003-07-26 Piers Haken <piersh@friskit.com>
418 * Expression.cs: fix function evaluation with ambigous argument types
419 * XPathNavigator.cs: fix silly null reference bug
421 2003-07-26 Piers Haken <piersh@friskit.com>
425 ArrayListIterator->EnumeratorIterator
426 * Expression.cs: add sorting support
428 2003-07-26 Piers Haken <piersh@friskit.com>
432 move QName parsing into tokenizer
434 fix evaluating XPathResultType.Any
435 fix ExprDiv.ToString()
436 fix NodeTypeTest.ToString() (for namespace axis)
438 2003-07-25 Piers Haken <piersh@friskit.com>
440 * Expression.cs: return clone of $var evaluation
442 2003-07-26 Piers Haken <piersh@friskit.com>
444 * Iterator.cs: add setter for NamespaceManager
445 * XPathNavigator.cs: propagate NamespaceManager from context on Evaluate
446 * Expression.cs: fix func/var exception strings
448 2003-07-25 Piers Haken <piersh@friskit.com>
450 * Expression.cs: implement ExprFilter.Evaluate
452 2003-07-25 Piers Haken <piersh@friskit.com>
454 * Expression.cs: implement ExprVariable.Evaluate
456 2003-07-24 Ben Maurer <bmaurer@users.sourceforge.net>
458 * DefaultContext.cs: implement lang ()
460 2003-07-24 Piers Haken <piersh@friskit.com>
464 allow ExprUNION to take non-nodeset (eg, $var) arguments
466 2003-07-24 Piers Haken <piersh@friskit.com>
468 * Tokenizer.cs: fix variable references
474 2003-06-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
476 * XPathDocument.cs : removed Driver class and restored authors' name
477 (though it is completely rewrote).
479 2003-06-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
481 * XPathDocument.cs : Replaced existing stub class with real
482 XPathDocument implementation.
484 2003-04-28 Piers Haken <piersh@friskit.com>
486 * Parser.jay, Tokenizer.cs: more compliant lexical parsing of ambiguous tokens
488 2003-03-07 Piers Haken <piersh@friskit.com>
490 * Tokenizer.cs: allow '.'s in NCNames
492 2003-03-07 Piers Haken <piersh@friskit.com>
496 fixed function argument resolution
498 2003-02-09 Piers Haken <piersh@friskit.com>
502 * Expression.cs: fix namespace handling
504 2003-01-04 Piers Haken <piersh@friskit.com>
506 * Parser.*: Remove extraneous "using" that was stopping the build. Permanently thisi time ;-)
508 2003-02-02 Piers Haken <piersh@friskit.com>
510 * Parser.jay: add token names
511 * Tokenizer.cs: fix NCName tokenization
513 2003-01-02 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
515 * Tokenizer.cs : Fixed ParseIdentifier to allow digits.
516 (It should be a temporary fix.)
518 2002-09-22 Nick Drochak <ndrochak@gol.com>
520 * Parser.cs: Remove extraneous "using" that was stopping the build.
522 2002-09-21 Piers Haken <piersh@friskit.com>
524 * XPathException: implementation
529 * XPathNavigator.jay:
532 2002-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
534 * Parser.cs: commented out non-existent namespace (it compiles fine
535 with mcs because of a bug that is already on bugzilla).
537 2002-09-12 Piers Haken <piersh@friskit.com>
539 * Tokenizer.cs: fix parsing numbers that start with '.'
540 * DefaultContext.cs: use MS-compatible formatting of doubles
542 2002-09-12 Piers Haken <piersh@friskit.com>
544 * Iterator.cs: added NullIterator to handle unspecified contexts
545 * XPathNavigator.cs: use NullIterator insted of SelfIterator when context is unspecified.
546 * XPathNodeIterator.cs: change default _count to -1 to prevent recalculations for NullIterators
548 2002-09-12 Piers Haken <piersh@friskit.com>
550 * Expression.cs, Parser.jay: allow ExprSLASH to take a generic expression as its left argument.
551 * Iterator.cs: fix SlashIterator.Clone() when _iterRight is null.
552 * DefaultContext.cs: fix id() return type.
554 2002-09-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
556 * DefaultContext.cs: fixed bug #28840.
557 * Expression.cs: added FIXME.
559 2002-08-17 Jason Diamond <jason@injektilo.org>
561 * XPathNavigator.cs: Fixed matching on patterns that look like
562 absolute XPath expressions.
564 2002-08-17 Jason Diamond <jason@injektilo.org>
566 * XPathNavigator.cs: Added naive (but working) implementation of
569 2002-07-31 Piers Haken <piersh@friskit.com>
571 * XPathDocument.cs: simple, XmlDocument-based implementation
573 2002-07-25 Piers Haken <piersh@friskit.com>
575 * DefaultContext.cs: implement XPathFunctionName 'name()' function.
577 2002-07-17 Piers Haken <piersh@friskit.com>
579 * DefaultContext.cs: implement 'string-length()', 'normalize-space()'
580 * Parser.jay: remove redundant production
581 * Expression.cs: add switches for debugging under VS.NET
583 2002-07-17 Piers Haken <piersh@friskit.com>
585 * Expression.cs: implement nodeset/nodeset comparisons (non-optimal)
587 2002-07-15 Piers Haken <piersh@friskit.com>
590 - rename UnionIterator to MergedIterator,
591 - create new UnionIterator to implment uniqueness for '|' operator
592 - fix position bug in ArrayListIterator.Clone()
593 * Expression.cs: use new UnionIterator constructor syntax
595 2002-07-12 Piers Haken <piersh@friskit.com>
597 * Iterator.cs: PredicateIterator: handle numeric predicates
598 * Parser.jay: add some debugging support: yyparseDebug
599 * Tokenizer.cs: cleanup, include '-' chars in identifier tokens
601 2002-06-29 Piers Haken <piersh@friskit.com>
605 - NodeTest uses XPathResultType instead of internal NodeTestTypes enum
606 - remove NodeTestTypes enum
607 - remove NodeTestTypeAny (functionality provided by base now)
608 - fix ExprStep to handle wildcard QNames
610 - moved to Mono.Xml.XPath namespace
611 - use XPathResultType
612 - handle wildcard QNames
614 * Tokenizer.cs: moved to Mono.Xml.XPath namespace
616 * XPathNavigator.cs: implement
622 * XPathResultType.cs: fix enum values
624 2002-06-24 Jason Diamond <jason@injektilo.org>
626 * XPathScanner.cs: Removed.
628 2002-06-24 Dick Porter <dick@ximian.com>
630 * XmlCaseOrder.cs: Fix namespace
632 2002-06-23 Piers Haken <piersh@friskit.com>
634 * DefaultContext.cs: implemented XPathFUnctionId
635 * Iterator.cs: new ArrayListIterator for id() support
637 2002-06-23 Piers Haken <piersh@friskit.com>
639 * XPathNavigator.cs: implement:
645 - some forwarding methods
647 * XPathNodeIterator: implement caching Count
649 * Tokenizer.cs: new XPath tokenizer
650 * Parser.jay: new XPath grammar
651 * Parser.cs: new precompiled XPath grammar
652 * Expression.cs: new XPath expression objects
653 * Iterator.cs: new XPath result/context objects
654 * DefaultContext.cs: new XPath function binding context
656 2002-05-08 Tim Coleman <tim@timcoleman.com>
658 * XPathException.cs: New stub files added.
660 2002-04-12 Duncan Mak <duncan@ximian.com>
662 * XmlCaseOrder.cs: Moved to here from System.Xml.
664 2002-03-26 Jason Diamond <jason@injektilo.org>
666 * XPathScanner.cs: Now handles name tests with wildacards. Abbreviated
667 steps. Both absolution and relative abbreviated location paths.
669 2002-03-25 Jason Diamond <jason@injektilo.org>
671 * XPathScanner.cs: Added new file. This class is supposed to be internal
672 but that would make it impossible to test.
674 2002-03-08 Duncan Mak <duncan@ximian.com>
676 * XPathNamespaceScope.cs:
678 * XPathResultType.cs:
680 * XmlSortOrder.cs: Used EnumCheck and realigned elements to be compatible with MS
681 implementation. XPathResultType is interesting as EnumCheck does
682 not show the Navigator element, but shows the String element twice.
684 2002-03-08 Jason Diamond <jason@injektilo.org>
686 * XmlDataType.cs, XmlSortOrder.cs, XPathNodeType.cs: Added files.
688 2002-03-06 Jason Diamond <jason@injektilo.org>
690 * ChangeLog: Added to this directory.
692 * XPathExpression.cs, XPathNamespaceScope.cs, XPathNodeIterator.cs,
693 XPathResultType.cs: New files.
695 * XPathNavigator.cs: Stubbed out all properties and methods.