1 2006-04-10 Atsushi Enomoto <atsushi@ximian.com>
3 * XPathNavigator.cs : get_OuterXml() returns indented output, without
6 2006-03-15 Atsushi Enomoto <atsushi@ximian.com>
8 * Expression.cs : extracted XPathSortElement, XPathSorters
9 and XPathSorter from CompiledExpression, and split
10 XPathSorters.Sort() into some methods. Those changes are to make
11 them reusable in XslSortEvaluator.
13 2006-02-26 Atsushi Enomoto <atsushi@ximian.com>
15 * Iterator.cs : seems like MS XPathNodeIterator.MoveNext() itself does
16 not handle XsltContext.PreserveWhitespace() unlike ours. It results
17 in not a small performance improvement. (just removed it since it
18 didn't cause any errors in XSLT standalone tests.)
20 2006-02-21 Atsushi Enomoto <atsushi@ximian.com>
22 * Iterator.cs : removed extra field from AxisIterator.
24 2006-02-14 Atsushi Enomoto <atsushi@ximian.com>
26 * Iterator.cs : tiny message fix (thanks to alp).
28 2006-01-25 Atsushi Enomoto <atsushi@ximian.com>
30 * XPathNavigator.cs : fixed IsNode signature found by updated
33 2006-01-11 Atsushi Enomoto <atsushi@ximian.com>
35 * Iterator.cs : Nowadays removal of cloning of the argument list
36 in ListIterator is safe. Thanks to Joshua Tauberer for the hint.
38 2006-01-11 Atsushi Enomoto <atsushi@ximian.com>
40 * Iterator.cs : (DescendantOrSelfIterator/DescendantIterator) the
41 error message is for blaming custom XPathNavigator
42 implementation, not us ;-) (see also #77194)
44 2006-01-06 Atsushi Enomoto <atsushi@ximian.com>
46 * XPathNavigator.cs : use WriteNode(XPathNavigator, bool)
47 rather than WriteNode(XmlWriter, bool) in WriteSubtree().
49 2005-12-14 Atsushi Enomoto <atsushi@ximian.com>
51 * XPathNavigator.cs : Added MonoTODO to CreateAttributes(). Removed
52 MonoTODO from ReadSubtree().
54 2005-12-14 Atsushi Enomoto <atsushi@ximian.com>
56 * XPathNavigator.cs : UnderlyingObject returns null by default.
58 2005-12-13 Atsushi Enomoto <atsushi@ximian.com>
60 * XPathNavigator.cs : Reimplemented MoveToFollowing() to avoid
61 inefficient MoveToDescendant() and to match .NET 2.0 behavior.
63 2005-12-13 Atsushi Enomoto <atsushi@ximian.com>
65 * XPathNavigator.cs : ReplaceSelf() should allow document fragment.
66 Moved implementation to XPathEditableDocument.
68 2005-12-13 Atsushi Enomoto <atsushi@ximian.com>
70 * XPathNavigator.cs : PrependChild() should use AppendChild() when
73 2005-12-13 Atsushi Enomoto <atsushi@ximian.com>
75 * XPathNavigator.cs : InsertAfter() should raise an error before
76 MoveToNext() when current node is either attribute or namespace.
78 2005-12-13 Atsushi Enomoto <atsushi@ximian.com>
80 * XPathNavigator.cs : InsertAfter() should append children after it
81 once moved to parent. This method shoulr raise an error when it is
84 2005-12-13 Atsushi Enomoto <atsushi@ximian.com>
86 * XPathNavigator.cs : (CreateFragmentReader) return XmlReader that
87 considers current namespace contexts.
89 2005-12-12 Atsushi Enomoto <atsushi@ximian.com>
91 * XPathNavigator.cs : removed some MonoTODOs.
93 2005-12-08 Atsushi Enomoto <atsushi@ximian.com>
95 * XPathDocument.cs : garbage cleanup.
97 2005-11-23 Vladimir Krasnov <vladimirk@mainsoft.com>
99 * Iterator.cs: fixed UnionIterator.SetCurrent method, the
100 navigators may be from different xml files.
102 2005-11-23 Vladimir Krasnov <vladimirk@mainsoft.com>
104 * Iterator.cs: fixed SimpleSlashIterator.MoveNextCore method, the
105 navigators may be from different xml files.
107 2005-11-10 Atsushi Enomoto <atsushi@ximian.com>
109 * XPathNavigator.cs, XPathNodeIterator.cs :
110 [DebuggerDisplay] are not worthy of existing.
112 2005-11-07 Atsushi Enomoto <atsushi@ximian.com>
114 * XPathNavigator.cs, XPathNodeIterator.cs : DebuggerDisplayAttribute
115 values are fixed. However, they totally do not make sense since
116 there is no DebuggerDisplayProxy type in our impl.
118 2005-11-07 Atsushi Enomoto <atsushi@ximian.com>
120 * XPathException.cs : Message property is back in 2.0 RTM.
122 2005-11-07 Atsushi Enomoto <atsushi@ximian.com>
124 * XPathNodeIterator.cs : added [DebuggerDisplay]. pretty useless tho.
125 * XPathNavigator.cs : [DebuggerDisplay] as well.
126 SelectSingleNode() and AppendChildElement() are now virtual.
128 2005-10-23 Atsushi Enomoto <atsushi@ximian.com>
130 * XPathNavigator.cs : now 2.0 MoveToFirst() invokes internal
131 MoveToFirstImpl() and it is from what XmlDocumentNavigator did.
132 This fixes XPathEditableDocument.MoveToFirst().
134 2004-10-15 Atsushi Enomoto <atsushi@ximian.com>
136 * XPathNavigator.cs : (DeleteRange, ReplaceRange) so they are not
137 likely to be implemented, thus MonoTODO.
139 2005-10-08 Gert Driesen <drieseng@users.sourceforge.net>
141 * XPathNavigator.cs: Removed DebuggerDisplay attribute.
142 * XPathNodeIterator.cs: Removed DebuggerDisplay attribute.
144 2005-10-08 Gert Driesen <drieseng@users.sourceforge.net>
146 * XPathNavigator.cs: [NET_2_0] Added DebuggerDisplay attribute,
147 added ReplaceRange and DeleteRange methods.
148 * XPathNodeIterator.cs: [NET_2_0] Added DebuggerDisplay attribute.
150 2004-09-22 Atsushi Enomoto <atsushi@ximian.com>
152 * Expression.cs : Now that managed collation is default, we don't need
153 reversive case-order anymore.
155 2004-09-21 Atsushi Enomoto <atsushi@ximian.com>
157 * XPathNavigator.cs : added NavigatorComparer.
158 * XPathComparer.cs : XPathNavigatorComparer implements
159 IEqualityComparer under NET_2_0 profile.
161 2005-08-31 Sebastien Pouliot <sebastien@ximian.com>
163 * XPathException.cs: Added a Demand for SerializationFormatter on
164 GetObjectData method.
166 2005-08-03 Gert Driesen <drieseng@users.sourceforge.net>
168 * XPathNavigator.cs: GetNamespacesInScope returns generic IDictionary
171 2004-07-23 Atsushi Enomoto <atsushi@ximian.com>
173 * Expression.cs : don't expect namespace resolver; namespace could be
174 supplied in QName without nsresolver need (i.e. SelectChildren()).
177 2005-06-09 Andrew Skiba <andrews@mainsoft.com>
179 * XmlDefaultContext.cs : add TARGET_JVM for roundtrip bug
181 2004-06-07 Atsushi Enomoto <atsushi@ximian.com>
183 * Expression.cs : set TARGET_JVM where collation matters.
185 2004-05-05 Atsushi Enomoto <atsushi@ximian.com>
187 * XPathAtomicValue.cs :
188 it is now XmlAtomicValue and in sys.xml.schema.
189 * XPathNavigator.cs, Expression.cs :
190 removed atomizedName related 2.0 members (deprecated).
192 2004-05-05 Atsushi Enomoto <atsushi@ximian.com>
194 * XPathExpression.cs : added static Compile().
195 * XPathNavigator.cs :
196 Use XPathExpression.Compile() for now.
197 Updated tree modification API to 2.0 beta2.
198 * XPathItem.cs, XPathNavigator.cs, XPathAtomicValue.cs :
199 updated to 2.0 beta2 API.
200 * XPathResultType.cs : removed [Serializable].
201 * XmlNodeChangeType.cs : removed obsolete file.
203 2004-03-25 Atsushi Enomoto <atsushi@ximian.com>
205 * XPathNavigator.cs : 2.0 build fix
207 2004-03-25 Atsushi Enomoto <atsushi@ximian.com>
209 * Expression.cs : In ExprSLASH2, replace A//B with A/descendant::B if
210 B is child axis test (thus peer&subtree optimization became possible)
211 Fixed warning (incorrect variable let).
213 2004-03-25 Atsushi Enomoto <atsushi@ximian.com>
215 * XPathNavigator.cs : reduced some Clone().
216 Simplified ComparePosition().
217 * Iterator.cs : some iterators are not actually reverse axis.
219 2004-03-22 Atsushi Enomoto <atsushi@ximian.com>
221 * Expression.cs : EvaluateBoolean() for RTF should check return true
222 for empty elements. Fixed static analysis for RTF.
224 2004-03-22 Atsushi Enomoto <atsushi@ximian.com>
226 * Parser.jay, Tokenizer.cs : Now they are used as common code base for
227 XPath parser and XSLT pattern parser. Makefile now creates two
228 set of sources of them. (This change takes effect on the next change).
230 2004-03-16 Atsushi Enomoto <atsushi@ximian.com>
232 * Parser.jay : rewrote step part to be reusable for upcoming XSLT
235 2004-03-16 Atsushi Enomoto <atsushi@ximian.com>
237 * Iterator.cs : reduced extra clone.
239 2004-03-15 Atsushi Enomoto <atsushi@ximian.com>
243 Iterator.cs : Now RequireSorting is not required in BaseIterator
244 (it is now fully in Expression).
245 Removed the last ListIterator .ctor() argument.
247 2004-03-15 Atsushi Enomoto <atsushi@ximian.com>
249 * XPathNavigator.cs : In ComparePosition(), make use of IsDescendant().
251 2004-03-14 Atsushi Enomoto <atsushi@ximian.com>
254 DefaultContext.cs : Basic constant folding optimization (not so
255 effective right now). Unified number-to-string conversion code into
256 XPathFunctions.ToString(double) to avoid roundtrip format right now.
257 * Iterator.cs : removed unused code.
259 2004-03-11 Atsushi Enomoto <atsushi@ximian.com>
261 * Iterator.cs : more clone reduction.
263 2004-03-11 Atsushi Enomoto <atsushi@ximian.com>
265 * Expression.cs, DefaultContext.cs : more Peer overrides.
267 2004-03-11 Atsushi Enomoto <atsushi@ximian.com>
270 DefaultContext.cs : Removed unused NeedAbsoluteMatching.
271 Added Peer and Subtree (for "peer & subtree optimization. See:
272 http://idealliance.org/papers/dx_xmle04/papers/02-03-02/02-03-02.html
273 Fixed some ToString() that caused NullReferenceException.
275 * Iterator.cs : Predicate does not affect on RequireSorting.
276 Added SimpleSlashIterator for peer & subtree optimization.
278 Added PreserveWhitespace() consideration in BaseIterator.MoveNext().
280 2004-03-09 Atsushi Enomoto <atsushi@ximian.com>
284 SlashIterator is now constructed with requireSorting parameter
285 that thus just use RequireSorting from both left/right Expressions,
287 When attribute axis is on the left expression, the result needs to
290 2004-03-09 Atsushi Enomoto <atsushi@ximian.com>
292 * Iterator.cs : Now for most of iterator types, Current property always
293 returns the same instance. It results in huge memory reduction.
295 2004-03-04 Atsushi Enomoto <atsushi@ximian.com>
297 * Iterator.cs : (SlashIterator.MoveNext()) For SortedList.Add(), the
298 key should be iterator itself. Key by list count never makes sense.
300 2004-03-04 Atsushi Enomoto <atsushi@ximian.com>
302 * Expression.cs : Significant whitespace nodes must be returned in
305 2004-02-23 Atsushi Enomoto <atsushi@ximian.com>
307 * Expression.cs : xsl:sort case-order was not handled properly.
309 2004-02-23 Atsushi Enomoto <atsushi@ximian.com>
312 In FollowingIterator, attribute and namespace nodes should be
313 considered to have following nodes. See XPath 1.0 section 5 (esp.
314 the description on "document order").
315 On fixing @*/following::*, attribute nodes are regarded as to be
316 RequireSorting = true (which might result in duplicate).
318 2004-02-18 Atsushi Enomoto <atsushi@ximian.com>
320 * Expression.cs : string() function expects "Infinity" and "-Infinity"
321 instead of "INF" for conversion from number. XmlConvert is for XSD,
324 2004-02-09 Atsushi Enomoto <atsushi@ximian.com>
326 * Expression.cs : RelationalExpr was comparing number and node in
327 reverse order. Patch by Kazuki Oikawa. Fixed bug #72343.
328 RelationalExpr should also handle result tree fragment as node-set
329 as well as EqualityExpr. This fixes RTF case wrt #72343.
331 2004-02-08 Atsushi Enomoto <atsushi@ximian.com>
333 * Expression.cs : tiny code format fix by Andrew Skiba.
335 2004-12-26 Atsushi Enomoto <atsushi@ximian.com>
337 * XPathNavigator.cs : Added CheckValidity() and ValueType.
338 For SetTypedValue(), throw NotSupportedException instead of
339 NotImplementedException.
341 2004-12-16 Atsushi Enomoto <atsushi@ximian.com>
343 * XPathNavigator.cs :added MoveToFollowing(), ReplaceSelf() and
344 all the missing attributes.
346 2004-12-04 Atsushi Enomoto <atsushi@ximian.com>
348 * XPathDocument.cs : switch to DTMXPathNavigator2 which fully
349 eliminated string fields from struct.
350 (When we switch from struct to class, revert this change to use
351 DTMXPathNavigator, since class-based DTMXPathNavigator2 is rather
352 wasting processing speed.)
354 2004-12-02 Atsushi Enomoto <atsushi@ximian.com>
356 * Iterator.cs : when PredicateIterator has a numeric predicate, it
357 will never be true twice. So just break up the iteration on true.
358 * XPathNavigator.cs : implemented LookupPrefix().
359 * Expression.cs : ExprParens.Optimize() could just return the content
362 2004-12-01 Atsushi Enomoto <atsushi@ximian.com>
364 * IXPathChangeNavigable.cs,
366 XPathDocumentNodeChangedAction.cs : removed old files.
368 2004-12-01 Atsushi Enomoto <atsushi@ximian.com>
370 * Iterator.cs : with related to the previous patch, many comments
371 got making no sense. Thanks to Harinath.
373 2004-12-01 Atsushi Enomoto <atsushi@ximian.com>
375 * Iterator.cs : actually I mean this patch.
377 2004-12-01 Atsushi Enomoto <atsushi@ximian.com>
379 * Iterator.cs : Create _current clone only when required. So just set
380 null when MoveNextCore() succeeded (except for some cases that
381 _current is _nav, such as SelfIterator).
383 2004-11-30 Atsushi Enomoto <atsushi@ximian.com>
385 * Iterator.cs : SlashIterator.RequireSorting is always false. Whether
386 it has to collect nodes in prior or not and whether it might return
387 nodes in inconsistent order is different matter.
388 (It still needs to store nodes when either of branches requires
389 sorting, because they might return the same node later.)
391 2004-11-30 Atsushi Enomoto <atsushi@ximian.com>
393 * Iterator.cs : reduced some extraneous ComparePosition() that could
394 be written as IsSamePosition(). ParentIterator doesn't have to be
397 2004-11-30 Atsushi Enomoto <atsushi@ximian.com>
399 * Iterator.cs : reimplemented AncestorIterator and
400 AncestorOrSelfIterator just to collect parents and not to move to
401 siblings. In some cases like thousands of siblings, it used to be
402 so slow, while we usually don't have so deep ancestors.
404 2004-11-26 Atsushi Enomoto <atsushi@ximian.com>
406 * Expression.cs : warning removal. Added Optimize() which is not
408 * Tokenizer.cs : warning elimination
410 2004-11-24 Atsushi Enomoto <atsushi@ximian.com>
412 * XPathEditableNavigator.cs, XPathChangeNavigator.cs,
413 IXPathEditable.cs : more removal of oldies.
415 2004-11-24 Atsushi Enomoto <atsushi@ximian.com>
417 * NodeChangedEventArgs.cs, NodeChangedEventHandler.cs : removed oldies.
419 2004-11-08 Atsushi Enomoto <atsushi@ximian.com>
421 * Tokenizer.cs : just use raw string instead of char[].
422 * XPathNavigator.cs : reuse NameTable when creating XmlTextReader.
424 2004-11-07 Atsushi Enomoto <atsushi@ximian.com>
427 - Made copy constructor certainly different from other constructors.
428 - Position is never computed in each derived type. All MoveNext() are
430 - Most of the protected members could just be private.
432 2004-11-05 Atsushi Enomoto <atsushi@ximian.com>
434 * Expression.cs, XPathNavigator.cs : hold raw expression field for
435 get_Expression. It is preparation for expression optimization.
437 2004-11-05 Atsushi Enomoto <atsushi@ximian.com>
439 * Iterator.cs : SimpleIterator._current could be cloned only when
442 2004-11-05 Atsushi Enomoto <atsushi@ximian.com>
444 * Iterator.cs : Some removal of Clone() were harmless.
446 2004-10-22 Atsushi Enomoto <atsushi@ximian.com>
448 * XPathDocument.cs : now all the new stuff that used to be in 2.0 are
450 * XPathEditableNavigator.cs : It will be removed. Right now modified
452 * XPathNavigator.cs : Added members that are merged from
453 XPathEditableNavigator. Updated members name.
455 2004-10-14 Atsushi Enomoto <atsushi@ximian.com>
458 - Added WrapperIterator to return BaseIterator in such case that
459 variable reference is resolved to XPathNodeIterator. This fixes
461 - Path ".." is reverse axis (actually no effect).
462 - Fixed DescendantIterator.Clone() that missed "_finished" field.
464 In ExprVariable.Evaluate(), use WrapperIterator() for custom
467 2004-10-09 Atsushi Enomoto <atsushi@ximian.com>
469 * XPathAtomicValue.cs : Init(string, XmlSchemaType) is private.
471 2004-10-05 Atsushi Enomoto <atsushi@ximian.com>
473 * XPathAtomicValue.cs : missing Init() definition for float and string;
474 latter one resulted in infinite loop in Init(object,XmlSchemaType).
476 2004-10-04 Atsushi Enomoto <atsushi@ximian.com>
478 * XPathNavigator.cs : TypedValue could be implemented.
479 * XPathEditableNavigator.cs : removed some MonoTODO since now there
482 2004-09-13 Atsushi Enomoto <atsushi@ximian.com>
484 * XPathAtomicValue.cs : All .ctor() are separeted from Init().
485 In .ctor(object, XmlSchemaType):
486 - For lists that contains just one item, Init() recursively.
487 - For XPathAtomicValue, Init() recursively for its content fields.
488 For Value and TypedValue, consider typecode from XmlSchemaType.
490 2004-09-06 Atsushi Enomoto <atsushi@ximian.com>
492 * XPathEditableNavigator.cs :
493 AppendChild(xmlReader) ignored nodes after than first one, and
494 resulted in infinite loop.
495 Added get_OuterXml overrides. set_OuterXml should not move to
496 parent before deleting current.
498 2004-08-25 Atsushi Enomoto <atsushi@ximian.com>
500 * XPathAtomicValue.cs : Value was not returning expected value when
501 it is created as new XPathAtomicValue (object, XmlSchemaType).
502 Compute stringValue and reuse.
503 * XPathNavigator.cs : Temporarily stubbed as to ignore SchemaInfo
504 (for checking XQuery implementation).
506 2004-08-25 Atsushi Enomoto <atsushi@ximian.com>
508 * XPathAtomicValue.cs : Handle .ctor() with object parameter more
509 precisely (still not enough, for list argument).
510 Removed commended blocks.
512 2004-08-24 Atsushi Enomoto <atsushi@ximian.com>
514 * XPathAtomicValue.cs : DateTime should be convertible to string.
515 Use schemaType's TypeCode for .ctor() that takes object.
516 * XPathNavigator.cs : copied get_InnerXml from XPathEditableNavigator.
517 * XPathEditableNavigator.cs : set_InnerXml should be different (new)
518 property from get_InnerXml. Removed get_InnerXml and get_OuterXml
521 2004-08-23 Atsushi Enomoto <atsushi@ximian.com>
523 * XPathAtomicValue.cs, XPathNavigator.cs : Eliminate MS.Internal.Xml.*.
525 2004-08-03 Atsushi Enomoto <atsushi@ximian.com>
527 * XPathEditableNavigator.cs : implemented some editor support methods.
529 2004-08-02 Atsushi Enomoto <atsushi@ximian.com>
532 - For .NET 2.0, added a switch to support new XPathDocument2.
533 If switch is off, then it uses DTM.
534 - Implemented remaining 2.0 bits (except for Obsolete ones).
536 To use them in XPathDocument, set environment MONO_XPATH_DOCUMENT_2=yes
537 (It is still too unstable to pass all nunit tests and standalone XSLT
540 2004-07-29 Atsushi Enomoto <atsushi@ximian.com>
542 * XPathNavigator.cs : Implemented ReadSubtree().
544 2004-07-28 Atsushi Enomoto <atsushi@ximian.com>
546 * XPathDocument.cs : for .ctor() and .ctor(XmlNameTable), now it
547 creates Mono.Xml.XPath.XPathEditableDocument and thus supports
548 IXPathEditable.CreateEditor().
550 2004-07-28 Atsushi Enomoto <atsushi@ximian.com>
552 * XPathEditableNavigator.cs : Implemented InsertAfter() and
553 PrependChild(); they are virtual, not abstract.
554 * XPathNavigator.cs :
555 Implemented many 2.0 virtual properties and methods that were
557 Implemented some Select() methods that uses IXmlNamespaceResolver.
558 Implemented most of ValueAsXxx() using XQueryConvert.
559 IsNode is always true. Implemented OuterXml and WriteSubtree() (but
560 actually they don't work because it depends on ReadSubtree()).
562 2004-07-26 Atsushi Enomoto <atsushi@ximian.com>
564 * XPathDocument.cs : added missing && not-likely-to-be-removed members.
565 * XPathEditableNavigator.cs : added BuildSubTree().
566 * XPathException.cs : added missing methods. Hide Message in NET_2_0.
568 2004-07-23 Atsushi Enomoto <atsushi@ximian.com>
570 * XPathNodeIterator.cs : implemented 2.0 GetEnumerator().
572 2004-07-21 Atsushi Enomoto <atsushi@ximian.com>
574 * XPathExpression.cs, Expression.cs :
575 Added SetContext(IXmlNamespaceResolver).
576 * NodeChangedEventArgs.cs : Added missing [MonoTODO].
577 * XPathAtomicValue.cs : Halfly implemented.
578 * XPathDocument.cs : Added 2.0 members.
579 * XPathDocumentNodeChangedAction.cs : updated member names.
580 * XPathEditableNavigator.cs : Added missing 2.0 members and MonoTODO.
581 * XPathNavigator.cs : Added missing 2.0 members.
582 Fixed some members as virtual->override.
584 2004-07-13 Atsushi Enomoto <atsushi@ximian.com>
586 * XmlNodeChageType.cs, XmlChangeFilters.cs : fixed enum values.
587 * XPathResultType.cs : marked [MonoFIX] on .Navigator.
589 2004-07-11 Atsushi Enomoto <atsushi@ximian.com>
591 * Expression.cs, Iterator.cs, XPathNavigator.cs :
592 Use IXmlNamespaceResolver for net 2.0. Removed unused code.
593 * XPathEditableNavigator.cs : fixed namespace.
594 * XPathNavigator.cs :
595 Fixed inheritance. Added missing MonoTODO.
596 Removed old .net 1.2 code.
598 2004-06-18 Atsushi Enomoto <atsushi@ximian.com>
600 * DefaultContext.cs : Globalization.
601 * Iterator.cs : In SlashIterator.MoveNext() position might keep 0
602 in case of empty list. Thus extraneous iteration might happened.
603 Removed unused (and clone unsafe) EnumeratorIterator.
605 2004-06-06 Atsushi Enomoto <atsushi@ximian.com>
607 * XPathDocument.s : The previous patch is still incomplete to close.
609 2004-06-05 Atsushi Enomoto <atsushi@ximian.com>
611 * XPathDocument.cs : close self-opened XmlTextReader in .ctor().
613 2004-06-03 Atsushi Enomoto <atsushi@ximian.com>
615 * Expression.cs : LookupNamespace() only allows already-atomized names.
616 * XPathEditableNavigator.cs : removed incorrect set_OuterXml() and
619 2004-05-22 Atsushi Enomoto <atsushi@ximian.com>
621 * DefaultContext.cs : Add XPathNavigator input support for ToBoolean()
623 * Expression.cs : In Equality comparison, evaluate XPathNavigator in
624 the same as well as NodeSet. This fixes bug #59134.
626 2004-05-22 Atsushi Enomoto <atsushi@ximian.com>
628 * XPathAtomicValue.cs : missed NET_2_0.
630 2004-05-22 Atsushi Enomoto <atsushi@ximian.com>
632 * IXPathChangeNavigable.cs,
634 NodeChangedEventArgs.cs,
635 NodeChangedEventHandler.cs,
637 XPathChangeNavigator.cs,
638 XPathDocumentNodeChangedAction.cs,
639 XPathEditableNavigator.cs,
642 XmlNodeChangeType.cs : added NET_2_0 classes.
644 XPathNavigator.cs : updated NET_2_0 members.
646 2004-05-20 Atsushi Enomoto <atsushi@ximian.com>
648 * Expression.cs : We should not catch all kind of exception. Just
649 throwing any kind of exception would be preferable.
650 Added support for XPathNavigator values.
652 2004-05-13 Atsushi Enomoto <atsushi@ximian.com>
654 * DefaultContext.cs : Removed MonoTODO. done.
655 * Expression.cs : handle XPathResultType.Navigator in some places and
656 removed MonoTODO. Mark MonoTODO with explicit comments (though they
657 are mostly pointing out possibilities of optimization).
658 Removed extra check that depended on the old bugs.
659 * XPathResultType.cs : Fixed .Navigator that had the same value as
662 2004-05-12 Atsushi Enomoto <atsushi@ximian.com>
664 * Parser.jay : made class internal.
666 2004-03-16 Atsushi Enomoto <atsushi@ximian.com>
668 * XPathNavigator.cs, Iterator.cs : Considered detached nodes, the
669 result of MoveToParent() should be checked.
671 2004-02-17 Atsushi Enomoto <atsushi@ximian.com>
673 * XPathNavigator.cs : Only child and attribute axes are allowed for
675 * Expression.cs : Added IsPositional property.
676 * DefaultContext.cs : Added some overrides.
678 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
680 * XPathNavigator.cs : no, its still not ok. comment out now.
682 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
684 * Expression.cs : Added EvaluatedNodeType and NeedAbsoluteMatching
685 to reduce extraneous Matches() trial.
686 * Iterator.cs : Removed unused MergedIterator.
687 * XPathNavigator.cs : Optimized Matches() not to evaluate ancestors
688 unnecessarily. (Test with NeedAbsoluteMatching).
690 2004-02-10 Atsushi Enomoto <atsushi@ximian.com>
692 * Iterator.cs : Added overriden Count properties for some iterators
693 (this fixes the half of #50678).
694 Added ListIterator class (which can reduce GetEnumerator()).
695 In some places we can omit clone for Current property, so added
696 some check logic (It has no effect as yet).
697 * Expression.cs, DefaultContext.cs :
698 use ListIterator instead of EnumeratorIterator.
700 2004-02-08 Atsushi Enomoto <atsushi@ximian.com>
702 * DefaultContext.cs, Expression.cs, Iterator.cs :
703 tiny foreach elimination.
705 2004-02-05 Atsushi Enomoto <atsushi@ximian.com>
707 * DefaultContext.cs : trivial processing order fix.
709 2004-01-27 Atsushi Enomoto <atsushi@ximian.com>
711 * DefaultContext.cs : Avoid exception if possible.
712 * Iterator.cs : Fixed PrecedingSiblingIterator.MoveNext(). When the
713 nav was positioned at the first, it incorrectly points itself.
714 Don't add names to name table while it is useless and expensive.
716 2004-01-08 Nick Drochak <ndrochak@ieee.org>
718 * Iterator.cs: Removed unused variable.
720 2003-12-18 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
722 * Parser.jay : now it supresses error output from jay.
723 * DefaultContext.cs : (XPathFunctionSubstring) exclude -Infinity.
724 * Tokenizer.cs : better error message.
725 * XPathDocument.cs : Use XmlValidatingReader to support id() function.
726 (just found MS.NET actually supports it)
728 2003-12-16 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
730 * Iterator.cs : On its iteration, moving Current must not affect to
731 MoveNext(). To assure this, Current must be a clone of navigator.
734 2003-12-07 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
736 * Tokenizer.cs : Removed some TODOs. (trivial ;-)
737 * Iterator.cs : ParensIterator can inherit from BaseIterator.
738 SlashIterator copy .ctor() always failed to clone. This fixes Count.
740 2003-12-03 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
742 * Expression.cs : XPathSorters.Compare() should compare document
743 position. See last sentence of XSLT 1.0 secion 10.
745 2003-12-03 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
747 * DefaultContext.cs : Overrode all functions' ToString().
748 XPathFunctions.ToNumber() trims whitespaces at both side.
749 Fixed NullReferenceException in normalize-space().
750 * Iterator.cs : Fixed AncestorOrSelfIterator.MoveNext() didn't handle
751 attribute or namespace node correctly.
752 SlashIterator.Clone() didn't clone "next node iterator" correctly.
753 EnumeratorIterator.ctor() should raise an error (not at Clone())
754 when the target IEnumerator is not ICloneable.
756 2003-11-28 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
758 * Expression.cs : namespace axis now traversed in reverse order, so it
760 * Iterator.cs : UnionIterator.Clone() was incomplete.
761 NamespaceItarator() should be reverse order (special handling
762 because of XPathNavigator specification).
764 2003-11-24 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
766 * Iterator.cs : PrecedingIterator.MoveNext() now breaks up at Root.
767 * XPathNavigator.cs : ComparePosition() didn't handle attributes
770 2003-11-24 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
772 * Parser.jay, Expression.cs, Iterator.cs :
773 Added ExprParens and ParensIterator classes which is used to handle
774 precedence of parenthesized expressions.
775 (e.g. consider "(preceding::*)[3]" and "preceding::[3]" )
777 * Expression.cs, Iterator.cs :
778 Added RequireSorting property for each Expr and BaseIterator classes.
779 SlashIterator.MoveNext() now considers correct sorting. But
780 considering performance, it separates two logics, sorted and sortless
781 depending on RequireSorting of left iterator and right expression.
784 SimpleIterator.ctor() should consider when nav is null.
785 FollowingIterator.MoveNext() and PrecedingIterator.MoveNext() should
786 not return any nodes.
787 AncestorIterator and AncestorOrSelfIterator copy ctr() should clone
789 AncestorIterator.MoveNext() should skip Root if context node is
791 FollowingIterator.MoveNext() should not handle children of context
793 PrecedingIterator.MoveNext() should skip its ancestors.
794 AxisIterator.ReverseAxis should be dependent on its containing iter.
795 UnionIterator.MoveNext() should consider comparison of nodes in
796 different document. The behavior is implementation dependent.
799 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
801 * Added XPathComparer.cs
802 * DefaultContext.cs : Fixed XPathFunctionId.Evaluate() to iterate base
803 iterator correctly, and sort results.
805 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
807 * DefaultContext.cs : Imcomplete fix ;-)
809 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
811 * DefaultContext.cs : XPathFunctions.ToNumber() should catch overflow.
812 XPathFunctionId.cs : Exposed Id expression.
813 * Expression.cs : Added ExprLiteral.Value, and class ExprParens (it
814 will be used to solve evaluation precedence problem).
816 2003-11-09 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
818 * Iterator.cs : Fixed SlashIterator that might return nodes 1)in
819 inconsistent order, and 2)may return duplicate result nodes.
821 2003-11-06 Ben Maurer <bmaurer@users.sourceforge.net>
823 * Iterator.cs: (AxisIterator.ComparablePosition): Remove. Let
824 it inherit from the base class. This made b[2] evaluated on
825 <a /><b /><c /><a /><b /><c /> return the first b node because
826 in the ChildIterator it was the second node and seemed to satsify
829 2003-11-04 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
831 * Iterator.cs : Added bool ReverseAxis property to identify whether
832 the iterator is in reverse order or not. Added ComparablePosition
833 for correct position comparison for PredicateIterator and reverse-
834 order-axes. Modified AncestorIterator, AncestorOrSelfIterator,
835 PrecedingIterator and PrecedingSiblingIterator to make MoveNext()
836 return their nodes in document order. This fixes bugzilla #39079.
838 2003-10-15 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
840 * Iterator.cs : DescendantIterator and FollowingIterator also should
841 not MoveNext() after they reached to the end.
843 2003-10-13 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
845 * Iterator.cs : Fixed UnionIterator who ignores document order.
846 Fixed SlashIterator whose MoveNext() should finish at its end.
848 2003-09-27 Ben Maurer <bmaurer@users.sourceforge.net>
850 * Iterator.cs, Expression.cs, XPathNavigator.cs: In AxisIterator
851 use NameTable so we dont call strcmp.
853 2003-09-27 Ben Maurer <bmaurer@users.sourceforge.net>
855 * DefaultContext.cs (translate): translate ("abc", "c", "") = "ab"
857 * Iterator.cs, Expression.cs: All axes are
858 SimpleIterators. SimpleIterators are gaurenteed to give the same
859 XPathNavigator in Current. Make AxisIterator take a
860 SimpleIterator, not any old BaseIterator. Will allow us to make
861 NameTable optimizations and avoid quite a few strcmp's.
863 2003-09-24 Ben Maurer <bmaurer@users.sourceforge.net>
865 * Expression.cs: make // work right, must use another slash itr.
867 2003-09-21 Ben Maurer <bmaurer@users.sourceforge.net>
869 * Expression.cs: cant use $$ before assigned.
871 2003-09-21 Ben Maurer <bmaurer@users.sourceforge.net>
873 * Expression.cs, Parser.jay, XPathNavigator.cs: api beautification.
875 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
877 * Expression.cs: num != double.NaN does not work.
879 2003-09-19 Ben Maurer <bmaurer@users.sourceforge.net>
881 * Expression.cs: in NodeTypeTest dont throw an exception if it is
882 an unknown node type (allows for better Pattern debugging).
884 2003-09-17 Ben Maurer <bmaurer@users.sourceforge.net>
886 * DefaultContext.cs: implement sum () and translate ().
888 2003-09-13 Ben Maurer <bmaurer@users.sourceforge.net>
890 * XPathNavigator.cs: Make methods where you pass in the context,
891 so that we dont have to clone expressions so much.
893 2003-09-06 Ben Maurer <bmaurer@users.sourceforge.net>
895 * DefaultContext.cs, Expresssion.cs, Parser.jay: Rewrite so that
896 system functions are actually expressions. Will allow for some
899 2003-08-25 Ben Maurer <bmaurer@users.sourceforge.net>
901 * XPathNavigator.cs: "Smart" behavior in Matches. Nice 8x speed
902 improvement in the method (5ms/call -> .7 ms / call) measured by
903 monodoc's rendering of N:System.
904 * Expression.cs: Utility methods to support above.
906 2003-08-13 Piers Haken <piersh@friskit.com>
909 fix MergedIterator.Clone(), now clones other's iterators
910 fix DescendantIterator.Clone(), now copies depth
911 make iterator cloning constructors more type-specific
913 2003-08-01 Piers Haken <piersh@friskit.com>
915 * Expression.cs: added NodeNamespaceTest
916 * XPathNavigator.cs: implement Select* with namespaces
918 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
920 * Iterator.cs: Allow creation of an EnumeratorIterator with an
923 2003-07-31 Piers Haken <piersh@friskit.com>
926 Nested predicates (uses ExprFilter instead)
928 make grammar look more like w3c spec
930 remove ExprStep, ExprPredicates
931 NodeTest is now a NodeSet
934 PredicateIterator now only takes a single predicate expression
937 simplified SelectTest
941 2003-07-30 Duncan Mak <duncan@ximian.com>
947 2003-07-29 Piers Haken <piersh@friskit.com>
949 * DefaultContext.cs: 'local-name' returns String, not NodeSet!
951 2003-07-29 Piers Haken <piersh@friskit.com>
955 add typesafe Evaluate* methods
957 2003-07-29 Piers Haken <piersh@friskit.com>
959 * DefaultContext.cs: fix 'substring-after'
961 2003-07-29 Piers Haken <piersh@friskit.com>
963 * Iterator.cs: fix PredicateIterator.CurrentPosition bug (it wasn't incrementing)
965 2003-07-29 Ben Maurer <bmaurer@users.sourceforge.net>
967 * Iterator.cs: dont throw exceptions on tostring ()
969 2003-07-28 Piers Haken <piersh@friskit.com>
971 * DefaultContext.cs: better handling of null argument lists
972 * XPathNavigator.cs: implement ComparePosition
974 2003-07-28 Piers Haken <piersh@friskit.com>
976 * Expression.cs: boolean operators: handle comparing .Any better
978 2003-07-28 Piers Haken <piersh@friskit.com>
980 * DefaultContext.cs: count() should return a double
981 * Expression.cs: better support for handling non-double numbers
983 2003-07-28 Piers Haken <piersh@friskit.com>
985 * DefaultContext.cs: better function param matching
987 2003-07-27 Piers Haken <piersh@friskit.com>
991 catch FormatExceptions while parsing numbers
993 2003-07-27 Piers Haken <piersh@friskit.com>
996 fix case sorting order
997 allow EvaluateNumber to take XPathResultType.Any
999 2003-07-27 Piers Haken <piersh@friskit.com>
1003 don't pass null to XmlQualifiedName constructor
1005 2003-07-27 Piers Haken <piersh@friskit.com>
1007 * DefaultContext.cs: allow 'concat' to take arbitrary-typed arguments (spec?)
1009 2003-07-27 Piers Haken <piersh@friskit.com>
1011 * Expression.cs: allow EvaluateNodeSet to take XPathResultType.Any
1013 2003-07-26 Piers Haken <piersh@friskit.com>
1015 * Expression.cs: fix function evaluation with ambigous argument types
1016 * XPathNavigator.cs: fix silly null reference bug
1018 2003-07-26 Piers Haken <piersh@friskit.com>
1021 * DefaultContext.cs:
1022 ArrayListIterator->EnumeratorIterator
1023 * Expression.cs: add sorting support
1025 2003-07-26 Piers Haken <piersh@friskit.com>
1029 move QName parsing into tokenizer
1031 fix evaluating XPathResultType.Any
1032 fix ExprDiv.ToString()
1033 fix NodeTypeTest.ToString() (for namespace axis)
1035 2003-07-25 Piers Haken <piersh@friskit.com>
1037 * Expression.cs: return clone of $var evaluation
1039 2003-07-26 Piers Haken <piersh@friskit.com>
1041 * Iterator.cs: add setter for NamespaceManager
1042 * XPathNavigator.cs: propagate NamespaceManager from context on Evaluate
1043 * Expression.cs: fix func/var exception strings
1045 2003-07-25 Piers Haken <piersh@friskit.com>
1047 * Expression.cs: implement ExprFilter.Evaluate
1049 2003-07-25 Piers Haken <piersh@friskit.com>
1051 * Expression.cs: implement ExprVariable.Evaluate
1053 2003-07-24 Ben Maurer <bmaurer@users.sourceforge.net>
1055 * DefaultContext.cs: implement lang ()
1057 2003-07-24 Piers Haken <piersh@friskit.com>
1061 allow ExprUNION to take non-nodeset (eg, $var) arguments
1063 2003-07-24 Piers Haken <piersh@friskit.com>
1065 * Tokenizer.cs: fix variable references
1068 * XPathNavigator.cs:
1069 use XmlQualifiedName
1071 2003-06-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
1073 * XPathDocument.cs : removed Driver class and restored authors' name
1074 (though it is completely rewrote).
1076 2003-06-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
1078 * XPathDocument.cs : Replaced existing stub class with real
1079 XPathDocument implementation.
1081 2003-04-28 Piers Haken <piersh@friskit.com>
1083 * Parser.jay, Tokenizer.cs: more compliant lexical parsing of ambiguous tokens
1085 2003-03-07 Piers Haken <piersh@friskit.com>
1087 * Tokenizer.cs: allow '.'s in NCNames
1089 2003-03-07 Piers Haken <piersh@friskit.com>
1092 * DefaultContext.cs:
1093 fixed function argument resolution
1095 2003-02-09 Piers Haken <piersh@friskit.com>
1097 * XPathNavigator.cs:
1099 * Expression.cs: fix namespace handling
1101 2003-01-04 Piers Haken <piersh@friskit.com>
1103 * Parser.*: Remove extraneous "using" that was stopping the build. Permanently thisi time ;-)
1105 2003-02-02 Piers Haken <piersh@friskit.com>
1107 * Parser.jay: add token names
1108 * Tokenizer.cs: fix NCName tokenization
1110 2003-01-02 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
1112 * Tokenizer.cs : Fixed ParseIdentifier to allow digits.
1113 (It should be a temporary fix.)
1115 2002-09-22 Nick Drochak <ndrochak@gol.com>
1117 * Parser.cs: Remove extraneous "using" that was stopping the build.
1119 2002-09-21 Piers Haken <piersh@friskit.com>
1121 * XPathException: implementation
1126 * XPathNavigator.jay:
1129 2002-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1131 * Parser.cs: commented out non-existent namespace (it compiles fine
1132 with mcs because of a bug that is already on bugzilla).
1134 2002-09-12 Piers Haken <piersh@friskit.com>
1136 * Tokenizer.cs: fix parsing numbers that start with '.'
1137 * DefaultContext.cs: use MS-compatible formatting of doubles
1139 2002-09-12 Piers Haken <piersh@friskit.com>
1141 * Iterator.cs: added NullIterator to handle unspecified contexts
1142 * XPathNavigator.cs: use NullIterator insted of SelfIterator when context is unspecified.
1143 * XPathNodeIterator.cs: change default _count to -1 to prevent recalculations for NullIterators
1145 2002-09-12 Piers Haken <piersh@friskit.com>
1147 * Expression.cs, Parser.jay: allow ExprSLASH to take a generic expression as its left argument.
1148 * Iterator.cs: fix SlashIterator.Clone() when _iterRight is null.
1149 * DefaultContext.cs: fix id() return type.
1151 2002-09-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1153 * DefaultContext.cs: fixed bug #28840.
1154 * Expression.cs: added FIXME.
1156 2002-08-17 Jason Diamond <jason@injektilo.org>
1158 * XPathNavigator.cs: Fixed matching on patterns that look like
1159 absolute XPath expressions.
1161 2002-08-17 Jason Diamond <jason@injektilo.org>
1163 * XPathNavigator.cs: Added naive (but working) implementation of
1166 2002-07-31 Piers Haken <piersh@friskit.com>
1168 * XPathDocument.cs: simple, XmlDocument-based implementation
1170 2002-07-25 Piers Haken <piersh@friskit.com>
1172 * DefaultContext.cs: implement XPathFunctionName 'name()' function.
1174 2002-07-17 Piers Haken <piersh@friskit.com>
1176 * DefaultContext.cs: implement 'string-length()', 'normalize-space()'
1177 * Parser.jay: remove redundant production
1178 * Expression.cs: add switches for debugging under VS.NET
1180 2002-07-17 Piers Haken <piersh@friskit.com>
1182 * Expression.cs: implement nodeset/nodeset comparisons (non-optimal)
1184 2002-07-15 Piers Haken <piersh@friskit.com>
1187 - rename UnionIterator to MergedIterator,
1188 - create new UnionIterator to implment uniqueness for '|' operator
1189 - fix position bug in ArrayListIterator.Clone()
1190 * Expression.cs: use new UnionIterator constructor syntax
1192 2002-07-12 Piers Haken <piersh@friskit.com>
1194 * Iterator.cs: PredicateIterator: handle numeric predicates
1195 * Parser.jay: add some debugging support: yyparseDebug
1196 * Tokenizer.cs: cleanup, include '-' chars in identifier tokens
1198 2002-06-29 Piers Haken <piersh@friskit.com>
1202 - NodeTest uses XPathResultType instead of internal NodeTestTypes enum
1203 - remove NodeTestTypes enum
1204 - remove NodeTestTypeAny (functionality provided by base now)
1205 - fix ExprStep to handle wildcard QNames
1207 - moved to Mono.Xml.XPath namespace
1208 - use XPathResultType
1209 - handle wildcard QNames
1211 * Tokenizer.cs: moved to Mono.Xml.XPath namespace
1213 * XPathNavigator.cs: implement
1219 * XPathResultType.cs: fix enum values
1221 2002-06-24 Jason Diamond <jason@injektilo.org>
1223 * XPathScanner.cs: Removed.
1225 2002-06-24 Dick Porter <dick@ximian.com>
1227 * XmlCaseOrder.cs: Fix namespace
1229 2002-06-23 Piers Haken <piersh@friskit.com>
1231 * DefaultContext.cs: implemented XPathFUnctionId
1232 * Iterator.cs: new ArrayListIterator for id() support
1234 2002-06-23 Piers Haken <piersh@friskit.com>
1236 * XPathNavigator.cs: implement:
1242 - some forwarding methods
1244 * XPathNodeIterator: implement caching Count
1246 * Tokenizer.cs: new XPath tokenizer
1247 * Parser.jay: new XPath grammar
1248 * Parser.cs: new precompiled XPath grammar
1249 * Expression.cs: new XPath expression objects
1250 * Iterator.cs: new XPath result/context objects
1251 * DefaultContext.cs: new XPath function binding context
1253 2002-05-08 Tim Coleman <tim@timcoleman.com>
1255 * XPathException.cs: New stub files added.
1257 2002-04-12 Duncan Mak <duncan@ximian.com>
1259 * XmlCaseOrder.cs: Moved to here from System.Xml.
1261 2002-03-26 Jason Diamond <jason@injektilo.org>
1263 * XPathScanner.cs: Now handles name tests with wildacards. Abbreviated
1264 steps. Both absolution and relative abbreviated location paths.
1266 2002-03-25 Jason Diamond <jason@injektilo.org>
1268 * XPathScanner.cs: Added new file. This class is supposed to be internal
1269 but that would make it impossible to test.
1271 2002-03-08 Duncan Mak <duncan@ximian.com>
1273 * XPathNamespaceScope.cs:
1275 * XPathResultType.cs:
1277 * XmlSortOrder.cs: Used EnumCheck and realigned elements to be compatible with MS
1278 implementation. XPathResultType is interesting as EnumCheck does
1279 not show the Navigator element, but shows the String element twice.
1281 2002-03-08 Jason Diamond <jason@injektilo.org>
1283 * XmlDataType.cs, XmlSortOrder.cs, XPathNodeType.cs: Added files.
1285 2002-03-06 Jason Diamond <jason@injektilo.org>
1287 * ChangeLog: Added to this directory.
1289 * XPathExpression.cs, XPathNamespaceScope.cs, XPathNodeIterator.cs,
1290 XPathResultType.cs: New files.
1292 * XPathNavigator.cs: Stubbed out all properties and methods.