1 2004-06-03 Atsushi Enomoto <atsushi@ximian.com>
3 * Expression.cs : LookupNamespace() only allows already-atomized names.
4 * XPathEditableNavigator.cs : removed incorrect set_OuterXml() and
7 2004-05-22 Atsushi Enomoto <atsushi@ximian.com>
9 * DefaultContext.cs : Add XPathNavigator input support for ToBoolean()
11 * Expression.cs : In Equality comparison, evaluate XPathNavigator in
12 the same as well as NodeSet. This fixes bug #59134.
14 2004-05-22 Atsushi Enomoto <atsushi@ximian.com>
16 * XPathAtomicValue.cs : missed NET_2_0.
18 2004-05-22 Atsushi Enomoto <atsushi@ximian.com>
20 * IXPathChangeNavigable.cs,
22 NodeChangedEventArgs.cs,
23 NodeChangedEventHandler.cs,
25 XPathChangeNavigator.cs,
26 XPathDocumentNodeChangedAction.cs,
27 XPathEditableNavigator.cs,
30 XmlNodeChangeType.cs : added NET_2_0 classes.
32 XPathNavigator.cs : updated NET_2_0 members.
34 2004-05-20 Atsushi Enomoto <atsushi@ximian.com>
36 * Expression.cs : We should not catch all kind of exception. Just
37 throwing any kind of exception would be preferable.
38 Added support for XPathNavigator values.
40 2004-05-13 Atsushi Enomoto <atsushi@ximian.com>
42 * DefaultContext.cs : Removed MonoTODO. done.
43 * Expression.cs : handle XPathResultType.Navigator in some places and
44 removed MonoTODO. Mark MonoTODO with explicit comments (though they
45 are mostly pointing out possibilities of optimization).
46 Removed extra check that depended on the old bugs.
47 * XPathResultType.cs : Fixed .Navigator that had the same value as
50 2004-05-12 Atsushi Enomoto <atsushi@ximian.com>
52 * Parser.jay : made class internal.
54 2004-03-16 Atsushi Enomoto <atsushi@ximian.com>
56 * XPathNavigator.cs, Iterator.cs : Considered detached nodes, the
57 result of MoveToParent() should be checked.
59 2004-02-17 Atsushi Enomoto <atsushi@ximian.com>
61 * XPathNavigator.cs : Only child and attribute axes are allowed for
63 * Expression.cs : Added IsPositional property.
64 * DefaultContext.cs : Added some overrides.
66 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
68 * XPathNavigator.cs : no, its still not ok. comment out now.
70 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
72 * Expression.cs : Added EvaluatedNodeType and NeedAbsoluteMatching
73 to reduce extraneous Matches() trial.
74 * Iterator.cs : Removed unused MergedIterator.
75 * XPathNavigator.cs : Optimized Matches() not to evaluate ancestors
76 unnecessarily. (Test with NeedAbsoluteMatching).
78 2004-02-10 Atsushi Enomoto <atsushi@ximian.com>
80 * Iterator.cs : Added overriden Count properties for some iterators
81 (this fixes the half of #50678).
82 Added ListIterator class (which can reduce GetEnumerator()).
83 In some places we can omit clone for Current property, so added
84 some check logic (It has no effect as yet).
85 * Expression.cs, DefaultContext.cs :
86 use ListIterator instead of EnumeratorIterator.
88 2004-02-08 Atsushi Enomoto <atsushi@ximian.com>
90 * DefaultContext.cs, Expression.cs, Iterator.cs :
91 tiny foreach elimination.
93 2004-02-05 Atsushi Enomoto <atsushi@ximian.com>
95 * DefaultContext.cs : trivial processing order fix.
97 2004-01-27 Atsushi Enomoto <atsushi@ximian.com>
99 * DefaultContext.cs : Avoid exception if possible.
100 * Iterator.cs : Fixed PrecedingSiblingIterator.MoveNext(). When the
101 nav was positioned at the first, it incorrectly points itself.
102 Don't add names to name table while it is useless and expensive.
104 2004-01-08 Nick Drochak <ndrochak@ieee.org>
106 * Iterator.cs: Removed unused variable.
108 2003-12-18 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
110 * Parser.jay : now it supresses error output from jay.
111 * DefaultContext.cs : (XPathFunctionSubstring) exclude -Infinity.
112 * Tokenizer.cs : better error message.
113 * XPathDocument.cs : Use XmlValidatingReader to support id() function.
114 (just found MS.NET actually supports it)
116 2003-12-16 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
118 * Iterator.cs : On its iteration, moving Current must not affect to
119 MoveNext(). To assure this, Current must be a clone of navigator.
122 2003-12-07 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
124 * Tokenizer.cs : Removed some TODOs. (trivial ;-)
125 * Iterator.cs : ParensIterator can inherit from BaseIterator.
126 SlashIterator copy .ctor() always failed to clone. This fixes Count.
128 2003-12-03 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
130 * Expression.cs : XPathSorters.Compare() should compare document
131 position. See last sentence of XSLT 1.0 secion 10.
133 2003-12-03 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
135 * DefaultContext.cs : Overrode all functions' ToString().
136 XPathFunctions.ToNumber() trims whitespaces at both side.
137 Fixed NullReferenceException in normalize-space().
138 * Iterator.cs : Fixed AncestorOrSelfIterator.MoveNext() didn't handle
139 attribute or namespace node correctly.
140 SlashIterator.Clone() didn't clone "next node iterator" correctly.
141 EnumeratorIterator.ctor() should raise an error (not at Clone())
142 when the target IEnumerator is not ICloneable.
144 2003-11-28 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
146 * Expression.cs : namespace axis now traversed in reverse order, so it
148 * Iterator.cs : UnionIterator.Clone() was incomplete.
149 NamespaceItarator() should be reverse order (special handling
150 because of XPathNavigator specification).
152 2003-11-24 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
154 * Iterator.cs : PrecedingIterator.MoveNext() now breaks up at Root.
155 * XPathNavigator.cs : ComparePosition() didn't handle attributes
158 2003-11-24 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
160 * Parser.jay, Expression.cs, Iterator.cs :
161 Added ExprParens and ParensIterator classes which is used to handle
162 precedence of parenthesized expressions.
163 (e.g. consider "(preceding::*)[3]" and "preceding::[3]" )
165 * Expression.cs, Iterator.cs :
166 Added RequireSorting property for each Expr and BaseIterator classes.
167 SlashIterator.MoveNext() now considers correct sorting. But
168 considering performance, it separates two logics, sorted and sortless
169 depending on RequireSorting of left iterator and right expression.
172 SimpleIterator.ctor() should consider when nav is null.
173 FollowingIterator.MoveNext() and PrecedingIterator.MoveNext() should
174 not return any nodes.
175 AncestorIterator and AncestorOrSelfIterator copy ctr() should clone
177 AncestorIterator.MoveNext() should skip Root if context node is
179 FollowingIterator.MoveNext() should not handle children of context
181 PrecedingIterator.MoveNext() should skip its ancestors.
182 AxisIterator.ReverseAxis should be dependent on its containing iter.
183 UnionIterator.MoveNext() should consider comparison of nodes in
184 different document. The behavior is implementation dependent.
187 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
189 * Added XPathComparer.cs
190 * DefaultContext.cs : Fixed XPathFunctionId.Evaluate() to iterate base
191 iterator correctly, and sort results.
193 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
195 * DefaultContext.cs : Imcomplete fix ;-)
197 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
199 * DefaultContext.cs : XPathFunctions.ToNumber() should catch overflow.
200 XPathFunctionId.cs : Exposed Id expression.
201 * Expression.cs : Added ExprLiteral.Value, and class ExprParens (it
202 will be used to solve evaluation precedence problem).
204 2003-11-09 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
206 * Iterator.cs : Fixed SlashIterator that might return nodes 1)in
207 inconsistent order, and 2)may return duplicate result nodes.
209 2003-11-06 Ben Maurer <bmaurer@users.sourceforge.net>
211 * Iterator.cs: (AxisIterator.ComparablePosition): Remove. Let
212 it inherit from the base class. This made b[2] evaluated on
213 <a /><b /><c /><a /><b /><c /> return the first b node because
214 in the ChildIterator it was the second node and seemed to satsify
217 2003-11-04 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
219 * Iterator.cs : Added bool ReverseAxis property to identify whether
220 the iterator is in reverse order or not. Added ComparablePosition
221 for correct position comparison for PredicateIterator and reverse-
222 order-axes. Modified AncestorIterator, AncestorOrSelfIterator,
223 PrecedingIterator and PrecedingSiblingIterator to make MoveNext()
224 return their nodes in document order. This fixes bugzilla #39079.
226 2003-10-15 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
228 * Iterator.cs : DescendantIterator and FollowingIterator also should
229 not MoveNext() after they reached to the end.
231 2003-10-13 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
233 * Iterator.cs : Fixed UnionIterator who ignores document order.
234 Fixed SlashIterator whose MoveNext() should finish at its end.
236 2003-09-27 Ben Maurer <bmaurer@users.sourceforge.net>
238 * Iterator.cs, Expression.cs, XPathNavigator.cs: In AxisIterator
239 use NameTable so we dont call strcmp.
241 2003-09-27 Ben Maurer <bmaurer@users.sourceforge.net>
243 * DefaultContext.cs (translate): translate ("abc", "c", "") = "ab"
245 * Iterator.cs, Expression.cs: All axes are
246 SimpleIterators. SimpleIterators are gaurenteed to give the same
247 XPathNavigator in Current. Make AxisIterator take a
248 SimpleIterator, not any old BaseIterator. Will allow us to make
249 NameTable optimizations and avoid quite a few strcmp's.
251 2003-09-24 Ben Maurer <bmaurer@users.sourceforge.net>
253 * Expression.cs: make // work right, must use another slash itr.
255 2003-09-21 Ben Maurer <bmaurer@users.sourceforge.net>
257 * Expression.cs: cant use $$ before assigned.
259 2003-09-21 Ben Maurer <bmaurer@users.sourceforge.net>
261 * Expression.cs, Parser.jay, XPathNavigator.cs: api beautification.
263 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
265 * Expression.cs: num != double.NaN does not work.
267 2003-09-19 Ben Maurer <bmaurer@users.sourceforge.net>
269 * Expression.cs: in NodeTypeTest dont throw an exception if it is
270 an unknown node type (allows for better Pattern debugging).
272 2003-09-17 Ben Maurer <bmaurer@users.sourceforge.net>
274 * DefaultContext.cs: implement sum () and translate ().
276 2003-09-13 Ben Maurer <bmaurer@users.sourceforge.net>
278 * XPathNavigator.cs: Make methods where you pass in the context,
279 so that we dont have to clone expressions so much.
281 2003-09-06 Ben Maurer <bmaurer@users.sourceforge.net>
283 * DefaultContext.cs, Expresssion.cs, Parser.jay: Rewrite so that
284 system functions are actually expressions. Will allow for some
287 2003-08-25 Ben Maurer <bmaurer@users.sourceforge.net>
289 * XPathNavigator.cs: "Smart" behavior in Matches. Nice 8x speed
290 improvement in the method (5ms/call -> .7 ms / call) measured by
291 monodoc's rendering of N:System.
292 * Expression.cs: Utility methods to support above.
294 2003-08-13 Piers Haken <piersh@friskit.com>
297 fix MergedIterator.Clone(), now clones other's iterators
298 fix DescendantIterator.Clone(), now copies depth
299 make iterator cloning constructors more type-specific
301 2003-08-01 Piers Haken <piersh@friskit.com>
303 * Expression.cs: added NodeNamespaceTest
304 * XPathNavigator.cs: implement Select* with namespaces
306 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
308 * Iterator.cs: Allow creation of an EnumeratorIterator with an
311 2003-07-31 Piers Haken <piersh@friskit.com>
314 Nested predicates (uses ExprFilter instead)
316 make grammar look more like w3c spec
318 remove ExprStep, ExprPredicates
319 NodeTest is now a NodeSet
322 PredicateIterator now only takes a single predicate expression
325 simplified SelectTest
329 2003-07-30 Duncan Mak <duncan@ximian.com>
335 2003-07-29 Piers Haken <piersh@friskit.com>
337 * DefaultContext.cs: 'local-name' returns String, not NodeSet!
339 2003-07-29 Piers Haken <piersh@friskit.com>
343 add typesafe Evaluate* methods
345 2003-07-29 Piers Haken <piersh@friskit.com>
347 * DefaultContext.cs: fix 'substring-after'
349 2003-07-29 Piers Haken <piersh@friskit.com>
351 * Iterator.cs: fix PredicateIterator.CurrentPosition bug (it wasn't incrementing)
353 2003-07-29 Ben Maurer <bmaurer@users.sourceforge.net>
355 * Iterator.cs: dont throw exceptions on tostring ()
357 2003-07-28 Piers Haken <piersh@friskit.com>
359 * DefaultContext.cs: better handling of null argument lists
360 * XPathNavigator.cs: implement ComparePosition
362 2003-07-28 Piers Haken <piersh@friskit.com>
364 * Expression.cs: boolean operators: handle comparing .Any better
366 2003-07-28 Piers Haken <piersh@friskit.com>
368 * DefaultContext.cs: count() should return a double
369 * Expression.cs: better support for handling non-double numbers
371 2003-07-28 Piers Haken <piersh@friskit.com>
373 * DefaultContext.cs: better function param matching
375 2003-07-27 Piers Haken <piersh@friskit.com>
379 catch FormatExceptions while parsing numbers
381 2003-07-27 Piers Haken <piersh@friskit.com>
384 fix case sorting order
385 allow EvaluateNumber to take XPathResultType.Any
387 2003-07-27 Piers Haken <piersh@friskit.com>
391 don't pass null to XmlQualifiedName constructor
393 2003-07-27 Piers Haken <piersh@friskit.com>
395 * DefaultContext.cs: allow 'concat' to take arbitrary-typed arguments (spec?)
397 2003-07-27 Piers Haken <piersh@friskit.com>
399 * Expression.cs: allow EvaluateNodeSet to take XPathResultType.Any
401 2003-07-26 Piers Haken <piersh@friskit.com>
403 * Expression.cs: fix function evaluation with ambigous argument types
404 * XPathNavigator.cs: fix silly null reference bug
406 2003-07-26 Piers Haken <piersh@friskit.com>
410 ArrayListIterator->EnumeratorIterator
411 * Expression.cs: add sorting support
413 2003-07-26 Piers Haken <piersh@friskit.com>
417 move QName parsing into tokenizer
419 fix evaluating XPathResultType.Any
420 fix ExprDiv.ToString()
421 fix NodeTypeTest.ToString() (for namespace axis)
423 2003-07-25 Piers Haken <piersh@friskit.com>
425 * Expression.cs: return clone of $var evaluation
427 2003-07-26 Piers Haken <piersh@friskit.com>
429 * Iterator.cs: add setter for NamespaceManager
430 * XPathNavigator.cs: propagate NamespaceManager from context on Evaluate
431 * Expression.cs: fix func/var exception strings
433 2003-07-25 Piers Haken <piersh@friskit.com>
435 * Expression.cs: implement ExprFilter.Evaluate
437 2003-07-25 Piers Haken <piersh@friskit.com>
439 * Expression.cs: implement ExprVariable.Evaluate
441 2003-07-24 Ben Maurer <bmaurer@users.sourceforge.net>
443 * DefaultContext.cs: implement lang ()
445 2003-07-24 Piers Haken <piersh@friskit.com>
449 allow ExprUNION to take non-nodeset (eg, $var) arguments
451 2003-07-24 Piers Haken <piersh@friskit.com>
453 * Tokenizer.cs: fix variable references
459 2003-06-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
461 * XPathDocument.cs : removed Driver class and restored authors' name
462 (though it is completely rewrote).
464 2003-06-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
466 * XPathDocument.cs : Replaced existing stub class with real
467 XPathDocument implementation.
469 2003-04-28 Piers Haken <piersh@friskit.com>
471 * Parser.jay, Tokenizer.cs: more compliant lexical parsing of ambiguous tokens
473 2003-03-07 Piers Haken <piersh@friskit.com>
475 * Tokenizer.cs: allow '.'s in NCNames
477 2003-03-07 Piers Haken <piersh@friskit.com>
481 fixed function argument resolution
483 2003-02-09 Piers Haken <piersh@friskit.com>
487 * Expression.cs: fix namespace handling
489 2003-01-04 Piers Haken <piersh@friskit.com>
491 * Parser.*: Remove extraneous "using" that was stopping the build. Permanently thisi time ;-)
493 2003-02-02 Piers Haken <piersh@friskit.com>
495 * Parser.jay: add token names
496 * Tokenizer.cs: fix NCName tokenization
498 2003-01-02 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
500 * Tokenizer.cs : Fixed ParseIdentifier to allow digits.
501 (It should be a temporary fix.)
503 2002-09-22 Nick Drochak <ndrochak@gol.com>
505 * Parser.cs: Remove extraneous "using" that was stopping the build.
507 2002-09-21 Piers Haken <piersh@friskit.com>
509 * XPathException: implementation
514 * XPathNavigator.jay:
517 2002-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
519 * Parser.cs: commented out non-existent namespace (it compiles fine
520 with mcs because of a bug that is already on bugzilla).
522 2002-09-12 Piers Haken <piersh@friskit.com>
524 * Tokenizer.cs: fix parsing numbers that start with '.'
525 * DefaultContext.cs: use MS-compatible formatting of doubles
527 2002-09-12 Piers Haken <piersh@friskit.com>
529 * Iterator.cs: added NullIterator to handle unspecified contexts
530 * XPathNavigator.cs: use NullIterator insted of SelfIterator when context is unspecified.
531 * XPathNodeIterator.cs: change default _count to -1 to prevent recalculations for NullIterators
533 2002-09-12 Piers Haken <piersh@friskit.com>
535 * Expression.cs, Parser.jay: allow ExprSLASH to take a generic expression as its left argument.
536 * Iterator.cs: fix SlashIterator.Clone() when _iterRight is null.
537 * DefaultContext.cs: fix id() return type.
539 2002-09-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
541 * DefaultContext.cs: fixed bug #28840.
542 * Expression.cs: added FIXME.
544 2002-08-17 Jason Diamond <jason@injektilo.org>
546 * XPathNavigator.cs: Fixed matching on patterns that look like
547 absolute XPath expressions.
549 2002-08-17 Jason Diamond <jason@injektilo.org>
551 * XPathNavigator.cs: Added naive (but working) implementation of
554 2002-07-31 Piers Haken <piersh@friskit.com>
556 * XPathDocument.cs: simple, XmlDocument-based implementation
558 2002-07-25 Piers Haken <piersh@friskit.com>
560 * DefaultContext.cs: implement XPathFunctionName 'name()' function.
562 2002-07-17 Piers Haken <piersh@friskit.com>
564 * DefaultContext.cs: implement 'string-length()', 'normalize-space()'
565 * Parser.jay: remove redundant production
566 * Expression.cs: add switches for debugging under VS.NET
568 2002-07-17 Piers Haken <piersh@friskit.com>
570 * Expression.cs: implement nodeset/nodeset comparisons (non-optimal)
572 2002-07-15 Piers Haken <piersh@friskit.com>
575 - rename UnionIterator to MergedIterator,
576 - create new UnionIterator to implment uniqueness for '|' operator
577 - fix position bug in ArrayListIterator.Clone()
578 * Expression.cs: use new UnionIterator constructor syntax
580 2002-07-12 Piers Haken <piersh@friskit.com>
582 * Iterator.cs: PredicateIterator: handle numeric predicates
583 * Parser.jay: add some debugging support: yyparseDebug
584 * Tokenizer.cs: cleanup, include '-' chars in identifier tokens
586 2002-06-29 Piers Haken <piersh@friskit.com>
590 - NodeTest uses XPathResultType instead of internal NodeTestTypes enum
591 - remove NodeTestTypes enum
592 - remove NodeTestTypeAny (functionality provided by base now)
593 - fix ExprStep to handle wildcard QNames
595 - moved to Mono.Xml.XPath namespace
596 - use XPathResultType
597 - handle wildcard QNames
599 * Tokenizer.cs: moved to Mono.Xml.XPath namespace
601 * XPathNavigator.cs: implement
607 * XPathResultType.cs: fix enum values
609 2002-06-24 Jason Diamond <jason@injektilo.org>
611 * XPathScanner.cs: Removed.
613 2002-06-24 Dick Porter <dick@ximian.com>
615 * XmlCaseOrder.cs: Fix namespace
617 2002-06-23 Piers Haken <piersh@friskit.com>
619 * DefaultContext.cs: implemented XPathFUnctionId
620 * Iterator.cs: new ArrayListIterator for id() support
622 2002-06-23 Piers Haken <piersh@friskit.com>
624 * XPathNavigator.cs: implement:
630 - some forwarding methods
632 * XPathNodeIterator: implement caching Count
634 * Tokenizer.cs: new XPath tokenizer
635 * Parser.jay: new XPath grammar
636 * Parser.cs: new precompiled XPath grammar
637 * Expression.cs: new XPath expression objects
638 * Iterator.cs: new XPath result/context objects
639 * DefaultContext.cs: new XPath function binding context
641 2002-05-08 Tim Coleman <tim@timcoleman.com>
643 * XPathException.cs: New stub files added.
645 2002-04-12 Duncan Mak <duncan@ximian.com>
647 * XmlCaseOrder.cs: Moved to here from System.Xml.
649 2002-03-26 Jason Diamond <jason@injektilo.org>
651 * XPathScanner.cs: Now handles name tests with wildacards. Abbreviated
652 steps. Both absolution and relative abbreviated location paths.
654 2002-03-25 Jason Diamond <jason@injektilo.org>
656 * XPathScanner.cs: Added new file. This class is supposed to be internal
657 but that would make it impossible to test.
659 2002-03-08 Duncan Mak <duncan@ximian.com>
661 * XPathNamespaceScope.cs:
663 * XPathResultType.cs:
665 * XmlSortOrder.cs: Used EnumCheck and realigned elements to be compatible with MS
666 implementation. XPathResultType is interesting as EnumCheck does
667 not show the Navigator element, but shows the String element twice.
669 2002-03-08 Jason Diamond <jason@injektilo.org>
671 * XmlDataType.cs, XmlSortOrder.cs, XPathNodeType.cs: Added files.
673 2002-03-06 Jason Diamond <jason@injektilo.org>
675 * ChangeLog: Added to this directory.
677 * XPathExpression.cs, XPathNamespaceScope.cs, XPathNodeIterator.cs,
678 XPathResultType.cs: New files.
680 * XPathNavigator.cs: Stubbed out all properties and methods.