2004-08-02 Atsushi Enomoto <atsushi@ximian.com>
[mono.git] / mcs / class / System.XML / System.Xml.XPath / ChangeLog
index d8d23cfe2f5b5b292d228da93b5f0a2c0072cc47..6351580aa26f4a0ef3ddf08a841029c69bb8bd96 100644 (file)
@@ -1,3 +1,468 @@
+2004-07-29  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * XPathNavigator.cs : Implemented ReadSubtree().
+
+2004-07-28  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * XPathDocument.cs : for .ctor() and .ctor(XmlNameTable), now it 
+         creates Mono.Xml.XPath.XPathEditableDocument and thus supports
+         IXPathEditable.CreateEditor().
+
+2004-07-28  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * XPathEditableNavigator.cs : Implemented InsertAfter() and 
+         PrependChild(); they are virtual, not abstract.
+       * XPathNavigator.cs :
+         Implemented many 2.0 virtual properties and methods that were 
+         abstract in 1.x.
+         Implemented some Select() methods that uses IXmlNamespaceResolver.
+         Implemented most of ValueAsXxx() using XQueryConvert.
+         IsNode is always true. Implemented OuterXml and WriteSubtree() (but
+         actually they don't work because it depends on ReadSubtree()).
+
+2004-07-26  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * XPathDocument.cs : added missing && not-likely-to-be-removed members.
+       * XPathEditableNavigator.cs : added BuildSubTree().
+       * XPathException.cs : added missing methods. Hide Message in NET_2_0.
+
+2004-07-23  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * XPathNodeIterator.cs : implemented 2.0 GetEnumerator().
+
+2004-07-21  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * XPathExpression.cs, Expression.cs :
+         Added SetContext(IXmlNamespaceResolver).
+       * NodeChangedEventArgs.cs : Added missing [MonoTODO].
+       * XPathAtomicValue.cs : Halfly implemented.
+       * XPathDocument.cs : Added 2.0 members.
+       * XPathDocumentNodeChangedAction.cs : updated member names.
+       * XPathEditableNavigator.cs : Added missing 2.0 members and MonoTODO.
+       * XPathNavigator.cs : Added missing 2.0 members.
+         Fixed some members as virtual->override.
+
+2004-07-13  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * XmlNodeChageType.cs, XmlChangeFilters.cs : fixed enum values.
+       * XPathResultType.cs : marked [MonoFIX] on .Navigator.
+
+2004-07-11  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * Expression.cs, Iterator.cs, XPathNavigator.cs :
+         Use IXmlNamespaceResolver for net 2.0. Removed unused code.
+       * XPathEditableNavigator.cs : fixed namespace.
+       * XPathNavigator.cs :
+         Fixed inheritance. Added missing MonoTODO.
+         Removed old .net 1.2 code. 
+
+2004-06-18  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * DefaultContext.cs : Globalization.
+       * Iterator.cs : In SlashIterator.MoveNext() position might keep 0
+         in case of empty list. Thus extraneous iteration might happened.
+         Removed unused (and clone unsafe) EnumeratorIterator.
+
+2004-06-06  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * XPathDocument.s : The previous patch is still incomplete to close.
+
+2004-06-05  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * XPathDocument.cs : close self-opened XmlTextReader in .ctor().
+
+2004-06-03  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * Expression.cs : LookupNamespace() only allows already-atomized names.
+       * XPathEditableNavigator.cs : removed incorrect set_OuterXml() and 
+         set_InnerXml().
+
+2004-05-22  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * DefaultContext.cs : Add XPathNavigator input support for ToBoolean()
+         and ToNavigator().
+       * Expression.cs : In Equality comparison, evaluate XPathNavigator in
+         the same as well as NodeSet. This fixes bug #59134.
+
+2004-05-22  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * XPathAtomicValue.cs : missed NET_2_0.
+
+2004-05-22  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * IXPathChangeNavigable.cs,
+         IXPathEditable.cs,
+         NodeChangedEventArgs.cs,
+         NodeChangedEventHandler.cs,
+         XPathAtomicValue.cs,
+         XPathChangeNavigator.cs,
+         XPathDocumentNodeChangedAction.cs,
+         XPathEditableNavigator.cs,
+         XPathItem.cs,
+         XmlChangeFilters.cs,
+         XmlNodeChangeType.cs : added NET_2_0 classes.
+       * XPathDocument.cs,
+         XPathNavigator.cs : updated NET_2_0 members.
+
+2004-05-20  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * Expression.cs : We should not catch all kind of exception. Just
+         throwing any kind of exception would be preferable.
+         Added support for XPathNavigator values.
+
+2004-05-13  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * DefaultContext.cs : Removed MonoTODO. done.
+       * Expression.cs : handle XPathResultType.Navigator in some places and
+         removed MonoTODO. Mark MonoTODO with explicit comments (though they
+         are mostly pointing out possibilities of optimization).
+         Removed extra check that depended on the old bugs.
+       * XPathResultType.cs : Fixed .Navigator that had the same value as
+         .String.
+
+2004-05-12  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * Parser.jay : made class internal.
+
+2004-03-16  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * XPathNavigator.cs, Iterator.cs : Considered detached nodes, the 
+         result of MoveToParent() should be checked.
+
+2004-02-17  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * XPathNavigator.cs : Only child and attribute axes are allowed for
+         Matches().
+       * Expression.cs : Added IsPositional property.
+       * DefaultContext.cs : Added some overrides.
+
+2004-02-16  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * XPathNavigator.cs : no, its still not ok. comment out now.
+
+2004-02-16  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * Expression.cs : Added EvaluatedNodeType and NeedAbsoluteMatching
+         to reduce extraneous Matches() trial.
+       * Iterator.cs : Removed unused MergedIterator.
+       * XPathNavigator.cs : Optimized Matches() not to evaluate ancestors
+         unnecessarily. (Test with NeedAbsoluteMatching).
+
+2004-02-10  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * Iterator.cs : Added overriden Count properties for some iterators
+         (this fixes the half of #50678).
+         Added ListIterator class (which can reduce GetEnumerator()). 
+         In some places we can omit clone for Current property, so added 
+         some check logic (It has no effect as yet).
+       * Expression.cs, DefaultContext.cs :
+         use ListIterator instead of EnumeratorIterator.
+
+2004-02-08  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * DefaultContext.cs, Expression.cs, Iterator.cs :
+         tiny foreach elimination.
+
+2004-02-05  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * DefaultContext.cs : trivial processing order fix.
+
+2004-01-27  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * DefaultContext.cs : Avoid exception if possible.
+       * Iterator.cs : Fixed PrecedingSiblingIterator.MoveNext(). When the
+         nav was positioned at the first, it incorrectly points itself.
+         Don't add names to name table while it is useless and expensive.
+
+2004-01-08  Nick Drochak <ndrochak@ieee.org>
+
+       * Iterator.cs: Removed unused variable.
+       
+2003-12-18 Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
+
+       * Parser.jay : now it supresses error output from jay.
+       * DefaultContext.cs : (XPathFunctionSubstring) exclude -Infinity.
+       * Tokenizer.cs : better error message.
+       * XPathDocument.cs : Use XmlValidatingReader to support id() function.
+         (just found MS.NET actually supports it)
+
+2003-12-16 Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
+
+       * Iterator.cs : On its iteration, moving Current must not affect to
+         MoveNext(). To assure this, Current must be a clone of navigator.
+         Removed unused code.
+
+2003-12-07 Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
+
+       * Tokenizer.cs : Removed some TODOs. (trivial ;-)
+       * Iterator.cs : ParensIterator can inherit from BaseIterator.
+         SlashIterator copy .ctor() always failed to clone. This fixes Count.
+
+2003-12-03 Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
+
+       * Expression.cs : XPathSorters.Compare() should compare document
+         position. See last sentence of XSLT 1.0 secion 10.
+
+2003-12-03 Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
+
+       * DefaultContext.cs : Overrode all functions' ToString().
+         XPathFunctions.ToNumber() trims whitespaces at both side.
+         Fixed NullReferenceException in normalize-space().
+       * Iterator.cs : Fixed AncestorOrSelfIterator.MoveNext() didn't handle
+         attribute or namespace node correctly.
+         SlashIterator.Clone() didn't clone "next node iterator" correctly.
+         EnumeratorIterator.ctor() should raise an error (not at Clone())
+         when the target IEnumerator is not ICloneable.
+
+2003-11-28  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
+
+       * Expression.cs : namespace axis now traversed in reverse order, so it
+         requires sorting.
+       * Iterator.cs : UnionIterator.Clone() was incomplete. 
+         NamespaceItarator() should be reverse order (special handling
+         because of XPathNavigator specification).
+
+2003-11-24  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
+
+       * Iterator.cs : PrecedingIterator.MoveNext() now breaks up at Root.
+       * XPathNavigator.cs : ComparePosition() didn't handle attributes 
+         correctly.
+
+2003-11-24  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
+
+       * Parser.jay, Expression.cs, Iterator.cs :
+         Added ExprParens and ParensIterator classes which is used to handle
+         precedence of parenthesized expressions.
+         (e.g. consider "(preceding::*)[3]" and "preceding::[3]" )
+
+       * Expression.cs, Iterator.cs :
+         Added RequireSorting property for each Expr and BaseIterator classes.
+         SlashIterator.MoveNext() now considers correct sorting. But
+         considering performance, it separates two logics, sorted and sortless
+         depending on RequireSorting of left iterator and right expression.
+
+       * Iterator.cs :
+         SimpleIterator.ctor() should consider when nav is null.
+         FollowingIterator.MoveNext() and PrecedingIterator.MoveNext() should
+         not return any nodes.
+         AncestorIterator and AncestorOrSelfIterator copy ctr() should clone
+         positions.
+         AncestorIterator.MoveNext() should skip Root if context node is
+         Root itself.
+         FollowingIterator.MoveNext() should not handle children of context
+         itself.
+         PrecedingIterator.MoveNext() should skip its ancestors.
+         AxisIterator.ReverseAxis should be dependent on its containing iter.
+         UnionIterator.MoveNext() should consider comparison of nodes in 
+         different document. The behavior is implementation dependent.
+         (see XSLT spec 12.1)
+
+2003-11-19  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
+
+       * Added XPathComparer.cs
+       * DefaultContext.cs : Fixed XPathFunctionId.Evaluate() to iterate base 
+         iterator correctly, and sort results.
+
+2003-11-19  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
+
+       * DefaultContext.cs : Imcomplete fix ;-)
+
+2003-11-19  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
+
+       * DefaultContext.cs : XPathFunctions.ToNumber() should catch overflow.
+         XPathFunctionId.cs : Exposed Id expression.
+       * Expression.cs : Added ExprLiteral.Value, and class ExprParens (it
+         will be used to solve evaluation precedence problem).
+
+2003-11-09  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
+
+       * Iterator.cs : Fixed SlashIterator that might return nodes 1)in
+         inconsistent order, and 2)may return duplicate result nodes.
+
+2003-11-06 Ben Maurer  <bmaurer@users.sourceforge.net>
+
+       * Iterator.cs: (AxisIterator.ComparablePosition): Remove. Let
+       it inherit from the base class. This made b[2] evaluated on 
+       <a /><b /><c /><a /><b /><c /> return the first b node because
+       in the ChildIterator it was the second node and seemed to satsify
+       the predicate.
+
+2003-11-04  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
+
+       * Iterator.cs : Added bool ReverseAxis property to identify whether
+         the iterator is in reverse order or not.  Added ComparablePosition
+         for correct position comparison for PredicateIterator and reverse-
+         order-axes.  Modified AncestorIterator, AncestorOrSelfIterator,
+         PrecedingIterator and PrecedingSiblingIterator to make MoveNext()
+         return their nodes in document order. This fixes bugzilla #39079.
+
+2003-10-15  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
+
+       * Iterator.cs : DescendantIterator and FollowingIterator also should
+         not MoveNext() after they reached to the end.
+
+2003-10-13  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
+
+       * Iterator.cs : Fixed UnionIterator who ignores document order.
+         Fixed SlashIterator whose MoveNext() should finish at its end.
+
+2003-09-27 Ben Maurer  <bmaurer@users.sourceforge.net>
+
+       * Iterator.cs, Expression.cs, XPathNavigator.cs: In AxisIterator
+       use NameTable so we dont call strcmp.
+
+2003-09-27 Ben Maurer  <bmaurer@users.sourceforge.net>
+
+       * DefaultContext.cs (translate): translate ("abc", "c", "") = "ab"
+       not "abc".
+       * Iterator.cs, Expression.cs: All axes are
+       SimpleIterators. SimpleIterators are gaurenteed to give the same
+       XPathNavigator in Current. Make AxisIterator take a
+       SimpleIterator, not any old BaseIterator. Will allow us to make
+       NameTable optimizations and avoid quite a few strcmp's.
+
+2003-09-24 Ben Maurer  <bmaurer@users.sourceforge.net>
+
+       * Expression.cs: make // work right, must use another slash itr.
+
+2003-09-21 Ben Maurer  <bmaurer@users.sourceforge.net>
+
+       * Expression.cs: cant use $$ before assigned.
+
+2003-09-21 Ben Maurer  <bmaurer@users.sourceforge.net>
+
+       * Expression.cs, Parser.jay, XPathNavigator.cs: api beautification.
+
+2003-09-20 Ben Maurer  <bmaurer@users.sourceforge.net>
+
+       * Expression.cs: num != double.NaN does not work.
+
+2003-09-19 Ben Maurer  <bmaurer@users.sourceforge.net>
+
+       * Expression.cs: in NodeTypeTest dont throw an exception if it is
+       an unknown node type (allows for better Pattern debugging).
+
+2003-09-17 Ben Maurer  <bmaurer@users.sourceforge.net>
+
+       * DefaultContext.cs: implement sum () and translate ().
+
+2003-09-13 Ben Maurer  <bmaurer@users.sourceforge.net>
+
+       * XPathNavigator.cs: Make methods where you pass in the context,
+       so that we dont have to clone expressions so much.
+
+2003-09-06 Ben Maurer  <bmaurer@users.sourceforge.net>
+
+       * DefaultContext.cs, Expresssion.cs, Parser.jay: Rewrite so that
+       system functions are actually expressions. Will allow for some
+       nice optimizations.
+
+2003-08-25 Ben Maurer  <bmaurer@users.sourceforge.net>
+
+       * XPathNavigator.cs: "Smart" behavior in Matches. Nice 8x speed
+       improvement in the method (5ms/call -> .7 ms / call) measured by
+       monodoc's rendering of N:System.
+       * Expression.cs: Utility methods to support above.
+
+2003-08-13 Piers Haken <piersh@friskit.com>
+       
+       * Iterator.cs:
+               fix MergedIterator.Clone(), now clones other's iterators
+               fix DescendantIterator.Clone(), now copies depth
+               make iterator cloning constructors more type-specific
+
+2003-08-01 Piers Haken <piersh@friskit.com>
+
+       * Expression.cs: added NodeNamespaceTest
+       * XPathNavigator.cs: implement Select* with namespaces
+
+2003-07-31 Ben Maurer  <bmaurer@users.sourceforge.net>
+
+       * Iterator.cs: Allow creation of an EnumeratorIterator with an
+       XmlNamespaceManager.
+       
+2003-07-31 Piers Haken <piersh@friskit.com>
+
+       * Parser.jay:
+               Nested predicates (uses ExprFilter instead)
+               more type safety
+               make grammar look more like w3c spec
+       * Expression.cs:
+               remove ExprStep, ExprPredicates
+               NodeTest is now a NodeSet
+               more type-safety
+       * Iterator.cs:
+               PredicateIterator now only takes a single predicate expression
+               more type-safety
+       * XPathNavigator.cs:
+               simplified SelectTest
+       * XPathException.cs:
+               fixed indenting
+
+2003-07-30  Duncan Mak  <duncan@ximian.com>
+
+       * XPathException.cs
+       (GetObjectData): 
+       (Message): Added.
+
+2003-07-29 Piers Haken <piersh@friskit.com>
+
+       * DefaultContext.cs: 'local-name' returns String, not NodeSet!
+
+2003-07-29 Piers Haken <piersh@friskit.com>
+
+       * XPathNavigator.cs:
+       * Expression.cs:
+               add typesafe Evaluate* methods
+
+2003-07-29 Piers Haken <piersh@friskit.com>
+
+       * DefaultContext.cs: fix 'substring-after'
+
+2003-07-29 Piers Haken <piersh@friskit.com>
+
+       * Iterator.cs: fix PredicateIterator.CurrentPosition bug (it wasn't incrementing)
+
+2003-07-29 Ben Maurer  <bmaurer@users.sourceforge.net>
+
+       * Iterator.cs: dont throw exceptions on tostring ()
+       
+2003-07-28  Piers Haken        <piersh@friskit.com>
+
+       * DefaultContext.cs: better handling of null argument lists
+       * XPathNavigator.cs: implement ComparePosition
+
+2003-07-28  Piers Haken        <piersh@friskit.com>
+
+       * Expression.cs: boolean operators: handle comparing .Any better
+
+2003-07-28  Piers Haken        <piersh@friskit.com>
+
+       * DefaultContext.cs: count() should return a double
+       * Expression.cs: better support for handling non-double numbers
+
+2003-07-28  Piers Haken        <piersh@friskit.com>
+
+       * DefaultContext.cs: better function param matching
+
+2003-07-27  Piers Haken        <piersh@friskit.com>
+
+       * Expression.cs:
+       * DefaultContext.cs:
+               catch FormatExceptions while parsing numbers
+
+2003-07-27  Piers Haken        <piersh@friskit.com>
+
+       * Expression.cs:
+               fix case sorting order
+               allow EvaluateNumber to take XPathResultType.Any
+
+2003-07-27  Piers Haken        <piersh@friskit.com>
+
+       * Expression.cs:
+       * Tokenizer.cs:
+               don't pass null to XmlQualifiedName constructor
+
 2003-07-27  Piers Haken        <piersh@friskit.com>
 
        * DefaultContext.cs: allow 'concat' to take arbitrary-typed arguments (spec?)