1 2006-01-25 Atsushi Enomoto <atsushi@ximian.com>
3 * XPathNavigator.cs : fixed IsNode signature found by updated
6 2006-01-11 Atsushi Enomoto <atsushi@ximian.com>
8 * Iterator.cs : Nowadays removal of cloning of the argument list
9 in ListIterator is safe. Thanks to Joshua Tauberer for the hint.
11 2006-01-11 Atsushi Enomoto <atsushi@ximian.com>
13 * Iterator.cs : (DescendantOrSelfIterator/DescendantIterator) the
14 error message is for blaming custom XPathNavigator
15 implementation, not us ;-) (see also #77194)
17 2006-01-06 Atsushi Enomoto <atsushi@ximian.com>
19 * XPathNavigator.cs : use WriteNode(XPathNavigator, bool)
20 rather than WriteNode(XmlWriter, bool) in WriteSubtree().
22 2005-12-14 Atsushi Enomoto <atsushi@ximian.com>
24 * XPathNavigator.cs : Added MonoTODO to CreateAttributes(). Removed
25 MonoTODO from ReadSubtree().
27 2005-12-14 Atsushi Enomoto <atsushi@ximian.com>
29 * XPathNavigator.cs : UnderlyingObject returns null by default.
31 2005-12-13 Atsushi Enomoto <atsushi@ximian.com>
33 * XPathNavigator.cs : Reimplemented MoveToFollowing() to avoid
34 inefficient MoveToDescendant() and to match .NET 2.0 behavior.
36 2005-12-13 Atsushi Enomoto <atsushi@ximian.com>
38 * XPathNavigator.cs : ReplaceSelf() should allow document fragment.
39 Moved implementation to XPathEditableDocument.
41 2005-12-13 Atsushi Enomoto <atsushi@ximian.com>
43 * XPathNavigator.cs : PrependChild() should use AppendChild() when
46 2005-12-13 Atsushi Enomoto <atsushi@ximian.com>
48 * XPathNavigator.cs : InsertAfter() should raise an error before
49 MoveToNext() when current node is either attribute or namespace.
51 2005-12-13 Atsushi Enomoto <atsushi@ximian.com>
53 * XPathNavigator.cs : InsertAfter() should append children after it
54 once moved to parent. This method shoulr raise an error when it is
57 2005-12-13 Atsushi Enomoto <atsushi@ximian.com>
59 * XPathNavigator.cs : (CreateFragmentReader) return XmlReader that
60 considers current namespace contexts.
62 2005-12-12 Atsushi Enomoto <atsushi@ximian.com>
64 * XPathNavigator.cs : removed some MonoTODOs.
66 2005-12-08 Atsushi Enomoto <atsushi@ximian.com>
68 * XPathDocument.cs : garbage cleanup.
70 2005-11-23 Vladimir Krasnov <vladimirk@mainsoft.com>
72 * Iterator.cs: fixed UnionIterator.SetCurrent method, the
73 navigators may be from different xml files.
75 2005-11-23 Vladimir Krasnov <vladimirk@mainsoft.com>
77 * Iterator.cs: fixed SimpleSlashIterator.MoveNextCore method, the
78 navigators may be from different xml files.
80 2005-11-10 Atsushi Enomoto <atsushi@ximian.com>
82 * XPathNavigator.cs, XPathNodeIterator.cs :
83 [DebuggerDisplay] are not worthy of existing.
85 2005-11-07 Atsushi Enomoto <atsushi@ximian.com>
87 * XPathNavigator.cs, XPathNodeIterator.cs : DebuggerDisplayAttribute
88 values are fixed. However, they totally do not make sense since
89 there is no DebuggerDisplayProxy type in our impl.
91 2005-11-07 Atsushi Enomoto <atsushi@ximian.com>
93 * XPathException.cs : Message property is back in 2.0 RTM.
95 2005-11-07 Atsushi Enomoto <atsushi@ximian.com>
97 * XPathNodeIterator.cs : added [DebuggerDisplay]. pretty useless tho.
98 * XPathNavigator.cs : [DebuggerDisplay] as well.
99 SelectSingleNode() and AppendChildElement() are now virtual.
101 2005-10-23 Atsushi Enomoto <atsushi@ximian.com>
103 * XPathNavigator.cs : now 2.0 MoveToFirst() invokes internal
104 MoveToFirstImpl() and it is from what XmlDocumentNavigator did.
105 This fixes XPathEditableDocument.MoveToFirst().
107 2004-10-15 Atsushi Enomoto <atsushi@ximian.com>
109 * XPathNavigator.cs : (DeleteRange, ReplaceRange) so they are not
110 likely to be implemented, thus MonoTODO.
112 2005-10-08 Gert Driesen <drieseng@users.sourceforge.net>
114 * XPathNavigator.cs: Removed DebuggerDisplay attribute.
115 * XPathNodeIterator.cs: Removed DebuggerDisplay attribute.
117 2005-10-08 Gert Driesen <drieseng@users.sourceforge.net>
119 * XPathNavigator.cs: [NET_2_0] Added DebuggerDisplay attribute,
120 added ReplaceRange and DeleteRange methods.
121 * XPathNodeIterator.cs: [NET_2_0] Added DebuggerDisplay attribute.
123 2004-09-22 Atsushi Enomoto <atsushi@ximian.com>
125 * Expression.cs : Now that managed collation is default, we don't need
126 reversive case-order anymore.
128 2004-09-21 Atsushi Enomoto <atsushi@ximian.com>
130 * XPathNavigator.cs : added NavigatorComparer.
131 * XPathComparer.cs : XPathNavigatorComparer implements
132 IEqualityComparer under NET_2_0 profile.
134 2005-08-31 Sebastien Pouliot <sebastien@ximian.com>
136 * XPathException.cs: Added a Demand for SerializationFormatter on
137 GetObjectData method.
139 2005-08-03 Gert Driesen <drieseng@users.sourceforge.net>
141 * XPathNavigator.cs: GetNamespacesInScope returns generic IDictionary
144 2004-07-23 Atsushi Enomoto <atsushi@ximian.com>
146 * Expression.cs : don't expect namespace resolver; namespace could be
147 supplied in QName without nsresolver need (i.e. SelectChildren()).
150 2005-06-09 Andrew Skiba <andrews@mainsoft.com>
152 * XmlDefaultContext.cs : add TARGET_JVM for roundtrip bug
154 2004-06-07 Atsushi Enomoto <atsushi@ximian.com>
156 * Expression.cs : set TARGET_JVM where collation matters.
158 2004-05-05 Atsushi Enomoto <atsushi@ximian.com>
160 * XPathAtomicValue.cs :
161 it is now XmlAtomicValue and in sys.xml.schema.
162 * XPathNavigator.cs, Expression.cs :
163 removed atomizedName related 2.0 members (deprecated).
165 2004-05-05 Atsushi Enomoto <atsushi@ximian.com>
167 * XPathExpression.cs : added static Compile().
168 * XPathNavigator.cs :
169 Use XPathExpression.Compile() for now.
170 Updated tree modification API to 2.0 beta2.
171 * XPathItem.cs, XPathNavigator.cs, XPathAtomicValue.cs :
172 updated to 2.0 beta2 API.
173 * XPathResultType.cs : removed [Serializable].
174 * XmlNodeChangeType.cs : removed obsolete file.
176 2004-03-25 Atsushi Enomoto <atsushi@ximian.com>
178 * XPathNavigator.cs : 2.0 build fix
180 2004-03-25 Atsushi Enomoto <atsushi@ximian.com>
182 * Expression.cs : In ExprSLASH2, replace A//B with A/descendant::B if
183 B is child axis test (thus peer&subtree optimization became possible)
184 Fixed warning (incorrect variable let).
186 2004-03-25 Atsushi Enomoto <atsushi@ximian.com>
188 * XPathNavigator.cs : reduced some Clone().
189 Simplified ComparePosition().
190 * Iterator.cs : some iterators are not actually reverse axis.
192 2004-03-22 Atsushi Enomoto <atsushi@ximian.com>
194 * Expression.cs : EvaluateBoolean() for RTF should check return true
195 for empty elements. Fixed static analysis for RTF.
197 2004-03-22 Atsushi Enomoto <atsushi@ximian.com>
199 * Parser.jay, Tokenizer.cs : Now they are used as common code base for
200 XPath parser and XSLT pattern parser. Makefile now creates two
201 set of sources of them. (This change takes effect on the next change).
203 2004-03-16 Atsushi Enomoto <atsushi@ximian.com>
205 * Parser.jay : rewrote step part to be reusable for upcoming XSLT
208 2004-03-16 Atsushi Enomoto <atsushi@ximian.com>
210 * Iterator.cs : reduced extra clone.
212 2004-03-15 Atsushi Enomoto <atsushi@ximian.com>
216 Iterator.cs : Now RequireSorting is not required in BaseIterator
217 (it is now fully in Expression).
218 Removed the last ListIterator .ctor() argument.
220 2004-03-15 Atsushi Enomoto <atsushi@ximian.com>
222 * XPathNavigator.cs : In ComparePosition(), make use of IsDescendant().
224 2004-03-14 Atsushi Enomoto <atsushi@ximian.com>
227 DefaultContext.cs : Basic constant folding optimization (not so
228 effective right now). Unified number-to-string conversion code into
229 XPathFunctions.ToString(double) to avoid roundtrip format right now.
230 * Iterator.cs : removed unused code.
232 2004-03-11 Atsushi Enomoto <atsushi@ximian.com>
234 * Iterator.cs : more clone reduction.
236 2004-03-11 Atsushi Enomoto <atsushi@ximian.com>
238 * Expression.cs, DefaultContext.cs : more Peer overrides.
240 2004-03-11 Atsushi Enomoto <atsushi@ximian.com>
243 DefaultContext.cs : Removed unused NeedAbsoluteMatching.
244 Added Peer and Subtree (for "peer & subtree optimization. See:
245 http://idealliance.org/papers/dx_xmle04/papers/02-03-02/02-03-02.html
246 Fixed some ToString() that caused NullReferenceException.
248 * Iterator.cs : Predicate does not affect on RequireSorting.
249 Added SimpleSlashIterator for peer & subtree optimization.
251 Added PreserveWhitespace() consideration in BaseIterator.MoveNext().
253 2004-03-09 Atsushi Enomoto <atsushi@ximian.com>
257 SlashIterator is now constructed with requireSorting parameter
258 that thus just use RequireSorting from both left/right Expressions,
260 When attribute axis is on the left expression, the result needs to
263 2004-03-09 Atsushi Enomoto <atsushi@ximian.com>
265 * Iterator.cs : Now for most of iterator types, Current property always
266 returns the same instance. It results in huge memory reduction.
268 2004-03-04 Atsushi Enomoto <atsushi@ximian.com>
270 * Iterator.cs : (SlashIterator.MoveNext()) For SortedList.Add(), the
271 key should be iterator itself. Key by list count never makes sense.
273 2004-03-04 Atsushi Enomoto <atsushi@ximian.com>
275 * Expression.cs : Significant whitespace nodes must be returned in
278 2004-02-23 Atsushi Enomoto <atsushi@ximian.com>
280 * Expression.cs : xsl:sort case-order was not handled properly.
282 2004-02-23 Atsushi Enomoto <atsushi@ximian.com>
285 In FollowingIterator, attribute and namespace nodes should be
286 considered to have following nodes. See XPath 1.0 section 5 (esp.
287 the description on "document order").
288 On fixing @*/following::*, attribute nodes are regarded as to be
289 RequireSorting = true (which might result in duplicate).
291 2004-02-18 Atsushi Enomoto <atsushi@ximian.com>
293 * Expression.cs : string() function expects "Infinity" and "-Infinity"
294 instead of "INF" for conversion from number. XmlConvert is for XSD,
297 2004-02-09 Atsushi Enomoto <atsushi@ximian.com>
299 * Expression.cs : RelationalExpr was comparing number and node in
300 reverse order. Patch by Kazuki Oikawa. Fixed bug #72343.
301 RelationalExpr should also handle result tree fragment as node-set
302 as well as EqualityExpr. This fixes RTF case wrt #72343.
304 2004-02-08 Atsushi Enomoto <atsushi@ximian.com>
306 * Expression.cs : tiny code format fix by Andrew Skiba.
308 2004-12-26 Atsushi Enomoto <atsushi@ximian.com>
310 * XPathNavigator.cs : Added CheckValidity() and ValueType.
311 For SetTypedValue(), throw NotSupportedException instead of
312 NotImplementedException.
314 2004-12-16 Atsushi Enomoto <atsushi@ximian.com>
316 * XPathNavigator.cs :added MoveToFollowing(), ReplaceSelf() and
317 all the missing attributes.
319 2004-12-04 Atsushi Enomoto <atsushi@ximian.com>
321 * XPathDocument.cs : switch to DTMXPathNavigator2 which fully
322 eliminated string fields from struct.
323 (When we switch from struct to class, revert this change to use
324 DTMXPathNavigator, since class-based DTMXPathNavigator2 is rather
325 wasting processing speed.)
327 2004-12-02 Atsushi Enomoto <atsushi@ximian.com>
329 * Iterator.cs : when PredicateIterator has a numeric predicate, it
330 will never be true twice. So just break up the iteration on true.
331 * XPathNavigator.cs : implemented LookupPrefix().
332 * Expression.cs : ExprParens.Optimize() could just return the content
335 2004-12-01 Atsushi Enomoto <atsushi@ximian.com>
337 * IXPathChangeNavigable.cs,
339 XPathDocumentNodeChangedAction.cs : removed old files.
341 2004-12-01 Atsushi Enomoto <atsushi@ximian.com>
343 * Iterator.cs : with related to the previous patch, many comments
344 got making no sense. Thanks to Harinath.
346 2004-12-01 Atsushi Enomoto <atsushi@ximian.com>
348 * Iterator.cs : actually I mean this patch.
350 2004-12-01 Atsushi Enomoto <atsushi@ximian.com>
352 * Iterator.cs : Create _current clone only when required. So just set
353 null when MoveNextCore() succeeded (except for some cases that
354 _current is _nav, such as SelfIterator).
356 2004-11-30 Atsushi Enomoto <atsushi@ximian.com>
358 * Iterator.cs : SlashIterator.RequireSorting is always false. Whether
359 it has to collect nodes in prior or not and whether it might return
360 nodes in inconsistent order is different matter.
361 (It still needs to store nodes when either of branches requires
362 sorting, because they might return the same node later.)
364 2004-11-30 Atsushi Enomoto <atsushi@ximian.com>
366 * Iterator.cs : reduced some extraneous ComparePosition() that could
367 be written as IsSamePosition(). ParentIterator doesn't have to be
370 2004-11-30 Atsushi Enomoto <atsushi@ximian.com>
372 * Iterator.cs : reimplemented AncestorIterator and
373 AncestorOrSelfIterator just to collect parents and not to move to
374 siblings. In some cases like thousands of siblings, it used to be
375 so slow, while we usually don't have so deep ancestors.
377 2004-11-26 Atsushi Enomoto <atsushi@ximian.com>
379 * Expression.cs : warning removal. Added Optimize() which is not
381 * Tokenizer.cs : warning elimination
383 2004-11-24 Atsushi Enomoto <atsushi@ximian.com>
385 * XPathEditableNavigator.cs, XPathChangeNavigator.cs,
386 IXPathEditable.cs : more removal of oldies.
388 2004-11-24 Atsushi Enomoto <atsushi@ximian.com>
390 * NodeChangedEventArgs.cs, NodeChangedEventHandler.cs : removed oldies.
392 2004-11-08 Atsushi Enomoto <atsushi@ximian.com>
394 * Tokenizer.cs : just use raw string instead of char[].
395 * XPathNavigator.cs : reuse NameTable when creating XmlTextReader.
397 2004-11-07 Atsushi Enomoto <atsushi@ximian.com>
400 - Made copy constructor certainly different from other constructors.
401 - Position is never computed in each derived type. All MoveNext() are
403 - Most of the protected members could just be private.
405 2004-11-05 Atsushi Enomoto <atsushi@ximian.com>
407 * Expression.cs, XPathNavigator.cs : hold raw expression field for
408 get_Expression. It is preparation for expression optimization.
410 2004-11-05 Atsushi Enomoto <atsushi@ximian.com>
412 * Iterator.cs : SimpleIterator._current could be cloned only when
415 2004-11-05 Atsushi Enomoto <atsushi@ximian.com>
417 * Iterator.cs : Some removal of Clone() were harmless.
419 2004-10-22 Atsushi Enomoto <atsushi@ximian.com>
421 * XPathDocument.cs : now all the new stuff that used to be in 2.0 are
423 * XPathEditableNavigator.cs : It will be removed. Right now modified
425 * XPathNavigator.cs : Added members that are merged from
426 XPathEditableNavigator. Updated members name.
428 2004-10-14 Atsushi Enomoto <atsushi@ximian.com>
431 - Added WrapperIterator to return BaseIterator in such case that
432 variable reference is resolved to XPathNodeIterator. This fixes
434 - Path ".." is reverse axis (actually no effect).
435 - Fixed DescendantIterator.Clone() that missed "_finished" field.
437 In ExprVariable.Evaluate(), use WrapperIterator() for custom
440 2004-10-09 Atsushi Enomoto <atsushi@ximian.com>
442 * XPathAtomicValue.cs : Init(string, XmlSchemaType) is private.
444 2004-10-05 Atsushi Enomoto <atsushi@ximian.com>
446 * XPathAtomicValue.cs : missing Init() definition for float and string;
447 latter one resulted in infinite loop in Init(object,XmlSchemaType).
449 2004-10-04 Atsushi Enomoto <atsushi@ximian.com>
451 * XPathNavigator.cs : TypedValue could be implemented.
452 * XPathEditableNavigator.cs : removed some MonoTODO since now there
455 2004-09-13 Atsushi Enomoto <atsushi@ximian.com>
457 * XPathAtomicValue.cs : All .ctor() are separeted from Init().
458 In .ctor(object, XmlSchemaType):
459 - For lists that contains just one item, Init() recursively.
460 - For XPathAtomicValue, Init() recursively for its content fields.
461 For Value and TypedValue, consider typecode from XmlSchemaType.
463 2004-09-06 Atsushi Enomoto <atsushi@ximian.com>
465 * XPathEditableNavigator.cs :
466 AppendChild(xmlReader) ignored nodes after than first one, and
467 resulted in infinite loop.
468 Added get_OuterXml overrides. set_OuterXml should not move to
469 parent before deleting current.
471 2004-08-25 Atsushi Enomoto <atsushi@ximian.com>
473 * XPathAtomicValue.cs : Value was not returning expected value when
474 it is created as new XPathAtomicValue (object, XmlSchemaType).
475 Compute stringValue and reuse.
476 * XPathNavigator.cs : Temporarily stubbed as to ignore SchemaInfo
477 (for checking XQuery implementation).
479 2004-08-25 Atsushi Enomoto <atsushi@ximian.com>
481 * XPathAtomicValue.cs : Handle .ctor() with object parameter more
482 precisely (still not enough, for list argument).
483 Removed commended blocks.
485 2004-08-24 Atsushi Enomoto <atsushi@ximian.com>
487 * XPathAtomicValue.cs : DateTime should be convertible to string.
488 Use schemaType's TypeCode for .ctor() that takes object.
489 * XPathNavigator.cs : copied get_InnerXml from XPathEditableNavigator.
490 * XPathEditableNavigator.cs : set_InnerXml should be different (new)
491 property from get_InnerXml. Removed get_InnerXml and get_OuterXml
494 2004-08-23 Atsushi Enomoto <atsushi@ximian.com>
496 * XPathAtomicValue.cs, XPathNavigator.cs : Eliminate MS.Internal.Xml.*.
498 2004-08-03 Atsushi Enomoto <atsushi@ximian.com>
500 * XPathEditableNavigator.cs : implemented some editor support methods.
502 2004-08-02 Atsushi Enomoto <atsushi@ximian.com>
505 - For .NET 2.0, added a switch to support new XPathDocument2.
506 If switch is off, then it uses DTM.
507 - Implemented remaining 2.0 bits (except for Obsolete ones).
509 To use them in XPathDocument, set environment MONO_XPATH_DOCUMENT_2=yes
510 (It is still too unstable to pass all nunit tests and standalone XSLT
513 2004-07-29 Atsushi Enomoto <atsushi@ximian.com>
515 * XPathNavigator.cs : Implemented ReadSubtree().
517 2004-07-28 Atsushi Enomoto <atsushi@ximian.com>
519 * XPathDocument.cs : for .ctor() and .ctor(XmlNameTable), now it
520 creates Mono.Xml.XPath.XPathEditableDocument and thus supports
521 IXPathEditable.CreateEditor().
523 2004-07-28 Atsushi Enomoto <atsushi@ximian.com>
525 * XPathEditableNavigator.cs : Implemented InsertAfter() and
526 PrependChild(); they are virtual, not abstract.
527 * XPathNavigator.cs :
528 Implemented many 2.0 virtual properties and methods that were
530 Implemented some Select() methods that uses IXmlNamespaceResolver.
531 Implemented most of ValueAsXxx() using XQueryConvert.
532 IsNode is always true. Implemented OuterXml and WriteSubtree() (but
533 actually they don't work because it depends on ReadSubtree()).
535 2004-07-26 Atsushi Enomoto <atsushi@ximian.com>
537 * XPathDocument.cs : added missing && not-likely-to-be-removed members.
538 * XPathEditableNavigator.cs : added BuildSubTree().
539 * XPathException.cs : added missing methods. Hide Message in NET_2_0.
541 2004-07-23 Atsushi Enomoto <atsushi@ximian.com>
543 * XPathNodeIterator.cs : implemented 2.0 GetEnumerator().
545 2004-07-21 Atsushi Enomoto <atsushi@ximian.com>
547 * XPathExpression.cs, Expression.cs :
548 Added SetContext(IXmlNamespaceResolver).
549 * NodeChangedEventArgs.cs : Added missing [MonoTODO].
550 * XPathAtomicValue.cs : Halfly implemented.
551 * XPathDocument.cs : Added 2.0 members.
552 * XPathDocumentNodeChangedAction.cs : updated member names.
553 * XPathEditableNavigator.cs : Added missing 2.0 members and MonoTODO.
554 * XPathNavigator.cs : Added missing 2.0 members.
555 Fixed some members as virtual->override.
557 2004-07-13 Atsushi Enomoto <atsushi@ximian.com>
559 * XmlNodeChageType.cs, XmlChangeFilters.cs : fixed enum values.
560 * XPathResultType.cs : marked [MonoFIX] on .Navigator.
562 2004-07-11 Atsushi Enomoto <atsushi@ximian.com>
564 * Expression.cs, Iterator.cs, XPathNavigator.cs :
565 Use IXmlNamespaceResolver for net 2.0. Removed unused code.
566 * XPathEditableNavigator.cs : fixed namespace.
567 * XPathNavigator.cs :
568 Fixed inheritance. Added missing MonoTODO.
569 Removed old .net 1.2 code.
571 2004-06-18 Atsushi Enomoto <atsushi@ximian.com>
573 * DefaultContext.cs : Globalization.
574 * Iterator.cs : In SlashIterator.MoveNext() position might keep 0
575 in case of empty list. Thus extraneous iteration might happened.
576 Removed unused (and clone unsafe) EnumeratorIterator.
578 2004-06-06 Atsushi Enomoto <atsushi@ximian.com>
580 * XPathDocument.s : The previous patch is still incomplete to close.
582 2004-06-05 Atsushi Enomoto <atsushi@ximian.com>
584 * XPathDocument.cs : close self-opened XmlTextReader in .ctor().
586 2004-06-03 Atsushi Enomoto <atsushi@ximian.com>
588 * Expression.cs : LookupNamespace() only allows already-atomized names.
589 * XPathEditableNavigator.cs : removed incorrect set_OuterXml() and
592 2004-05-22 Atsushi Enomoto <atsushi@ximian.com>
594 * DefaultContext.cs : Add XPathNavigator input support for ToBoolean()
596 * Expression.cs : In Equality comparison, evaluate XPathNavigator in
597 the same as well as NodeSet. This fixes bug #59134.
599 2004-05-22 Atsushi Enomoto <atsushi@ximian.com>
601 * XPathAtomicValue.cs : missed NET_2_0.
603 2004-05-22 Atsushi Enomoto <atsushi@ximian.com>
605 * IXPathChangeNavigable.cs,
607 NodeChangedEventArgs.cs,
608 NodeChangedEventHandler.cs,
610 XPathChangeNavigator.cs,
611 XPathDocumentNodeChangedAction.cs,
612 XPathEditableNavigator.cs,
615 XmlNodeChangeType.cs : added NET_2_0 classes.
617 XPathNavigator.cs : updated NET_2_0 members.
619 2004-05-20 Atsushi Enomoto <atsushi@ximian.com>
621 * Expression.cs : We should not catch all kind of exception. Just
622 throwing any kind of exception would be preferable.
623 Added support for XPathNavigator values.
625 2004-05-13 Atsushi Enomoto <atsushi@ximian.com>
627 * DefaultContext.cs : Removed MonoTODO. done.
628 * Expression.cs : handle XPathResultType.Navigator in some places and
629 removed MonoTODO. Mark MonoTODO with explicit comments (though they
630 are mostly pointing out possibilities of optimization).
631 Removed extra check that depended on the old bugs.
632 * XPathResultType.cs : Fixed .Navigator that had the same value as
635 2004-05-12 Atsushi Enomoto <atsushi@ximian.com>
637 * Parser.jay : made class internal.
639 2004-03-16 Atsushi Enomoto <atsushi@ximian.com>
641 * XPathNavigator.cs, Iterator.cs : Considered detached nodes, the
642 result of MoveToParent() should be checked.
644 2004-02-17 Atsushi Enomoto <atsushi@ximian.com>
646 * XPathNavigator.cs : Only child and attribute axes are allowed for
648 * Expression.cs : Added IsPositional property.
649 * DefaultContext.cs : Added some overrides.
651 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
653 * XPathNavigator.cs : no, its still not ok. comment out now.
655 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
657 * Expression.cs : Added EvaluatedNodeType and NeedAbsoluteMatching
658 to reduce extraneous Matches() trial.
659 * Iterator.cs : Removed unused MergedIterator.
660 * XPathNavigator.cs : Optimized Matches() not to evaluate ancestors
661 unnecessarily. (Test with NeedAbsoluteMatching).
663 2004-02-10 Atsushi Enomoto <atsushi@ximian.com>
665 * Iterator.cs : Added overriden Count properties for some iterators
666 (this fixes the half of #50678).
667 Added ListIterator class (which can reduce GetEnumerator()).
668 In some places we can omit clone for Current property, so added
669 some check logic (It has no effect as yet).
670 * Expression.cs, DefaultContext.cs :
671 use ListIterator instead of EnumeratorIterator.
673 2004-02-08 Atsushi Enomoto <atsushi@ximian.com>
675 * DefaultContext.cs, Expression.cs, Iterator.cs :
676 tiny foreach elimination.
678 2004-02-05 Atsushi Enomoto <atsushi@ximian.com>
680 * DefaultContext.cs : trivial processing order fix.
682 2004-01-27 Atsushi Enomoto <atsushi@ximian.com>
684 * DefaultContext.cs : Avoid exception if possible.
685 * Iterator.cs : Fixed PrecedingSiblingIterator.MoveNext(). When the
686 nav was positioned at the first, it incorrectly points itself.
687 Don't add names to name table while it is useless and expensive.
689 2004-01-08 Nick Drochak <ndrochak@ieee.org>
691 * Iterator.cs: Removed unused variable.
693 2003-12-18 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
695 * Parser.jay : now it supresses error output from jay.
696 * DefaultContext.cs : (XPathFunctionSubstring) exclude -Infinity.
697 * Tokenizer.cs : better error message.
698 * XPathDocument.cs : Use XmlValidatingReader to support id() function.
699 (just found MS.NET actually supports it)
701 2003-12-16 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
703 * Iterator.cs : On its iteration, moving Current must not affect to
704 MoveNext(). To assure this, Current must be a clone of navigator.
707 2003-12-07 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
709 * Tokenizer.cs : Removed some TODOs. (trivial ;-)
710 * Iterator.cs : ParensIterator can inherit from BaseIterator.
711 SlashIterator copy .ctor() always failed to clone. This fixes Count.
713 2003-12-03 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
715 * Expression.cs : XPathSorters.Compare() should compare document
716 position. See last sentence of XSLT 1.0 secion 10.
718 2003-12-03 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
720 * DefaultContext.cs : Overrode all functions' ToString().
721 XPathFunctions.ToNumber() trims whitespaces at both side.
722 Fixed NullReferenceException in normalize-space().
723 * Iterator.cs : Fixed AncestorOrSelfIterator.MoveNext() didn't handle
724 attribute or namespace node correctly.
725 SlashIterator.Clone() didn't clone "next node iterator" correctly.
726 EnumeratorIterator.ctor() should raise an error (not at Clone())
727 when the target IEnumerator is not ICloneable.
729 2003-11-28 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
731 * Expression.cs : namespace axis now traversed in reverse order, so it
733 * Iterator.cs : UnionIterator.Clone() was incomplete.
734 NamespaceItarator() should be reverse order (special handling
735 because of XPathNavigator specification).
737 2003-11-24 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
739 * Iterator.cs : PrecedingIterator.MoveNext() now breaks up at Root.
740 * XPathNavigator.cs : ComparePosition() didn't handle attributes
743 2003-11-24 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
745 * Parser.jay, Expression.cs, Iterator.cs :
746 Added ExprParens and ParensIterator classes which is used to handle
747 precedence of parenthesized expressions.
748 (e.g. consider "(preceding::*)[3]" and "preceding::[3]" )
750 * Expression.cs, Iterator.cs :
751 Added RequireSorting property for each Expr and BaseIterator classes.
752 SlashIterator.MoveNext() now considers correct sorting. But
753 considering performance, it separates two logics, sorted and sortless
754 depending on RequireSorting of left iterator and right expression.
757 SimpleIterator.ctor() should consider when nav is null.
758 FollowingIterator.MoveNext() and PrecedingIterator.MoveNext() should
759 not return any nodes.
760 AncestorIterator and AncestorOrSelfIterator copy ctr() should clone
762 AncestorIterator.MoveNext() should skip Root if context node is
764 FollowingIterator.MoveNext() should not handle children of context
766 PrecedingIterator.MoveNext() should skip its ancestors.
767 AxisIterator.ReverseAxis should be dependent on its containing iter.
768 UnionIterator.MoveNext() should consider comparison of nodes in
769 different document. The behavior is implementation dependent.
772 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
774 * Added XPathComparer.cs
775 * DefaultContext.cs : Fixed XPathFunctionId.Evaluate() to iterate base
776 iterator correctly, and sort results.
778 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
780 * DefaultContext.cs : Imcomplete fix ;-)
782 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
784 * DefaultContext.cs : XPathFunctions.ToNumber() should catch overflow.
785 XPathFunctionId.cs : Exposed Id expression.
786 * Expression.cs : Added ExprLiteral.Value, and class ExprParens (it
787 will be used to solve evaluation precedence problem).
789 2003-11-09 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
791 * Iterator.cs : Fixed SlashIterator that might return nodes 1)in
792 inconsistent order, and 2)may return duplicate result nodes.
794 2003-11-06 Ben Maurer <bmaurer@users.sourceforge.net>
796 * Iterator.cs: (AxisIterator.ComparablePosition): Remove. Let
797 it inherit from the base class. This made b[2] evaluated on
798 <a /><b /><c /><a /><b /><c /> return the first b node because
799 in the ChildIterator it was the second node and seemed to satsify
802 2003-11-04 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
804 * Iterator.cs : Added bool ReverseAxis property to identify whether
805 the iterator is in reverse order or not. Added ComparablePosition
806 for correct position comparison for PredicateIterator and reverse-
807 order-axes. Modified AncestorIterator, AncestorOrSelfIterator,
808 PrecedingIterator and PrecedingSiblingIterator to make MoveNext()
809 return their nodes in document order. This fixes bugzilla #39079.
811 2003-10-15 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
813 * Iterator.cs : DescendantIterator and FollowingIterator also should
814 not MoveNext() after they reached to the end.
816 2003-10-13 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
818 * Iterator.cs : Fixed UnionIterator who ignores document order.
819 Fixed SlashIterator whose MoveNext() should finish at its end.
821 2003-09-27 Ben Maurer <bmaurer@users.sourceforge.net>
823 * Iterator.cs, Expression.cs, XPathNavigator.cs: In AxisIterator
824 use NameTable so we dont call strcmp.
826 2003-09-27 Ben Maurer <bmaurer@users.sourceforge.net>
828 * DefaultContext.cs (translate): translate ("abc", "c", "") = "ab"
830 * Iterator.cs, Expression.cs: All axes are
831 SimpleIterators. SimpleIterators are gaurenteed to give the same
832 XPathNavigator in Current. Make AxisIterator take a
833 SimpleIterator, not any old BaseIterator. Will allow us to make
834 NameTable optimizations and avoid quite a few strcmp's.
836 2003-09-24 Ben Maurer <bmaurer@users.sourceforge.net>
838 * Expression.cs: make // work right, must use another slash itr.
840 2003-09-21 Ben Maurer <bmaurer@users.sourceforge.net>
842 * Expression.cs: cant use $$ before assigned.
844 2003-09-21 Ben Maurer <bmaurer@users.sourceforge.net>
846 * Expression.cs, Parser.jay, XPathNavigator.cs: api beautification.
848 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
850 * Expression.cs: num != double.NaN does not work.
852 2003-09-19 Ben Maurer <bmaurer@users.sourceforge.net>
854 * Expression.cs: in NodeTypeTest dont throw an exception if it is
855 an unknown node type (allows for better Pattern debugging).
857 2003-09-17 Ben Maurer <bmaurer@users.sourceforge.net>
859 * DefaultContext.cs: implement sum () and translate ().
861 2003-09-13 Ben Maurer <bmaurer@users.sourceforge.net>
863 * XPathNavigator.cs: Make methods where you pass in the context,
864 so that we dont have to clone expressions so much.
866 2003-09-06 Ben Maurer <bmaurer@users.sourceforge.net>
868 * DefaultContext.cs, Expresssion.cs, Parser.jay: Rewrite so that
869 system functions are actually expressions. Will allow for some
872 2003-08-25 Ben Maurer <bmaurer@users.sourceforge.net>
874 * XPathNavigator.cs: "Smart" behavior in Matches. Nice 8x speed
875 improvement in the method (5ms/call -> .7 ms / call) measured by
876 monodoc's rendering of N:System.
877 * Expression.cs: Utility methods to support above.
879 2003-08-13 Piers Haken <piersh@friskit.com>
882 fix MergedIterator.Clone(), now clones other's iterators
883 fix DescendantIterator.Clone(), now copies depth
884 make iterator cloning constructors more type-specific
886 2003-08-01 Piers Haken <piersh@friskit.com>
888 * Expression.cs: added NodeNamespaceTest
889 * XPathNavigator.cs: implement Select* with namespaces
891 2003-07-31 Ben Maurer <bmaurer@users.sourceforge.net>
893 * Iterator.cs: Allow creation of an EnumeratorIterator with an
896 2003-07-31 Piers Haken <piersh@friskit.com>
899 Nested predicates (uses ExprFilter instead)
901 make grammar look more like w3c spec
903 remove ExprStep, ExprPredicates
904 NodeTest is now a NodeSet
907 PredicateIterator now only takes a single predicate expression
910 simplified SelectTest
914 2003-07-30 Duncan Mak <duncan@ximian.com>
920 2003-07-29 Piers Haken <piersh@friskit.com>
922 * DefaultContext.cs: 'local-name' returns String, not NodeSet!
924 2003-07-29 Piers Haken <piersh@friskit.com>
928 add typesafe Evaluate* methods
930 2003-07-29 Piers Haken <piersh@friskit.com>
932 * DefaultContext.cs: fix 'substring-after'
934 2003-07-29 Piers Haken <piersh@friskit.com>
936 * Iterator.cs: fix PredicateIterator.CurrentPosition bug (it wasn't incrementing)
938 2003-07-29 Ben Maurer <bmaurer@users.sourceforge.net>
940 * Iterator.cs: dont throw exceptions on tostring ()
942 2003-07-28 Piers Haken <piersh@friskit.com>
944 * DefaultContext.cs: better handling of null argument lists
945 * XPathNavigator.cs: implement ComparePosition
947 2003-07-28 Piers Haken <piersh@friskit.com>
949 * Expression.cs: boolean operators: handle comparing .Any better
951 2003-07-28 Piers Haken <piersh@friskit.com>
953 * DefaultContext.cs: count() should return a double
954 * Expression.cs: better support for handling non-double numbers
956 2003-07-28 Piers Haken <piersh@friskit.com>
958 * DefaultContext.cs: better function param matching
960 2003-07-27 Piers Haken <piersh@friskit.com>
964 catch FormatExceptions while parsing numbers
966 2003-07-27 Piers Haken <piersh@friskit.com>
969 fix case sorting order
970 allow EvaluateNumber to take XPathResultType.Any
972 2003-07-27 Piers Haken <piersh@friskit.com>
976 don't pass null to XmlQualifiedName constructor
978 2003-07-27 Piers Haken <piersh@friskit.com>
980 * DefaultContext.cs: allow 'concat' to take arbitrary-typed arguments (spec?)
982 2003-07-27 Piers Haken <piersh@friskit.com>
984 * Expression.cs: allow EvaluateNodeSet to take XPathResultType.Any
986 2003-07-26 Piers Haken <piersh@friskit.com>
988 * Expression.cs: fix function evaluation with ambigous argument types
989 * XPathNavigator.cs: fix silly null reference bug
991 2003-07-26 Piers Haken <piersh@friskit.com>
995 ArrayListIterator->EnumeratorIterator
996 * Expression.cs: add sorting support
998 2003-07-26 Piers Haken <piersh@friskit.com>
1002 move QName parsing into tokenizer
1004 fix evaluating XPathResultType.Any
1005 fix ExprDiv.ToString()
1006 fix NodeTypeTest.ToString() (for namespace axis)
1008 2003-07-25 Piers Haken <piersh@friskit.com>
1010 * Expression.cs: return clone of $var evaluation
1012 2003-07-26 Piers Haken <piersh@friskit.com>
1014 * Iterator.cs: add setter for NamespaceManager
1015 * XPathNavigator.cs: propagate NamespaceManager from context on Evaluate
1016 * Expression.cs: fix func/var exception strings
1018 2003-07-25 Piers Haken <piersh@friskit.com>
1020 * Expression.cs: implement ExprFilter.Evaluate
1022 2003-07-25 Piers Haken <piersh@friskit.com>
1024 * Expression.cs: implement ExprVariable.Evaluate
1026 2003-07-24 Ben Maurer <bmaurer@users.sourceforge.net>
1028 * DefaultContext.cs: implement lang ()
1030 2003-07-24 Piers Haken <piersh@friskit.com>
1034 allow ExprUNION to take non-nodeset (eg, $var) arguments
1036 2003-07-24 Piers Haken <piersh@friskit.com>
1038 * Tokenizer.cs: fix variable references
1041 * XPathNavigator.cs:
1042 use XmlQualifiedName
1044 2003-06-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
1046 * XPathDocument.cs : removed Driver class and restored authors' name
1047 (though it is completely rewrote).
1049 2003-06-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
1051 * XPathDocument.cs : Replaced existing stub class with real
1052 XPathDocument implementation.
1054 2003-04-28 Piers Haken <piersh@friskit.com>
1056 * Parser.jay, Tokenizer.cs: more compliant lexical parsing of ambiguous tokens
1058 2003-03-07 Piers Haken <piersh@friskit.com>
1060 * Tokenizer.cs: allow '.'s in NCNames
1062 2003-03-07 Piers Haken <piersh@friskit.com>
1065 * DefaultContext.cs:
1066 fixed function argument resolution
1068 2003-02-09 Piers Haken <piersh@friskit.com>
1070 * XPathNavigator.cs:
1072 * Expression.cs: fix namespace handling
1074 2003-01-04 Piers Haken <piersh@friskit.com>
1076 * Parser.*: Remove extraneous "using" that was stopping the build. Permanently thisi time ;-)
1078 2003-02-02 Piers Haken <piersh@friskit.com>
1080 * Parser.jay: add token names
1081 * Tokenizer.cs: fix NCName tokenization
1083 2003-01-02 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
1085 * Tokenizer.cs : Fixed ParseIdentifier to allow digits.
1086 (It should be a temporary fix.)
1088 2002-09-22 Nick Drochak <ndrochak@gol.com>
1090 * Parser.cs: Remove extraneous "using" that was stopping the build.
1092 2002-09-21 Piers Haken <piersh@friskit.com>
1094 * XPathException: implementation
1099 * XPathNavigator.jay:
1102 2002-09-13 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1104 * Parser.cs: commented out non-existent namespace (it compiles fine
1105 with mcs because of a bug that is already on bugzilla).
1107 2002-09-12 Piers Haken <piersh@friskit.com>
1109 * Tokenizer.cs: fix parsing numbers that start with '.'
1110 * DefaultContext.cs: use MS-compatible formatting of doubles
1112 2002-09-12 Piers Haken <piersh@friskit.com>
1114 * Iterator.cs: added NullIterator to handle unspecified contexts
1115 * XPathNavigator.cs: use NullIterator insted of SelfIterator when context is unspecified.
1116 * XPathNodeIterator.cs: change default _count to -1 to prevent recalculations for NullIterators
1118 2002-09-12 Piers Haken <piersh@friskit.com>
1120 * Expression.cs, Parser.jay: allow ExprSLASH to take a generic expression as its left argument.
1121 * Iterator.cs: fix SlashIterator.Clone() when _iterRight is null.
1122 * DefaultContext.cs: fix id() return type.
1124 2002-09-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1126 * DefaultContext.cs: fixed bug #28840.
1127 * Expression.cs: added FIXME.
1129 2002-08-17 Jason Diamond <jason@injektilo.org>
1131 * XPathNavigator.cs: Fixed matching on patterns that look like
1132 absolute XPath expressions.
1134 2002-08-17 Jason Diamond <jason@injektilo.org>
1136 * XPathNavigator.cs: Added naive (but working) implementation of
1139 2002-07-31 Piers Haken <piersh@friskit.com>
1141 * XPathDocument.cs: simple, XmlDocument-based implementation
1143 2002-07-25 Piers Haken <piersh@friskit.com>
1145 * DefaultContext.cs: implement XPathFunctionName 'name()' function.
1147 2002-07-17 Piers Haken <piersh@friskit.com>
1149 * DefaultContext.cs: implement 'string-length()', 'normalize-space()'
1150 * Parser.jay: remove redundant production
1151 * Expression.cs: add switches for debugging under VS.NET
1153 2002-07-17 Piers Haken <piersh@friskit.com>
1155 * Expression.cs: implement nodeset/nodeset comparisons (non-optimal)
1157 2002-07-15 Piers Haken <piersh@friskit.com>
1160 - rename UnionIterator to MergedIterator,
1161 - create new UnionIterator to implment uniqueness for '|' operator
1162 - fix position bug in ArrayListIterator.Clone()
1163 * Expression.cs: use new UnionIterator constructor syntax
1165 2002-07-12 Piers Haken <piersh@friskit.com>
1167 * Iterator.cs: PredicateIterator: handle numeric predicates
1168 * Parser.jay: add some debugging support: yyparseDebug
1169 * Tokenizer.cs: cleanup, include '-' chars in identifier tokens
1171 2002-06-29 Piers Haken <piersh@friskit.com>
1175 - NodeTest uses XPathResultType instead of internal NodeTestTypes enum
1176 - remove NodeTestTypes enum
1177 - remove NodeTestTypeAny (functionality provided by base now)
1178 - fix ExprStep to handle wildcard QNames
1180 - moved to Mono.Xml.XPath namespace
1181 - use XPathResultType
1182 - handle wildcard QNames
1184 * Tokenizer.cs: moved to Mono.Xml.XPath namespace
1186 * XPathNavigator.cs: implement
1192 * XPathResultType.cs: fix enum values
1194 2002-06-24 Jason Diamond <jason@injektilo.org>
1196 * XPathScanner.cs: Removed.
1198 2002-06-24 Dick Porter <dick@ximian.com>
1200 * XmlCaseOrder.cs: Fix namespace
1202 2002-06-23 Piers Haken <piersh@friskit.com>
1204 * DefaultContext.cs: implemented XPathFUnctionId
1205 * Iterator.cs: new ArrayListIterator for id() support
1207 2002-06-23 Piers Haken <piersh@friskit.com>
1209 * XPathNavigator.cs: implement:
1215 - some forwarding methods
1217 * XPathNodeIterator: implement caching Count
1219 * Tokenizer.cs: new XPath tokenizer
1220 * Parser.jay: new XPath grammar
1221 * Parser.cs: new precompiled XPath grammar
1222 * Expression.cs: new XPath expression objects
1223 * Iterator.cs: new XPath result/context objects
1224 * DefaultContext.cs: new XPath function binding context
1226 2002-05-08 Tim Coleman <tim@timcoleman.com>
1228 * XPathException.cs: New stub files added.
1230 2002-04-12 Duncan Mak <duncan@ximian.com>
1232 * XmlCaseOrder.cs: Moved to here from System.Xml.
1234 2002-03-26 Jason Diamond <jason@injektilo.org>
1236 * XPathScanner.cs: Now handles name tests with wildacards. Abbreviated
1237 steps. Both absolution and relative abbreviated location paths.
1239 2002-03-25 Jason Diamond <jason@injektilo.org>
1241 * XPathScanner.cs: Added new file. This class is supposed to be internal
1242 but that would make it impossible to test.
1244 2002-03-08 Duncan Mak <duncan@ximian.com>
1246 * XPathNamespaceScope.cs:
1248 * XPathResultType.cs:
1250 * XmlSortOrder.cs: Used EnumCheck and realigned elements to be compatible with MS
1251 implementation. XPathResultType is interesting as EnumCheck does
1252 not show the Navigator element, but shows the String element twice.
1254 2002-03-08 Jason Diamond <jason@injektilo.org>
1256 * XmlDataType.cs, XmlSortOrder.cs, XPathNodeType.cs: Added files.
1258 2002-03-06 Jason Diamond <jason@injektilo.org>
1260 * ChangeLog: Added to this directory.
1262 * XPathExpression.cs, XPathNamespaceScope.cs, XPathNodeIterator.cs,
1263 XPathResultType.cs: New files.
1265 * XPathNavigator.cs: Stubbed out all properties and methods.