1 2004-03-04 Atsushi Enomoto <atsushi@ximian.com>
3 * Iterator.cs : (SlashIterator.MoveNext()) For SortedList.Add(), the
4 key should be iterator itself. Key by list count never makes sense.
6 2004-03-04 Atsushi Enomoto <atsushi@ximian.com>
8 * Expression.cs : Significant whitespace nodes must be returned in
11 2004-02-23 Atsushi Enomoto <atsushi@ximian.com>
13 * Expression.cs : xsl:sort case-order was not handled properly.
15 2004-02-23 Atsushi Enomoto <atsushi@ximian.com>
18 In FollowingIterator, attribute and namespace nodes should be
19 considered to have following nodes. See XPath 1.0 section 5 (esp.
20 the description on "document order").
21 On fixing @*/following::*, attribute nodes are regarded as to be
22 RequireSorting = true (which might result in duplicate).
24 2004-02-18 Atsushi Enomoto <atsushi@ximian.com>
26 * Expression.cs : string() function expects "Infinity" and "-Infinity"
27 instead of "INF" for conversion from number. XmlConvert is for XSD,
30 2004-02-09 Atsushi Enomoto <atsushi@ximian.com>
32 * Expression.cs : RelationalExpr was comparing number and node in
33 reverse order. Patch by Kazuki Oikawa. Fixed bug #72343.
34 RelationalExpr should also handle result tree fragment as node-set
35 as well as EqualityExpr. This fixes RTF case wrt #72343.
37 2004-02-08 Atsushi Enomoto <atsushi@ximian.com>
39 * Expression.cs : tiny code format fix by Andrew Skiba.
41 2004-12-26 Atsushi Enomoto <atsushi@ximian.com>
43 * XPathNavigator.cs : Added CheckValidity() and ValueType.
44 For SetTypedValue(), throw NotSupportedException instead of
45 NotImplementedException.
47 2004-12-16 Atsushi Enomoto <atsushi@ximian.com>
49 * XPathNavigator.cs :added MoveToFollowing(), ReplaceSelf() and
50 all the missing attributes.
52 2004-12-04 Atsushi Enomoto <atsushi@ximian.com>
54 * XPathDocument.cs : switch to DTMXPathNavigator2 which fully
55 eliminated string fields from struct.
56 (When we switch from struct to class, revert this change to use
57 DTMXPathNavigator, since class-based DTMXPathNavigator2 is rather
58 wasting processing speed.)
60 2004-12-02 Atsushi Enomoto <atsushi@ximian.com>
62 * Iterator.cs : when PredicateIterator has a numeric predicate, it
63 will never be true twice. So just break up the iteration on true.
64 * XPathNavigator.cs : implemented LookupPrefix().
65 * Expression.cs : ExprParens.Optimize() could just return the content
68 2004-12-01 Atsushi Enomoto <atsushi@ximian.com>
70 * IXPathChangeNavigable.cs,
72 XPathDocumentNodeChangedAction.cs : removed old files.
74 2004-12-01 Atsushi Enomoto <atsushi@ximian.com>
76 * Iterator.cs : with related to the previous patch, many comments
77 got making no sense. Thanks to Harinath.
79 2004-12-01 Atsushi Enomoto <atsushi@ximian.com>
81 * Iterator.cs : actually I mean this patch.
83 2004-12-01 Atsushi Enomoto <atsushi@ximian.com>
85 * Iterator.cs : Create _current clone only when required. So just set
86 null when MoveNextCore() succeeded (except for some cases that
87 _current is _nav, such as SelfIterator).
89 2004-11-30 Atsushi Enomoto <atsushi@ximian.com>
91 * Iterator.cs : SlashIterator.RequireSorting is always false. Whether
92 it has to collect nodes in prior or not and whether it might return
93 nodes in inconsistent order is different matter.
94 (It still needs to store nodes when either of branches requires
95 sorting, because they might return the same node later.)
97 2004-11-30 Atsushi Enomoto <atsushi@ximian.com>
99 * Iterator.cs : reduced some extraneous ComparePosition() that could
100 be written as IsSamePosition(). ParentIterator doesn't have to be
103 2004-11-30 Atsushi Enomoto <atsushi@ximian.com>
105 * Iterator.cs : reimplemented AncestorIterator and
106 AncestorOrSelfIterator just to collect parents and not to move to
107 siblings. In some cases like thousands of siblings, it used to be
108 so slow, while we usually don't have so deep ancestors.
110 2004-11-26 Atsushi Enomoto <atsushi@ximian.com>
112 * Expression.cs : warning removal. Added Optimize() which is not
114 * Tokenizer.cs : warning elimination
116 2004-11-24 Atsushi Enomoto <atsushi@ximian.com>
118 * XPathEditableNavigator.cs, XPathChangeNavigator.cs,
119 IXPathEditable.cs : more removal of oldies.
121 2004-11-24 Atsushi Enomoto <atsushi@ximian.com>
123 * NodeChangedEventArgs.cs, NodeChangedEventHandler.cs : removed oldies.
125 2004-11-08 Atsushi Enomoto <atsushi@ximian.com>
127 * Tokenizer.cs : just use raw string instead of char[].
128 * XPathNavigator.cs : reuse NameTable when creating XmlTextReader.
130 2004-11-07 Atsushi Enomoto <atsushi@ximian.com>
133 - Made copy constructor certainly different from other constructors.
134 - Position is never computed in each derived type. All MoveNext() are
136 - Most of the protected members could just be private.
138 2004-11-05 Atsushi Enomoto <atsushi@ximian.com>
140 * Expression.cs, XPathNavigator.cs : hold raw expression field for
141 get_Expression. It is preparation for expression optimization.
143 2004-11-05 Atsushi Enomoto <atsushi@ximian.com>
145 * Iterator.cs : SimpleIterator._current could be cloned only when
148 2004-11-05 Atsushi Enomoto <atsushi@ximian.com>
150 * Iterator.cs : Some removal of Clone() were harmless.
152 2004-10-22 Atsushi Enomoto <atsushi@ximian.com>
154 * XPathDocument.cs : now all the new stuff that used to be in 2.0 are
156 * XPathEditableNavigator.cs : It will be removed. Right now modified
158 * XPathNavigator.cs : Added members that are merged from
159 XPathEditableNavigator. Updated members name.
161 2004-10-14 Atsushi Enomoto <atsushi@ximian.com>
164 - Added WrapperIterator to return BaseIterator in such case that
165 variable reference is resolved to XPathNodeIterator. This fixes
167 - Path ".." is reverse axis (actually no effect).
168 - Fixed DescendantIterator.Clone() that missed "_finished" field.
170 In ExprVariable.Evaluate(), use WrapperIterator() for custom
173 2004-10-09 Atsushi Enomoto <atsushi@ximian.com>
175 * XPathAtomicValue.cs : Init(string, XmlSchemaType) is private.
177 2004-10-05 Atsushi Enomoto <atsushi@ximian.com>
179 * XPathAtomicValue.cs : missing Init() definition for float and string;
180 latter one resulted in infinite loop in Init(object,XmlSchemaType).
182 2004-10-04 Atsushi Enomoto <atsushi@ximian.com>
184 * XPathNavigator.cs : TypedValue could be implemented.
185 * XPathEditableNavigator.cs : removed some MonoTODO since now there
188 2004-09-13 Atsushi Enomoto <atsushi@ximian.com>
190 * XPathAtomicValue.cs : All .ctor() are separeted from Init().
191 In .ctor(object, XmlSchemaType):
192 - For lists that contains just one item, Init() recursively.
193 - For XPathAtomicValue, Init() recursively for its content fields.
194 For Value and TypedValue, consider typecode from XmlSchemaType.
196 2004-09-06 Atsushi Enomoto <atsushi@ximian.com>
198 * XPathEditableNavigator.cs :
199 AppendChild(xmlReader) ignored nodes after than first one, and
200 resulted in infinite loop.
201 Added get_OuterXml overrides. set_OuterXml should not move to
202 parent before deleting current.
204 2004-08-25 Atsushi Enomoto <atsushi@ximian.com>
206 * XPathAtomicValue.cs : Value was not returning expected value when
207 it is created as new XPathAtomicValue (object, XmlSchemaType).
208 Compute stringValue and reuse.
209 * XPathNavigator.cs : Temporarily stubbed as to ignore SchemaInfo
210 (for checking XQuery implementation).
212 2004-08-25 Atsushi Enomoto <atsushi@ximian.com>
214 * XPathAtomicValue.cs : Handle .ctor() with object parameter more
215 precisely (still not enough, for list argument).
216 Removed commended blocks.
218 2004-08-24 Atsushi Enomoto <atsushi@ximian.com>
220 * XPathAtomicValue.cs : DateTime should be convertible to string.
221 Use schemaType's TypeCode for .ctor() that takes object.
222 * XPathNavigator.cs : copied get_InnerXml from XPathEditableNavigator.
223 * XPathEditableNavigator.cs : set_InnerXml should be different (new)
224 property from get_InnerXml. Removed get_InnerXml and get_OuterXml
227 2004-08-23 Atsushi Enomoto <atsushi@ximian.com>
229 * XPathAtomicValue.cs, XPathNavigator.cs : Eliminate MS.Internal.Xml.*.
231 2004-08-03 Atsushi Enomoto <atsushi@ximian.com>
233 * XPathEditableNavigator.cs : implemented some editor support methods.
235 2004-08-02 Atsushi Enomoto <atsushi@ximian.com>
238 - For .NET 2.0, added a switch to support new XPathDocument2.
239 If switch is off, then it uses DTM.
240 - Implemented remaining 2.0 bits (except for Obsolete ones).
242 To use them in XPathDocument, set environment MONO_XPATH_DOCUMENT_2=yes
243 (It is still too unstable to pass all nunit tests and standalone XSLT
246 2004-07-29 Atsushi Enomoto <atsushi@ximian.com>
248 * XPathNavigator.cs : Implemented ReadSubtree().
250 2004-07-28 Atsushi Enomoto <atsushi@ximian.com>
252 * XPathDocument.cs : for .ctor() and .ctor(XmlNameTable), now it
253 creates Mono.Xml.XPath.XPathEditableDocument and thus supports
254 IXPathEditable.CreateEditor().
256 2004-07-28 Atsushi Enomoto <atsushi@ximian.com>
258 * XPathEditableNavigator.cs : Implemented InsertAfter() and
259 PrependChild(); they are virtual, not abstract.
260 * XPathNavigator.cs :
261 Implemented many 2.0 virtual properties and methods that were
263 Implemented some Select() methods that uses IXmlNamespaceResolver.
264 Implemented most of ValueAsXxx() using XQueryConvert.
265 IsNode is always true. Implemented OuterXml and WriteSubtree() (but
266 actually they don't work because it depends on ReadSubtree()).
268 2004-07-26 Atsushi Enomoto <atsushi@ximian.com>
270 * XPathDocument.cs : added missing && not-likely-to-be-removed members.
271 * XPathEditableNavigator.cs : added BuildSubTree().
272 * XPathException.cs : added missing methods. Hide Message in NET_2_0.
274 2004-07-23 Atsushi Enomoto <atsushi@ximian.com>
276 * XPathNodeIterator.cs : implemented 2.0 GetEnumerator().
278 2004-07-21 Atsushi Enomoto <atsushi@ximian.com>
280 * XPathExpression.cs, Expression.cs :
281 Added SetContext(IXmlNamespaceResolver).
282 * NodeChangedEventArgs.cs : Added missing [MonoTODO].
283 * XPathAtomicValue.cs : Halfly implemented.
284 * XPathDocument.cs : Added 2.0 members.
285 * XPathDocumentNodeChangedAction.cs : updated member names.
286 * XPathEditableNavigator.cs : Added missing 2.0 members and MonoTODO.
287 * XPathNavigator.cs : Added missing 2.0 members.
288 Fixed some members as virtual->override.
290 2004-07-13 Atsushi Enomoto <atsushi@ximian.com>
292 * XmlNodeChageType.cs, XmlChangeFilters.cs : fixed enum values.
293 * XPathResultType.cs : marked [MonoFIX] on .Navigator.
295 2004-07-11 Atsushi Enomoto <atsushi@ximian.com>
297 * Expression.cs, Iterator.cs, XPathNavigator.cs :
298 Use IXmlNamespaceResolver for net 2.0. Removed unused code.
299 * XPathEditableNavigator.cs : fixed namespace.
300 * XPathNavigator.cs :
301 Fixed inheritance. Added missing MonoTODO.
302 Removed old .net 1.2 code.
304 2004-06-18 Atsushi Enomoto <atsushi@ximian.com>
306 * DefaultContext.cs : Globalization.
307 * Iterator.cs : In SlashIterator.MoveNext() position might keep 0
308 in case of empty list. Thus extraneous iteration might happened.
309 Removed unused (and clone unsafe) EnumeratorIterator.
311 2004-06-06 Atsushi Enomoto <atsushi@ximian.com>
313 * XPathDocument.s : The previous patch is still incomplete to close.
315 2004-06-05 Atsushi Enomoto <atsushi@ximian.com>
317 * XPathDocument.cs : close self-opened XmlTextReader in .ctor().
319 2004-06-03 Atsushi Enomoto <atsushi@ximian.com>
321 * Expression.cs : LookupNamespace() only allows already-atomized names.
322 * XPathEditableNavigator.cs : removed incorrect set_OuterXml() and
325 2004-05-22 Atsushi Enomoto <atsushi@ximian.com>
327 * DefaultContext.cs : Add XPathNavigator input support for ToBoolean()
329 * Expression.cs : In Equality comparison, evaluate XPathNavigator in
330 the same as well as NodeSet. This fixes bug #59134.
332 2004-05-22 Atsushi Enomoto <atsushi@ximian.com>
334 * XPathAtomicValue.cs : missed NET_2_0.
336 2004-05-22 Atsushi Enomoto <atsushi@ximian.com>
338 * IXPathChangeNavigable.cs,
340 NodeChangedEventArgs.cs,
341 NodeChangedEventHandler.cs,
343 XPathChangeNavigator.cs,
344 XPathDocumentNodeChangedAction.cs,
345 XPathEditableNavigator.cs,
348 XmlNodeChangeType.cs : added NET_2_0 classes.
350 XPathNavigator.cs : updated NET_2_0 members.
352 2004-05-20 Atsushi Enomoto <atsushi@ximian.com>
354 * Expression.cs : We should not catch all kind of exception. Just
355 throwing any kind of exception would be preferable.
356 Added support for XPathNavigator values.
358 2004-05-13 Atsushi Enomoto <atsushi@ximian.com>
360 * DefaultContext.cs : Removed MonoTODO. done.
361 * Expression.cs : handle XPathResultType.Navigator in some places and
362 removed MonoTODO. Mark MonoTODO with explicit comments (though they
363 are mostly pointing out possibilities of optimization).
364 Removed extra check that depended on the old bugs.
365 * XPathResultType.cs : Fixed .Navigator that had the same value as
368 2004-05-12 Atsushi Enomoto <atsushi@ximian.com>
370 * Parser.jay : made class internal.
372 2004-03-16 Atsushi Enomoto <atsushi@ximian.com>
374 * XPathNavigator.cs, Iterator.cs : Considered detached nodes, the
375 result of MoveToParent() should be checked.
377 2004-02-17 Atsushi Enomoto <atsushi@ximian.com>
379 * XPathNavigator.cs : Only child and attribute axes are allowed for
381 * Expression.cs : Added IsPositional property.
382 * DefaultContext.cs : Added some overrides.
384 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
386 * XPathNavigator.cs : no, its still not ok. comment out now.
388 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
390 * Expression.cs : Added EvaluatedNodeType and NeedAbsoluteMatching
391 to reduce extraneous Matches() trial.
392 * Iterator.cs : Removed unused MergedIterator.
393 * XPathNavigator.cs : Optimized Matches() not to evaluate ancestors
394 unnecessarily. (Test with NeedAbsoluteMatching).
396 2004-02-10 Atsushi Enomoto <atsushi@ximian.com>
398 * Iterator.cs : Added overriden Count properties for some iterators
399 (this fixes the half of #50678).
400 Added ListIterator class (which can reduce GetEnumerator()).
401 In some places we can omit clone for Current property, so added
402 some check logic (It has no effect as yet).
403 * Expression.cs, DefaultContext.cs :
404 use ListIterator instead of EnumeratorIterator.
406 2004-02-08 Atsushi Enomoto <atsushi@ximian.com>
408 * DefaultContext.cs, Expression.cs, Iterator.cs :
409 tiny foreach elimination.
411 2004-02-05 Atsushi Enomoto <atsushi@ximian.com>
413 * DefaultContext.cs : trivial processing order fix.
415 2004-01-27 Atsushi Enomoto <atsushi@ximian.com>
417 * DefaultContext.cs : Avoid exception if possible.
418 * Iterator.cs : Fixed PrecedingSiblingIterator.MoveNext(). When the
419 nav was positioned at the first, it incorrectly points itself.
420 Don't add names to name table while it is useless and expensive.
422 2004-01-08 Nick Drochak <ndrochak@ieee.org>
424 * Iterator.cs: Removed unused variable.
426 2003-12-18 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
428 * Parser.jay : now it supresses error output from jay.
429 * DefaultContext.cs : (XPathFunctionSubstring) exclude -Infinity.
430 * Tokenizer.cs : better error message.
431 * XPathDocument.cs : Use XmlValidatingReader to support id() function.
432 (just found MS.NET actually supports it)
434 2003-12-16 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
436 * Iterator.cs : On its iteration, moving Current must not affect to
437 MoveNext(). To assure this, Current must be a clone of navigator.
440 2003-12-07 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
442 * Tokenizer.cs : Removed some TODOs. (trivial ;-)
443 * Iterator.cs : ParensIterator can inherit from BaseIterator.
444 SlashIterator copy .ctor() always failed to clone. This fixes Count.
446 2003-12-03 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
448 * Expression.cs : XPathSorters.Compare() should compare document
449 position. See last sentence of XSLT 1.0 secion 10.
451 2003-12-03 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
453 * DefaultContext.cs : Overrode all functions' ToString().
454 XPathFunctions.ToNumber() trims whitespaces at both side.
455 Fixed NullReferenceException in normalize-space().
456 * Iterator.cs : Fixed AncestorOrSelfIterator.MoveNext() didn't handle
457 attribute or namespace node correctly.
458 SlashIterator.Clone() didn't clone "next node iterator" correctly.
459 EnumeratorIterator.ctor() should raise an error (not at Clone())
460 when the target IEnumerator is not ICloneable.
462 2003-11-28 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
464 * Expression.cs : namespace axis now traversed in reverse order, so it
466 * Iterator.cs : UnionIterator.Clone() was incomplete.
467 NamespaceItarator() should be reverse order (special handling
468 because of XPathNavigator specification).
470 2003-11-24 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
472 * Iterator.cs : PrecedingIterator.MoveNext() now breaks up at Root.
473 * XPathNavigator.cs : ComparePosition() didn't handle attributes
476 2003-11-24 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
478 * Parser.jay, Expression.cs, Iterator.cs :
479 Added ExprParens and ParensIterator classes which is used to handle
480 precedence of parenthesized expressions.
481 (e.g. consider "(preceding::*)[3]" and "preceding::[3]" )
483 * Expression.cs, Iterator.cs :
484 Added RequireSorting property for each Expr and BaseIterator classes.
485 SlashIterator.MoveNext() now considers correct sorting. But
486 considering performance, it separates two logics, sorted and sortless
487 depending on RequireSorting of left iterator and right expression.
490 SimpleIterator.ctor() should consider when nav is null.
491 FollowingIterator.MoveNext() and PrecedingIterator.MoveNext() should
492 not return any nodes.
493 AncestorIterator and AncestorOrSelfIterator copy ctr() should clone
495 AncestorIterator.MoveNext() should skip Root if context node is
497 FollowingIterator.MoveNext() should not handle children of context
499 PrecedingIterator.MoveNext() should skip its ancestors.
500 AxisIterator.ReverseAxis should be dependent on its containing iter.
501 UnionIterator.MoveNext() should consider comparison of nodes in
502 different document. The behavior is implementation dependent.
505 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
507 * Added XPathComparer.cs
508 * DefaultContext.cs : Fixed XPathFunctionId.Evaluate() to iterate base
509 iterator correctly, and sort results.
511 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
513 * DefaultContext.cs : Imcomplete fix ;-)
515 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
517 * DefaultContext.cs : XPathFunctions.ToNumber() should catch overflow.
518 XPathFunctionId.cs : Exposed Id expression.
519 * Expression.cs : Added ExprLiteral.Value, and class ExprParens (it
520 will be used to solve evaluation precedence problem).
522 2003-11-09 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
524 * Iterator.cs : Fixed SlashIterator that might return nodes 1)in
525 inconsistent order, and 2)may return duplicate result nodes.
527 2003-11-06 Ben Maurer <bmaurer@users.sourceforge.net>
529 * Iterator.cs: (AxisIterator.ComparablePosition): Remove. Let
530 it inherit from the base class. This made b[2] evaluated on
531 <a /><b /><c /><a /><b /><c /> return the first b node because
532 in the ChildIterator it was the second node and seemed to satsify
535 2003-11-04 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
537 * Iterator.cs : Added bool ReverseAxis property to identify whether
538 the iterator is in reverse order or not. Added ComparablePosition
539 for correct position comparison for PredicateIterator and reverse-
540 order-axes. Modified AncestorIterator, AncestorOrSelfIterator,
541 PrecedingIterator and PrecedingSiblingIterator to make MoveNext()
542 return their nodes in document order. This fixes bugzilla #39079.
544 2003-10-15 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
546 * Iterator.cs : DescendantIterator and FollowingIterator also should
547 not MoveNext() after they reached to the end.
549 2003-10-13 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
551 * Iterator.cs : Fixed UnionIterator who ignores document order.
552 Fixed SlashIterator whose MoveNext() should finish at its end.
554 2003-09-27 Ben Maurer <bmaurer@users.sourceforge.net>
556 * Iterator.cs, Expression.cs, XPathNavigator.cs: In AxisIterator
557 use NameTable so we dont call strcmp.
559 2003-09-27 Ben Maurer <bmaurer@users.sourceforge.net>
561 * DefaultContext.cs (translate): translate ("abc", "c", "") = "ab"
563 * Iterator.cs, Expression.cs: All axes are
564 SimpleIterators. SimpleIterators are gaurenteed to give the same
565 XPathNavigator in Current. Make AxisIterator take a
566 SimpleIterator, not any old BaseIterator. Will allow us to make
567 NameTable optimizations and avoid quite a few strcmp's.
569 2003-09-24 Ben Maurer <bmaurer@users.sourceforge.net>
571 * Expression.cs: make // work right, must use another slash itr.
573 2003-09-21 Ben Maurer <bmaurer@users.sourceforge.net>
575 * Expression.cs: cant use $$ before assigned.
577 2003-09-21 Ben Maurer <bmaurer@users.sourceforge.net>
579 * Expression.cs, Parser.jay, XPathNavigator.cs: api beautification.
581 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
583 * Expression.cs: num != double.NaN does not work.
585 2003-09-19 Ben Maurer <bmaurer@users.sourceforge.net>
587 * Expression.cs: in NodeTypeTest dont throw an exception if it is
588 an unknown node type (allows for better Pattern debugging).
590 2003-09-17 Ben Maurer <bmaurer@users.sourceforge.net>
592 * DefaultContext.cs: implement sum () and translate ().
594 2003-09-13 Ben Maurer <bmaurer@users.sourceforge.net>
596 * XPathNavigator.cs: Make methods where you pass in the context,
597 so that we dont have to clone expressions so much.
599 2003-09-06 Ben Maurer <bmaurer@users.sourceforge.net>
601 * DefaultContext.cs, Expresssion.cs, Parser.jay: Rewrite so that
602 system functions are actually expressions. Will allow for some
605 2003-08-25 Ben Maurer <bmaurer@users.sourceforge.net>
607 * XPathNavigator.cs: "Smart" behavior in Matches. Nice 8x speed
608 improvement in the method (5ms/call -> .7 ms / call) measured by
609 monodoc's rendering of N:System.
610 * Expression.cs: Utility methods to support above.
612 2003-08-13 Piers Haken <piersh@friskit.com>
615 fix MergedIterator.Clone(), now clones other's iterators
616 fix DescendantIterator.Clone(), now copies depth
617 make iterator cloning constructors more type-specific
619 2003-08-01 Piers Haken <piersh@friskit.com>
621 * Expression.cs: added NodeNamespaceTest
622 * XPathNavigator.cs: implement Select* with namespaces
624 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
626 * Iterator.cs: Allow creation of an EnumeratorIterator with an
629 2003-07-31 Piers Haken <piersh@friskit.com>
632 Nested predicates (uses ExprFilter instead)
634 make grammar look more like w3c spec
636 remove ExprStep, ExprPredicates
637 NodeTest is now a NodeSet
640 PredicateIterator now only takes a single predicate expression
643 simplified SelectTest
647 2003-07-30 Duncan Mak <duncan@ximian.com>
653 2003-07-29 Piers Haken <piersh@friskit.com>
655 * DefaultContext.cs: 'local-name' returns String, not NodeSet!
657 2003-07-29 Piers Haken <piersh@friskit.com>
661 add typesafe Evaluate* methods
663 2003-07-29 Piers Haken <piersh@friskit.com>
665 * DefaultContext.cs: fix 'substring-after'
667 2003-07-29 Piers Haken <piersh@friskit.com>
669 * Iterator.cs: fix PredicateIterator.CurrentPosition bug (it wasn't incrementing)
671 2003-07-29 Ben Maurer <bmaurer@users.sourceforge.net>
673 * Iterator.cs: dont throw exceptions on tostring ()
675 2003-07-28 Piers Haken <piersh@friskit.com>
677 * DefaultContext.cs: better handling of null argument lists
678 * XPathNavigator.cs: implement ComparePosition
680 2003-07-28 Piers Haken <piersh@friskit.com>
682 * Expression.cs: boolean operators: handle comparing .Any better
684 2003-07-28 Piers Haken <piersh@friskit.com>
686 * DefaultContext.cs: count() should return a double
687 * Expression.cs: better support for handling non-double numbers
689 2003-07-28 Piers Haken <piersh@friskit.com>
691 * DefaultContext.cs: better function param matching
693 2003-07-27 Piers Haken <piersh@friskit.com>
697 catch FormatExceptions while parsing numbers
699 2003-07-27 Piers Haken <piersh@friskit.com>
702 fix case sorting order
703 allow EvaluateNumber to take XPathResultType.Any
705 2003-07-27 Piers Haken <piersh@friskit.com>
709 don't pass null to XmlQualifiedName constructor
711 2003-07-27 Piers Haken <piersh@friskit.com>
713 * DefaultContext.cs: allow 'concat' to take arbitrary-typed arguments (spec?)
715 2003-07-27 Piers Haken <piersh@friskit.com>
717 * Expression.cs: allow EvaluateNodeSet to take XPathResultType.Any
719 2003-07-26 Piers Haken <piersh@friskit.com>
721 * Expression.cs: fix function evaluation with ambigous argument types
722 * XPathNavigator.cs: fix silly null reference bug
724 2003-07-26 Piers Haken <piersh@friskit.com>
728 ArrayListIterator->EnumeratorIterator
729 * Expression.cs: add sorting support
731 2003-07-26 Piers Haken <piersh@friskit.com>
735 move QName parsing into tokenizer
737 fix evaluating XPathResultType.Any
738 fix ExprDiv.ToString()
739 fix NodeTypeTest.ToString() (for namespace axis)
741 2003-07-25 Piers Haken <piersh@friskit.com>
743 * Expression.cs: return clone of $var evaluation
745 2003-07-26 Piers Haken <piersh@friskit.com>
747 * Iterator.cs: add setter for NamespaceManager
748 * XPathNavigator.cs: propagate NamespaceManager from context on Evaluate
749 * Expression.cs: fix func/var exception strings
751 2003-07-25 Piers Haken <piersh@friskit.com>
753 * Expression.cs: implement ExprFilter.Evaluate
755 2003-07-25 Piers Haken <piersh@friskit.com>
757 * Expression.cs: implement ExprVariable.Evaluate
759 2003-07-24 Ben Maurer <bmaurer@users.sourceforge.net>
761 * DefaultContext.cs: implement lang ()
763 2003-07-24 Piers Haken <piersh@friskit.com>
767 allow ExprUNION to take non-nodeset (eg, $var) arguments
769 2003-07-24 Piers Haken <piersh@friskit.com>
771 * Tokenizer.cs: fix variable references
777 2003-06-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
779 * XPathDocument.cs : removed Driver class and restored authors' name
780 (though it is completely rewrote).
782 2003-06-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
784 * XPathDocument.cs : Replaced existing stub class with real
785 XPathDocument implementation.
787 2003-04-28 Piers Haken <piersh@friskit.com>
789 * Parser.jay, Tokenizer.cs: more compliant lexical parsing of ambiguous tokens
791 2003-03-07 Piers Haken <piersh@friskit.com>
793 * Tokenizer.cs: allow '.'s in NCNames
795 2003-03-07 Piers Haken <piersh@friskit.com>
799 fixed function argument resolution
801 2003-02-09 Piers Haken <piersh@friskit.com>
805 * Expression.cs: fix namespace handling
807 2003-01-04 Piers Haken <piersh@friskit.com>
809 * Parser.*: Remove extraneous "using" that was stopping the build. Permanently thisi time ;-)
811 2003-02-02 Piers Haken <piersh@friskit.com>
813 * Parser.jay: add token names
814 * Tokenizer.cs: fix NCName tokenization
816 2003-01-02 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
818 * Tokenizer.cs : Fixed ParseIdentifier to allow digits.
819 (It should be a temporary fix.)
821 2002-09-22 Nick Drochak <ndrochak@gol.com>
823 * Parser.cs: Remove extraneous "using" that was stopping the build.
825 2002-09-21 Piers Haken <piersh@friskit.com>
827 * XPathException: implementation
832 * XPathNavigator.jay:
835 2002-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
837 * Parser.cs: commented out non-existent namespace (it compiles fine
838 with mcs because of a bug that is already on bugzilla).
840 2002-09-12 Piers Haken <piersh@friskit.com>
842 * Tokenizer.cs: fix parsing numbers that start with '.'
843 * DefaultContext.cs: use MS-compatible formatting of doubles
845 2002-09-12 Piers Haken <piersh@friskit.com>
847 * Iterator.cs: added NullIterator to handle unspecified contexts
848 * XPathNavigator.cs: use NullIterator insted of SelfIterator when context is unspecified.
849 * XPathNodeIterator.cs: change default _count to -1 to prevent recalculations for NullIterators
851 2002-09-12 Piers Haken <piersh@friskit.com>
853 * Expression.cs, Parser.jay: allow ExprSLASH to take a generic expression as its left argument.
854 * Iterator.cs: fix SlashIterator.Clone() when _iterRight is null.
855 * DefaultContext.cs: fix id() return type.
857 2002-09-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
859 * DefaultContext.cs: fixed bug #28840.
860 * Expression.cs: added FIXME.
862 2002-08-17 Jason Diamond <jason@injektilo.org>
864 * XPathNavigator.cs: Fixed matching on patterns that look like
865 absolute XPath expressions.
867 2002-08-17 Jason Diamond <jason@injektilo.org>
869 * XPathNavigator.cs: Added naive (but working) implementation of
872 2002-07-31 Piers Haken <piersh@friskit.com>
874 * XPathDocument.cs: simple, XmlDocument-based implementation
876 2002-07-25 Piers Haken <piersh@friskit.com>
878 * DefaultContext.cs: implement XPathFunctionName 'name()' function.
880 2002-07-17 Piers Haken <piersh@friskit.com>
882 * DefaultContext.cs: implement 'string-length()', 'normalize-space()'
883 * Parser.jay: remove redundant production
884 * Expression.cs: add switches for debugging under VS.NET
886 2002-07-17 Piers Haken <piersh@friskit.com>
888 * Expression.cs: implement nodeset/nodeset comparisons (non-optimal)
890 2002-07-15 Piers Haken <piersh@friskit.com>
893 - rename UnionIterator to MergedIterator,
894 - create new UnionIterator to implment uniqueness for '|' operator
895 - fix position bug in ArrayListIterator.Clone()
896 * Expression.cs: use new UnionIterator constructor syntax
898 2002-07-12 Piers Haken <piersh@friskit.com>
900 * Iterator.cs: PredicateIterator: handle numeric predicates
901 * Parser.jay: add some debugging support: yyparseDebug
902 * Tokenizer.cs: cleanup, include '-' chars in identifier tokens
904 2002-06-29 Piers Haken <piersh@friskit.com>
908 - NodeTest uses XPathResultType instead of internal NodeTestTypes enum
909 - remove NodeTestTypes enum
910 - remove NodeTestTypeAny (functionality provided by base now)
911 - fix ExprStep to handle wildcard QNames
913 - moved to Mono.Xml.XPath namespace
914 - use XPathResultType
915 - handle wildcard QNames
917 * Tokenizer.cs: moved to Mono.Xml.XPath namespace
919 * XPathNavigator.cs: implement
925 * XPathResultType.cs: fix enum values
927 2002-06-24 Jason Diamond <jason@injektilo.org>
929 * XPathScanner.cs: Removed.
931 2002-06-24 Dick Porter <dick@ximian.com>
933 * XmlCaseOrder.cs: Fix namespace
935 2002-06-23 Piers Haken <piersh@friskit.com>
937 * DefaultContext.cs: implemented XPathFUnctionId
938 * Iterator.cs: new ArrayListIterator for id() support
940 2002-06-23 Piers Haken <piersh@friskit.com>
942 * XPathNavigator.cs: implement:
948 - some forwarding methods
950 * XPathNodeIterator: implement caching Count
952 * Tokenizer.cs: new XPath tokenizer
953 * Parser.jay: new XPath grammar
954 * Parser.cs: new precompiled XPath grammar
955 * Expression.cs: new XPath expression objects
956 * Iterator.cs: new XPath result/context objects
957 * DefaultContext.cs: new XPath function binding context
959 2002-05-08 Tim Coleman <tim@timcoleman.com>
961 * XPathException.cs: New stub files added.
963 2002-04-12 Duncan Mak <duncan@ximian.com>
965 * XmlCaseOrder.cs: Moved to here from System.Xml.
967 2002-03-26 Jason Diamond <jason@injektilo.org>
969 * XPathScanner.cs: Now handles name tests with wildacards. Abbreviated
970 steps. Both absolution and relative abbreviated location paths.
972 2002-03-25 Jason Diamond <jason@injektilo.org>
974 * XPathScanner.cs: Added new file. This class is supposed to be internal
975 but that would make it impossible to test.
977 2002-03-08 Duncan Mak <duncan@ximian.com>
979 * XPathNamespaceScope.cs:
981 * XPathResultType.cs:
983 * XmlSortOrder.cs: Used EnumCheck and realigned elements to be compatible with MS
984 implementation. XPathResultType is interesting as EnumCheck does
985 not show the Navigator element, but shows the String element twice.
987 2002-03-08 Jason Diamond <jason@injektilo.org>
989 * XmlDataType.cs, XmlSortOrder.cs, XPathNodeType.cs: Added files.
991 2002-03-06 Jason Diamond <jason@injektilo.org>
993 * ChangeLog: Added to this directory.
995 * XPathExpression.cs, XPathNamespaceScope.cs, XPathNodeIterator.cs,
996 XPathResultType.cs: New files.
998 * XPathNavigator.cs: Stubbed out all properties and methods.