1 2009-11-17 Atsushi Enomoto <atsushi@ximian.com>
3 * XPathEditableDocument.cs : WriteAttributeString() is allowed on
4 an appended child on .NET, though IMHO incorrectly.
7 2009-05-15 Atsushi Enomoto <atsushi@ximian.com>
9 * XPathNavigatorReader.cs : LookupNamespace() in XmlReader from
10 ReadSubtree() should work correctly on text nodes.
12 2008-09-10 Atsushi Enomoto <atsushi@ximian,com>
14 * XPathEditableDocument.cs : added some overrides.
16 2008-06-04 Atsushi Enomoto <atsushi@ximian.com>
18 * DTMXPathDocumentBuilder2.cs : fixed bug #378239.cs. Merge
19 sequential text nodes in correct way, say, whitespace entities
20 inside text should be merged (while they should be discarded around
23 2008-04-02 Atsushi Enomoto <atsushi@ximian.com>
25 * XPathEditableDocument.cs : it should not expect ParentNode for
26 OwnerElement. Fixed bug #376210.
28 2008-03-17 Atsushi Enomoto <atsushi@ximian.com>
30 * DTMXPathDocumentBuilder2.cs : allow document fragment as XmlReader
31 input. Fixed bug #324606.
33 2007-07-02 Atsushi Enomoto <atsushi@ximian.com>
35 * DTMXPathDocumentBuilder2.cs : do not bork at non-document element
36 in XmlReader. Fixed bug #81932.
38 2007-02-01 Atsushi Enomoto <atsushi@ximian.com>
40 * DTMXPathDocumentWriter2.cs : supply prefix when it was not passed.
42 2007-01-31 Atsushi Enomoto <atsushi@ximian.com>
44 * DTMXPathNavigator2.cs : cosmetic performance improvement.
46 2007-01-05 Atsushi Enomoto <atsushi@ximian.com>
48 * DTMXPathDocumentBuilder2.cs : fixed incorrect namespace node links
49 which happened to following siblings of a node with namespaces.
51 2006-12-05 Atsushi Enomoto <atsushi@ximian.com>
53 * XPathEditableDocument.cs : those writers should lookup prefix when
54 WriteStartElement/WriteStartAttribute are passed null prefix.
55 Removed nodeStack in XmlDocumentInsertionWriter, since nodes are
56 always added to current node immediately.
58 2006-11-10 Atsushi Enomoto <atsushi@ximian.com>
60 * XPathNavigatorReader.cs : removed node type restriction on
61 initialization. Fixed bug #79874, when tied to XPathNavigator fix.
63 2006-10-11 Atsushi Enomoto <atsushi@ximian.com>
65 * XPathEditableDocument.cs : (XmlDocumentEditableNavigator)
66 implement CanEdit to return true.
68 2006-09-11 Atsushi Enomoto <atsushi@ximian.com>
70 * XPathEditableDocument.cs : DocumentFragment should also be allowed
73 2006-09-08 Atsushi Enomoto <atsushi@ximian.com>
75 * DTMXPathDocumentWriter2.cs : fill String.Empty for null ns in
76 WriteStartElement() and WriteStartAttribute().
78 2006-09-01 Atsushi Enomoto <atsushi@ximian.com>
80 * XPathNavigatorReader.cs : MoveToFirstAttribute() should return
81 true when current node is an attribute (including namespace node).
83 2006-08-28 Atsushi Enomoto <atsushi@ximian.com>
85 * DTMXPathDocumentWriter2.cs : use String.Empty instead of null for
86 localName for those nodes which does not have a name.
88 2006-04-10 Atsushi Enomoto <atsushi@ximian.com>
90 * XPathNavigatorReader.cs : Read() did not compute Depth correctly.
93 2006-02-21 Atsushi Enomoto <atsushi@ximian.com>
95 * DTMXPathNavigator2.cs : removed valueBuilder field (create
96 StringBuilder dynamically).
98 2006-02-16 Atsushi Enomoto <atsushi@ximian.com>
100 * DTMXPathDocument2.cs, DTMXPathNavigator2.cs :
101 Do not store mutable XPathDocument fields in every navigators.
102 It saves memory a lot.
104 2005-12-14 Atsushi Enomoto <atsushi@ximian.com>
106 * XPathNavigatorReader.cs : oh, so it used to compile under 1.x.
108 2005-12-14 Atsushi Enomoto <atsushi@ximian.com>
110 * XPathNavigatorReader.cs : several fixes.
111 - Unless ReadState is Interactive, all name stuff should return "".
112 - Refactored Read() to work fine when input navigator is Root.
113 - Fixed all MoveTo*Attribute() methods match with other XmlReaders.
114 - Namespace nodes were not handled fine in MoveTo*Attribute().
116 2005-12-14 Atsushi Enomoto <atsushi@ximian.com>
118 * XPathEditableDocument.cs : added UnderlyingObject.
120 2005-12-14 Atsushi Enomoto <atsushi@ximian.com>
122 * XPathEditableDocument.cs : added 2.0 SchemaInfo.
124 2005-12-13 Atsushi Enomoto <atsushi@ximian.com>
126 * XPathEditableDocument.cs : implement ReplaceSelf() here.
128 2005-12-13 Atsushi Enomoto <atsushi@ximian.com>
130 * XPathEditableDocument.cs :
131 - Now it does not append "written" nodes until Close() is invoked.
132 - Use XmlDocumentFragment to store incomplete tree fragment.
133 - Implemented DeleteRange() and ReplaceRange().
134 - Added "Closed" event for ReplaceRange() to "not remove until
137 2005-12-13 Atsushi Enomoto <atsushi@ximian.com>
139 * XPathEditableDocument.cs :
140 - Removed almost all redundant code in XPathEditableDocument,
141 which is based on .net 1.2 XPathDocument functionality.
142 - It was always doing AppendChild even if the operation is
143 InsertBefore or InsertAfter.
145 2005-12-13 Atsushi Enomoto <atsushi@ximian.com>
147 * XPathEditableDocument.cs :
148 XmlDocumentInsertionWriter.WriteFullEndElement() should set IsEmpty
149 of the element before pop.
151 2005-12-08 Atsushi Enomoto <atsushi@ximian.com>
153 * XPathDocument2.cs, XPathDocument2Editable.cs,
154 XPathDocument2Navigator.cs : garbage cleanup.
156 2005-08-05 Atsushi Enomoto <atsushi@ximian.com>
158 * Pattern.cs, IdPattern.cs, LocationPathPattern.cs, UnionPattern.cs :
159 added bool EvaluatedNodeType property (used in XslKeyTable).
161 2005-05-05 Atsushi Enomoto <atsushi@ximian.com>
163 * XPathEditableDocument.cs : sync with updated 2.0 API.
165 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
167 * DTMXPathDocumentWriter2.cs : use index for string pool.
169 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
171 * IdPattern.cs, LocationPathPattern.cs :
172 Use XsltCompiledContext.GetNavCache() that returns reusable
173 navigator cache for each pattern, to avoid Clone() and not to leave
174 reference to already-done instance navigator.
176 2004-03-22 Atsushi Enomoto <atsushi@ximian.com>
178 * Pattern.cs : Pattern.Compile() now uses XSLT pattern parser instead
180 * KeyPattern.cs : Matches() now just delegates to XsltKey.MatchesKey().
182 2004-03-22 Atsushi Enomoto <atsushi@ximian.com>
184 * DTMXPathDocumentBuilder.cs,
185 DTMXPathDocumentWriter.cs,
186 DTMXPathNavigator.cs,
187 DTMXPathNode.cs : updated to be equivalent to DTMXPathNavigator2.
188 * DTMXPathDocumentBuilder2.cs :
189 String pool is now under index based management. For nonAtomicIndex
190 string, don't try all the entries the pool holds. It causes
191 significant performance loss for large documents.
192 * DTMXPathDocument.cs,
193 DTMXPathDocument2.cs : removed unused fields (warning elimination).
195 2004-03-16 Atsushi Enomoto <atsushi@ximian.com>
197 * Pattern.cs : fixed incorrect optimization.
199 2004-03-15 Atsushi Enomoto <atsushi@ximian.com>
201 * DTMXPathDocumentBuilder2.cs : skip only Read() internally called
202 xmlReader.Read(). Simplify loop a bit.
204 2004-03-15 Atsushi Enomoto <atsushi@ximian.com>
206 * DTMXPathDocumentWriter2.cs : Eliminated Depth as well as -builder.
207 * DTMXPathNode2.cs, DTMXPathDocumentBuilder2.cs :
208 Eliminated Depth at all.
210 2004-03-15 Atsushi Enomoto <atsushi@ximian.com>
212 * DTMXPathDocumentBuilder2.cs : Eliminating Depth. Store parent index
213 stack instead of depending on Depth.
214 Just use hasAttributes and hasLocalNs instead of indices.
215 * DTMXPathNavigator2.cs : (get_Value) Check empty element earlier.
217 2004-03-14 Atsushi Enomoto <atsushi@ximian.com>
219 * DTMXPathNavigator2.cs : Eliminating Depth. (To completely eliminate,
220 we also have to eliminate them from builder and writer).
222 2004-03-07 Atsushi Enomoto <atsushi@ximian.com>
224 * DTMXPathDocumentBuilder2.cs : When there was an empty element and
225 namespace declarations, the next element namespace index was
226 incorrectly pointing to that of empty element.
228 2004-02-21 Atsushi Enomoto <atsushi@ximian.com>
230 * DTMXPathDocumentBuilder2.cs : whitespace node values were not added
233 2004-02-14 Atsushi Enomoto <atsushi@ximian.com>
235 * DTMXPathDocumentBuilder2.cs : in some cases, significant whitespace
236 is incorrectly regarded as Text. Patch by Andrew Skiba.
238 2005-02-09 Atsushi Enomoto <atsushi@ximian.com>
240 * LocationPathPattern.cs : Wildcard name is held as "", so we should
241 also check "" for wildcard. Patch by Andrew Skiba.
243 2005-01-25 Atsushi Enomoto <atsushi@ximian.com>
245 * XPathEditableDocument.cs : eliminating "throw new Exception".
247 2004-12-17 Atsushi Enomoto <atsushi@ximian.com>
249 * XPathNavigatorReader.cs : added CanReadBinaryContent and
250 CanReadValueChunk. Call Binary.Reset() to enable them.
252 2004-12-16 Atsushi Enomoto <atsushi@ximian.com>
254 * XPathNavigatorReader.cs : added SchemaInfo.
256 2004-12-04 Atsushi Enomoto <atsushi@ximian.com>
258 * DTMXPathNavigator.cs : added more constant fields to utility class.
260 2004-12-04 Atsushi Enomoto <atsushi@ximian.com>
262 * DTMXPathDocument2.cs,
263 DTMXPathNavigator2.cs,
264 DTMXPathDocumentBuilder2.cs,
265 DTMXPathDocumentWriter2.cs,
266 DTMXPathNode2.cs : added new implementation that uses string pool
267 and eliminates string field inside struct (IF we use struct).
269 2004-12-03 Atsushi Enomoto <atsushi@ximian.com>
271 * DTMXPathDocumentWriter.cs : Fix for DTM_CLASS switch that does not
272 allow unadjusted arrays.
274 2004-11-30 Atsushi Enomoto <atsushi@ximian.com>
276 * DTMXPathDocumentWriter.cs,
277 DTMXPathDocumentBuilder.cs,
278 DTMXPathNode.cs : SchemaType on attribute is not used.
280 2004-11-26 Atsushi Enomoto <atsushi@ximian.com>
282 * XPathNavigatorReader.cs,
283 KeyPattern.cs : warning removal
285 2004-11-19 Atsushi Enomoto <atsushi@ximian.com>
287 * XPathNavigatorReader.cs : changed to be compatible with that is
288 contained in Mono.Xml.Ext.dll.
290 2004-11-14 Atsushi Enomoto <atsushi@ximian.com>
292 * XPathEditableDocument.cs : WriteStartElement() should not expect
293 that there is an OwnerDocument (current node might be document).
295 2004-10-29 Atsushi Enomoto <atsushi@ximian.com>
297 * XPathEditableDocument.cs : internalize classes.
299 2004-10-28 Atsushi Enomoto <atsushi@ximian.com>
301 * XPathEditableDocument.cs : fixed wrong recursion problem.
303 2004-10-22 Atsushi Enomoto <atsushi@ximian.com>
305 * XPathEditableDocument.cs :
306 Now it implements updated version of .NET 2.0.
307 .ctor() should accept XmlNode, instead of XmlDocument.
309 2004-10-09 Atsushi Enomoto <atsushi@ximian.com>
311 * XPathNavigatorReader.cs : should be NET_2_0.
313 2004-10-08 Atsushi Enomoto <atsushi@ximian.com>
315 * XPathNavigatorReader.cs : IsDefault considers IXmlSchemaInfo
316 (it is anyways not implemented as yet.)
318 2004-10-05 Atsushi Enomoto <atsushi@ximian.com>
320 * XPathNavigatorReader.cs : Actually all other kind of nodes than
321 Element and Root must be treated as "start node only" as well as
322 attributes and namespaces.
324 2004-10-05 Atsushi Enomoto <atsushi@ximian.com>
326 * XPathDocument2Editable.cs : for WriteAttributes(), use
327 CreateAttributesWriter() that creates attribute tree XmlWriter.
328 * XPathNavigatorReader.cs : the reader was missing attributes when
329 it is created with an element node that has attriibutes.
331 2004-10-04 Atsushi Enomoto <atsushi@ximian.com>
333 * XPathNavigatorReader.cs : It can reject attribute and namespace
334 nodes as its input (It is used only for WriteNode(), InsertBefore()
335 and so on, which are not intended to be used with attribute nodes).
336 On Initial state, it was Element that should check IsEmptyElement,
337 and Root should just go to the first child node.
339 2004-10-04 Atsushi Enomoto <atsushi@ximian.com>
341 * XPathNavigatorReader.cs : When the reader's root node is not of type
342 Root, it incorrectly skipped the node itself.
344 2004-09-06 Atsushi Enomoto <atsushi@ximian.com>
346 * XPathDocument2.cs, XPathDocument2Editable.cs:
347 Redesigned API. Child node list should not be required (it also
348 harms performance). Reduced extraneous methods for XPathNavigator
349 / XPathEditableNavigator implementation support.
350 * XPathEditableDocument.cs : event registration was missing (due to
351 XPathDocument changes, it might not be required anymore though).
352 * XPathNavigatorReader.cs :
353 Namespace nodes were not handled correctly.
354 EOF handling was incorrect.
355 Reduced extraneous clone from MoveTo/GetAttribute(int) and
357 2004-09-01 Atsushi Enomoto <atsushi@ximian.com>
359 * XPathNavigatorReader.cs : on GetAttributeNavigator(int), namespace
360 node could be this XmlReader's attribute node.
362 2004-08-02 Atsushi Enomoto <atsushi@ximian.com>
364 * XPathDocument2.cs : new IXPathNavigable implementation
365 XPathDocument2Navigator.cs : new XPathNavigator implementation
366 XPathDocument2Editable.cs : new XPathEditableNavigator implementation
368 To use them in XPathDocument, set environment MONO_XPATH_DOCUMENT_2=yes
369 (It is still too unstable to pass all nunit tests and standalone XSLT
372 2004-07-30 Atsushi Enomoto <atsushi@ximian.com>
374 * DTMXPathNavigator.cs :
375 Fixed IsSamePosition(). currentAttr is not always the same as
376 that of other when current is not attribute. Ditto for currentNS
377 (when current is not namespace).
378 * XPathNavigatorReader.cs : Fixed NodeType - 1) When attribute value is
379 being consumed, then node type should be Text, and 2) Root node is
380 usually mapped to Document, but XmlReader never returns Document,
381 just None (both on Initial state and EndOfFile state).
383 2004-07-30 Atsushi Enomoto <atsushi@ximian.com>
385 * XPathNavigatorReader.cs : fixed GetAttributeNavigator() that
386 incorrectly used MoveToNextAttribute().
388 2004-07-29 Atsushi Enomoto <atsushi@ximian.com>
390 * XPathNavigatorReader.cs :
391 - it is used only in 2.0 classes.
392 - It now behaves as a fragment reader.
393 - Depth is optimized not to call Clone() and MoveToParent().
394 - AttributeCount could be counted only once in Read().
395 - ReadState transition is adjusted to be same as other XmlReaders.
396 - name strings now return "" on initial state.
398 2004-07-28 Atsushi Enomoto <atsushi@ximian.com>
400 * Added XPathEditableDocument.cs.
401 - XPathEditableDocument provides IXPathEditable.
402 - XmlDocumentEditableNavigator implements XPathEditableNavigator
403 that supports CreateAttributes(), AppendChild() and so on.
405 It is nothing more than hack, and as an XPathEditableNavigator
406 provider for XPathDocument, it will be replaced by something.
408 2004-07-13 Atsushi Enomoto <atsushi@ximian.com>
410 * Added XPathNavigatorReader.cs.
412 2004-06-06 Atsushi Enomoto <atsushi@ximian.com>
414 * DTMXPathDocumentBuilder.cs : Close XmlTextReader strictly. It might
415 raise an error after opening stream and before try-catch.
417 2004-05-20 Atsushi Enomoto <atsushi@ximian.com>
419 * Pattern.cs : don't throw System.Exception. Delegate error handling to
420 the only one caller CompilePattern().
422 2004-05-12 Atsushi Enomoto <atsushi@ximian.com>
424 * Pattern.cs : made class internal.
426 2004-02-26 Atsushi Enomoto <atsushi@ximian.com>
428 * DTMXPathDocumentBuilder.cs : Close XmlReader when we passed uri.
430 2004-02-18 Atsushi Enomoto <atsushi@ximian.com>
432 * LocationPathPattern.cs : Implemented easy XPathNavigator cache on
433 predicate evaluation in Matches().
435 2004-02-17 Atsushi Enomoto <atsushi@ximian.com>
437 * KeyPattern.cs, Pattern.cs : removed using decls.
439 2004-02-17 Atsushi Enomoto <atsushi@ximian.com>
441 * LocationPathPattern.cs : Optimized Matches(). For non-positional
442 patterns, it never iterates predicate, just evaluate boolean.
444 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
446 * DTMXPathDocument.cs,
447 DTMXPathDocumentBuilder.cs,
448 DTMXPathDocumentWriter.cs,
449 DTMXPathNavigator.cs,
451 Made classes internal by default (still publicly available with
452 OUTSIDE_SYSTEM_XML switch). Removed unused "position" field.
453 Optimized DTMXPathNavigator.Value a bit.
454 * LocationPathPattern.cs : Modified some fields to private.
456 2004-02-13 Atsushi Enomoto <atsushi@ximian.com>
458 * Added DTMXPathDocumentWriter.cs. It supports DTMXPathNavigator as
459 the resulting document tree.
460 * DTMXPathDocumentBuilder.cs : Code refactory (to get closer to dtm
461 writer and commonify tasks they both should do). Reduced initial
462 array size (400 to 200, for attribute 800 to 200), and extending
463 size from 2x to 4x (to reduce _times_ of allication copy).
464 * DTMXPathNode.cs : (and all above) added experimental "DTM_CLASS"
465 switch, which changes nodes from struct to class. (It will reduce
466 memory consumption by 2/3, but will also reduce speed by 2/3.)
468 2004-01-27 Atsushi Enomoto <atsushi@ximian.com>
470 * DTMXPathDocumentBuilder.cs : Namespace nodes are incorrectly created.
471 This fix should make XPathDocument compatible with XmlDocument.
473 2004-01-26 Atsushi Enomoto <atsushi@ximian.com>
475 * DTMXPathDocument.cs : CreateNavigator() should return the first root
477 * DTMXPathNavigator.cs : ComparePosition() incorrectly compared
478 attributes and namespaces orders. Implemented IsSamePosition() more
479 efficient. MoveToFirstNamespace() should return false when the
480 current node is either attribute or namespace. Fixed IsDescendant()
481 which looks resulted in incorrect behavior.
483 2003-12-18 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
485 * DTMXPathDocumentBuilder.cs : Removed supportsID argument and always
486 assumes to support IDs when specified XmlValidatingReader.
487 Quick fix for NullReferenceException when type was null.
489 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
491 * KeyPattern.cs : Matches() should iterate candidate keys to the end.
493 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
496 KeyPattern.cs : Implemented Matches(), overrode DefaultPriority,
497 modified inheritance.
498 * Pattern.cs : Added id and key pattern support.
500 2003-11-02 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
502 * DTMXPathNavigator.cs : Fixed MoveToNamespace() that might result in
505 2003-10-04 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
507 * DTMXPathDocumentBuilder.cs : Bugfix for whitespace handling.
509 2003-10-01 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
511 * Added DTMXPathNode.cs.
512 * Fundamental changes in whole DTM stuff. Node information is now array
513 of "node struct" instead of individual arrays.
515 2003-09-21 Ben Maurer <bmaurer@users.sourceforge.net>
517 * Pattern.cs: save the parser (will reduce memory allocation when
518 Jackson's jay patch is committed).
520 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
522 * Pattern.cs: Typo, when i got //a i was giving off /
523 * LocationPathPattern.cs: Append to the tail, not head.
525 2003-09-14 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
527 * DTMXPathNavigator.cs,
529 DTMXPathDocumentBuilder.cs : Added IXmlLineInfo support. Removed
530 node's extraneous schemaType. Some code reformatting.
532 2003-09-13 Ben Maurer <bmaurer@users.sourceforge.net>
534 * Pattern.cs: Support static context.
536 2003-08-25 Ben Maurer <bmaurer@users.sourceforge.net>
538 * DTMXPathNavigator.cs: Allocate valueBuilder on first use.
540 2003-08-14 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
542 * DTMXPathDocument.cs,
543 DTMXPathDocumentBuilder.cs,
544 DTMXPathNavigator.cs :
545 - Implemented ID support using XmlValidatingReader.
546 - Prefix should be String.Empty even if XmlReader.Prefix is null.
548 2003-07-23 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
550 * DTMXPathDocumentBuilder.cs :
551 Fixed Read() that sets nodes' parent incorrectly.
553 2003-07-17 Peter Williams <peter@newton.cx>
555 * DTMXPathDocumentBuilder.cs: csc.exe is more stringent about namespaces
556 than mcs. We need to disambiguate System.Math from Mono.Math here.
558 2003-06-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
561 * Added ChangeLog, DTMXPathDocument.cs, DTMXPathDocumentBuilder.cs
562 and DTMXPathNavigator.cs.