1 2007-07-02 Atsushi Enomoto <atsushi@ximian.com>
3 * DTMXPathDocumentBuilder2.cs : do not bork at non-document element
4 in XmlReader. Fixed bug #81932.
6 2007-02-01 Atsushi Enomoto <atsushi@ximian.com>
8 * DTMXPathDocumentWriter2.cs : supply prefix when it was not passed.
10 2007-01-31 Atsushi Enomoto <atsushi@ximian.com>
12 * DTMXPathNavigator2.cs : cosmetic performance improvement.
14 2007-01-05 Atsushi Enomoto <atsushi@ximian.com>
16 * DTMXPathDocumentBuilder2.cs : fixed incorrect namespace node links
17 which happened to following siblings of a node with namespaces.
19 2006-12-05 Atsushi Enomoto <atsushi@ximian.com>
21 * XPathEditableDocument.cs : those writers should lookup prefix when
22 WriteStartElement/WriteStartAttribute are passed null prefix.
23 Removed nodeStack in XmlDocumentInsertionWriter, since nodes are
24 always added to current node immediately.
26 2006-11-10 Atsushi Enomoto <atsushi@ximian.com>
28 * XPathNavigatorReader.cs : removed node type restriction on
29 initialization. Fixed bug #79874, when tied to XPathNavigator fix.
31 2006-10-11 Atsushi Enomoto <atsushi@ximian.com>
33 * XPathEditableDocument.cs : (XmlDocumentEditableNavigator)
34 implement CanEdit to return true.
36 2006-09-11 Atsushi Enomoto <atsushi@ximian.com>
38 * XPathEditableDocument.cs : DocumentFragment should also be allowed
41 2006-09-08 Atsushi Enomoto <atsushi@ximian.com>
43 * DTMXPathDocumentWriter2.cs : fill String.Empty for null ns in
44 WriteStartElement() and WriteStartAttribute().
46 2006-09-01 Atsushi Enomoto <atsushi@ximian.com>
48 * XPathNavigatorReader.cs : MoveToFirstAttribute() should return
49 true when current node is an attribute (including namespace node).
51 2006-08-28 Atsushi Enomoto <atsushi@ximian.com>
53 * DTMXPathDocumentWriter2.cs : use String.Empty instead of null for
54 localName for those nodes which does not have a name.
56 2006-04-10 Atsushi Enomoto <atsushi@ximian.com>
58 * XPathNavigatorReader.cs : Read() did not compute Depth correctly.
61 2006-02-21 Atsushi Enomoto <atsushi@ximian.com>
63 * DTMXPathNavigator2.cs : removed valueBuilder field (create
64 StringBuilder dynamically).
66 2006-02-16 Atsushi Enomoto <atsushi@ximian.com>
68 * DTMXPathDocument2.cs, DTMXPathNavigator2.cs :
69 Do not store mutable XPathDocument fields in every navigators.
70 It saves memory a lot.
72 2005-12-14 Atsushi Enomoto <atsushi@ximian.com>
74 * XPathNavigatorReader.cs : oh, so it used to compile under 1.x.
76 2005-12-14 Atsushi Enomoto <atsushi@ximian.com>
78 * XPathNavigatorReader.cs : several fixes.
79 - Unless ReadState is Interactive, all name stuff should return "".
80 - Refactored Read() to work fine when input navigator is Root.
81 - Fixed all MoveTo*Attribute() methods match with other XmlReaders.
82 - Namespace nodes were not handled fine in MoveTo*Attribute().
84 2005-12-14 Atsushi Enomoto <atsushi@ximian.com>
86 * XPathEditableDocument.cs : added UnderlyingObject.
88 2005-12-14 Atsushi Enomoto <atsushi@ximian.com>
90 * XPathEditableDocument.cs : added 2.0 SchemaInfo.
92 2005-12-13 Atsushi Enomoto <atsushi@ximian.com>
94 * XPathEditableDocument.cs : implement ReplaceSelf() here.
96 2005-12-13 Atsushi Enomoto <atsushi@ximian.com>
98 * XPathEditableDocument.cs :
99 - Now it does not append "written" nodes until Close() is invoked.
100 - Use XmlDocumentFragment to store incomplete tree fragment.
101 - Implemented DeleteRange() and ReplaceRange().
102 - Added "Closed" event for ReplaceRange() to "not remove until
105 2005-12-13 Atsushi Enomoto <atsushi@ximian.com>
107 * XPathEditableDocument.cs :
108 - Removed almost all redundant code in XPathEditableDocument,
109 which is based on .net 1.2 XPathDocument functionality.
110 - It was always doing AppendChild even if the operation is
111 InsertBefore or InsertAfter.
113 2005-12-13 Atsushi Enomoto <atsushi@ximian.com>
115 * XPathEditableDocument.cs :
116 XmlDocumentInsertionWriter.WriteFullEndElement() should set IsEmpty
117 of the element before pop.
119 2005-12-08 Atsushi Enomoto <atsushi@ximian.com>
121 * XPathDocument2.cs, XPathDocument2Editable.cs,
122 XPathDocument2Navigator.cs : garbage cleanup.
124 2005-08-05 Atsushi Enomoto <atsushi@ximian.com>
126 * Pattern.cs, IdPattern.cs, LocationPathPattern.cs, UnionPattern.cs :
127 added bool EvaluatedNodeType property (used in XslKeyTable).
129 2005-05-05 Atsushi Enomoto <atsushi@ximian.com>
131 * XPathEditableDocument.cs : sync with updated 2.0 API.
133 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
135 * DTMXPathDocumentWriter2.cs : use index for string pool.
137 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
139 * IdPattern.cs, LocationPathPattern.cs :
140 Use XsltCompiledContext.GetNavCache() that returns reusable
141 navigator cache for each pattern, to avoid Clone() and not to leave
142 reference to already-done instance navigator.
144 2004-03-22 Atsushi Enomoto <atsushi@ximian.com>
146 * Pattern.cs : Pattern.Compile() now uses XSLT pattern parser instead
148 * KeyPattern.cs : Matches() now just delegates to XsltKey.MatchesKey().
150 2004-03-22 Atsushi Enomoto <atsushi@ximian.com>
152 * DTMXPathDocumentBuilder.cs,
153 DTMXPathDocumentWriter.cs,
154 DTMXPathNavigator.cs,
155 DTMXPathNode.cs : updated to be equivalent to DTMXPathNavigator2.
156 * DTMXPathDocumentBuilder2.cs :
157 String pool is now under index based management. For nonAtomicIndex
158 string, don't try all the entries the pool holds. It causes
159 significant performance loss for large documents.
160 * DTMXPathDocument.cs,
161 DTMXPathDocument2.cs : removed unused fields (warning elimination).
163 2004-03-16 Atsushi Enomoto <atsushi@ximian.com>
165 * Pattern.cs : fixed incorrect optimization.
167 2004-03-15 Atsushi Enomoto <atsushi@ximian.com>
169 * DTMXPathDocumentBuilder2.cs : skip only Read() internally called
170 xmlReader.Read(). Simplify loop a bit.
172 2004-03-15 Atsushi Enomoto <atsushi@ximian.com>
174 * DTMXPathDocumentWriter2.cs : Eliminated Depth as well as -builder.
175 * DTMXPathNode2.cs, DTMXPathDocumentBuilder2.cs :
176 Eliminated Depth at all.
178 2004-03-15 Atsushi Enomoto <atsushi@ximian.com>
180 * DTMXPathDocumentBuilder2.cs : Eliminating Depth. Store parent index
181 stack instead of depending on Depth.
182 Just use hasAttributes and hasLocalNs instead of indices.
183 * DTMXPathNavigator2.cs : (get_Value) Check empty element earlier.
185 2004-03-14 Atsushi Enomoto <atsushi@ximian.com>
187 * DTMXPathNavigator2.cs : Eliminating Depth. (To completely eliminate,
188 we also have to eliminate them from builder and writer).
190 2004-03-07 Atsushi Enomoto <atsushi@ximian.com>
192 * DTMXPathDocumentBuilder2.cs : When there was an empty element and
193 namespace declarations, the next element namespace index was
194 incorrectly pointing to that of empty element.
196 2004-02-21 Atsushi Enomoto <atsushi@ximian.com>
198 * DTMXPathDocumentBuilder2.cs : whitespace node values were not added
201 2004-02-14 Atsushi Enomoto <atsushi@ximian.com>
203 * DTMXPathDocumentBuilder2.cs : in some cases, significant whitespace
204 is incorrectly regarded as Text. Patch by Andrew Skiba.
206 2005-02-09 Atsushi Enomoto <atsushi@ximian.com>
208 * LocationPathPattern.cs : Wildcard name is held as "", so we should
209 also check "" for wildcard. Patch by Andrew Skiba.
211 2005-01-25 Atsushi Enomoto <atsushi@ximian.com>
213 * XPathEditableDocument.cs : eliminating "throw new Exception".
215 2004-12-17 Atsushi Enomoto <atsushi@ximian.com>
217 * XPathNavigatorReader.cs : added CanReadBinaryContent and
218 CanReadValueChunk. Call Binary.Reset() to enable them.
220 2004-12-16 Atsushi Enomoto <atsushi@ximian.com>
222 * XPathNavigatorReader.cs : added SchemaInfo.
224 2004-12-04 Atsushi Enomoto <atsushi@ximian.com>
226 * DTMXPathNavigator.cs : added more constant fields to utility class.
228 2004-12-04 Atsushi Enomoto <atsushi@ximian.com>
230 * DTMXPathDocument2.cs,
231 DTMXPathNavigator2.cs,
232 DTMXPathDocumentBuilder2.cs,
233 DTMXPathDocumentWriter2.cs,
234 DTMXPathNode2.cs : added new implementation that uses string pool
235 and eliminates string field inside struct (IF we use struct).
237 2004-12-03 Atsushi Enomoto <atsushi@ximian.com>
239 * DTMXPathDocumentWriter.cs : Fix for DTM_CLASS switch that does not
240 allow unadjusted arrays.
242 2004-11-30 Atsushi Enomoto <atsushi@ximian.com>
244 * DTMXPathDocumentWriter.cs,
245 DTMXPathDocumentBuilder.cs,
246 DTMXPathNode.cs : SchemaType on attribute is not used.
248 2004-11-26 Atsushi Enomoto <atsushi@ximian.com>
250 * XPathNavigatorReader.cs,
251 KeyPattern.cs : warning removal
253 2004-11-19 Atsushi Enomoto <atsushi@ximian.com>
255 * XPathNavigatorReader.cs : changed to be compatible with that is
256 contained in Mono.Xml.Ext.dll.
258 2004-11-14 Atsushi Enomoto <atsushi@ximian.com>
260 * XPathEditableDocument.cs : WriteStartElement() should not expect
261 that there is an OwnerDocument (current node might be document).
263 2004-10-29 Atsushi Enomoto <atsushi@ximian.com>
265 * XPathEditableDocument.cs : internalize classes.
267 2004-10-28 Atsushi Enomoto <atsushi@ximian.com>
269 * XPathEditableDocument.cs : fixed wrong recursion problem.
271 2004-10-22 Atsushi Enomoto <atsushi@ximian.com>
273 * XPathEditableDocument.cs :
274 Now it implements updated version of .NET 2.0.
275 .ctor() should accept XmlNode, instead of XmlDocument.
277 2004-10-09 Atsushi Enomoto <atsushi@ximian.com>
279 * XPathNavigatorReader.cs : should be NET_2_0.
281 2004-10-08 Atsushi Enomoto <atsushi@ximian.com>
283 * XPathNavigatorReader.cs : IsDefault considers IXmlSchemaInfo
284 (it is anyways not implemented as yet.)
286 2004-10-05 Atsushi Enomoto <atsushi@ximian.com>
288 * XPathNavigatorReader.cs : Actually all other kind of nodes than
289 Element and Root must be treated as "start node only" as well as
290 attributes and namespaces.
292 2004-10-05 Atsushi Enomoto <atsushi@ximian.com>
294 * XPathDocument2Editable.cs : for WriteAttributes(), use
295 CreateAttributesWriter() that creates attribute tree XmlWriter.
296 * XPathNavigatorReader.cs : the reader was missing attributes when
297 it is created with an element node that has attriibutes.
299 2004-10-04 Atsushi Enomoto <atsushi@ximian.com>
301 * XPathNavigatorReader.cs : It can reject attribute and namespace
302 nodes as its input (It is used only for WriteNode(), InsertBefore()
303 and so on, which are not intended to be used with attribute nodes).
304 On Initial state, it was Element that should check IsEmptyElement,
305 and Root should just go to the first child node.
307 2004-10-04 Atsushi Enomoto <atsushi@ximian.com>
309 * XPathNavigatorReader.cs : When the reader's root node is not of type
310 Root, it incorrectly skipped the node itself.
312 2004-09-06 Atsushi Enomoto <atsushi@ximian.com>
314 * XPathDocument2.cs, XPathDocument2Editable.cs:
315 Redesigned API. Child node list should not be required (it also
316 harms performance). Reduced extraneous methods for XPathNavigator
317 / XPathEditableNavigator implementation support.
318 * XPathEditableDocument.cs : event registration was missing (due to
319 XPathDocument changes, it might not be required anymore though).
320 * XPathNavigatorReader.cs :
321 Namespace nodes were not handled correctly.
322 EOF handling was incorrect.
323 Reduced extraneous clone from MoveTo/GetAttribute(int) and
325 2004-09-01 Atsushi Enomoto <atsushi@ximian.com>
327 * XPathNavigatorReader.cs : on GetAttributeNavigator(int), namespace
328 node could be this XmlReader's attribute node.
330 2004-08-02 Atsushi Enomoto <atsushi@ximian.com>
332 * XPathDocument2.cs : new IXPathNavigable implementation
333 XPathDocument2Navigator.cs : new XPathNavigator implementation
334 XPathDocument2Editable.cs : new XPathEditableNavigator implementation
336 To use them in XPathDocument, set environment MONO_XPATH_DOCUMENT_2=yes
337 (It is still too unstable to pass all nunit tests and standalone XSLT
340 2004-07-30 Atsushi Enomoto <atsushi@ximian.com>
342 * DTMXPathNavigator.cs :
343 Fixed IsSamePosition(). currentAttr is not always the same as
344 that of other when current is not attribute. Ditto for currentNS
345 (when current is not namespace).
346 * XPathNavigatorReader.cs : Fixed NodeType - 1) When attribute value is
347 being consumed, then node type should be Text, and 2) Root node is
348 usually mapped to Document, but XmlReader never returns Document,
349 just None (both on Initial state and EndOfFile state).
351 2004-07-30 Atsushi Enomoto <atsushi@ximian.com>
353 * XPathNavigatorReader.cs : fixed GetAttributeNavigator() that
354 incorrectly used MoveToNextAttribute().
356 2004-07-29 Atsushi Enomoto <atsushi@ximian.com>
358 * XPathNavigatorReader.cs :
359 - it is used only in 2.0 classes.
360 - It now behaves as a fragment reader.
361 - Depth is optimized not to call Clone() and MoveToParent().
362 - AttributeCount could be counted only once in Read().
363 - ReadState transition is adjusted to be same as other XmlReaders.
364 - name strings now return "" on initial state.
366 2004-07-28 Atsushi Enomoto <atsushi@ximian.com>
368 * Added XPathEditableDocument.cs.
369 - XPathEditableDocument provides IXPathEditable.
370 - XmlDocumentEditableNavigator implements XPathEditableNavigator
371 that supports CreateAttributes(), AppendChild() and so on.
373 It is nothing more than hack, and as an XPathEditableNavigator
374 provider for XPathDocument, it will be replaced by something.
376 2004-07-13 Atsushi Enomoto <atsushi@ximian.com>
378 * Added XPathNavigatorReader.cs.
380 2004-06-06 Atsushi Enomoto <atsushi@ximian.com>
382 * DTMXPathDocumentBuilder.cs : Close XmlTextReader strictly. It might
383 raise an error after opening stream and before try-catch.
385 2004-05-20 Atsushi Enomoto <atsushi@ximian.com>
387 * Pattern.cs : don't throw System.Exception. Delegate error handling to
388 the only one caller CompilePattern().
390 2004-05-12 Atsushi Enomoto <atsushi@ximian.com>
392 * Pattern.cs : made class internal.
394 2004-02-26 Atsushi Enomoto <atsushi@ximian.com>
396 * DTMXPathDocumentBuilder.cs : Close XmlReader when we passed uri.
398 2004-02-18 Atsushi Enomoto <atsushi@ximian.com>
400 * LocationPathPattern.cs : Implemented easy XPathNavigator cache on
401 predicate evaluation in Matches().
403 2004-02-17 Atsushi Enomoto <atsushi@ximian.com>
405 * KeyPattern.cs, Pattern.cs : removed using decls.
407 2004-02-17 Atsushi Enomoto <atsushi@ximian.com>
409 * LocationPathPattern.cs : Optimized Matches(). For non-positional
410 patterns, it never iterates predicate, just evaluate boolean.
412 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
414 * DTMXPathDocument.cs,
415 DTMXPathDocumentBuilder.cs,
416 DTMXPathDocumentWriter.cs,
417 DTMXPathNavigator.cs,
419 Made classes internal by default (still publicly available with
420 OUTSIDE_SYSTEM_XML switch). Removed unused "position" field.
421 Optimized DTMXPathNavigator.Value a bit.
422 * LocationPathPattern.cs : Modified some fields to private.
424 2004-02-13 Atsushi Enomoto <atsushi@ximian.com>
426 * Added DTMXPathDocumentWriter.cs. It supports DTMXPathNavigator as
427 the resulting document tree.
428 * DTMXPathDocumentBuilder.cs : Code refactory (to get closer to dtm
429 writer and commonify tasks they both should do). Reduced initial
430 array size (400 to 200, for attribute 800 to 200), and extending
431 size from 2x to 4x (to reduce _times_ of allication copy).
432 * DTMXPathNode.cs : (and all above) added experimental "DTM_CLASS"
433 switch, which changes nodes from struct to class. (It will reduce
434 memory consumption by 2/3, but will also reduce speed by 2/3.)
436 2004-01-27 Atsushi Enomoto <atsushi@ximian.com>
438 * DTMXPathDocumentBuilder.cs : Namespace nodes are incorrectly created.
439 This fix should make XPathDocument compatible with XmlDocument.
441 2004-01-26 Atsushi Enomoto <atsushi@ximian.com>
443 * DTMXPathDocument.cs : CreateNavigator() should return the first root
445 * DTMXPathNavigator.cs : ComparePosition() incorrectly compared
446 attributes and namespaces orders. Implemented IsSamePosition() more
447 efficient. MoveToFirstNamespace() should return false when the
448 current node is either attribute or namespace. Fixed IsDescendant()
449 which looks resulted in incorrect behavior.
451 2003-12-18 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
453 * DTMXPathDocumentBuilder.cs : Removed supportsID argument and always
454 assumes to support IDs when specified XmlValidatingReader.
455 Quick fix for NullReferenceException when type was null.
457 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
459 * KeyPattern.cs : Matches() should iterate candidate keys to the end.
461 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
464 KeyPattern.cs : Implemented Matches(), overrode DefaultPriority,
465 modified inheritance.
466 * Pattern.cs : Added id and key pattern support.
468 2003-11-02 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
470 * DTMXPathNavigator.cs : Fixed MoveToNamespace() that might result in
473 2003-10-04 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
475 * DTMXPathDocumentBuilder.cs : Bugfix for whitespace handling.
477 2003-10-01 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
479 * Added DTMXPathNode.cs.
480 * Fundamental changes in whole DTM stuff. Node information is now array
481 of "node struct" instead of individual arrays.
483 2003-09-21 Ben Maurer <bmaurer@users.sourceforge.net>
485 * Pattern.cs: save the parser (will reduce memory allocation when
486 Jackson's jay patch is committed).
488 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
490 * Pattern.cs: Typo, when i got //a i was giving off /
491 * LocationPathPattern.cs: Append to the tail, not head.
493 2003-09-14 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
495 * DTMXPathNavigator.cs,
497 DTMXPathDocumentBuilder.cs : Added IXmlLineInfo support. Removed
498 node's extraneous schemaType. Some code reformatting.
500 2003-09-13 Ben Maurer <bmaurer@users.sourceforge.net>
502 * Pattern.cs: Support static context.
504 2003-08-25 Ben Maurer <bmaurer@users.sourceforge.net>
506 * DTMXPathNavigator.cs: Allocate valueBuilder on first use.
508 2003-08-14 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
510 * DTMXPathDocument.cs,
511 DTMXPathDocumentBuilder.cs,
512 DTMXPathNavigator.cs :
513 - Implemented ID support using XmlValidatingReader.
514 - Prefix should be String.Empty even if XmlReader.Prefix is null.
516 2003-07-23 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
518 * DTMXPathDocumentBuilder.cs :
519 Fixed Read() that sets nodes' parent incorrectly.
521 2003-07-17 Peter Williams <peter@newton.cx>
523 * DTMXPathDocumentBuilder.cs: csc.exe is more stringent about namespaces
524 than mcs. We need to disambiguate System.Math from Mono.Math here.
526 2003-06-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
529 * Added ChangeLog, DTMXPathDocument.cs, DTMXPathDocumentBuilder.cs
530 and DTMXPathNavigator.cs.