2007-01-30 Atsushi Enomoto * Expression.cs : typo. Close #80669 2007-01-05 Atsushi Enomoto * Expression.cs : text() should match whitespace and significant whitespace nodes. 2006-11-10 Atsushi Enomoto * XPathNavigator.cs : - ReadSubtree() should reject everything but Element or Root. - InnerXml and OuterXml should not use ReadSubtree() when it is not positioned on an Element or the Root. Thus, implement them in their own ways. Fixed bug #79875. 2006-11-10 Atsushi Enomoto * XPathNavigator.cs : InnerXml should allow Text-only content. Fixed bug #79874, when tied to XPathNavigatorReader fix. 2006-04-10 Atsushi Enomoto * XPathNavigator.cs : get_OuterXml() returns indented output, without XML declaration. 2006-03-15 Atsushi Enomoto * Expression.cs : extracted XPathSortElement, XPathSorters and XPathSorter from CompiledExpression, and split XPathSorters.Sort() into some methods. Those changes are to make them reusable in XslSortEvaluator. 2006-02-26 Atsushi Enomoto * Iterator.cs : seems like MS XPathNodeIterator.MoveNext() itself does not handle XsltContext.PreserveWhitespace() unlike ours. It results in not a small performance improvement. (just removed it since it didn't cause any errors in XSLT standalone tests.) 2006-02-21 Atsushi Enomoto * Iterator.cs : removed extra field from AxisIterator. 2006-02-14 Atsushi Enomoto * Iterator.cs : tiny message fix (thanks to alp). 2006-01-25 Atsushi Enomoto * XPathNavigator.cs : fixed IsNode signature found by updated corcompare. 2006-01-11 Atsushi Enomoto * Iterator.cs : Nowadays removal of cloning of the argument list in ListIterator is safe. Thanks to Joshua Tauberer for the hint. 2006-01-11 Atsushi Enomoto * Iterator.cs : (DescendantOrSelfIterator/DescendantIterator) the error message is for blaming custom XPathNavigator implementation, not us ;-) (see also #77194) 2006-01-06 Atsushi Enomoto * XPathNavigator.cs : use WriteNode(XPathNavigator, bool) rather than WriteNode(XmlWriter, bool) in WriteSubtree(). 2005-12-14 Atsushi Enomoto * XPathNavigator.cs : Added MonoTODO to CreateAttributes(). Removed MonoTODO from ReadSubtree(). 2005-12-14 Atsushi Enomoto * XPathNavigator.cs : UnderlyingObject returns null by default. 2005-12-13 Atsushi Enomoto * XPathNavigator.cs : Reimplemented MoveToFollowing() to avoid inefficient MoveToDescendant() and to match .NET 2.0 behavior. 2005-12-13 Atsushi Enomoto * XPathNavigator.cs : ReplaceSelf() should allow document fragment. Moved implementation to XPathEditableDocument. 2005-12-13 Atsushi Enomoto * XPathNavigator.cs : PrependChild() should use AppendChild() when there is no child. 2005-12-13 Atsushi Enomoto * XPathNavigator.cs : InsertAfter() should raise an error before MoveToNext() when current node is either attribute or namespace. 2005-12-13 Atsushi Enomoto * XPathNavigator.cs : InsertAfter() should append children after it once moved to parent. This method shoulr raise an error when it is placed on Root. 2005-12-13 Atsushi Enomoto * XPathNavigator.cs : (CreateFragmentReader) return XmlReader that considers current namespace contexts. 2005-12-12 Atsushi Enomoto * XPathNavigator.cs : removed some MonoTODOs. 2005-12-08 Atsushi Enomoto * XPathDocument.cs : garbage cleanup. 2005-11-23 Vladimir Krasnov * Iterator.cs: fixed UnionIterator.SetCurrent method, the navigators may be from different xml files. 2005-11-23 Vladimir Krasnov * Iterator.cs: fixed SimpleSlashIterator.MoveNextCore method, the navigators may be from different xml files. 2005-11-10 Atsushi Enomoto * XPathNavigator.cs, XPathNodeIterator.cs : [DebuggerDisplay] are not worthy of existing. 2005-11-07 Atsushi Enomoto * XPathNavigator.cs, XPathNodeIterator.cs : DebuggerDisplayAttribute values are fixed. However, they totally do not make sense since there is no DebuggerDisplayProxy type in our impl. 2005-11-07 Atsushi Enomoto * XPathException.cs : Message property is back in 2.0 RTM. 2005-11-07 Atsushi Enomoto * XPathNodeIterator.cs : added [DebuggerDisplay]. pretty useless tho. * XPathNavigator.cs : [DebuggerDisplay] as well. SelectSingleNode() and AppendChildElement() are now virtual. 2005-10-23 Atsushi Enomoto * XPathNavigator.cs : now 2.0 MoveToFirst() invokes internal MoveToFirstImpl() and it is from what XmlDocumentNavigator did. This fixes XPathEditableDocument.MoveToFirst(). 2004-10-15 Atsushi Enomoto * XPathNavigator.cs : (DeleteRange, ReplaceRange) so they are not likely to be implemented, thus MonoTODO. 2005-10-08 Gert Driesen * XPathNavigator.cs: Removed DebuggerDisplay attribute. * XPathNodeIterator.cs: Removed DebuggerDisplay attribute. 2005-10-08 Gert Driesen * XPathNavigator.cs: [NET_2_0] Added DebuggerDisplay attribute, added ReplaceRange and DeleteRange methods. * XPathNodeIterator.cs: [NET_2_0] Added DebuggerDisplay attribute. 2004-09-22 Atsushi Enomoto * Expression.cs : Now that managed collation is default, we don't need reversive case-order anymore. 2004-09-21 Atsushi Enomoto * XPathNavigator.cs : added NavigatorComparer. * XPathComparer.cs : XPathNavigatorComparer implements IEqualityComparer under NET_2_0 profile. 2005-08-31 Sebastien Pouliot * XPathException.cs: Added a Demand for SerializationFormatter on GetObjectData method. 2005-08-03 Gert Driesen * XPathNavigator.cs: GetNamespacesInScope returns generic IDictionary in .NET 2.0 Beta 2. 2004-07-23 Atsushi Enomoto * Expression.cs : don't expect namespace resolver; namespace could be supplied in QName without nsresolver need (i.e. SelectChildren()). Fixed bug #75609. 2005-06-09 Andrew Skiba * XmlDefaultContext.cs : add TARGET_JVM for roundtrip bug 2004-06-07 Atsushi Enomoto * Expression.cs : set TARGET_JVM where collation matters. 2004-05-05 Atsushi Enomoto * XPathAtomicValue.cs : it is now XmlAtomicValue and in sys.xml.schema. * XPathNavigator.cs, Expression.cs : removed atomizedName related 2.0 members (deprecated). 2004-05-05 Atsushi Enomoto * XPathExpression.cs : added static Compile(). * XPathNavigator.cs : Use XPathExpression.Compile() for now. Updated tree modification API to 2.0 beta2. * XPathItem.cs, XPathNavigator.cs, XPathAtomicValue.cs : updated to 2.0 beta2 API. * XPathResultType.cs : removed [Serializable]. * XmlNodeChangeType.cs : removed obsolete file. 2004-03-25 Atsushi Enomoto * XPathNavigator.cs : 2.0 build fix 2004-03-25 Atsushi Enomoto * Expression.cs : In ExprSLASH2, replace A//B with A/descendant::B if B is child axis test (thus peer&subtree optimization became possible) Fixed warning (incorrect variable let). 2004-03-25 Atsushi Enomoto * XPathNavigator.cs : reduced some Clone(). Simplified ComparePosition(). * Iterator.cs : some iterators are not actually reverse axis. 2004-03-22 Atsushi Enomoto * Expression.cs : EvaluateBoolean() for RTF should check return true for empty elements. Fixed static analysis for RTF. 2004-03-22 Atsushi Enomoto * Parser.jay, Tokenizer.cs : Now they are used as common code base for XPath parser and XSLT pattern parser. Makefile now creates two set of sources of them. (This change takes effect on the next change). 2004-03-16 Atsushi Enomoto * Parser.jay : rewrote step part to be reusable for upcoming XSLT pattern parser. 2004-03-16 Atsushi Enomoto * Iterator.cs : reduced extra clone. 2004-03-15 Atsushi Enomoto * DefaultContext.cs, Expression.cs, Iterator.cs : Now RequireSorting is not required in BaseIterator (it is now fully in Expression). Removed the last ListIterator .ctor() argument. 2004-03-15 Atsushi Enomoto * XPathNavigator.cs : In ComparePosition(), make use of IsDescendant(). 2004-03-14 Atsushi Enomoto * Expression.cs, DefaultContext.cs : Basic constant folding optimization (not so effective right now). Unified number-to-string conversion code into XPathFunctions.ToString(double) to avoid roundtrip format right now. * Iterator.cs : removed unused code. 2004-03-11 Atsushi Enomoto * Iterator.cs : more clone reduction. 2004-03-11 Atsushi Enomoto * Expression.cs, DefaultContext.cs : more Peer overrides. 2004-03-11 Atsushi Enomoto * Expression.cs, DefaultContext.cs : Removed unused NeedAbsoluteMatching. Added Peer and Subtree (for "peer & subtree optimization. See: http://idealliance.org/papers/dx_xmle04/papers/02-03-02/02-03-02.html Fixed some ToString() that caused NullReferenceException. * Iterator.cs : Predicate does not affect on RequireSorting. Added SimpleSlashIterator for peer & subtree optimization. Added PreserveWhitespace() consideration in BaseIterator.MoveNext(). 2004-03-09 Atsushi Enomoto * Expression.cs, Iterator.cs, : SlashIterator is now constructed with requireSorting parameter that thus just use RequireSorting from both left/right Expressions, not iterators. When attribute axis is on the left expression, the result needs to be sorted. 2004-03-09 Atsushi Enomoto * Iterator.cs : Now for most of iterator types, Current property always returns the same instance. It results in huge memory reduction. 2004-03-04 Atsushi Enomoto * Iterator.cs : (SlashIterator.MoveNext()) For SortedList.Add(), the key should be iterator itself. Key by list count never makes sense. 2004-03-04 Atsushi Enomoto * Expression.cs : Significant whitespace nodes must be returned in text() NodeTypeTest. 2004-02-23 Atsushi Enomoto * Expression.cs : xsl:sort case-order was not handled properly. 2004-02-23 Atsushi Enomoto * Iterator.cs : In FollowingIterator, attribute and namespace nodes should be considered to have following nodes. See XPath 1.0 section 5 (esp. the description on "document order"). On fixing @*/following::*, attribute nodes are regarded as to be RequireSorting = true (which might result in duplicate). 2004-02-18 Atsushi Enomoto * Expression.cs : string() function expects "Infinity" and "-Infinity" instead of "INF" for conversion from number. XmlConvert is for XSD, not for XSLT. 2004-02-09 Atsushi Enomoto * 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 * Expression.cs : tiny code format fix by Andrew Skiba. 2004-12-26 Atsushi Enomoto * XPathNavigator.cs : Added CheckValidity() and ValueType. For SetTypedValue(), throw NotSupportedException instead of NotImplementedException. 2004-12-16 Atsushi Enomoto * XPathNavigator.cs :added MoveToFollowing(), ReplaceSelf() and all the missing attributes. 2004-12-04 Atsushi Enomoto * 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 * 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 * IXPathChangeNavigable.cs, XmlChangeFilters.cs, XPathDocumentNodeChangedAction.cs : removed old files. 2004-12-01 Atsushi Enomoto * Iterator.cs : with related to the previous patch, many comments got making no sense. Thanks to Harinath. 2004-12-01 Atsushi Enomoto * Iterator.cs : actually I mean this patch. 2004-12-01 Atsushi Enomoto * 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 * 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 * Iterator.cs : reduced some extraneous ComparePosition() that could be written as IsSamePosition(). ParentIterator doesn't have to be RequireSorting. 2004-11-30 Atsushi Enomoto * 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 * Expression.cs : warning removal. Added Optimize() which is not implemented at all. * Tokenizer.cs : warning elimination 2004-11-24 Atsushi Enomoto * XPathEditableNavigator.cs, XPathChangeNavigator.cs, IXPathEditable.cs : more removal of oldies. 2004-11-24 Atsushi Enomoto * NodeChangedEventArgs.cs, NodeChangedEventHandler.cs : removed oldies. 2004-11-08 Atsushi Enomoto * Tokenizer.cs : just use raw string instead of char[]. * XPathNavigator.cs : reuse NameTable when creating XmlTextReader. 2004-11-07 Atsushi Enomoto * 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 * Expression.cs, XPathNavigator.cs : hold raw expression field for get_Expression. It is preparation for expression optimization. 2004-11-05 Atsushi Enomoto * Iterator.cs : SimpleIterator._current could be cloned only when it is required. 2004-11-05 Atsushi Enomoto * Iterator.cs : Some removal of Clone() were harmless. 2004-10-22 Atsushi Enomoto * 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 * 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 * XPathAtomicValue.cs : Init(string, XmlSchemaType) is private. 2004-10-05 Atsushi Enomoto * XPathAtomicValue.cs : missing Init() definition for float and string; latter one resulted in infinite loop in Init(object,XmlSchemaType). 2004-10-04 Atsushi Enomoto * XPathNavigator.cs : TypedValue could be implemented. * XPathEditableNavigator.cs : removed some MonoTODO since now there are implementations. 2004-09-13 Atsushi Enomoto * 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 * 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 * 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 * XPathAtomicValue.cs : Handle .ctor() with object parameter more precisely (still not enough, for list argument). Removed commended blocks. 2004-08-24 Atsushi Enomoto * 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 * XPathAtomicValue.cs, XPathNavigator.cs : Eliminate MS.Internal.Xml.*. 2004-08-03 Atsushi Enomoto * XPathEditableNavigator.cs : implemented some editor support methods. 2004-08-02 Atsushi Enomoto * 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 * XPathNavigator.cs : Implemented ReadSubtree(). 2004-07-28 Atsushi Enomoto * XPathDocument.cs : for .ctor() and .ctor(XmlNameTable), now it creates Mono.Xml.XPath.XPathEditableDocument and thus supports IXPathEditable.CreateEditor(). 2004-07-28 Atsushi Enomoto * 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 * 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 * XPathNodeIterator.cs : implemented 2.0 GetEnumerator(). 2004-07-21 Atsushi Enomoto * 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 * XmlNodeChageType.cs, XmlChangeFilters.cs : fixed enum values. * XPathResultType.cs : marked [MonoFIX] on .Navigator. 2004-07-11 Atsushi Enomoto * 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 * 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 * XPathDocument.s : The previous patch is still incomplete to close. 2004-06-05 Atsushi Enomoto * XPathDocument.cs : close self-opened XmlTextReader in .ctor(). 2004-06-03 Atsushi Enomoto * Expression.cs : LookupNamespace() only allows already-atomized names. * XPathEditableNavigator.cs : removed incorrect set_OuterXml() and set_InnerXml(). 2004-05-22 Atsushi Enomoto * 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 * XPathAtomicValue.cs : missed NET_2_0. 2004-05-22 Atsushi Enomoto * 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 * 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 * 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 * Parser.jay : made class internal. 2004-03-16 Atsushi Enomoto * XPathNavigator.cs, Iterator.cs : Considered detached nodes, the result of MoveToParent() should be checked. 2004-02-17 Atsushi Enomoto * 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 * XPathNavigator.cs : no, its still not ok. comment out now. 2004-02-16 Atsushi Enomoto * 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 * 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 * DefaultContext.cs, Expression.cs, Iterator.cs : tiny foreach elimination. 2004-02-05 Atsushi Enomoto * DefaultContext.cs : trivial processing order fix. 2004-01-27 Atsushi Enomoto * 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 * Iterator.cs: Removed unused variable. 2003-12-18 Atsushi Enomoto * 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 * 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 * 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 * Expression.cs : XPathSorters.Compare() should compare document position. See last sentence of XSLT 1.0 secion 10. 2003-12-03 Atsushi Enomoto * 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 * 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 * Iterator.cs : PrecedingIterator.MoveNext() now breaks up at Root. * XPathNavigator.cs : ComparePosition() didn't handle attributes correctly. 2003-11-24 Atsushi Enomoto * 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 * Added XPathComparer.cs * DefaultContext.cs : Fixed XPathFunctionId.Evaluate() to iterate base iterator correctly, and sort results. 2003-11-19 Atsushi Enomoto * DefaultContext.cs : Imcomplete fix ;-) 2003-11-19 Atsushi Enomoto * 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 * Iterator.cs : Fixed SlashIterator that might return nodes 1)in inconsistent order, and 2)may return duplicate result nodes. 2003-11-06 Ben Maurer * Iterator.cs: (AxisIterator.ComparablePosition): Remove. Let it inherit from the base class. This made b[2] evaluated on 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 * 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 * Iterator.cs : DescendantIterator and FollowingIterator also should not MoveNext() after they reached to the end. 2003-10-13 Atsushi Enomoto * Iterator.cs : Fixed UnionIterator who ignores document order. Fixed SlashIterator whose MoveNext() should finish at its end. 2003-09-27 Ben Maurer * Iterator.cs, Expression.cs, XPathNavigator.cs: In AxisIterator use NameTable so we dont call strcmp. 2003-09-27 Ben Maurer * 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 * Expression.cs: make // work right, must use another slash itr. 2003-09-21 Ben Maurer * Expression.cs: cant use $$ before assigned. 2003-09-21 Ben Maurer * Expression.cs, Parser.jay, XPathNavigator.cs: api beautification. 2003-09-20 Ben Maurer * Expression.cs: num != double.NaN does not work. 2003-09-19 Ben Maurer * 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 * DefaultContext.cs: implement sum () and translate (). 2003-09-13 Ben Maurer * 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 * 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 * 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 * 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 * Expression.cs: added NodeNamespaceTest * XPathNavigator.cs: implement Select* with namespaces 2003-07-31 Ben Maurer * Iterator.cs: Allow creation of an EnumeratorIterator with an XmlNamespaceManager. 2003-07-31 Piers Haken * 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 * XPathException.cs (GetObjectData): (Message): Added. 2003-07-29 Piers Haken * DefaultContext.cs: 'local-name' returns String, not NodeSet! 2003-07-29 Piers Haken * XPathNavigator.cs: * Expression.cs: add typesafe Evaluate* methods 2003-07-29 Piers Haken * DefaultContext.cs: fix 'substring-after' 2003-07-29 Piers Haken * Iterator.cs: fix PredicateIterator.CurrentPosition bug (it wasn't incrementing) 2003-07-29 Ben Maurer * Iterator.cs: dont throw exceptions on tostring () 2003-07-28 Piers Haken * DefaultContext.cs: better handling of null argument lists * XPathNavigator.cs: implement ComparePosition 2003-07-28 Piers Haken * Expression.cs: boolean operators: handle comparing .Any better 2003-07-28 Piers Haken * DefaultContext.cs: count() should return a double * Expression.cs: better support for handling non-double numbers 2003-07-28 Piers Haken * DefaultContext.cs: better function param matching 2003-07-27 Piers Haken * Expression.cs: * DefaultContext.cs: catch FormatExceptions while parsing numbers 2003-07-27 Piers Haken * Expression.cs: fix case sorting order allow EvaluateNumber to take XPathResultType.Any 2003-07-27 Piers Haken * Expression.cs: * Tokenizer.cs: don't pass null to XmlQualifiedName constructor 2003-07-27 Piers Haken * DefaultContext.cs: allow 'concat' to take arbitrary-typed arguments (spec?) 2003-07-27 Piers Haken * Expression.cs: allow EvaluateNodeSet to take XPathResultType.Any 2003-07-26 Piers Haken * Expression.cs: fix function evaluation with ambigous argument types * XPathNavigator.cs: fix silly null reference bug 2003-07-26 Piers Haken * Iterator.cs: * DefaultContext.cs: ArrayListIterator->EnumeratorIterator * Expression.cs: add sorting support 2003-07-26 Piers Haken * Tokenizer.cs: * Parser.jay: move QName parsing into tokenizer * Expression.cs: fix evaluating XPathResultType.Any fix ExprDiv.ToString() fix NodeTypeTest.ToString() (for namespace axis) 2003-07-25 Piers Haken * Expression.cs: return clone of $var evaluation 2003-07-26 Piers Haken * Iterator.cs: add setter for NamespaceManager * XPathNavigator.cs: propagate NamespaceManager from context on Evaluate * Expression.cs: fix func/var exception strings 2003-07-25 Piers Haken * Expression.cs: implement ExprFilter.Evaluate 2003-07-25 Piers Haken * Expression.cs: implement ExprVariable.Evaluate 2003-07-24 Ben Maurer * DefaultContext.cs: implement lang () 2003-07-24 Piers Haken * Parser.jay: * Expression.cs: allow ExprUNION to take non-nodeset (eg, $var) arguments 2003-07-24 Piers Haken * Tokenizer.cs: fix variable references * Parser.jay: * Expression.cs: * XPathNavigator.cs: use XmlQualifiedName 2003-06-30 Atsushi Enomoto * XPathDocument.cs : removed Driver class and restored authors' name (though it is completely rewrote). 2003-06-30 Atsushi Enomoto * XPathDocument.cs : Replaced existing stub class with real XPathDocument implementation. 2003-04-28 Piers Haken * Parser.jay, Tokenizer.cs: more compliant lexical parsing of ambiguous tokens 2003-03-07 Piers Haken * Tokenizer.cs: allow '.'s in NCNames 2003-03-07 Piers Haken * Exression.cs: * DefaultContext.cs: fixed function argument resolution 2003-02-09 Piers Haken * XPathNavigator.cs: * Iterator.cs: * Expression.cs: fix namespace handling 2003-01-04 Piers Haken * Parser.*: Remove extraneous "using" that was stopping the build. Permanently thisi time ;-) 2003-02-02 Piers Haken * Parser.jay: add token names * Tokenizer.cs: fix NCName tokenization 2003-01-02 Atsushi Enomoto * Tokenizer.cs : Fixed ParseIdentifier to allow digits. (It should be a temporary fix.) 2002-09-22 Nick Drochak * Parser.cs: Remove extraneous "using" that was stopping the build. 2002-09-21 Piers Haken * XPathException: implementation * Expression.cs: * Iterator.cs: * Parser.jay: * Tokenizer.jay: * XPathNavigator.jay: use XPathException. 2002-09-13 Gonzalo Paniagua Javier * Parser.cs: commented out non-existent namespace (it compiles fine with mcs because of a bug that is already on bugzilla). 2002-09-12 Piers Haken * Tokenizer.cs: fix parsing numbers that start with '.' * DefaultContext.cs: use MS-compatible formatting of doubles 2002-09-12 Piers Haken * Iterator.cs: added NullIterator to handle unspecified contexts * XPathNavigator.cs: use NullIterator insted of SelfIterator when context is unspecified. * XPathNodeIterator.cs: change default _count to -1 to prevent recalculations for NullIterators 2002-09-12 Piers Haken * Expression.cs, Parser.jay: allow ExprSLASH to take a generic expression as its left argument. * Iterator.cs: fix SlashIterator.Clone() when _iterRight is null. * DefaultContext.cs: fix id() return type. 2002-09-03 Gonzalo Paniagua Javier * DefaultContext.cs: fixed bug #28840. * Expression.cs: added FIXME. 2002-08-17 Jason Diamond * XPathNavigator.cs: Fixed matching on patterns that look like absolute XPath expressions. 2002-08-17 Jason Diamond * XPathNavigator.cs: Added naive (but working) implementation of Matches. 2002-07-31 Piers Haken * XPathDocument.cs: simple, XmlDocument-based implementation 2002-07-25 Piers Haken * DefaultContext.cs: implement XPathFunctionName 'name()' function. 2002-07-17 Piers Haken * DefaultContext.cs: implement 'string-length()', 'normalize-space()' * Parser.jay: remove redundant production * Expression.cs: add switches for debugging under VS.NET 2002-07-17 Piers Haken * Expression.cs: implement nodeset/nodeset comparisons (non-optimal) 2002-07-15 Piers Haken * Iterator.cs: - rename UnionIterator to MergedIterator, - create new UnionIterator to implment uniqueness for '|' operator - fix position bug in ArrayListIterator.Clone() * Expression.cs: use new UnionIterator constructor syntax 2002-07-12 Piers Haken * Iterator.cs: PredicateIterator: handle numeric predicates * Parser.jay: add some debugging support: yyparseDebug * Tokenizer.cs: cleanup, include '-' chars in identifier tokens 2002-06-29 Piers Haken * Expression.cs: - remove dead code - NodeTest uses XPathResultType instead of internal NodeTestTypes enum - remove NodeTestTypes enum - remove NodeTestTypeAny (functionality provided by base now) - fix ExprStep to handle wildcard QNames * Parser.jay: - moved to Mono.Xml.XPath namespace - use XPathResultType - handle wildcard QNames * Tokenizer.cs: moved to Mono.Xml.XPath namespace * XPathNavigator.cs: implement - IsDescendant - SelectAncestors - SelectDescendants - SelectChildren * XPathResultType.cs: fix enum values 2002-06-24 Jason Diamond * XPathScanner.cs: Removed. 2002-06-24 Dick Porter * XmlCaseOrder.cs: Fix namespace 2002-06-23 Piers Haken * DefaultContext.cs: implemented XPathFUnctionId * Iterator.cs: new ArrayListIterator for id() support 2002-06-23 Piers Haken * XPathNavigator.cs: implement: - Compile - Evaluate - Clone - Select - ToString - some forwarding methods * XPathNodeIterator: implement caching Count * Tokenizer.cs: new XPath tokenizer * Parser.jay: new XPath grammar * Parser.cs: new precompiled XPath grammar * Expression.cs: new XPath expression objects * Iterator.cs: new XPath result/context objects * DefaultContext.cs: new XPath function binding context 2002-05-08 Tim Coleman * XPathDocument.cs: * XPathException.cs: New stub files added. 2002-04-12 Duncan Mak * XmlCaseOrder.cs: Moved to here from System.Xml. 2002-03-26 Jason Diamond * XPathScanner.cs: Now handles name tests with wildacards. Abbreviated steps. Both absolution and relative abbreviated location paths. 2002-03-25 Jason Diamond * XPathScanner.cs: Added new file. This class is supposed to be internal but that would make it impossible to test. 2002-03-08 Duncan Mak * XPathNamespaceScope.cs: * XPathNodeType.cs: * XPathResultType.cs: * XmlDataType.cs: * XmlSortOrder.cs: Used EnumCheck and realigned elements to be compatible with MS implementation. XPathResultType is interesting as EnumCheck does not show the Navigator element, but shows the String element twice. 2002-03-08 Jason Diamond * XmlDataType.cs, XmlSortOrder.cs, XPathNodeType.cs: Added files. 2002-03-06 Jason Diamond * ChangeLog: Added to this directory. * XPathExpression.cs, XPathNamespaceScope.cs, XPathNodeIterator.cs, XPathResultType.cs: New files. * XPathNavigator.cs: Stubbed out all properties and methods.