1 2010-07-06 Atsushi Enomoto <atsushi@ximian.com>
3 * DTMXPathDocumentWriter2.cs : implement some writer methods.
5 2010-01-25 Atsushi Enomoto <atsushi@ximian.com>
7 * XPathEditableDocument.cs : add support for WriteRaw().
8 Patch by Adriaan van Kekem, closing bug #560838.
10 2009-11-17 Atsushi Enomoto <atsushi@ximian.com>
12 * XPathEditableDocument.cs : WriteAttributeString() is allowed on
13 an appended child on .NET, though IMHO incorrectly.
16 2009-05-15 Atsushi Enomoto <atsushi@ximian.com>
18 * XPathNavigatorReader.cs : LookupNamespace() in XmlReader from
19 ReadSubtree() should work correctly on text nodes.
21 2008-09-10 Atsushi Enomoto <atsushi@ximian,com>
23 * XPathEditableDocument.cs : added some overrides.
25 2008-06-04 Atsushi Enomoto <atsushi@ximian.com>
27 * DTMXPathDocumentBuilder2.cs : fixed bug #378239.cs. Merge
28 sequential text nodes in correct way, say, whitespace entities
29 inside text should be merged (while they should be discarded around
32 2008-04-02 Atsushi Enomoto <atsushi@ximian.com>
34 * XPathEditableDocument.cs : it should not expect ParentNode for
35 OwnerElement. Fixed bug #376210.
37 2008-03-17 Atsushi Enomoto <atsushi@ximian.com>
39 * DTMXPathDocumentBuilder2.cs : allow document fragment as XmlReader
40 input. Fixed bug #324606.
42 2007-07-02 Atsushi Enomoto <atsushi@ximian.com>
44 * DTMXPathDocumentBuilder2.cs : do not bork at non-document element
45 in XmlReader. Fixed bug #81932.
47 2007-02-01 Atsushi Enomoto <atsushi@ximian.com>
49 * DTMXPathDocumentWriter2.cs : supply prefix when it was not passed.
51 2007-01-31 Atsushi Enomoto <atsushi@ximian.com>
53 * DTMXPathNavigator2.cs : cosmetic performance improvement.
55 2007-01-05 Atsushi Enomoto <atsushi@ximian.com>
57 * DTMXPathDocumentBuilder2.cs : fixed incorrect namespace node links
58 which happened to following siblings of a node with namespaces.
60 2006-12-05 Atsushi Enomoto <atsushi@ximian.com>
62 * XPathEditableDocument.cs : those writers should lookup prefix when
63 WriteStartElement/WriteStartAttribute are passed null prefix.
64 Removed nodeStack in XmlDocumentInsertionWriter, since nodes are
65 always added to current node immediately.
67 2006-11-10 Atsushi Enomoto <atsushi@ximian.com>
69 * XPathNavigatorReader.cs : removed node type restriction on
70 initialization. Fixed bug #79874, when tied to XPathNavigator fix.
72 2006-10-11 Atsushi Enomoto <atsushi@ximian.com>
74 * XPathEditableDocument.cs : (XmlDocumentEditableNavigator)
75 implement CanEdit to return true.
77 2006-09-11 Atsushi Enomoto <atsushi@ximian.com>
79 * XPathEditableDocument.cs : DocumentFragment should also be allowed
82 2006-09-08 Atsushi Enomoto <atsushi@ximian.com>
84 * DTMXPathDocumentWriter2.cs : fill String.Empty for null ns in
85 WriteStartElement() and WriteStartAttribute().
87 2006-09-01 Atsushi Enomoto <atsushi@ximian.com>
89 * XPathNavigatorReader.cs : MoveToFirstAttribute() should return
90 true when current node is an attribute (including namespace node).
92 2006-08-28 Atsushi Enomoto <atsushi@ximian.com>
94 * DTMXPathDocumentWriter2.cs : use String.Empty instead of null for
95 localName for those nodes which does not have a name.
97 2006-04-10 Atsushi Enomoto <atsushi@ximian.com>
99 * XPathNavigatorReader.cs : Read() did not compute Depth correctly.
100 It caused bug #78067.
102 2006-02-21 Atsushi Enomoto <atsushi@ximian.com>
104 * DTMXPathNavigator2.cs : removed valueBuilder field (create
105 StringBuilder dynamically).
107 2006-02-16 Atsushi Enomoto <atsushi@ximian.com>
109 * DTMXPathDocument2.cs, DTMXPathNavigator2.cs :
110 Do not store mutable XPathDocument fields in every navigators.
111 It saves memory a lot.
113 2005-12-14 Atsushi Enomoto <atsushi@ximian.com>
115 * XPathNavigatorReader.cs : oh, so it used to compile under 1.x.
117 2005-12-14 Atsushi Enomoto <atsushi@ximian.com>
119 * XPathNavigatorReader.cs : several fixes.
120 - Unless ReadState is Interactive, all name stuff should return "".
121 - Refactored Read() to work fine when input navigator is Root.
122 - Fixed all MoveTo*Attribute() methods match with other XmlReaders.
123 - Namespace nodes were not handled fine in MoveTo*Attribute().
125 2005-12-14 Atsushi Enomoto <atsushi@ximian.com>
127 * XPathEditableDocument.cs : added UnderlyingObject.
129 2005-12-14 Atsushi Enomoto <atsushi@ximian.com>
131 * XPathEditableDocument.cs : added 2.0 SchemaInfo.
133 2005-12-13 Atsushi Enomoto <atsushi@ximian.com>
135 * XPathEditableDocument.cs : implement ReplaceSelf() here.
137 2005-12-13 Atsushi Enomoto <atsushi@ximian.com>
139 * XPathEditableDocument.cs :
140 - Now it does not append "written" nodes until Close() is invoked.
141 - Use XmlDocumentFragment to store incomplete tree fragment.
142 - Implemented DeleteRange() and ReplaceRange().
143 - Added "Closed" event for ReplaceRange() to "not remove until
146 2005-12-13 Atsushi Enomoto <atsushi@ximian.com>
148 * XPathEditableDocument.cs :
149 - Removed almost all redundant code in XPathEditableDocument,
150 which is based on .net 1.2 XPathDocument functionality.
151 - It was always doing AppendChild even if the operation is
152 InsertBefore or InsertAfter.
154 2005-12-13 Atsushi Enomoto <atsushi@ximian.com>
156 * XPathEditableDocument.cs :
157 XmlDocumentInsertionWriter.WriteFullEndElement() should set IsEmpty
158 of the element before pop.
160 2005-12-08 Atsushi Enomoto <atsushi@ximian.com>
162 * XPathDocument2.cs, XPathDocument2Editable.cs,
163 XPathDocument2Navigator.cs : garbage cleanup.
165 2005-08-05 Atsushi Enomoto <atsushi@ximian.com>
167 * Pattern.cs, IdPattern.cs, LocationPathPattern.cs, UnionPattern.cs :
168 added bool EvaluatedNodeType property (used in XslKeyTable).
170 2005-05-05 Atsushi Enomoto <atsushi@ximian.com>
172 * XPathEditableDocument.cs : sync with updated 2.0 API.
174 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
176 * DTMXPathDocumentWriter2.cs : use index for string pool.
178 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
180 * IdPattern.cs, LocationPathPattern.cs :
181 Use XsltCompiledContext.GetNavCache() that returns reusable
182 navigator cache for each pattern, to avoid Clone() and not to leave
183 reference to already-done instance navigator.
185 2004-03-22 Atsushi Enomoto <atsushi@ximian.com>
187 * Pattern.cs : Pattern.Compile() now uses XSLT pattern parser instead
189 * KeyPattern.cs : Matches() now just delegates to XsltKey.MatchesKey().
191 2004-03-22 Atsushi Enomoto <atsushi@ximian.com>
193 * DTMXPathDocumentBuilder.cs,
194 DTMXPathDocumentWriter.cs,
195 DTMXPathNavigator.cs,
196 DTMXPathNode.cs : updated to be equivalent to DTMXPathNavigator2.
197 * DTMXPathDocumentBuilder2.cs :
198 String pool is now under index based management. For nonAtomicIndex
199 string, don't try all the entries the pool holds. It causes
200 significant performance loss for large documents.
201 * DTMXPathDocument.cs,
202 DTMXPathDocument2.cs : removed unused fields (warning elimination).
204 2004-03-16 Atsushi Enomoto <atsushi@ximian.com>
206 * Pattern.cs : fixed incorrect optimization.
208 2004-03-15 Atsushi Enomoto <atsushi@ximian.com>
210 * DTMXPathDocumentBuilder2.cs : skip only Read() internally called
211 xmlReader.Read(). Simplify loop a bit.
213 2004-03-15 Atsushi Enomoto <atsushi@ximian.com>
215 * DTMXPathDocumentWriter2.cs : Eliminated Depth as well as -builder.
216 * DTMXPathNode2.cs, DTMXPathDocumentBuilder2.cs :
217 Eliminated Depth at all.
219 2004-03-15 Atsushi Enomoto <atsushi@ximian.com>
221 * DTMXPathDocumentBuilder2.cs : Eliminating Depth. Store parent index
222 stack instead of depending on Depth.
223 Just use hasAttributes and hasLocalNs instead of indices.
224 * DTMXPathNavigator2.cs : (get_Value) Check empty element earlier.
226 2004-03-14 Atsushi Enomoto <atsushi@ximian.com>
228 * DTMXPathNavigator2.cs : Eliminating Depth. (To completely eliminate,
229 we also have to eliminate them from builder and writer).
231 2004-03-07 Atsushi Enomoto <atsushi@ximian.com>
233 * DTMXPathDocumentBuilder2.cs : When there was an empty element and
234 namespace declarations, the next element namespace index was
235 incorrectly pointing to that of empty element.
237 2004-02-21 Atsushi Enomoto <atsushi@ximian.com>
239 * DTMXPathDocumentBuilder2.cs : whitespace node values were not added
242 2004-02-14 Atsushi Enomoto <atsushi@ximian.com>
244 * DTMXPathDocumentBuilder2.cs : in some cases, significant whitespace
245 is incorrectly regarded as Text. Patch by Andrew Skiba.
247 2005-02-09 Atsushi Enomoto <atsushi@ximian.com>
249 * LocationPathPattern.cs : Wildcard name is held as "", so we should
250 also check "" for wildcard. Patch by Andrew Skiba.
252 2005-01-25 Atsushi Enomoto <atsushi@ximian.com>
254 * XPathEditableDocument.cs : eliminating "throw new Exception".
256 2004-12-17 Atsushi Enomoto <atsushi@ximian.com>
258 * XPathNavigatorReader.cs : added CanReadBinaryContent and
259 CanReadValueChunk. Call Binary.Reset() to enable them.
261 2004-12-16 Atsushi Enomoto <atsushi@ximian.com>
263 * XPathNavigatorReader.cs : added SchemaInfo.
265 2004-12-04 Atsushi Enomoto <atsushi@ximian.com>
267 * DTMXPathNavigator.cs : added more constant fields to utility class.
269 2004-12-04 Atsushi Enomoto <atsushi@ximian.com>
271 * DTMXPathDocument2.cs,
272 DTMXPathNavigator2.cs,
273 DTMXPathDocumentBuilder2.cs,
274 DTMXPathDocumentWriter2.cs,
275 DTMXPathNode2.cs : added new implementation that uses string pool
276 and eliminates string field inside struct (IF we use struct).
278 2004-12-03 Atsushi Enomoto <atsushi@ximian.com>
280 * DTMXPathDocumentWriter.cs : Fix for DTM_CLASS switch that does not
281 allow unadjusted arrays.
283 2004-11-30 Atsushi Enomoto <atsushi@ximian.com>
285 * DTMXPathDocumentWriter.cs,
286 DTMXPathDocumentBuilder.cs,
287 DTMXPathNode.cs : SchemaType on attribute is not used.
289 2004-11-26 Atsushi Enomoto <atsushi@ximian.com>
291 * XPathNavigatorReader.cs,
292 KeyPattern.cs : warning removal
294 2004-11-19 Atsushi Enomoto <atsushi@ximian.com>
296 * XPathNavigatorReader.cs : changed to be compatible with that is
297 contained in Mono.Xml.Ext.dll.
299 2004-11-14 Atsushi Enomoto <atsushi@ximian.com>
301 * XPathEditableDocument.cs : WriteStartElement() should not expect
302 that there is an OwnerDocument (current node might be document).
304 2004-10-29 Atsushi Enomoto <atsushi@ximian.com>
306 * XPathEditableDocument.cs : internalize classes.
308 2004-10-28 Atsushi Enomoto <atsushi@ximian.com>
310 * XPathEditableDocument.cs : fixed wrong recursion problem.
312 2004-10-22 Atsushi Enomoto <atsushi@ximian.com>
314 * XPathEditableDocument.cs :
315 Now it implements updated version of .NET 2.0.
316 .ctor() should accept XmlNode, instead of XmlDocument.
318 2004-10-09 Atsushi Enomoto <atsushi@ximian.com>
320 * XPathNavigatorReader.cs : should be NET_2_0.
322 2004-10-08 Atsushi Enomoto <atsushi@ximian.com>
324 * XPathNavigatorReader.cs : IsDefault considers IXmlSchemaInfo
325 (it is anyways not implemented as yet.)
327 2004-10-05 Atsushi Enomoto <atsushi@ximian.com>
329 * XPathNavigatorReader.cs : Actually all other kind of nodes than
330 Element and Root must be treated as "start node only" as well as
331 attributes and namespaces.
333 2004-10-05 Atsushi Enomoto <atsushi@ximian.com>
335 * XPathDocument2Editable.cs : for WriteAttributes(), use
336 CreateAttributesWriter() that creates attribute tree XmlWriter.
337 * XPathNavigatorReader.cs : the reader was missing attributes when
338 it is created with an element node that has attriibutes.
340 2004-10-04 Atsushi Enomoto <atsushi@ximian.com>
342 * XPathNavigatorReader.cs : It can reject attribute and namespace
343 nodes as its input (It is used only for WriteNode(), InsertBefore()
344 and so on, which are not intended to be used with attribute nodes).
345 On Initial state, it was Element that should check IsEmptyElement,
346 and Root should just go to the first child node.
348 2004-10-04 Atsushi Enomoto <atsushi@ximian.com>
350 * XPathNavigatorReader.cs : When the reader's root node is not of type
351 Root, it incorrectly skipped the node itself.
353 2004-09-06 Atsushi Enomoto <atsushi@ximian.com>
355 * XPathDocument2.cs, XPathDocument2Editable.cs:
356 Redesigned API. Child node list should not be required (it also
357 harms performance). Reduced extraneous methods for XPathNavigator
358 / XPathEditableNavigator implementation support.
359 * XPathEditableDocument.cs : event registration was missing (due to
360 XPathDocument changes, it might not be required anymore though).
361 * XPathNavigatorReader.cs :
362 Namespace nodes were not handled correctly.
363 EOF handling was incorrect.
364 Reduced extraneous clone from MoveTo/GetAttribute(int) and
366 2004-09-01 Atsushi Enomoto <atsushi@ximian.com>
368 * XPathNavigatorReader.cs : on GetAttributeNavigator(int), namespace
369 node could be this XmlReader's attribute node.
371 2004-08-02 Atsushi Enomoto <atsushi@ximian.com>
373 * XPathDocument2.cs : new IXPathNavigable implementation
374 XPathDocument2Navigator.cs : new XPathNavigator implementation
375 XPathDocument2Editable.cs : new XPathEditableNavigator implementation
377 To use them in XPathDocument, set environment MONO_XPATH_DOCUMENT_2=yes
378 (It is still too unstable to pass all nunit tests and standalone XSLT
381 2004-07-30 Atsushi Enomoto <atsushi@ximian.com>
383 * DTMXPathNavigator.cs :
384 Fixed IsSamePosition(). currentAttr is not always the same as
385 that of other when current is not attribute. Ditto for currentNS
386 (when current is not namespace).
387 * XPathNavigatorReader.cs : Fixed NodeType - 1) When attribute value is
388 being consumed, then node type should be Text, and 2) Root node is
389 usually mapped to Document, but XmlReader never returns Document,
390 just None (both on Initial state and EndOfFile state).
392 2004-07-30 Atsushi Enomoto <atsushi@ximian.com>
394 * XPathNavigatorReader.cs : fixed GetAttributeNavigator() that
395 incorrectly used MoveToNextAttribute().
397 2004-07-29 Atsushi Enomoto <atsushi@ximian.com>
399 * XPathNavigatorReader.cs :
400 - it is used only in 2.0 classes.
401 - It now behaves as a fragment reader.
402 - Depth is optimized not to call Clone() and MoveToParent().
403 - AttributeCount could be counted only once in Read().
404 - ReadState transition is adjusted to be same as other XmlReaders.
405 - name strings now return "" on initial state.
407 2004-07-28 Atsushi Enomoto <atsushi@ximian.com>
409 * Added XPathEditableDocument.cs.
410 - XPathEditableDocument provides IXPathEditable.
411 - XmlDocumentEditableNavigator implements XPathEditableNavigator
412 that supports CreateAttributes(), AppendChild() and so on.
414 It is nothing more than hack, and as an XPathEditableNavigator
415 provider for XPathDocument, it will be replaced by something.
417 2004-07-13 Atsushi Enomoto <atsushi@ximian.com>
419 * Added XPathNavigatorReader.cs.
421 2004-06-06 Atsushi Enomoto <atsushi@ximian.com>
423 * DTMXPathDocumentBuilder.cs : Close XmlTextReader strictly. It might
424 raise an error after opening stream and before try-catch.
426 2004-05-20 Atsushi Enomoto <atsushi@ximian.com>
428 * Pattern.cs : don't throw System.Exception. Delegate error handling to
429 the only one caller CompilePattern().
431 2004-05-12 Atsushi Enomoto <atsushi@ximian.com>
433 * Pattern.cs : made class internal.
435 2004-02-26 Atsushi Enomoto <atsushi@ximian.com>
437 * DTMXPathDocumentBuilder.cs : Close XmlReader when we passed uri.
439 2004-02-18 Atsushi Enomoto <atsushi@ximian.com>
441 * LocationPathPattern.cs : Implemented easy XPathNavigator cache on
442 predicate evaluation in Matches().
444 2004-02-17 Atsushi Enomoto <atsushi@ximian.com>
446 * KeyPattern.cs, Pattern.cs : removed using decls.
448 2004-02-17 Atsushi Enomoto <atsushi@ximian.com>
450 * LocationPathPattern.cs : Optimized Matches(). For non-positional
451 patterns, it never iterates predicate, just evaluate boolean.
453 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
455 * DTMXPathDocument.cs,
456 DTMXPathDocumentBuilder.cs,
457 DTMXPathDocumentWriter.cs,
458 DTMXPathNavigator.cs,
460 Made classes internal by default (still publicly available with
461 OUTSIDE_SYSTEM_XML switch). Removed unused "position" field.
462 Optimized DTMXPathNavigator.Value a bit.
463 * LocationPathPattern.cs : Modified some fields to private.
465 2004-02-13 Atsushi Enomoto <atsushi@ximian.com>
467 * Added DTMXPathDocumentWriter.cs. It supports DTMXPathNavigator as
468 the resulting document tree.
469 * DTMXPathDocumentBuilder.cs : Code refactory (to get closer to dtm
470 writer and commonify tasks they both should do). Reduced initial
471 array size (400 to 200, for attribute 800 to 200), and extending
472 size from 2x to 4x (to reduce _times_ of allication copy).
473 * DTMXPathNode.cs : (and all above) added experimental "DTM_CLASS"
474 switch, which changes nodes from struct to class. (It will reduce
475 memory consumption by 2/3, but will also reduce speed by 2/3.)
477 2004-01-27 Atsushi Enomoto <atsushi@ximian.com>
479 * DTMXPathDocumentBuilder.cs : Namespace nodes are incorrectly created.
480 This fix should make XPathDocument compatible with XmlDocument.
482 2004-01-26 Atsushi Enomoto <atsushi@ximian.com>
484 * DTMXPathDocument.cs : CreateNavigator() should return the first root
486 * DTMXPathNavigator.cs : ComparePosition() incorrectly compared
487 attributes and namespaces orders. Implemented IsSamePosition() more
488 efficient. MoveToFirstNamespace() should return false when the
489 current node is either attribute or namespace. Fixed IsDescendant()
490 which looks resulted in incorrect behavior.
492 2003-12-18 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
494 * DTMXPathDocumentBuilder.cs : Removed supportsID argument and always
495 assumes to support IDs when specified XmlValidatingReader.
496 Quick fix for NullReferenceException when type was null.
498 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
500 * KeyPattern.cs : Matches() should iterate candidate keys to the end.
502 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
505 KeyPattern.cs : Implemented Matches(), overrode DefaultPriority,
506 modified inheritance.
507 * Pattern.cs : Added id and key pattern support.
509 2003-11-02 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
511 * DTMXPathNavigator.cs : Fixed MoveToNamespace() that might result in
514 2003-10-04 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
516 * DTMXPathDocumentBuilder.cs : Bugfix for whitespace handling.
518 2003-10-01 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
520 * Added DTMXPathNode.cs.
521 * Fundamental changes in whole DTM stuff. Node information is now array
522 of "node struct" instead of individual arrays.
524 2003-09-21 Ben Maurer <bmaurer@users.sourceforge.net>
526 * Pattern.cs: save the parser (will reduce memory allocation when
527 Jackson's jay patch is committed).
529 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
531 * Pattern.cs: Typo, when i got //a i was giving off /
532 * LocationPathPattern.cs: Append to the tail, not head.
534 2003-09-14 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
536 * DTMXPathNavigator.cs,
538 DTMXPathDocumentBuilder.cs : Added IXmlLineInfo support. Removed
539 node's extraneous schemaType. Some code reformatting.
541 2003-09-13 Ben Maurer <bmaurer@users.sourceforge.net>
543 * Pattern.cs: Support static context.
545 2003-08-25 Ben Maurer <bmaurer@users.sourceforge.net>
547 * DTMXPathNavigator.cs: Allocate valueBuilder on first use.
549 2003-08-14 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
551 * DTMXPathDocument.cs,
552 DTMXPathDocumentBuilder.cs,
553 DTMXPathNavigator.cs :
554 - Implemented ID support using XmlValidatingReader.
555 - Prefix should be String.Empty even if XmlReader.Prefix is null.
557 2003-07-23 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
559 * DTMXPathDocumentBuilder.cs :
560 Fixed Read() that sets nodes' parent incorrectly.
562 2003-07-17 Peter Williams <peter@newton.cx>
564 * DTMXPathDocumentBuilder.cs: csc.exe is more stringent about namespaces
565 than mcs. We need to disambiguate System.Math from Mono.Math here.
567 2003-06-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
570 * Added ChangeLog, DTMXPathDocument.cs, DTMXPathDocumentBuilder.cs
571 and DTMXPathNavigator.cs.