1 2005-06-09 Andrew Skiba <andrews@mainsoft.com>
3 * XmlDefaultContext.cs : add TARGET_JVM for roundtrip bug
5 2004-06-07 Atsushi Enomoto <atsushi@ximian.com>
7 * Expression.cs : set TARGET_JVM where collation matters.
9 2004-05-05 Atsushi Enomoto <atsushi@ximian.com>
11 * XPathAtomicValue.cs :
12 it is now XmlAtomicValue and in sys.xml.schema.
13 * XPathNavigator.cs, Expression.cs :
14 removed atomizedName related 2.0 members (deprecated).
16 2004-05-05 Atsushi Enomoto <atsushi@ximian.com>
18 * XPathExpression.cs : added static Compile().
20 Use XPathExpression.Compile() for now.
21 Updated tree modification API to 2.0 beta2.
22 * XPathItem.cs, XPathNavigator.cs, XPathAtomicValue.cs :
23 updated to 2.0 beta2 API.
24 * XPathResultType.cs : removed [Serializable].
25 * XmlNodeChangeType.cs : removed obsolete file.
27 2004-03-25 Atsushi Enomoto <atsushi@ximian.com>
29 * XPathNavigator.cs : 2.0 build fix
31 2004-03-25 Atsushi Enomoto <atsushi@ximian.com>
33 * Expression.cs : In ExprSLASH2, replace A//B with A/descendant::B if
34 B is child axis test (thus peer&subtree optimization became possible)
35 Fixed warning (incorrect variable let).
37 2004-03-25 Atsushi Enomoto <atsushi@ximian.com>
39 * XPathNavigator.cs : reduced some Clone().
40 Simplified ComparePosition().
41 * Iterator.cs : some iterators are not actually reverse axis.
43 2004-03-22 Atsushi Enomoto <atsushi@ximian.com>
45 * Expression.cs : EvaluateBoolean() for RTF should check return true
46 for empty elements. Fixed static analysis for RTF.
48 2004-03-22 Atsushi Enomoto <atsushi@ximian.com>
50 * Parser.jay, Tokenizer.cs : Now they are used as common code base for
51 XPath parser and XSLT pattern parser. Makefile now creates two
52 set of sources of them. (This change takes effect on the next change).
54 2004-03-16 Atsushi Enomoto <atsushi@ximian.com>
56 * Parser.jay : rewrote step part to be reusable for upcoming XSLT
59 2004-03-16 Atsushi Enomoto <atsushi@ximian.com>
61 * Iterator.cs : reduced extra clone.
63 2004-03-15 Atsushi Enomoto <atsushi@ximian.com>
67 Iterator.cs : Now RequireSorting is not required in BaseIterator
68 (it is now fully in Expression).
69 Removed the last ListIterator .ctor() argument.
71 2004-03-15 Atsushi Enomoto <atsushi@ximian.com>
73 * XPathNavigator.cs : In ComparePosition(), make use of IsDescendant().
75 2004-03-14 Atsushi Enomoto <atsushi@ximian.com>
78 DefaultContext.cs : Basic constant folding optimization (not so
79 effective right now). Unified number-to-string conversion code into
80 XPathFunctions.ToString(double) to avoid roundtrip format right now.
81 * Iterator.cs : removed unused code.
83 2004-03-11 Atsushi Enomoto <atsushi@ximian.com>
85 * Iterator.cs : more clone reduction.
87 2004-03-11 Atsushi Enomoto <atsushi@ximian.com>
89 * Expression.cs, DefaultContext.cs : more Peer overrides.
91 2004-03-11 Atsushi Enomoto <atsushi@ximian.com>
94 DefaultContext.cs : Removed unused NeedAbsoluteMatching.
95 Added Peer and Subtree (for "peer & subtree optimization. See:
96 http://idealliance.org/papers/dx_xmle04/papers/02-03-02/02-03-02.html
97 Fixed some ToString() that caused NullReferenceException.
99 * Iterator.cs : Predicate does not affect on RequireSorting.
100 Added SimpleSlashIterator for peer & subtree optimization.
102 Added PreserveWhitespace() consideration in BaseIterator.MoveNext().
104 2004-03-09 Atsushi Enomoto <atsushi@ximian.com>
108 SlashIterator is now constructed with requireSorting parameter
109 that thus just use RequireSorting from both left/right Expressions,
111 When attribute axis is on the left expression, the result needs to
114 2004-03-09 Atsushi Enomoto <atsushi@ximian.com>
116 * Iterator.cs : Now for most of iterator types, Current property always
117 returns the same instance. It results in huge memory reduction.
119 2004-03-04 Atsushi Enomoto <atsushi@ximian.com>
121 * Iterator.cs : (SlashIterator.MoveNext()) For SortedList.Add(), the
122 key should be iterator itself. Key by list count never makes sense.
124 2004-03-04 Atsushi Enomoto <atsushi@ximian.com>
126 * Expression.cs : Significant whitespace nodes must be returned in
129 2004-02-23 Atsushi Enomoto <atsushi@ximian.com>
131 * Expression.cs : xsl:sort case-order was not handled properly.
133 2004-02-23 Atsushi Enomoto <atsushi@ximian.com>
136 In FollowingIterator, attribute and namespace nodes should be
137 considered to have following nodes. See XPath 1.0 section 5 (esp.
138 the description on "document order").
139 On fixing @*/following::*, attribute nodes are regarded as to be
140 RequireSorting = true (which might result in duplicate).
142 2004-02-18 Atsushi Enomoto <atsushi@ximian.com>
144 * Expression.cs : string() function expects "Infinity" and "-Infinity"
145 instead of "INF" for conversion from number. XmlConvert is for XSD,
148 2004-02-09 Atsushi Enomoto <atsushi@ximian.com>
150 * Expression.cs : RelationalExpr was comparing number and node in
151 reverse order. Patch by Kazuki Oikawa. Fixed bug #72343.
152 RelationalExpr should also handle result tree fragment as node-set
153 as well as EqualityExpr. This fixes RTF case wrt #72343.
155 2004-02-08 Atsushi Enomoto <atsushi@ximian.com>
157 * Expression.cs : tiny code format fix by Andrew Skiba.
159 2004-12-26 Atsushi Enomoto <atsushi@ximian.com>
161 * XPathNavigator.cs : Added CheckValidity() and ValueType.
162 For SetTypedValue(), throw NotSupportedException instead of
163 NotImplementedException.
165 2004-12-16 Atsushi Enomoto <atsushi@ximian.com>
167 * XPathNavigator.cs :added MoveToFollowing(), ReplaceSelf() and
168 all the missing attributes.
170 2004-12-04 Atsushi Enomoto <atsushi@ximian.com>
172 * XPathDocument.cs : switch to DTMXPathNavigator2 which fully
173 eliminated string fields from struct.
174 (When we switch from struct to class, revert this change to use
175 DTMXPathNavigator, since class-based DTMXPathNavigator2 is rather
176 wasting processing speed.)
178 2004-12-02 Atsushi Enomoto <atsushi@ximian.com>
180 * Iterator.cs : when PredicateIterator has a numeric predicate, it
181 will never be true twice. So just break up the iteration on true.
182 * XPathNavigator.cs : implemented LookupPrefix().
183 * Expression.cs : ExprParens.Optimize() could just return the content
186 2004-12-01 Atsushi Enomoto <atsushi@ximian.com>
188 * IXPathChangeNavigable.cs,
190 XPathDocumentNodeChangedAction.cs : removed old files.
192 2004-12-01 Atsushi Enomoto <atsushi@ximian.com>
194 * Iterator.cs : with related to the previous patch, many comments
195 got making no sense. Thanks to Harinath.
197 2004-12-01 Atsushi Enomoto <atsushi@ximian.com>
199 * Iterator.cs : actually I mean this patch.
201 2004-12-01 Atsushi Enomoto <atsushi@ximian.com>
203 * Iterator.cs : Create _current clone only when required. So just set
204 null when MoveNextCore() succeeded (except for some cases that
205 _current is _nav, such as SelfIterator).
207 2004-11-30 Atsushi Enomoto <atsushi@ximian.com>
209 * Iterator.cs : SlashIterator.RequireSorting is always false. Whether
210 it has to collect nodes in prior or not and whether it might return
211 nodes in inconsistent order is different matter.
212 (It still needs to store nodes when either of branches requires
213 sorting, because they might return the same node later.)
215 2004-11-30 Atsushi Enomoto <atsushi@ximian.com>
217 * Iterator.cs : reduced some extraneous ComparePosition() that could
218 be written as IsSamePosition(). ParentIterator doesn't have to be
221 2004-11-30 Atsushi Enomoto <atsushi@ximian.com>
223 * Iterator.cs : reimplemented AncestorIterator and
224 AncestorOrSelfIterator just to collect parents and not to move to
225 siblings. In some cases like thousands of siblings, it used to be
226 so slow, while we usually don't have so deep ancestors.
228 2004-11-26 Atsushi Enomoto <atsushi@ximian.com>
230 * Expression.cs : warning removal. Added Optimize() which is not
232 * Tokenizer.cs : warning elimination
234 2004-11-24 Atsushi Enomoto <atsushi@ximian.com>
236 * XPathEditableNavigator.cs, XPathChangeNavigator.cs,
237 IXPathEditable.cs : more removal of oldies.
239 2004-11-24 Atsushi Enomoto <atsushi@ximian.com>
241 * NodeChangedEventArgs.cs, NodeChangedEventHandler.cs : removed oldies.
243 2004-11-08 Atsushi Enomoto <atsushi@ximian.com>
245 * Tokenizer.cs : just use raw string instead of char[].
246 * XPathNavigator.cs : reuse NameTable when creating XmlTextReader.
248 2004-11-07 Atsushi Enomoto <atsushi@ximian.com>
251 - Made copy constructor certainly different from other constructors.
252 - Position is never computed in each derived type. All MoveNext() are
254 - Most of the protected members could just be private.
256 2004-11-05 Atsushi Enomoto <atsushi@ximian.com>
258 * Expression.cs, XPathNavigator.cs : hold raw expression field for
259 get_Expression. It is preparation for expression optimization.
261 2004-11-05 Atsushi Enomoto <atsushi@ximian.com>
263 * Iterator.cs : SimpleIterator._current could be cloned only when
266 2004-11-05 Atsushi Enomoto <atsushi@ximian.com>
268 * Iterator.cs : Some removal of Clone() were harmless.
270 2004-10-22 Atsushi Enomoto <atsushi@ximian.com>
272 * XPathDocument.cs : now all the new stuff that used to be in 2.0 are
274 * XPathEditableNavigator.cs : It will be removed. Right now modified
276 * XPathNavigator.cs : Added members that are merged from
277 XPathEditableNavigator. Updated members name.
279 2004-10-14 Atsushi Enomoto <atsushi@ximian.com>
282 - Added WrapperIterator to return BaseIterator in such case that
283 variable reference is resolved to XPathNodeIterator. This fixes
285 - Path ".." is reverse axis (actually no effect).
286 - Fixed DescendantIterator.Clone() that missed "_finished" field.
288 In ExprVariable.Evaluate(), use WrapperIterator() for custom
291 2004-10-09 Atsushi Enomoto <atsushi@ximian.com>
293 * XPathAtomicValue.cs : Init(string, XmlSchemaType) is private.
295 2004-10-05 Atsushi Enomoto <atsushi@ximian.com>
297 * XPathAtomicValue.cs : missing Init() definition for float and string;
298 latter one resulted in infinite loop in Init(object,XmlSchemaType).
300 2004-10-04 Atsushi Enomoto <atsushi@ximian.com>
302 * XPathNavigator.cs : TypedValue could be implemented.
303 * XPathEditableNavigator.cs : removed some MonoTODO since now there
306 2004-09-13 Atsushi Enomoto <atsushi@ximian.com>
308 * XPathAtomicValue.cs : All .ctor() are separeted from Init().
309 In .ctor(object, XmlSchemaType):
310 - For lists that contains just one item, Init() recursively.
311 - For XPathAtomicValue, Init() recursively for its content fields.
312 For Value and TypedValue, consider typecode from XmlSchemaType.
314 2004-09-06 Atsushi Enomoto <atsushi@ximian.com>
316 * XPathEditableNavigator.cs :
317 AppendChild(xmlReader) ignored nodes after than first one, and
318 resulted in infinite loop.
319 Added get_OuterXml overrides. set_OuterXml should not move to
320 parent before deleting current.
322 2004-08-25 Atsushi Enomoto <atsushi@ximian.com>
324 * XPathAtomicValue.cs : Value was not returning expected value when
325 it is created as new XPathAtomicValue (object, XmlSchemaType).
326 Compute stringValue and reuse.
327 * XPathNavigator.cs : Temporarily stubbed as to ignore SchemaInfo
328 (for checking XQuery implementation).
330 2004-08-25 Atsushi Enomoto <atsushi@ximian.com>
332 * XPathAtomicValue.cs : Handle .ctor() with object parameter more
333 precisely (still not enough, for list argument).
334 Removed commended blocks.
336 2004-08-24 Atsushi Enomoto <atsushi@ximian.com>
338 * XPathAtomicValue.cs : DateTime should be convertible to string.
339 Use schemaType's TypeCode for .ctor() that takes object.
340 * XPathNavigator.cs : copied get_InnerXml from XPathEditableNavigator.
341 * XPathEditableNavigator.cs : set_InnerXml should be different (new)
342 property from get_InnerXml. Removed get_InnerXml and get_OuterXml
345 2004-08-23 Atsushi Enomoto <atsushi@ximian.com>
347 * XPathAtomicValue.cs, XPathNavigator.cs : Eliminate MS.Internal.Xml.*.
349 2004-08-03 Atsushi Enomoto <atsushi@ximian.com>
351 * XPathEditableNavigator.cs : implemented some editor support methods.
353 2004-08-02 Atsushi Enomoto <atsushi@ximian.com>
356 - For .NET 2.0, added a switch to support new XPathDocument2.
357 If switch is off, then it uses DTM.
358 - Implemented remaining 2.0 bits (except for Obsolete ones).
360 To use them in XPathDocument, set environment MONO_XPATH_DOCUMENT_2=yes
361 (It is still too unstable to pass all nunit tests and standalone XSLT
364 2004-07-29 Atsushi Enomoto <atsushi@ximian.com>
366 * XPathNavigator.cs : Implemented ReadSubtree().
368 2004-07-28 Atsushi Enomoto <atsushi@ximian.com>
370 * XPathDocument.cs : for .ctor() and .ctor(XmlNameTable), now it
371 creates Mono.Xml.XPath.XPathEditableDocument and thus supports
372 IXPathEditable.CreateEditor().
374 2004-07-28 Atsushi Enomoto <atsushi@ximian.com>
376 * XPathEditableNavigator.cs : Implemented InsertAfter() and
377 PrependChild(); they are virtual, not abstract.
378 * XPathNavigator.cs :
379 Implemented many 2.0 virtual properties and methods that were
381 Implemented some Select() methods that uses IXmlNamespaceResolver.
382 Implemented most of ValueAsXxx() using XQueryConvert.
383 IsNode is always true. Implemented OuterXml and WriteSubtree() (but
384 actually they don't work because it depends on ReadSubtree()).
386 2004-07-26 Atsushi Enomoto <atsushi@ximian.com>
388 * XPathDocument.cs : added missing && not-likely-to-be-removed members.
389 * XPathEditableNavigator.cs : added BuildSubTree().
390 * XPathException.cs : added missing methods. Hide Message in NET_2_0.
392 2004-07-23 Atsushi Enomoto <atsushi@ximian.com>
394 * XPathNodeIterator.cs : implemented 2.0 GetEnumerator().
396 2004-07-21 Atsushi Enomoto <atsushi@ximian.com>
398 * XPathExpression.cs, Expression.cs :
399 Added SetContext(IXmlNamespaceResolver).
400 * NodeChangedEventArgs.cs : Added missing [MonoTODO].
401 * XPathAtomicValue.cs : Halfly implemented.
402 * XPathDocument.cs : Added 2.0 members.
403 * XPathDocumentNodeChangedAction.cs : updated member names.
404 * XPathEditableNavigator.cs : Added missing 2.0 members and MonoTODO.
405 * XPathNavigator.cs : Added missing 2.0 members.
406 Fixed some members as virtual->override.
408 2004-07-13 Atsushi Enomoto <atsushi@ximian.com>
410 * XmlNodeChageType.cs, XmlChangeFilters.cs : fixed enum values.
411 * XPathResultType.cs : marked [MonoFIX] on .Navigator.
413 2004-07-11 Atsushi Enomoto <atsushi@ximian.com>
415 * Expression.cs, Iterator.cs, XPathNavigator.cs :
416 Use IXmlNamespaceResolver for net 2.0. Removed unused code.
417 * XPathEditableNavigator.cs : fixed namespace.
418 * XPathNavigator.cs :
419 Fixed inheritance. Added missing MonoTODO.
420 Removed old .net 1.2 code.
422 2004-06-18 Atsushi Enomoto <atsushi@ximian.com>
424 * DefaultContext.cs : Globalization.
425 * Iterator.cs : In SlashIterator.MoveNext() position might keep 0
426 in case of empty list. Thus extraneous iteration might happened.
427 Removed unused (and clone unsafe) EnumeratorIterator.
429 2004-06-06 Atsushi Enomoto <atsushi@ximian.com>
431 * XPathDocument.s : The previous patch is still incomplete to close.
433 2004-06-05 Atsushi Enomoto <atsushi@ximian.com>
435 * XPathDocument.cs : close self-opened XmlTextReader in .ctor().
437 2004-06-03 Atsushi Enomoto <atsushi@ximian.com>
439 * Expression.cs : LookupNamespace() only allows already-atomized names.
440 * XPathEditableNavigator.cs : removed incorrect set_OuterXml() and
443 2004-05-22 Atsushi Enomoto <atsushi@ximian.com>
445 * DefaultContext.cs : Add XPathNavigator input support for ToBoolean()
447 * Expression.cs : In Equality comparison, evaluate XPathNavigator in
448 the same as well as NodeSet. This fixes bug #59134.
450 2004-05-22 Atsushi Enomoto <atsushi@ximian.com>
452 * XPathAtomicValue.cs : missed NET_2_0.
454 2004-05-22 Atsushi Enomoto <atsushi@ximian.com>
456 * IXPathChangeNavigable.cs,
458 NodeChangedEventArgs.cs,
459 NodeChangedEventHandler.cs,
461 XPathChangeNavigator.cs,
462 XPathDocumentNodeChangedAction.cs,
463 XPathEditableNavigator.cs,
466 XmlNodeChangeType.cs : added NET_2_0 classes.
468 XPathNavigator.cs : updated NET_2_0 members.
470 2004-05-20 Atsushi Enomoto <atsushi@ximian.com>
472 * Expression.cs : We should not catch all kind of exception. Just
473 throwing any kind of exception would be preferable.
474 Added support for XPathNavigator values.
476 2004-05-13 Atsushi Enomoto <atsushi@ximian.com>
478 * DefaultContext.cs : Removed MonoTODO. done.
479 * Expression.cs : handle XPathResultType.Navigator in some places and
480 removed MonoTODO. Mark MonoTODO with explicit comments (though they
481 are mostly pointing out possibilities of optimization).
482 Removed extra check that depended on the old bugs.
483 * XPathResultType.cs : Fixed .Navigator that had the same value as
486 2004-05-12 Atsushi Enomoto <atsushi@ximian.com>
488 * Parser.jay : made class internal.
490 2004-03-16 Atsushi Enomoto <atsushi@ximian.com>
492 * XPathNavigator.cs, Iterator.cs : Considered detached nodes, the
493 result of MoveToParent() should be checked.
495 2004-02-17 Atsushi Enomoto <atsushi@ximian.com>
497 * XPathNavigator.cs : Only child and attribute axes are allowed for
499 * Expression.cs : Added IsPositional property.
500 * DefaultContext.cs : Added some overrides.
502 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
504 * XPathNavigator.cs : no, its still not ok. comment out now.
506 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
508 * Expression.cs : Added EvaluatedNodeType and NeedAbsoluteMatching
509 to reduce extraneous Matches() trial.
510 * Iterator.cs : Removed unused MergedIterator.
511 * XPathNavigator.cs : Optimized Matches() not to evaluate ancestors
512 unnecessarily. (Test with NeedAbsoluteMatching).
514 2004-02-10 Atsushi Enomoto <atsushi@ximian.com>
516 * Iterator.cs : Added overriden Count properties for some iterators
517 (this fixes the half of #50678).
518 Added ListIterator class (which can reduce GetEnumerator()).
519 In some places we can omit clone for Current property, so added
520 some check logic (It has no effect as yet).
521 * Expression.cs, DefaultContext.cs :
522 use ListIterator instead of EnumeratorIterator.
524 2004-02-08 Atsushi Enomoto <atsushi@ximian.com>
526 * DefaultContext.cs, Expression.cs, Iterator.cs :
527 tiny foreach elimination.
529 2004-02-05 Atsushi Enomoto <atsushi@ximian.com>
531 * DefaultContext.cs : trivial processing order fix.
533 2004-01-27 Atsushi Enomoto <atsushi@ximian.com>
535 * DefaultContext.cs : Avoid exception if possible.
536 * Iterator.cs : Fixed PrecedingSiblingIterator.MoveNext(). When the
537 nav was positioned at the first, it incorrectly points itself.
538 Don't add names to name table while it is useless and expensive.
540 2004-01-08 Nick Drochak <ndrochak@ieee.org>
542 * Iterator.cs: Removed unused variable.
544 2003-12-18 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
546 * Parser.jay : now it supresses error output from jay.
547 * DefaultContext.cs : (XPathFunctionSubstring) exclude -Infinity.
548 * Tokenizer.cs : better error message.
549 * XPathDocument.cs : Use XmlValidatingReader to support id() function.
550 (just found MS.NET actually supports it)
552 2003-12-16 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
554 * Iterator.cs : On its iteration, moving Current must not affect to
555 MoveNext(). To assure this, Current must be a clone of navigator.
558 2003-12-07 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
560 * Tokenizer.cs : Removed some TODOs. (trivial ;-)
561 * Iterator.cs : ParensIterator can inherit from BaseIterator.
562 SlashIterator copy .ctor() always failed to clone. This fixes Count.
564 2003-12-03 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
566 * Expression.cs : XPathSorters.Compare() should compare document
567 position. See last sentence of XSLT 1.0 secion 10.
569 2003-12-03 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
571 * DefaultContext.cs : Overrode all functions' ToString().
572 XPathFunctions.ToNumber() trims whitespaces at both side.
573 Fixed NullReferenceException in normalize-space().
574 * Iterator.cs : Fixed AncestorOrSelfIterator.MoveNext() didn't handle
575 attribute or namespace node correctly.
576 SlashIterator.Clone() didn't clone "next node iterator" correctly.
577 EnumeratorIterator.ctor() should raise an error (not at Clone())
578 when the target IEnumerator is not ICloneable.
580 2003-11-28 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
582 * Expression.cs : namespace axis now traversed in reverse order, so it
584 * Iterator.cs : UnionIterator.Clone() was incomplete.
585 NamespaceItarator() should be reverse order (special handling
586 because of XPathNavigator specification).
588 2003-11-24 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
590 * Iterator.cs : PrecedingIterator.MoveNext() now breaks up at Root.
591 * XPathNavigator.cs : ComparePosition() didn't handle attributes
594 2003-11-24 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
596 * Parser.jay, Expression.cs, Iterator.cs :
597 Added ExprParens and ParensIterator classes which is used to handle
598 precedence of parenthesized expressions.
599 (e.g. consider "(preceding::*)[3]" and "preceding::[3]" )
601 * Expression.cs, Iterator.cs :
602 Added RequireSorting property for each Expr and BaseIterator classes.
603 SlashIterator.MoveNext() now considers correct sorting. But
604 considering performance, it separates two logics, sorted and sortless
605 depending on RequireSorting of left iterator and right expression.
608 SimpleIterator.ctor() should consider when nav is null.
609 FollowingIterator.MoveNext() and PrecedingIterator.MoveNext() should
610 not return any nodes.
611 AncestorIterator and AncestorOrSelfIterator copy ctr() should clone
613 AncestorIterator.MoveNext() should skip Root if context node is
615 FollowingIterator.MoveNext() should not handle children of context
617 PrecedingIterator.MoveNext() should skip its ancestors.
618 AxisIterator.ReverseAxis should be dependent on its containing iter.
619 UnionIterator.MoveNext() should consider comparison of nodes in
620 different document. The behavior is implementation dependent.
623 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
625 * Added XPathComparer.cs
626 * DefaultContext.cs : Fixed XPathFunctionId.Evaluate() to iterate base
627 iterator correctly, and sort results.
629 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
631 * DefaultContext.cs : Imcomplete fix ;-)
633 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
635 * DefaultContext.cs : XPathFunctions.ToNumber() should catch overflow.
636 XPathFunctionId.cs : Exposed Id expression.
637 * Expression.cs : Added ExprLiteral.Value, and class ExprParens (it
638 will be used to solve evaluation precedence problem).
640 2003-11-09 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
642 * Iterator.cs : Fixed SlashIterator that might return nodes 1)in
643 inconsistent order, and 2)may return duplicate result nodes.
645 2003-11-06 Ben Maurer <bmaurer@users.sourceforge.net>
647 * Iterator.cs: (AxisIterator.ComparablePosition): Remove. Let
648 it inherit from the base class. This made b[2] evaluated on
649 <a /><b /><c /><a /><b /><c /> return the first b node because
650 in the ChildIterator it was the second node and seemed to satsify
653 2003-11-04 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
655 * Iterator.cs : Added bool ReverseAxis property to identify whether
656 the iterator is in reverse order or not. Added ComparablePosition
657 for correct position comparison for PredicateIterator and reverse-
658 order-axes. Modified AncestorIterator, AncestorOrSelfIterator,
659 PrecedingIterator and PrecedingSiblingIterator to make MoveNext()
660 return their nodes in document order. This fixes bugzilla #39079.
662 2003-10-15 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
664 * Iterator.cs : DescendantIterator and FollowingIterator also should
665 not MoveNext() after they reached to the end.
667 2003-10-13 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
669 * Iterator.cs : Fixed UnionIterator who ignores document order.
670 Fixed SlashIterator whose MoveNext() should finish at its end.
672 2003-09-27 Ben Maurer <bmaurer@users.sourceforge.net>
674 * Iterator.cs, Expression.cs, XPathNavigator.cs: In AxisIterator
675 use NameTable so we dont call strcmp.
677 2003-09-27 Ben Maurer <bmaurer@users.sourceforge.net>
679 * DefaultContext.cs (translate): translate ("abc", "c", "") = "ab"
681 * Iterator.cs, Expression.cs: All axes are
682 SimpleIterators. SimpleIterators are gaurenteed to give the same
683 XPathNavigator in Current. Make AxisIterator take a
684 SimpleIterator, not any old BaseIterator. Will allow us to make
685 NameTable optimizations and avoid quite a few strcmp's.
687 2003-09-24 Ben Maurer <bmaurer@users.sourceforge.net>
689 * Expression.cs: make // work right, must use another slash itr.
691 2003-09-21 Ben Maurer <bmaurer@users.sourceforge.net>
693 * Expression.cs: cant use $$ before assigned.
695 2003-09-21 Ben Maurer <bmaurer@users.sourceforge.net>
697 * Expression.cs, Parser.jay, XPathNavigator.cs: api beautification.
699 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
701 * Expression.cs: num != double.NaN does not work.
703 2003-09-19 Ben Maurer <bmaurer@users.sourceforge.net>
705 * Expression.cs: in NodeTypeTest dont throw an exception if it is
706 an unknown node type (allows for better Pattern debugging).
708 2003-09-17 Ben Maurer <bmaurer@users.sourceforge.net>
710 * DefaultContext.cs: implement sum () and translate ().
712 2003-09-13 Ben Maurer <bmaurer@users.sourceforge.net>
714 * XPathNavigator.cs: Make methods where you pass in the context,
715 so that we dont have to clone expressions so much.
717 2003-09-06 Ben Maurer <bmaurer@users.sourceforge.net>
719 * DefaultContext.cs, Expresssion.cs, Parser.jay: Rewrite so that
720 system functions are actually expressions. Will allow for some
723 2003-08-25 Ben Maurer <bmaurer@users.sourceforge.net>
725 * XPathNavigator.cs: "Smart" behavior in Matches. Nice 8x speed
726 improvement in the method (5ms/call -> .7 ms / call) measured by
727 monodoc's rendering of N:System.
728 * Expression.cs: Utility methods to support above.
730 2003-08-13 Piers Haken <piersh@friskit.com>
733 fix MergedIterator.Clone(), now clones other's iterators
734 fix DescendantIterator.Clone(), now copies depth
735 make iterator cloning constructors more type-specific
737 2003-08-01 Piers Haken <piersh@friskit.com>
739 * Expression.cs: added NodeNamespaceTest
740 * XPathNavigator.cs: implement Select* with namespaces
742 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
744 * Iterator.cs: Allow creation of an EnumeratorIterator with an
747 2003-07-31 Piers Haken <piersh@friskit.com>
750 Nested predicates (uses ExprFilter instead)
752 make grammar look more like w3c spec
754 remove ExprStep, ExprPredicates
755 NodeTest is now a NodeSet
758 PredicateIterator now only takes a single predicate expression
761 simplified SelectTest
765 2003-07-30 Duncan Mak <duncan@ximian.com>
771 2003-07-29 Piers Haken <piersh@friskit.com>
773 * DefaultContext.cs: 'local-name' returns String, not NodeSet!
775 2003-07-29 Piers Haken <piersh@friskit.com>
779 add typesafe Evaluate* methods
781 2003-07-29 Piers Haken <piersh@friskit.com>
783 * DefaultContext.cs: fix 'substring-after'
785 2003-07-29 Piers Haken <piersh@friskit.com>
787 * Iterator.cs: fix PredicateIterator.CurrentPosition bug (it wasn't incrementing)
789 2003-07-29 Ben Maurer <bmaurer@users.sourceforge.net>
791 * Iterator.cs: dont throw exceptions on tostring ()
793 2003-07-28 Piers Haken <piersh@friskit.com>
795 * DefaultContext.cs: better handling of null argument lists
796 * XPathNavigator.cs: implement ComparePosition
798 2003-07-28 Piers Haken <piersh@friskit.com>
800 * Expression.cs: boolean operators: handle comparing .Any better
802 2003-07-28 Piers Haken <piersh@friskit.com>
804 * DefaultContext.cs: count() should return a double
805 * Expression.cs: better support for handling non-double numbers
807 2003-07-28 Piers Haken <piersh@friskit.com>
809 * DefaultContext.cs: better function param matching
811 2003-07-27 Piers Haken <piersh@friskit.com>
815 catch FormatExceptions while parsing numbers
817 2003-07-27 Piers Haken <piersh@friskit.com>
820 fix case sorting order
821 allow EvaluateNumber to take XPathResultType.Any
823 2003-07-27 Piers Haken <piersh@friskit.com>
827 don't pass null to XmlQualifiedName constructor
829 2003-07-27 Piers Haken <piersh@friskit.com>
831 * DefaultContext.cs: allow 'concat' to take arbitrary-typed arguments (spec?)
833 2003-07-27 Piers Haken <piersh@friskit.com>
835 * Expression.cs: allow EvaluateNodeSet to take XPathResultType.Any
837 2003-07-26 Piers Haken <piersh@friskit.com>
839 * Expression.cs: fix function evaluation with ambigous argument types
840 * XPathNavigator.cs: fix silly null reference bug
842 2003-07-26 Piers Haken <piersh@friskit.com>
846 ArrayListIterator->EnumeratorIterator
847 * Expression.cs: add sorting support
849 2003-07-26 Piers Haken <piersh@friskit.com>
853 move QName parsing into tokenizer
855 fix evaluating XPathResultType.Any
856 fix ExprDiv.ToString()
857 fix NodeTypeTest.ToString() (for namespace axis)
859 2003-07-25 Piers Haken <piersh@friskit.com>
861 * Expression.cs: return clone of $var evaluation
863 2003-07-26 Piers Haken <piersh@friskit.com>
865 * Iterator.cs: add setter for NamespaceManager
866 * XPathNavigator.cs: propagate NamespaceManager from context on Evaluate
867 * Expression.cs: fix func/var exception strings
869 2003-07-25 Piers Haken <piersh@friskit.com>
871 * Expression.cs: implement ExprFilter.Evaluate
873 2003-07-25 Piers Haken <piersh@friskit.com>
875 * Expression.cs: implement ExprVariable.Evaluate
877 2003-07-24 Ben Maurer <bmaurer@users.sourceforge.net>
879 * DefaultContext.cs: implement lang ()
881 2003-07-24 Piers Haken <piersh@friskit.com>
885 allow ExprUNION to take non-nodeset (eg, $var) arguments
887 2003-07-24 Piers Haken <piersh@friskit.com>
889 * Tokenizer.cs: fix variable references
895 2003-06-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
897 * XPathDocument.cs : removed Driver class and restored authors' name
898 (though it is completely rewrote).
900 2003-06-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
902 * XPathDocument.cs : Replaced existing stub class with real
903 XPathDocument implementation.
905 2003-04-28 Piers Haken <piersh@friskit.com>
907 * Parser.jay, Tokenizer.cs: more compliant lexical parsing of ambiguous tokens
909 2003-03-07 Piers Haken <piersh@friskit.com>
911 * Tokenizer.cs: allow '.'s in NCNames
913 2003-03-07 Piers Haken <piersh@friskit.com>
917 fixed function argument resolution
919 2003-02-09 Piers Haken <piersh@friskit.com>
923 * Expression.cs: fix namespace handling
925 2003-01-04 Piers Haken <piersh@friskit.com>
927 * Parser.*: Remove extraneous "using" that was stopping the build. Permanently thisi time ;-)
929 2003-02-02 Piers Haken <piersh@friskit.com>
931 * Parser.jay: add token names
932 * Tokenizer.cs: fix NCName tokenization
934 2003-01-02 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
936 * Tokenizer.cs : Fixed ParseIdentifier to allow digits.
937 (It should be a temporary fix.)
939 2002-09-22 Nick Drochak <ndrochak@gol.com>
941 * Parser.cs: Remove extraneous "using" that was stopping the build.
943 2002-09-21 Piers Haken <piersh@friskit.com>
945 * XPathException: implementation
950 * XPathNavigator.jay:
953 2002-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
955 * Parser.cs: commented out non-existent namespace (it compiles fine
956 with mcs because of a bug that is already on bugzilla).
958 2002-09-12 Piers Haken <piersh@friskit.com>
960 * Tokenizer.cs: fix parsing numbers that start with '.'
961 * DefaultContext.cs: use MS-compatible formatting of doubles
963 2002-09-12 Piers Haken <piersh@friskit.com>
965 * Iterator.cs: added NullIterator to handle unspecified contexts
966 * XPathNavigator.cs: use NullIterator insted of SelfIterator when context is unspecified.
967 * XPathNodeIterator.cs: change default _count to -1 to prevent recalculations for NullIterators
969 2002-09-12 Piers Haken <piersh@friskit.com>
971 * Expression.cs, Parser.jay: allow ExprSLASH to take a generic expression as its left argument.
972 * Iterator.cs: fix SlashIterator.Clone() when _iterRight is null.
973 * DefaultContext.cs: fix id() return type.
975 2002-09-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
977 * DefaultContext.cs: fixed bug #28840.
978 * Expression.cs: added FIXME.
980 2002-08-17 Jason Diamond <jason@injektilo.org>
982 * XPathNavigator.cs: Fixed matching on patterns that look like
983 absolute XPath expressions.
985 2002-08-17 Jason Diamond <jason@injektilo.org>
987 * XPathNavigator.cs: Added naive (but working) implementation of
990 2002-07-31 Piers Haken <piersh@friskit.com>
992 * XPathDocument.cs: simple, XmlDocument-based implementation
994 2002-07-25 Piers Haken <piersh@friskit.com>
996 * DefaultContext.cs: implement XPathFunctionName 'name()' function.
998 2002-07-17 Piers Haken <piersh@friskit.com>
1000 * DefaultContext.cs: implement 'string-length()', 'normalize-space()'
1001 * Parser.jay: remove redundant production
1002 * Expression.cs: add switches for debugging under VS.NET
1004 2002-07-17 Piers Haken <piersh@friskit.com>
1006 * Expression.cs: implement nodeset/nodeset comparisons (non-optimal)
1008 2002-07-15 Piers Haken <piersh@friskit.com>
1011 - rename UnionIterator to MergedIterator,
1012 - create new UnionIterator to implment uniqueness for '|' operator
1013 - fix position bug in ArrayListIterator.Clone()
1014 * Expression.cs: use new UnionIterator constructor syntax
1016 2002-07-12 Piers Haken <piersh@friskit.com>
1018 * Iterator.cs: PredicateIterator: handle numeric predicates
1019 * Parser.jay: add some debugging support: yyparseDebug
1020 * Tokenizer.cs: cleanup, include '-' chars in identifier tokens
1022 2002-06-29 Piers Haken <piersh@friskit.com>
1026 - NodeTest uses XPathResultType instead of internal NodeTestTypes enum
1027 - remove NodeTestTypes enum
1028 - remove NodeTestTypeAny (functionality provided by base now)
1029 - fix ExprStep to handle wildcard QNames
1031 - moved to Mono.Xml.XPath namespace
1032 - use XPathResultType
1033 - handle wildcard QNames
1035 * Tokenizer.cs: moved to Mono.Xml.XPath namespace
1037 * XPathNavigator.cs: implement
1043 * XPathResultType.cs: fix enum values
1045 2002-06-24 Jason Diamond <jason@injektilo.org>
1047 * XPathScanner.cs: Removed.
1049 2002-06-24 Dick Porter <dick@ximian.com>
1051 * XmlCaseOrder.cs: Fix namespace
1053 2002-06-23 Piers Haken <piersh@friskit.com>
1055 * DefaultContext.cs: implemented XPathFUnctionId
1056 * Iterator.cs: new ArrayListIterator for id() support
1058 2002-06-23 Piers Haken <piersh@friskit.com>
1060 * XPathNavigator.cs: implement:
1066 - some forwarding methods
1068 * XPathNodeIterator: implement caching Count
1070 * Tokenizer.cs: new XPath tokenizer
1071 * Parser.jay: new XPath grammar
1072 * Parser.cs: new precompiled XPath grammar
1073 * Expression.cs: new XPath expression objects
1074 * Iterator.cs: new XPath result/context objects
1075 * DefaultContext.cs: new XPath function binding context
1077 2002-05-08 Tim Coleman <tim@timcoleman.com>
1079 * XPathException.cs: New stub files added.
1081 2002-04-12 Duncan Mak <duncan@ximian.com>
1083 * XmlCaseOrder.cs: Moved to here from System.Xml.
1085 2002-03-26 Jason Diamond <jason@injektilo.org>
1087 * XPathScanner.cs: Now handles name tests with wildacards. Abbreviated
1088 steps. Both absolution and relative abbreviated location paths.
1090 2002-03-25 Jason Diamond <jason@injektilo.org>
1092 * XPathScanner.cs: Added new file. This class is supposed to be internal
1093 but that would make it impossible to test.
1095 2002-03-08 Duncan Mak <duncan@ximian.com>
1097 * XPathNamespaceScope.cs:
1099 * XPathResultType.cs:
1101 * XmlSortOrder.cs: Used EnumCheck and realigned elements to be compatible with MS
1102 implementation. XPathResultType is interesting as EnumCheck does
1103 not show the Navigator element, but shows the String element twice.
1105 2002-03-08 Jason Diamond <jason@injektilo.org>
1107 * XmlDataType.cs, XmlSortOrder.cs, XPathNodeType.cs: Added files.
1109 2002-03-06 Jason Diamond <jason@injektilo.org>
1111 * ChangeLog: Added to this directory.
1113 * XPathExpression.cs, XPathNamespaceScope.cs, XPathNodeIterator.cs,
1114 XPathResultType.cs: New files.
1116 * XPathNavigator.cs: Stubbed out all properties and methods.