2004-02-09 Atsushi Enomoto <atsushi@ximian.com>
[mono.git] / mcs / class / System.XML / System.Xml.XPath / ChangeLog
index 2b73dd694ed37ba685e3569b0f5528823148a479..763b1122b674bbe9f71b640a7c91b00c9cda1edc 100644 (file)
@@ -1,3 +1,419 @@
+2004-02-09  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * Expression.cs : RelationalExpr was comparing number and node in
+         reverse order. Patch by Kazuki Oikawa. Fixed bug #72343.
+         RelationalExpr should also handle result tree fragment as node-set
+         as well as EqualityExpr. This fixes RTF case wrt #72343.
+
+2004-02-08  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * Expression.cs : tiny code format fix by Andrew Skiba.
+
+2004-12-26  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * XPathNavigator.cs : Added CheckValidity() and ValueType.
+         For SetTypedValue(), throw NotSupportedException instead of
+         NotImplementedException.
+
+2004-12-16  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * XPathNavigator.cs :added MoveToFollowing(), ReplaceSelf() and
+         all the missing attributes.
+
+2004-12-04  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * XPathDocument.cs : switch to DTMXPathNavigator2 which fully
+         eliminated string fields from struct.
+         (When we switch from struct to class, revert this change to use
+         DTMXPathNavigator, since class-based DTMXPathNavigator2 is rather
+         wasting processing speed.)
+
+2004-12-02  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * Iterator.cs : when PredicateIterator has a numeric predicate, it
+         will never be true twice. So just break up the iteration on true.
+       * XPathNavigator.cs : implemented LookupPrefix().
+       * Expression.cs : ExprParens.Optimize() could just return the content
+         expression.
+
+2004-12-01  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * IXPathChangeNavigable.cs,
+         XmlChangeFilters.cs,
+         XPathDocumentNodeChangedAction.cs : removed old files.
+
+2004-12-01  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * Iterator.cs : with related to the previous patch, many comments
+         got making no sense. Thanks to Harinath.
+
+2004-12-01  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * Iterator.cs : actually I mean this patch.
+
+2004-12-01  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * Iterator.cs : Create _current clone only when required. So just set
+         null when MoveNextCore() succeeded (except for some cases that
+         _current is _nav, such as SelfIterator).
+
+2004-11-30  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * Iterator.cs : SlashIterator.RequireSorting is always false. Whether
+         it has to collect nodes in prior or not and whether it might return
+         nodes in inconsistent order is different matter.
+         (It still needs to store nodes when either of branches requires
+         sorting, because they might return the same node later.)
+
+2004-11-30  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * Iterator.cs : reduced some extraneous ComparePosition() that could
+         be written as IsSamePosition(). ParentIterator doesn't have to be
+         RequireSorting.
+
+2004-11-30  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * Iterator.cs : reimplemented AncestorIterator and 
+         AncestorOrSelfIterator just to collect parents and not to move to
+         siblings. In some cases like thousands of siblings, it used to be
+         so slow, while we usually don't have so deep ancestors.
+
+2004-11-26  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * Expression.cs : warning removal. Added Optimize() which is not
+         implemented at all.
+       * Tokenizer.cs : warning elimination
+
+2004-11-24  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * XPathEditableNavigator.cs, XPathChangeNavigator.cs,
+         IXPathEditable.cs : more removal of oldies.
+
+2004-11-24  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * NodeChangedEventArgs.cs, NodeChangedEventHandler.cs : removed oldies.
+
+2004-11-08  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * Tokenizer.cs : just use raw string instead of char[].
+       * XPathNavigator.cs : reuse NameTable when creating XmlTextReader.
+
+2004-11-07  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * Iterator.cs :
+         - Made copy constructor certainly different from other constructors.
+         - Position is never computed in each derived type. All MoveNext() are
+           now MoveNextCore().
+         - Most of the protected members could just be private.
+
+2004-11-05  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * Expression.cs, XPathNavigator.cs : hold raw expression field for
+         get_Expression. It is preparation for expression optimization.
+
+2004-11-05  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * Iterator.cs : SimpleIterator._current could be cloned only when
+         it is required.
+
+2004-11-05  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * Iterator.cs : Some removal of Clone() were harmless.
+
+2004-10-22  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * XPathDocument.cs : now all the new stuff that used to be in 2.0 are
+         reverted.
+       * XPathEditableNavigator.cs : It will be removed. Right now modified
+         a bit to pass build.
+       * XPathNavigator.cs : Added members that are merged from
+         XPathEditableNavigator. Updated members name.
+
+2004-10-14  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * Iterator.cs :
+         - Added WrapperIterator to return BaseIterator in such case that 
+           variable reference is resolved to XPathNodeIterator. This fixes
+           bug #68267.
+         - Path ".." is reverse axis (actually no effect).
+         - Fixed DescendantIterator.Clone() that missed "_finished" field.
+       * Expression.cs :
+         In ExprVariable.Evaluate(), use WrapperIterator() for custom
+         XPathNodeIterator.
+
+2004-10-09  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * XPathAtomicValue.cs : Init(string, XmlSchemaType) is private.
+
+2004-10-05  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * XPathAtomicValue.cs : missing Init() definition for float and string;
+         latter one resulted in infinite loop in Init(object,XmlSchemaType).
+
+2004-10-04  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * XPathNavigator.cs : TypedValue could be implemented.
+       * XPathEditableNavigator.cs : removed some MonoTODO since now there 
+         are implementations.
+
+2004-09-13  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * XPathAtomicValue.cs : All .ctor() are separeted from Init().
+         In .ctor(object, XmlSchemaType):
+         - For lists that contains just one item, Init() recursively.
+         - For XPathAtomicValue, Init() recursively for its content fields.
+         For Value and TypedValue, consider typecode from XmlSchemaType.
+
+2004-09-06  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * XPathEditableNavigator.cs :
+         AppendChild(xmlReader) ignored nodes after than first one, and
+         resulted in infinite loop.
+         Added get_OuterXml overrides. set_OuterXml should not move to
+         parent before deleting current.
+
+2004-08-25  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * XPathAtomicValue.cs : Value was not returning expected value when
+         it is created as new XPathAtomicValue (object, XmlSchemaType).
+         Compute stringValue and reuse.
+       * XPathNavigator.cs : Temporarily stubbed as to ignore SchemaInfo
+         (for checking XQuery implementation).
+
+2004-08-25  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * XPathAtomicValue.cs : Handle .ctor() with object parameter more
+         precisely (still not enough, for list argument).
+         Removed commended blocks.
+
+2004-08-24  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * XPathAtomicValue.cs : DateTime should be convertible to string.
+         Use schemaType's TypeCode for .ctor() that takes object.
+       * XPathNavigator.cs : copied get_InnerXml from XPathEditableNavigator.
+       * XPathEditableNavigator.cs : set_InnerXml should be different (new)
+         property from get_InnerXml. Removed get_InnerXml and get_OuterXml 
+         overrides.
+
+2004-08-23  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * XPathAtomicValue.cs, XPathNavigator.cs : Eliminate MS.Internal.Xml.*.
+
+2004-08-03  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * XPathEditableNavigator.cs : implemented some editor support methods.
+
+2004-08-02  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * XPathDocument.cs :
+         - For .NET 2.0, added a switch to support new XPathDocument2. 
+           If switch is off, then it uses DTM.
+         - Implemented remaining 2.0 bits (except for Obsolete ones).
+
+       To use them in XPathDocument, set environment MONO_XPATH_DOCUMENT_2=yes
+       (It is still too unstable to pass all nunit tests and standalone XSLT
+       tests).
+
+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