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