1 2006-03-15 Atsushi Enomoto <atsushi@ximian.com>
3 * Expression.cs : extracted XPathSortElement, XPathSorters
4 and XPathSorter from CompiledExpression, and split
5 XPathSorters.Sort() into some methods. Those changes are to make
6 them reusable in XslSortEvaluator.
8 2006-02-26 Atsushi Enomoto <atsushi@ximian.com>
10 * Iterator.cs : seems like MS XPathNodeIterator.MoveNext() itself does
11 not handle XsltContext.PreserveWhitespace() unlike ours. It results
12 in not a small performance improvement. (just removed it since it
13 didn't cause any errors in XSLT standalone tests.)
15 2006-02-21 Atsushi Enomoto <atsushi@ximian.com>
17 * Iterator.cs : removed extra field from AxisIterator.
19 2006-02-14 Atsushi Enomoto <atsushi@ximian.com>
21 * Iterator.cs : tiny message fix (thanks to alp).
23 2006-01-25 Atsushi Enomoto <atsushi@ximian.com>
25 * XPathNavigator.cs : fixed IsNode signature found by updated
28 2006-01-11 Atsushi Enomoto <atsushi@ximian.com>
30 * Iterator.cs : Nowadays removal of cloning of the argument list
31 in ListIterator is safe. Thanks to Joshua Tauberer for the hint.
33 2006-01-11 Atsushi Enomoto <atsushi@ximian.com>
35 * Iterator.cs : (DescendantOrSelfIterator/DescendantIterator) the
36 error message is for blaming custom XPathNavigator
37 implementation, not us ;-) (see also #77194)
39 2006-01-06 Atsushi Enomoto <atsushi@ximian.com>
41 * XPathNavigator.cs : use WriteNode(XPathNavigator, bool)
42 rather than WriteNode(XmlWriter, bool) in WriteSubtree().
44 2005-12-14 Atsushi Enomoto <atsushi@ximian.com>
46 * XPathNavigator.cs : Added MonoTODO to CreateAttributes(). Removed
47 MonoTODO from ReadSubtree().
49 2005-12-14 Atsushi Enomoto <atsushi@ximian.com>
51 * XPathNavigator.cs : UnderlyingObject returns null by default.
53 2005-12-13 Atsushi Enomoto <atsushi@ximian.com>
55 * XPathNavigator.cs : Reimplemented MoveToFollowing() to avoid
56 inefficient MoveToDescendant() and to match .NET 2.0 behavior.
58 2005-12-13 Atsushi Enomoto <atsushi@ximian.com>
60 * XPathNavigator.cs : ReplaceSelf() should allow document fragment.
61 Moved implementation to XPathEditableDocument.
63 2005-12-13 Atsushi Enomoto <atsushi@ximian.com>
65 * XPathNavigator.cs : PrependChild() should use AppendChild() when
68 2005-12-13 Atsushi Enomoto <atsushi@ximian.com>
70 * XPathNavigator.cs : InsertAfter() should raise an error before
71 MoveToNext() when current node is either attribute or namespace.
73 2005-12-13 Atsushi Enomoto <atsushi@ximian.com>
75 * XPathNavigator.cs : InsertAfter() should append children after it
76 once moved to parent. This method shoulr raise an error when it is
79 2005-12-13 Atsushi Enomoto <atsushi@ximian.com>
81 * XPathNavigator.cs : (CreateFragmentReader) return XmlReader that
82 considers current namespace contexts.
84 2005-12-12 Atsushi Enomoto <atsushi@ximian.com>
86 * XPathNavigator.cs : removed some MonoTODOs.
88 2005-12-08 Atsushi Enomoto <atsushi@ximian.com>
90 * XPathDocument.cs : garbage cleanup.
92 2005-11-23 Vladimir Krasnov <vladimirk@mainsoft.com>
94 * Iterator.cs: fixed UnionIterator.SetCurrent method, the
95 navigators may be from different xml files.
97 2005-11-23 Vladimir Krasnov <vladimirk@mainsoft.com>
99 * Iterator.cs: fixed SimpleSlashIterator.MoveNextCore method, the
100 navigators may be from different xml files.
102 2005-11-10 Atsushi Enomoto <atsushi@ximian.com>
104 * XPathNavigator.cs, XPathNodeIterator.cs :
105 [DebuggerDisplay] are not worthy of existing.
107 2005-11-07 Atsushi Enomoto <atsushi@ximian.com>
109 * XPathNavigator.cs, XPathNodeIterator.cs : DebuggerDisplayAttribute
110 values are fixed. However, they totally do not make sense since
111 there is no DebuggerDisplayProxy type in our impl.
113 2005-11-07 Atsushi Enomoto <atsushi@ximian.com>
115 * XPathException.cs : Message property is back in 2.0 RTM.
117 2005-11-07 Atsushi Enomoto <atsushi@ximian.com>
119 * XPathNodeIterator.cs : added [DebuggerDisplay]. pretty useless tho.
120 * XPathNavigator.cs : [DebuggerDisplay] as well.
121 SelectSingleNode() and AppendChildElement() are now virtual.
123 2005-10-23 Atsushi Enomoto <atsushi@ximian.com>
125 * XPathNavigator.cs : now 2.0 MoveToFirst() invokes internal
126 MoveToFirstImpl() and it is from what XmlDocumentNavigator did.
127 This fixes XPathEditableDocument.MoveToFirst().
129 2004-10-15 Atsushi Enomoto <atsushi@ximian.com>
131 * XPathNavigator.cs : (DeleteRange, ReplaceRange) so they are not
132 likely to be implemented, thus MonoTODO.
134 2005-10-08 Gert Driesen <drieseng@users.sourceforge.net>
136 * XPathNavigator.cs: Removed DebuggerDisplay attribute.
137 * XPathNodeIterator.cs: Removed DebuggerDisplay attribute.
139 2005-10-08 Gert Driesen <drieseng@users.sourceforge.net>
141 * XPathNavigator.cs: [NET_2_0] Added DebuggerDisplay attribute,
142 added ReplaceRange and DeleteRange methods.
143 * XPathNodeIterator.cs: [NET_2_0] Added DebuggerDisplay attribute.
145 2004-09-22 Atsushi Enomoto <atsushi@ximian.com>
147 * Expression.cs : Now that managed collation is default, we don't need
148 reversive case-order anymore.
150 2004-09-21 Atsushi Enomoto <atsushi@ximian.com>
152 * XPathNavigator.cs : added NavigatorComparer.
153 * XPathComparer.cs : XPathNavigatorComparer implements
154 IEqualityComparer under NET_2_0 profile.
156 2005-08-31 Sebastien Pouliot <sebastien@ximian.com>
158 * XPathException.cs: Added a Demand for SerializationFormatter on
159 GetObjectData method.
161 2005-08-03 Gert Driesen <drieseng@users.sourceforge.net>
163 * XPathNavigator.cs: GetNamespacesInScope returns generic IDictionary
166 2004-07-23 Atsushi Enomoto <atsushi@ximian.com>
168 * Expression.cs : don't expect namespace resolver; namespace could be
169 supplied in QName without nsresolver need (i.e. SelectChildren()).
172 2005-06-09 Andrew Skiba <andrews@mainsoft.com>
174 * XmlDefaultContext.cs : add TARGET_JVM for roundtrip bug
176 2004-06-07 Atsushi Enomoto <atsushi@ximian.com>
178 * Expression.cs : set TARGET_JVM where collation matters.
180 2004-05-05 Atsushi Enomoto <atsushi@ximian.com>
182 * XPathAtomicValue.cs :
183 it is now XmlAtomicValue and in sys.xml.schema.
184 * XPathNavigator.cs, Expression.cs :
185 removed atomizedName related 2.0 members (deprecated).
187 2004-05-05 Atsushi Enomoto <atsushi@ximian.com>
189 * XPathExpression.cs : added static Compile().
190 * XPathNavigator.cs :
191 Use XPathExpression.Compile() for now.
192 Updated tree modification API to 2.0 beta2.
193 * XPathItem.cs, XPathNavigator.cs, XPathAtomicValue.cs :
194 updated to 2.0 beta2 API.
195 * XPathResultType.cs : removed [Serializable].
196 * XmlNodeChangeType.cs : removed obsolete file.
198 2004-03-25 Atsushi Enomoto <atsushi@ximian.com>
200 * XPathNavigator.cs : 2.0 build fix
202 2004-03-25 Atsushi Enomoto <atsushi@ximian.com>
204 * Expression.cs : In ExprSLASH2, replace A//B with A/descendant::B if
205 B is child axis test (thus peer&subtree optimization became possible)
206 Fixed warning (incorrect variable let).
208 2004-03-25 Atsushi Enomoto <atsushi@ximian.com>
210 * XPathNavigator.cs : reduced some Clone().
211 Simplified ComparePosition().
212 * Iterator.cs : some iterators are not actually reverse axis.
214 2004-03-22 Atsushi Enomoto <atsushi@ximian.com>
216 * Expression.cs : EvaluateBoolean() for RTF should check return true
217 for empty elements. Fixed static analysis for RTF.
219 2004-03-22 Atsushi Enomoto <atsushi@ximian.com>
221 * Parser.jay, Tokenizer.cs : Now they are used as common code base for
222 XPath parser and XSLT pattern parser. Makefile now creates two
223 set of sources of them. (This change takes effect on the next change).
225 2004-03-16 Atsushi Enomoto <atsushi@ximian.com>
227 * Parser.jay : rewrote step part to be reusable for upcoming XSLT
230 2004-03-16 Atsushi Enomoto <atsushi@ximian.com>
232 * Iterator.cs : reduced extra clone.
234 2004-03-15 Atsushi Enomoto <atsushi@ximian.com>
238 Iterator.cs : Now RequireSorting is not required in BaseIterator
239 (it is now fully in Expression).
240 Removed the last ListIterator .ctor() argument.
242 2004-03-15 Atsushi Enomoto <atsushi@ximian.com>
244 * XPathNavigator.cs : In ComparePosition(), make use of IsDescendant().
246 2004-03-14 Atsushi Enomoto <atsushi@ximian.com>
249 DefaultContext.cs : Basic constant folding optimization (not so
250 effective right now). Unified number-to-string conversion code into
251 XPathFunctions.ToString(double) to avoid roundtrip format right now.
252 * Iterator.cs : removed unused code.
254 2004-03-11 Atsushi Enomoto <atsushi@ximian.com>
256 * Iterator.cs : more clone reduction.
258 2004-03-11 Atsushi Enomoto <atsushi@ximian.com>
260 * Expression.cs, DefaultContext.cs : more Peer overrides.
262 2004-03-11 Atsushi Enomoto <atsushi@ximian.com>
265 DefaultContext.cs : Removed unused NeedAbsoluteMatching.
266 Added Peer and Subtree (for "peer & subtree optimization. See:
267 http://idealliance.org/papers/dx_xmle04/papers/02-03-02/02-03-02.html
268 Fixed some ToString() that caused NullReferenceException.
270 * Iterator.cs : Predicate does not affect on RequireSorting.
271 Added SimpleSlashIterator for peer & subtree optimization.
273 Added PreserveWhitespace() consideration in BaseIterator.MoveNext().
275 2004-03-09 Atsushi Enomoto <atsushi@ximian.com>
279 SlashIterator is now constructed with requireSorting parameter
280 that thus just use RequireSorting from both left/right Expressions,
282 When attribute axis is on the left expression, the result needs to
285 2004-03-09 Atsushi Enomoto <atsushi@ximian.com>
287 * Iterator.cs : Now for most of iterator types, Current property always
288 returns the same instance. It results in huge memory reduction.
290 2004-03-04 Atsushi Enomoto <atsushi@ximian.com>
292 * Iterator.cs : (SlashIterator.MoveNext()) For SortedList.Add(), the
293 key should be iterator itself. Key by list count never makes sense.
295 2004-03-04 Atsushi Enomoto <atsushi@ximian.com>
297 * Expression.cs : Significant whitespace nodes must be returned in
300 2004-02-23 Atsushi Enomoto <atsushi@ximian.com>
302 * Expression.cs : xsl:sort case-order was not handled properly.
304 2004-02-23 Atsushi Enomoto <atsushi@ximian.com>
307 In FollowingIterator, attribute and namespace nodes should be
308 considered to have following nodes. See XPath 1.0 section 5 (esp.
309 the description on "document order").
310 On fixing @*/following::*, attribute nodes are regarded as to be
311 RequireSorting = true (which might result in duplicate).
313 2004-02-18 Atsushi Enomoto <atsushi@ximian.com>
315 * Expression.cs : string() function expects "Infinity" and "-Infinity"
316 instead of "INF" for conversion from number. XmlConvert is for XSD,
319 2004-02-09 Atsushi Enomoto <atsushi@ximian.com>
321 * Expression.cs : RelationalExpr was comparing number and node in
322 reverse order. Patch by Kazuki Oikawa. Fixed bug #72343.
323 RelationalExpr should also handle result tree fragment as node-set
324 as well as EqualityExpr. This fixes RTF case wrt #72343.
326 2004-02-08 Atsushi Enomoto <atsushi@ximian.com>
328 * Expression.cs : tiny code format fix by Andrew Skiba.
330 2004-12-26 Atsushi Enomoto <atsushi@ximian.com>
332 * XPathNavigator.cs : Added CheckValidity() and ValueType.
333 For SetTypedValue(), throw NotSupportedException instead of
334 NotImplementedException.
336 2004-12-16 Atsushi Enomoto <atsushi@ximian.com>
338 * XPathNavigator.cs :added MoveToFollowing(), ReplaceSelf() and
339 all the missing attributes.
341 2004-12-04 Atsushi Enomoto <atsushi@ximian.com>
343 * XPathDocument.cs : switch to DTMXPathNavigator2 which fully
344 eliminated string fields from struct.
345 (When we switch from struct to class, revert this change to use
346 DTMXPathNavigator, since class-based DTMXPathNavigator2 is rather
347 wasting processing speed.)
349 2004-12-02 Atsushi Enomoto <atsushi@ximian.com>
351 * Iterator.cs : when PredicateIterator has a numeric predicate, it
352 will never be true twice. So just break up the iteration on true.
353 * XPathNavigator.cs : implemented LookupPrefix().
354 * Expression.cs : ExprParens.Optimize() could just return the content
357 2004-12-01 Atsushi Enomoto <atsushi@ximian.com>
359 * IXPathChangeNavigable.cs,
361 XPathDocumentNodeChangedAction.cs : removed old files.
363 2004-12-01 Atsushi Enomoto <atsushi@ximian.com>
365 * Iterator.cs : with related to the previous patch, many comments
366 got making no sense. Thanks to Harinath.
368 2004-12-01 Atsushi Enomoto <atsushi@ximian.com>
370 * Iterator.cs : actually I mean this patch.
372 2004-12-01 Atsushi Enomoto <atsushi@ximian.com>
374 * Iterator.cs : Create _current clone only when required. So just set
375 null when MoveNextCore() succeeded (except for some cases that
376 _current is _nav, such as SelfIterator).
378 2004-11-30 Atsushi Enomoto <atsushi@ximian.com>
380 * Iterator.cs : SlashIterator.RequireSorting is always false. Whether
381 it has to collect nodes in prior or not and whether it might return
382 nodes in inconsistent order is different matter.
383 (It still needs to store nodes when either of branches requires
384 sorting, because they might return the same node later.)
386 2004-11-30 Atsushi Enomoto <atsushi@ximian.com>
388 * Iterator.cs : reduced some extraneous ComparePosition() that could
389 be written as IsSamePosition(). ParentIterator doesn't have to be
392 2004-11-30 Atsushi Enomoto <atsushi@ximian.com>
394 * Iterator.cs : reimplemented AncestorIterator and
395 AncestorOrSelfIterator just to collect parents and not to move to
396 siblings. In some cases like thousands of siblings, it used to be
397 so slow, while we usually don't have so deep ancestors.
399 2004-11-26 Atsushi Enomoto <atsushi@ximian.com>
401 * Expression.cs : warning removal. Added Optimize() which is not
403 * Tokenizer.cs : warning elimination
405 2004-11-24 Atsushi Enomoto <atsushi@ximian.com>
407 * XPathEditableNavigator.cs, XPathChangeNavigator.cs,
408 IXPathEditable.cs : more removal of oldies.
410 2004-11-24 Atsushi Enomoto <atsushi@ximian.com>
412 * NodeChangedEventArgs.cs, NodeChangedEventHandler.cs : removed oldies.
414 2004-11-08 Atsushi Enomoto <atsushi@ximian.com>
416 * Tokenizer.cs : just use raw string instead of char[].
417 * XPathNavigator.cs : reuse NameTable when creating XmlTextReader.
419 2004-11-07 Atsushi Enomoto <atsushi@ximian.com>
422 - Made copy constructor certainly different from other constructors.
423 - Position is never computed in each derived type. All MoveNext() are
425 - Most of the protected members could just be private.
427 2004-11-05 Atsushi Enomoto <atsushi@ximian.com>
429 * Expression.cs, XPathNavigator.cs : hold raw expression field for
430 get_Expression. It is preparation for expression optimization.
432 2004-11-05 Atsushi Enomoto <atsushi@ximian.com>
434 * Iterator.cs : SimpleIterator._current could be cloned only when
437 2004-11-05 Atsushi Enomoto <atsushi@ximian.com>
439 * Iterator.cs : Some removal of Clone() were harmless.
441 2004-10-22 Atsushi Enomoto <atsushi@ximian.com>
443 * XPathDocument.cs : now all the new stuff that used to be in 2.0 are
445 * XPathEditableNavigator.cs : It will be removed. Right now modified
447 * XPathNavigator.cs : Added members that are merged from
448 XPathEditableNavigator. Updated members name.
450 2004-10-14 Atsushi Enomoto <atsushi@ximian.com>
453 - Added WrapperIterator to return BaseIterator in such case that
454 variable reference is resolved to XPathNodeIterator. This fixes
456 - Path ".." is reverse axis (actually no effect).
457 - Fixed DescendantIterator.Clone() that missed "_finished" field.
459 In ExprVariable.Evaluate(), use WrapperIterator() for custom
462 2004-10-09 Atsushi Enomoto <atsushi@ximian.com>
464 * XPathAtomicValue.cs : Init(string, XmlSchemaType) is private.
466 2004-10-05 Atsushi Enomoto <atsushi@ximian.com>
468 * XPathAtomicValue.cs : missing Init() definition for float and string;
469 latter one resulted in infinite loop in Init(object,XmlSchemaType).
471 2004-10-04 Atsushi Enomoto <atsushi@ximian.com>
473 * XPathNavigator.cs : TypedValue could be implemented.
474 * XPathEditableNavigator.cs : removed some MonoTODO since now there
477 2004-09-13 Atsushi Enomoto <atsushi@ximian.com>
479 * XPathAtomicValue.cs : All .ctor() are separeted from Init().
480 In .ctor(object, XmlSchemaType):
481 - For lists that contains just one item, Init() recursively.
482 - For XPathAtomicValue, Init() recursively for its content fields.
483 For Value and TypedValue, consider typecode from XmlSchemaType.
485 2004-09-06 Atsushi Enomoto <atsushi@ximian.com>
487 * XPathEditableNavigator.cs :
488 AppendChild(xmlReader) ignored nodes after than first one, and
489 resulted in infinite loop.
490 Added get_OuterXml overrides. set_OuterXml should not move to
491 parent before deleting current.
493 2004-08-25 Atsushi Enomoto <atsushi@ximian.com>
495 * XPathAtomicValue.cs : Value was not returning expected value when
496 it is created as new XPathAtomicValue (object, XmlSchemaType).
497 Compute stringValue and reuse.
498 * XPathNavigator.cs : Temporarily stubbed as to ignore SchemaInfo
499 (for checking XQuery implementation).
501 2004-08-25 Atsushi Enomoto <atsushi@ximian.com>
503 * XPathAtomicValue.cs : Handle .ctor() with object parameter more
504 precisely (still not enough, for list argument).
505 Removed commended blocks.
507 2004-08-24 Atsushi Enomoto <atsushi@ximian.com>
509 * XPathAtomicValue.cs : DateTime should be convertible to string.
510 Use schemaType's TypeCode for .ctor() that takes object.
511 * XPathNavigator.cs : copied get_InnerXml from XPathEditableNavigator.
512 * XPathEditableNavigator.cs : set_InnerXml should be different (new)
513 property from get_InnerXml. Removed get_InnerXml and get_OuterXml
516 2004-08-23 Atsushi Enomoto <atsushi@ximian.com>
518 * XPathAtomicValue.cs, XPathNavigator.cs : Eliminate MS.Internal.Xml.*.
520 2004-08-03 Atsushi Enomoto <atsushi@ximian.com>
522 * XPathEditableNavigator.cs : implemented some editor support methods.
524 2004-08-02 Atsushi Enomoto <atsushi@ximian.com>
527 - For .NET 2.0, added a switch to support new XPathDocument2.
528 If switch is off, then it uses DTM.
529 - Implemented remaining 2.0 bits (except for Obsolete ones).
531 To use them in XPathDocument, set environment MONO_XPATH_DOCUMENT_2=yes
532 (It is still too unstable to pass all nunit tests and standalone XSLT
535 2004-07-29 Atsushi Enomoto <atsushi@ximian.com>
537 * XPathNavigator.cs : Implemented ReadSubtree().
539 2004-07-28 Atsushi Enomoto <atsushi@ximian.com>
541 * XPathDocument.cs : for .ctor() and .ctor(XmlNameTable), now it
542 creates Mono.Xml.XPath.XPathEditableDocument and thus supports
543 IXPathEditable.CreateEditor().
545 2004-07-28 Atsushi Enomoto <atsushi@ximian.com>
547 * XPathEditableNavigator.cs : Implemented InsertAfter() and
548 PrependChild(); they are virtual, not abstract.
549 * XPathNavigator.cs :
550 Implemented many 2.0 virtual properties and methods that were
552 Implemented some Select() methods that uses IXmlNamespaceResolver.
553 Implemented most of ValueAsXxx() using XQueryConvert.
554 IsNode is always true. Implemented OuterXml and WriteSubtree() (but
555 actually they don't work because it depends on ReadSubtree()).
557 2004-07-26 Atsushi Enomoto <atsushi@ximian.com>
559 * XPathDocument.cs : added missing && not-likely-to-be-removed members.
560 * XPathEditableNavigator.cs : added BuildSubTree().
561 * XPathException.cs : added missing methods. Hide Message in NET_2_0.
563 2004-07-23 Atsushi Enomoto <atsushi@ximian.com>
565 * XPathNodeIterator.cs : implemented 2.0 GetEnumerator().
567 2004-07-21 Atsushi Enomoto <atsushi@ximian.com>
569 * XPathExpression.cs, Expression.cs :
570 Added SetContext(IXmlNamespaceResolver).
571 * NodeChangedEventArgs.cs : Added missing [MonoTODO].
572 * XPathAtomicValue.cs : Halfly implemented.
573 * XPathDocument.cs : Added 2.0 members.
574 * XPathDocumentNodeChangedAction.cs : updated member names.
575 * XPathEditableNavigator.cs : Added missing 2.0 members and MonoTODO.
576 * XPathNavigator.cs : Added missing 2.0 members.
577 Fixed some members as virtual->override.
579 2004-07-13 Atsushi Enomoto <atsushi@ximian.com>
581 * XmlNodeChageType.cs, XmlChangeFilters.cs : fixed enum values.
582 * XPathResultType.cs : marked [MonoFIX] on .Navigator.
584 2004-07-11 Atsushi Enomoto <atsushi@ximian.com>
586 * Expression.cs, Iterator.cs, XPathNavigator.cs :
587 Use IXmlNamespaceResolver for net 2.0. Removed unused code.
588 * XPathEditableNavigator.cs : fixed namespace.
589 * XPathNavigator.cs :
590 Fixed inheritance. Added missing MonoTODO.
591 Removed old .net 1.2 code.
593 2004-06-18 Atsushi Enomoto <atsushi@ximian.com>
595 * DefaultContext.cs : Globalization.
596 * Iterator.cs : In SlashIterator.MoveNext() position might keep 0
597 in case of empty list. Thus extraneous iteration might happened.
598 Removed unused (and clone unsafe) EnumeratorIterator.
600 2004-06-06 Atsushi Enomoto <atsushi@ximian.com>
602 * XPathDocument.s : The previous patch is still incomplete to close.
604 2004-06-05 Atsushi Enomoto <atsushi@ximian.com>
606 * XPathDocument.cs : close self-opened XmlTextReader in .ctor().
608 2004-06-03 Atsushi Enomoto <atsushi@ximian.com>
610 * Expression.cs : LookupNamespace() only allows already-atomized names.
611 * XPathEditableNavigator.cs : removed incorrect set_OuterXml() and
614 2004-05-22 Atsushi Enomoto <atsushi@ximian.com>
616 * DefaultContext.cs : Add XPathNavigator input support for ToBoolean()
618 * Expression.cs : In Equality comparison, evaluate XPathNavigator in
619 the same as well as NodeSet. This fixes bug #59134.
621 2004-05-22 Atsushi Enomoto <atsushi@ximian.com>
623 * XPathAtomicValue.cs : missed NET_2_0.
625 2004-05-22 Atsushi Enomoto <atsushi@ximian.com>
627 * IXPathChangeNavigable.cs,
629 NodeChangedEventArgs.cs,
630 NodeChangedEventHandler.cs,
632 XPathChangeNavigator.cs,
633 XPathDocumentNodeChangedAction.cs,
634 XPathEditableNavigator.cs,
637 XmlNodeChangeType.cs : added NET_2_0 classes.
639 XPathNavigator.cs : updated NET_2_0 members.
641 2004-05-20 Atsushi Enomoto <atsushi@ximian.com>
643 * Expression.cs : We should not catch all kind of exception. Just
644 throwing any kind of exception would be preferable.
645 Added support for XPathNavigator values.
647 2004-05-13 Atsushi Enomoto <atsushi@ximian.com>
649 * DefaultContext.cs : Removed MonoTODO. done.
650 * Expression.cs : handle XPathResultType.Navigator in some places and
651 removed MonoTODO. Mark MonoTODO with explicit comments (though they
652 are mostly pointing out possibilities of optimization).
653 Removed extra check that depended on the old bugs.
654 * XPathResultType.cs : Fixed .Navigator that had the same value as
657 2004-05-12 Atsushi Enomoto <atsushi@ximian.com>
659 * Parser.jay : made class internal.
661 2004-03-16 Atsushi Enomoto <atsushi@ximian.com>
663 * XPathNavigator.cs, Iterator.cs : Considered detached nodes, the
664 result of MoveToParent() should be checked.
666 2004-02-17 Atsushi Enomoto <atsushi@ximian.com>
668 * XPathNavigator.cs : Only child and attribute axes are allowed for
670 * Expression.cs : Added IsPositional property.
671 * DefaultContext.cs : Added some overrides.
673 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
675 * XPathNavigator.cs : no, its still not ok. comment out now.
677 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
679 * Expression.cs : Added EvaluatedNodeType and NeedAbsoluteMatching
680 to reduce extraneous Matches() trial.
681 * Iterator.cs : Removed unused MergedIterator.
682 * XPathNavigator.cs : Optimized Matches() not to evaluate ancestors
683 unnecessarily. (Test with NeedAbsoluteMatching).
685 2004-02-10 Atsushi Enomoto <atsushi@ximian.com>
687 * Iterator.cs : Added overriden Count properties for some iterators
688 (this fixes the half of #50678).
689 Added ListIterator class (which can reduce GetEnumerator()).
690 In some places we can omit clone for Current property, so added
691 some check logic (It has no effect as yet).
692 * Expression.cs, DefaultContext.cs :
693 use ListIterator instead of EnumeratorIterator.
695 2004-02-08 Atsushi Enomoto <atsushi@ximian.com>
697 * DefaultContext.cs, Expression.cs, Iterator.cs :
698 tiny foreach elimination.
700 2004-02-05 Atsushi Enomoto <atsushi@ximian.com>
702 * DefaultContext.cs : trivial processing order fix.
704 2004-01-27 Atsushi Enomoto <atsushi@ximian.com>
706 * DefaultContext.cs : Avoid exception if possible.
707 * Iterator.cs : Fixed PrecedingSiblingIterator.MoveNext(). When the
708 nav was positioned at the first, it incorrectly points itself.
709 Don't add names to name table while it is useless and expensive.
711 2004-01-08 Nick Drochak <ndrochak@ieee.org>
713 * Iterator.cs: Removed unused variable.
715 2003-12-18 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
717 * Parser.jay : now it supresses error output from jay.
718 * DefaultContext.cs : (XPathFunctionSubstring) exclude -Infinity.
719 * Tokenizer.cs : better error message.
720 * XPathDocument.cs : Use XmlValidatingReader to support id() function.
721 (just found MS.NET actually supports it)
723 2003-12-16 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
725 * Iterator.cs : On its iteration, moving Current must not affect to
726 MoveNext(). To assure this, Current must be a clone of navigator.
729 2003-12-07 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
731 * Tokenizer.cs : Removed some TODOs. (trivial ;-)
732 * Iterator.cs : ParensIterator can inherit from BaseIterator.
733 SlashIterator copy .ctor() always failed to clone. This fixes Count.
735 2003-12-03 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
737 * Expression.cs : XPathSorters.Compare() should compare document
738 position. See last sentence of XSLT 1.0 secion 10.
740 2003-12-03 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
742 * DefaultContext.cs : Overrode all functions' ToString().
743 XPathFunctions.ToNumber() trims whitespaces at both side.
744 Fixed NullReferenceException in normalize-space().
745 * Iterator.cs : Fixed AncestorOrSelfIterator.MoveNext() didn't handle
746 attribute or namespace node correctly.
747 SlashIterator.Clone() didn't clone "next node iterator" correctly.
748 EnumeratorIterator.ctor() should raise an error (not at Clone())
749 when the target IEnumerator is not ICloneable.
751 2003-11-28 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
753 * Expression.cs : namespace axis now traversed in reverse order, so it
755 * Iterator.cs : UnionIterator.Clone() was incomplete.
756 NamespaceItarator() should be reverse order (special handling
757 because of XPathNavigator specification).
759 2003-11-24 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
761 * Iterator.cs : PrecedingIterator.MoveNext() now breaks up at Root.
762 * XPathNavigator.cs : ComparePosition() didn't handle attributes
765 2003-11-24 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
767 * Parser.jay, Expression.cs, Iterator.cs :
768 Added ExprParens and ParensIterator classes which is used to handle
769 precedence of parenthesized expressions.
770 (e.g. consider "(preceding::*)[3]" and "preceding::[3]" )
772 * Expression.cs, Iterator.cs :
773 Added RequireSorting property for each Expr and BaseIterator classes.
774 SlashIterator.MoveNext() now considers correct sorting. But
775 considering performance, it separates two logics, sorted and sortless
776 depending on RequireSorting of left iterator and right expression.
779 SimpleIterator.ctor() should consider when nav is null.
780 FollowingIterator.MoveNext() and PrecedingIterator.MoveNext() should
781 not return any nodes.
782 AncestorIterator and AncestorOrSelfIterator copy ctr() should clone
784 AncestorIterator.MoveNext() should skip Root if context node is
786 FollowingIterator.MoveNext() should not handle children of context
788 PrecedingIterator.MoveNext() should skip its ancestors.
789 AxisIterator.ReverseAxis should be dependent on its containing iter.
790 UnionIterator.MoveNext() should consider comparison of nodes in
791 different document. The behavior is implementation dependent.
794 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
796 * Added XPathComparer.cs
797 * DefaultContext.cs : Fixed XPathFunctionId.Evaluate() to iterate base
798 iterator correctly, and sort results.
800 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
802 * DefaultContext.cs : Imcomplete fix ;-)
804 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
806 * DefaultContext.cs : XPathFunctions.ToNumber() should catch overflow.
807 XPathFunctionId.cs : Exposed Id expression.
808 * Expression.cs : Added ExprLiteral.Value, and class ExprParens (it
809 will be used to solve evaluation precedence problem).
811 2003-11-09 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
813 * Iterator.cs : Fixed SlashIterator that might return nodes 1)in
814 inconsistent order, and 2)may return duplicate result nodes.
816 2003-11-06 Ben Maurer <bmaurer@users.sourceforge.net>
818 * Iterator.cs: (AxisIterator.ComparablePosition): Remove. Let
819 it inherit from the base class. This made b[2] evaluated on
820 <a /><b /><c /><a /><b /><c /> return the first b node because
821 in the ChildIterator it was the second node and seemed to satsify
824 2003-11-04 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
826 * Iterator.cs : Added bool ReverseAxis property to identify whether
827 the iterator is in reverse order or not. Added ComparablePosition
828 for correct position comparison for PredicateIterator and reverse-
829 order-axes. Modified AncestorIterator, AncestorOrSelfIterator,
830 PrecedingIterator and PrecedingSiblingIterator to make MoveNext()
831 return their nodes in document order. This fixes bugzilla #39079.
833 2003-10-15 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
835 * Iterator.cs : DescendantIterator and FollowingIterator also should
836 not MoveNext() after they reached to the end.
838 2003-10-13 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
840 * Iterator.cs : Fixed UnionIterator who ignores document order.
841 Fixed SlashIterator whose MoveNext() should finish at its end.
843 2003-09-27 Ben Maurer <bmaurer@users.sourceforge.net>
845 * Iterator.cs, Expression.cs, XPathNavigator.cs: In AxisIterator
846 use NameTable so we dont call strcmp.
848 2003-09-27 Ben Maurer <bmaurer@users.sourceforge.net>
850 * DefaultContext.cs (translate): translate ("abc", "c", "") = "ab"
852 * Iterator.cs, Expression.cs: All axes are
853 SimpleIterators. SimpleIterators are gaurenteed to give the same
854 XPathNavigator in Current. Make AxisIterator take a
855 SimpleIterator, not any old BaseIterator. Will allow us to make
856 NameTable optimizations and avoid quite a few strcmp's.
858 2003-09-24 Ben Maurer <bmaurer@users.sourceforge.net>
860 * Expression.cs: make // work right, must use another slash itr.
862 2003-09-21 Ben Maurer <bmaurer@users.sourceforge.net>
864 * Expression.cs: cant use $$ before assigned.
866 2003-09-21 Ben Maurer <bmaurer@users.sourceforge.net>
868 * Expression.cs, Parser.jay, XPathNavigator.cs: api beautification.
870 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
872 * Expression.cs: num != double.NaN does not work.
874 2003-09-19 Ben Maurer <bmaurer@users.sourceforge.net>
876 * Expression.cs: in NodeTypeTest dont throw an exception if it is
877 an unknown node type (allows for better Pattern debugging).
879 2003-09-17 Ben Maurer <bmaurer@users.sourceforge.net>
881 * DefaultContext.cs: implement sum () and translate ().
883 2003-09-13 Ben Maurer <bmaurer@users.sourceforge.net>
885 * XPathNavigator.cs: Make methods where you pass in the context,
886 so that we dont have to clone expressions so much.
888 2003-09-06 Ben Maurer <bmaurer@users.sourceforge.net>
890 * DefaultContext.cs, Expresssion.cs, Parser.jay: Rewrite so that
891 system functions are actually expressions. Will allow for some
894 2003-08-25 Ben Maurer <bmaurer@users.sourceforge.net>
896 * XPathNavigator.cs: "Smart" behavior in Matches. Nice 8x speed
897 improvement in the method (5ms/call -> .7 ms / call) measured by
898 monodoc's rendering of N:System.
899 * Expression.cs: Utility methods to support above.
901 2003-08-13 Piers Haken <piersh@friskit.com>
904 fix MergedIterator.Clone(), now clones other's iterators
905 fix DescendantIterator.Clone(), now copies depth
906 make iterator cloning constructors more type-specific
908 2003-08-01 Piers Haken <piersh@friskit.com>
910 * Expression.cs: added NodeNamespaceTest
911 * XPathNavigator.cs: implement Select* with namespaces
913 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
915 * Iterator.cs: Allow creation of an EnumeratorIterator with an
918 2003-07-31 Piers Haken <piersh@friskit.com>
921 Nested predicates (uses ExprFilter instead)
923 make grammar look more like w3c spec
925 remove ExprStep, ExprPredicates
926 NodeTest is now a NodeSet
929 PredicateIterator now only takes a single predicate expression
932 simplified SelectTest
936 2003-07-30 Duncan Mak <duncan@ximian.com>
942 2003-07-29 Piers Haken <piersh@friskit.com>
944 * DefaultContext.cs: 'local-name' returns String, not NodeSet!
946 2003-07-29 Piers Haken <piersh@friskit.com>
950 add typesafe Evaluate* methods
952 2003-07-29 Piers Haken <piersh@friskit.com>
954 * DefaultContext.cs: fix 'substring-after'
956 2003-07-29 Piers Haken <piersh@friskit.com>
958 * Iterator.cs: fix PredicateIterator.CurrentPosition bug (it wasn't incrementing)
960 2003-07-29 Ben Maurer <bmaurer@users.sourceforge.net>
962 * Iterator.cs: dont throw exceptions on tostring ()
964 2003-07-28 Piers Haken <piersh@friskit.com>
966 * DefaultContext.cs: better handling of null argument lists
967 * XPathNavigator.cs: implement ComparePosition
969 2003-07-28 Piers Haken <piersh@friskit.com>
971 * Expression.cs: boolean operators: handle comparing .Any better
973 2003-07-28 Piers Haken <piersh@friskit.com>
975 * DefaultContext.cs: count() should return a double
976 * Expression.cs: better support for handling non-double numbers
978 2003-07-28 Piers Haken <piersh@friskit.com>
980 * DefaultContext.cs: better function param matching
982 2003-07-27 Piers Haken <piersh@friskit.com>
986 catch FormatExceptions while parsing numbers
988 2003-07-27 Piers Haken <piersh@friskit.com>
991 fix case sorting order
992 allow EvaluateNumber to take XPathResultType.Any
994 2003-07-27 Piers Haken <piersh@friskit.com>
998 don't pass null to XmlQualifiedName constructor
1000 2003-07-27 Piers Haken <piersh@friskit.com>
1002 * DefaultContext.cs: allow 'concat' to take arbitrary-typed arguments (spec?)
1004 2003-07-27 Piers Haken <piersh@friskit.com>
1006 * Expression.cs: allow EvaluateNodeSet to take XPathResultType.Any
1008 2003-07-26 Piers Haken <piersh@friskit.com>
1010 * Expression.cs: fix function evaluation with ambigous argument types
1011 * XPathNavigator.cs: fix silly null reference bug
1013 2003-07-26 Piers Haken <piersh@friskit.com>
1016 * DefaultContext.cs:
1017 ArrayListIterator->EnumeratorIterator
1018 * Expression.cs: add sorting support
1020 2003-07-26 Piers Haken <piersh@friskit.com>
1024 move QName parsing into tokenizer
1026 fix evaluating XPathResultType.Any
1027 fix ExprDiv.ToString()
1028 fix NodeTypeTest.ToString() (for namespace axis)
1030 2003-07-25 Piers Haken <piersh@friskit.com>
1032 * Expression.cs: return clone of $var evaluation
1034 2003-07-26 Piers Haken <piersh@friskit.com>
1036 * Iterator.cs: add setter for NamespaceManager
1037 * XPathNavigator.cs: propagate NamespaceManager from context on Evaluate
1038 * Expression.cs: fix func/var exception strings
1040 2003-07-25 Piers Haken <piersh@friskit.com>
1042 * Expression.cs: implement ExprFilter.Evaluate
1044 2003-07-25 Piers Haken <piersh@friskit.com>
1046 * Expression.cs: implement ExprVariable.Evaluate
1048 2003-07-24 Ben Maurer <bmaurer@users.sourceforge.net>
1050 * DefaultContext.cs: implement lang ()
1052 2003-07-24 Piers Haken <piersh@friskit.com>
1056 allow ExprUNION to take non-nodeset (eg, $var) arguments
1058 2003-07-24 Piers Haken <piersh@friskit.com>
1060 * Tokenizer.cs: fix variable references
1063 * XPathNavigator.cs:
1064 use XmlQualifiedName
1066 2003-06-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
1068 * XPathDocument.cs : removed Driver class and restored authors' name
1069 (though it is completely rewrote).
1071 2003-06-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
1073 * XPathDocument.cs : Replaced existing stub class with real
1074 XPathDocument implementation.
1076 2003-04-28 Piers Haken <piersh@friskit.com>
1078 * Parser.jay, Tokenizer.cs: more compliant lexical parsing of ambiguous tokens
1080 2003-03-07 Piers Haken <piersh@friskit.com>
1082 * Tokenizer.cs: allow '.'s in NCNames
1084 2003-03-07 Piers Haken <piersh@friskit.com>
1087 * DefaultContext.cs:
1088 fixed function argument resolution
1090 2003-02-09 Piers Haken <piersh@friskit.com>
1092 * XPathNavigator.cs:
1094 * Expression.cs: fix namespace handling
1096 2003-01-04 Piers Haken <piersh@friskit.com>
1098 * Parser.*: Remove extraneous "using" that was stopping the build. Permanently thisi time ;-)
1100 2003-02-02 Piers Haken <piersh@friskit.com>
1102 * Parser.jay: add token names
1103 * Tokenizer.cs: fix NCName tokenization
1105 2003-01-02 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
1107 * Tokenizer.cs : Fixed ParseIdentifier to allow digits.
1108 (It should be a temporary fix.)
1110 2002-09-22 Nick Drochak <ndrochak@gol.com>
1112 * Parser.cs: Remove extraneous "using" that was stopping the build.
1114 2002-09-21 Piers Haken <piersh@friskit.com>
1116 * XPathException: implementation
1121 * XPathNavigator.jay:
1124 2002-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1126 * Parser.cs: commented out non-existent namespace (it compiles fine
1127 with mcs because of a bug that is already on bugzilla).
1129 2002-09-12 Piers Haken <piersh@friskit.com>
1131 * Tokenizer.cs: fix parsing numbers that start with '.'
1132 * DefaultContext.cs: use MS-compatible formatting of doubles
1134 2002-09-12 Piers Haken <piersh@friskit.com>
1136 * Iterator.cs: added NullIterator to handle unspecified contexts
1137 * XPathNavigator.cs: use NullIterator insted of SelfIterator when context is unspecified.
1138 * XPathNodeIterator.cs: change default _count to -1 to prevent recalculations for NullIterators
1140 2002-09-12 Piers Haken <piersh@friskit.com>
1142 * Expression.cs, Parser.jay: allow ExprSLASH to take a generic expression as its left argument.
1143 * Iterator.cs: fix SlashIterator.Clone() when _iterRight is null.
1144 * DefaultContext.cs: fix id() return type.
1146 2002-09-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1148 * DefaultContext.cs: fixed bug #28840.
1149 * Expression.cs: added FIXME.
1151 2002-08-17 Jason Diamond <jason@injektilo.org>
1153 * XPathNavigator.cs: Fixed matching on patterns that look like
1154 absolute XPath expressions.
1156 2002-08-17 Jason Diamond <jason@injektilo.org>
1158 * XPathNavigator.cs: Added naive (but working) implementation of
1161 2002-07-31 Piers Haken <piersh@friskit.com>
1163 * XPathDocument.cs: simple, XmlDocument-based implementation
1165 2002-07-25 Piers Haken <piersh@friskit.com>
1167 * DefaultContext.cs: implement XPathFunctionName 'name()' function.
1169 2002-07-17 Piers Haken <piersh@friskit.com>
1171 * DefaultContext.cs: implement 'string-length()', 'normalize-space()'
1172 * Parser.jay: remove redundant production
1173 * Expression.cs: add switches for debugging under VS.NET
1175 2002-07-17 Piers Haken <piersh@friskit.com>
1177 * Expression.cs: implement nodeset/nodeset comparisons (non-optimal)
1179 2002-07-15 Piers Haken <piersh@friskit.com>
1182 - rename UnionIterator to MergedIterator,
1183 - create new UnionIterator to implment uniqueness for '|' operator
1184 - fix position bug in ArrayListIterator.Clone()
1185 * Expression.cs: use new UnionIterator constructor syntax
1187 2002-07-12 Piers Haken <piersh@friskit.com>
1189 * Iterator.cs: PredicateIterator: handle numeric predicates
1190 * Parser.jay: add some debugging support: yyparseDebug
1191 * Tokenizer.cs: cleanup, include '-' chars in identifier tokens
1193 2002-06-29 Piers Haken <piersh@friskit.com>
1197 - NodeTest uses XPathResultType instead of internal NodeTestTypes enum
1198 - remove NodeTestTypes enum
1199 - remove NodeTestTypeAny (functionality provided by base now)
1200 - fix ExprStep to handle wildcard QNames
1202 - moved to Mono.Xml.XPath namespace
1203 - use XPathResultType
1204 - handle wildcard QNames
1206 * Tokenizer.cs: moved to Mono.Xml.XPath namespace
1208 * XPathNavigator.cs: implement
1214 * XPathResultType.cs: fix enum values
1216 2002-06-24 Jason Diamond <jason@injektilo.org>
1218 * XPathScanner.cs: Removed.
1220 2002-06-24 Dick Porter <dick@ximian.com>
1222 * XmlCaseOrder.cs: Fix namespace
1224 2002-06-23 Piers Haken <piersh@friskit.com>
1226 * DefaultContext.cs: implemented XPathFUnctionId
1227 * Iterator.cs: new ArrayListIterator for id() support
1229 2002-06-23 Piers Haken <piersh@friskit.com>
1231 * XPathNavigator.cs: implement:
1237 - some forwarding methods
1239 * XPathNodeIterator: implement caching Count
1241 * Tokenizer.cs: new XPath tokenizer
1242 * Parser.jay: new XPath grammar
1243 * Parser.cs: new precompiled XPath grammar
1244 * Expression.cs: new XPath expression objects
1245 * Iterator.cs: new XPath result/context objects
1246 * DefaultContext.cs: new XPath function binding context
1248 2002-05-08 Tim Coleman <tim@timcoleman.com>
1250 * XPathException.cs: New stub files added.
1252 2002-04-12 Duncan Mak <duncan@ximian.com>
1254 * XmlCaseOrder.cs: Moved to here from System.Xml.
1256 2002-03-26 Jason Diamond <jason@injektilo.org>
1258 * XPathScanner.cs: Now handles name tests with wildacards. Abbreviated
1259 steps. Both absolution and relative abbreviated location paths.
1261 2002-03-25 Jason Diamond <jason@injektilo.org>
1263 * XPathScanner.cs: Added new file. This class is supposed to be internal
1264 but that would make it impossible to test.
1266 2002-03-08 Duncan Mak <duncan@ximian.com>
1268 * XPathNamespaceScope.cs:
1270 * XPathResultType.cs:
1272 * XmlSortOrder.cs: Used EnumCheck and realigned elements to be compatible with MS
1273 implementation. XPathResultType is interesting as EnumCheck does
1274 not show the Navigator element, but shows the String element twice.
1276 2002-03-08 Jason Diamond <jason@injektilo.org>
1278 * XmlDataType.cs, XmlSortOrder.cs, XPathNodeType.cs: Added files.
1280 2002-03-06 Jason Diamond <jason@injektilo.org>
1282 * ChangeLog: Added to this directory.
1284 * XPathExpression.cs, XPathNamespaceScope.cs, XPathNodeIterator.cs,
1285 XPathResultType.cs: New files.
1287 * XPathNavigator.cs: Stubbed out all properties and methods.