1 2006-11-10 Atsushi Enomoto <atsushi@ximian.com>
3 * XPathNavigatorReader.cs : removed node type restriction on
4 initialization. Fixed bug #79874, when tied to XPathNavigator fix.
6 2006-10-11 Atsushi Enomoto <atsushi@ximian.com>
8 * XPathEditableDocument.cs : (XmlDocumentEditableNavigator)
9 implement CanEdit to return true.
11 2006-09-11 Atsushi Enomoto <atsushi@ximian.com>
13 * XPathEditableDocument.cs : DocumentFragment should also be allowed
16 2006-09-08 Atsushi Enomoto <atsushi@ximian.com>
18 * DTMXPathDocumentWriter2.cs : fill String.Empty for null ns in
19 WriteStartElement() and WriteStartAttribute().
21 2006-09-01 Atsushi Enomoto <atsushi@ximian.com>
23 * XPathNavigatorReader.cs : MoveToFirstAttribute() should return
24 true when current node is an attribute (including namespace node).
26 2006-08-28 Atsushi Enomoto <atsushi@ximian.com>
28 * DTMXPathDocumentWriter2.cs : use String.Empty instead of null for
29 localName for those nodes which does not have a name.
31 2006-04-10 Atsushi Enomoto <atsushi@ximian.com>
33 * XPathNavigatorReader.cs : Read() did not compute Depth correctly.
36 2006-02-21 Atsushi Enomoto <atsushi@ximian.com>
38 * DTMXPathNavigator2.cs : removed valueBuilder field (create
39 StringBuilder dynamically).
41 2006-02-16 Atsushi Enomoto <atsushi@ximian.com>
43 * DTMXPathDocument2.cs, DTMXPathNavigator2.cs :
44 Do not store mutable XPathDocument fields in every navigators.
45 It saves memory a lot.
47 2005-12-14 Atsushi Enomoto <atsushi@ximian.com>
49 * XPathNavigatorReader.cs : oh, so it used to compile under 1.x.
51 2005-12-14 Atsushi Enomoto <atsushi@ximian.com>
53 * XPathNavigatorReader.cs : several fixes.
54 - Unless ReadState is Interactive, all name stuff should return "".
55 - Refactored Read() to work fine when input navigator is Root.
56 - Fixed all MoveTo*Attribute() methods match with other XmlReaders.
57 - Namespace nodes were not handled fine in MoveTo*Attribute().
59 2005-12-14 Atsushi Enomoto <atsushi@ximian.com>
61 * XPathEditableDocument.cs : added UnderlyingObject.
63 2005-12-14 Atsushi Enomoto <atsushi@ximian.com>
65 * XPathEditableDocument.cs : added 2.0 SchemaInfo.
67 2005-12-13 Atsushi Enomoto <atsushi@ximian.com>
69 * XPathEditableDocument.cs : implement ReplaceSelf() here.
71 2005-12-13 Atsushi Enomoto <atsushi@ximian.com>
73 * XPathEditableDocument.cs :
74 - Now it does not append "written" nodes until Close() is invoked.
75 - Use XmlDocumentFragment to store incomplete tree fragment.
76 - Implemented DeleteRange() and ReplaceRange().
77 - Added "Closed" event for ReplaceRange() to "not remove until
80 2005-12-13 Atsushi Enomoto <atsushi@ximian.com>
82 * XPathEditableDocument.cs :
83 - Removed almost all redundant code in XPathEditableDocument,
84 which is based on .net 1.2 XPathDocument functionality.
85 - It was always doing AppendChild even if the operation is
86 InsertBefore or InsertAfter.
88 2005-12-13 Atsushi Enomoto <atsushi@ximian.com>
90 * XPathEditableDocument.cs :
91 XmlDocumentInsertionWriter.WriteFullEndElement() should set IsEmpty
92 of the element before pop.
94 2005-12-08 Atsushi Enomoto <atsushi@ximian.com>
96 * XPathDocument2.cs, XPathDocument2Editable.cs,
97 XPathDocument2Navigator.cs : garbage cleanup.
99 2005-08-05 Atsushi Enomoto <atsushi@ximian.com>
101 * Pattern.cs, IdPattern.cs, LocationPathPattern.cs, UnionPattern.cs :
102 added bool EvaluatedNodeType property (used in XslKeyTable).
104 2005-05-05 Atsushi Enomoto <atsushi@ximian.com>
106 * XPathEditableDocument.cs : sync with updated 2.0 API.
108 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
110 * DTMXPathDocumentWriter2.cs : use index for string pool.
112 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
114 * IdPattern.cs, LocationPathPattern.cs :
115 Use XsltCompiledContext.GetNavCache() that returns reusable
116 navigator cache for each pattern, to avoid Clone() and not to leave
117 reference to already-done instance navigator.
119 2004-03-22 Atsushi Enomoto <atsushi@ximian.com>
121 * Pattern.cs : Pattern.Compile() now uses XSLT pattern parser instead
123 * KeyPattern.cs : Matches() now just delegates to XsltKey.MatchesKey().
125 2004-03-22 Atsushi Enomoto <atsushi@ximian.com>
127 * DTMXPathDocumentBuilder.cs,
128 DTMXPathDocumentWriter.cs,
129 DTMXPathNavigator.cs,
130 DTMXPathNode.cs : updated to be equivalent to DTMXPathNavigator2.
131 * DTMXPathDocumentBuilder2.cs :
132 String pool is now under index based management. For nonAtomicIndex
133 string, don't try all the entries the pool holds. It causes
134 significant performance loss for large documents.
135 * DTMXPathDocument.cs,
136 DTMXPathDocument2.cs : removed unused fields (warning elimination).
138 2004-03-16 Atsushi Enomoto <atsushi@ximian.com>
140 * Pattern.cs : fixed incorrect optimization.
142 2004-03-15 Atsushi Enomoto <atsushi@ximian.com>
144 * DTMXPathDocumentBuilder2.cs : skip only Read() internally called
145 xmlReader.Read(). Simplify loop a bit.
147 2004-03-15 Atsushi Enomoto <atsushi@ximian.com>
149 * DTMXPathDocumentWriter2.cs : Eliminated Depth as well as -builder.
150 * DTMXPathNode2.cs, DTMXPathDocumentBuilder2.cs :
151 Eliminated Depth at all.
153 2004-03-15 Atsushi Enomoto <atsushi@ximian.com>
155 * DTMXPathDocumentBuilder2.cs : Eliminating Depth. Store parent index
156 stack instead of depending on Depth.
157 Just use hasAttributes and hasLocalNs instead of indices.
158 * DTMXPathNavigator2.cs : (get_Value) Check empty element earlier.
160 2004-03-14 Atsushi Enomoto <atsushi@ximian.com>
162 * DTMXPathNavigator2.cs : Eliminating Depth. (To completely eliminate,
163 we also have to eliminate them from builder and writer).
165 2004-03-07 Atsushi Enomoto <atsushi@ximian.com>
167 * DTMXPathDocumentBuilder2.cs : When there was an empty element and
168 namespace declarations, the next element namespace index was
169 incorrectly pointing to that of empty element.
171 2004-02-21 Atsushi Enomoto <atsushi@ximian.com>
173 * DTMXPathDocumentBuilder2.cs : whitespace node values were not added
176 2004-02-14 Atsushi Enomoto <atsushi@ximian.com>
178 * DTMXPathDocumentBuilder2.cs : in some cases, significant whitespace
179 is incorrectly regarded as Text. Patch by Andrew Skiba.
181 2005-02-09 Atsushi Enomoto <atsushi@ximian.com>
183 * LocationPathPattern.cs : Wildcard name is held as "", so we should
184 also check "" for wildcard. Patch by Andrew Skiba.
186 2005-01-25 Atsushi Enomoto <atsushi@ximian.com>
188 * XPathEditableDocument.cs : eliminating "throw new Exception".
190 2004-12-17 Atsushi Enomoto <atsushi@ximian.com>
192 * XPathNavigatorReader.cs : added CanReadBinaryContent and
193 CanReadValueChunk. Call Binary.Reset() to enable them.
195 2004-12-16 Atsushi Enomoto <atsushi@ximian.com>
197 * XPathNavigatorReader.cs : added SchemaInfo.
199 2004-12-04 Atsushi Enomoto <atsushi@ximian.com>
201 * DTMXPathNavigator.cs : added more constant fields to utility class.
203 2004-12-04 Atsushi Enomoto <atsushi@ximian.com>
205 * DTMXPathDocument2.cs,
206 DTMXPathNavigator2.cs,
207 DTMXPathDocumentBuilder2.cs,
208 DTMXPathDocumentWriter2.cs,
209 DTMXPathNode2.cs : added new implementation that uses string pool
210 and eliminates string field inside struct (IF we use struct).
212 2004-12-03 Atsushi Enomoto <atsushi@ximian.com>
214 * DTMXPathDocumentWriter.cs : Fix for DTM_CLASS switch that does not
215 allow unadjusted arrays.
217 2004-11-30 Atsushi Enomoto <atsushi@ximian.com>
219 * DTMXPathDocumentWriter.cs,
220 DTMXPathDocumentBuilder.cs,
221 DTMXPathNode.cs : SchemaType on attribute is not used.
223 2004-11-26 Atsushi Enomoto <atsushi@ximian.com>
225 * XPathNavigatorReader.cs,
226 KeyPattern.cs : warning removal
228 2004-11-19 Atsushi Enomoto <atsushi@ximian.com>
230 * XPathNavigatorReader.cs : changed to be compatible with that is
231 contained in Mono.Xml.Ext.dll.
233 2004-11-14 Atsushi Enomoto <atsushi@ximian.com>
235 * XPathEditableDocument.cs : WriteStartElement() should not expect
236 that there is an OwnerDocument (current node might be document).
238 2004-10-29 Atsushi Enomoto <atsushi@ximian.com>
240 * XPathEditableDocument.cs : internalize classes.
242 2004-10-28 Atsushi Enomoto <atsushi@ximian.com>
244 * XPathEditableDocument.cs : fixed wrong recursion problem.
246 2004-10-22 Atsushi Enomoto <atsushi@ximian.com>
248 * XPathEditableDocument.cs :
249 Now it implements updated version of .NET 2.0.
250 .ctor() should accept XmlNode, instead of XmlDocument.
252 2004-10-09 Atsushi Enomoto <atsushi@ximian.com>
254 * XPathNavigatorReader.cs : should be NET_2_0.
256 2004-10-08 Atsushi Enomoto <atsushi@ximian.com>
258 * XPathNavigatorReader.cs : IsDefault considers IXmlSchemaInfo
259 (it is anyways not implemented as yet.)
261 2004-10-05 Atsushi Enomoto <atsushi@ximian.com>
263 * XPathNavigatorReader.cs : Actually all other kind of nodes than
264 Element and Root must be treated as "start node only" as well as
265 attributes and namespaces.
267 2004-10-05 Atsushi Enomoto <atsushi@ximian.com>
269 * XPathDocument2Editable.cs : for WriteAttributes(), use
270 CreateAttributesWriter() that creates attribute tree XmlWriter.
271 * XPathNavigatorReader.cs : the reader was missing attributes when
272 it is created with an element node that has attriibutes.
274 2004-10-04 Atsushi Enomoto <atsushi@ximian.com>
276 * XPathNavigatorReader.cs : It can reject attribute and namespace
277 nodes as its input (It is used only for WriteNode(), InsertBefore()
278 and so on, which are not intended to be used with attribute nodes).
279 On Initial state, it was Element that should check IsEmptyElement,
280 and Root should just go to the first child node.
282 2004-10-04 Atsushi Enomoto <atsushi@ximian.com>
284 * XPathNavigatorReader.cs : When the reader's root node is not of type
285 Root, it incorrectly skipped the node itself.
287 2004-09-06 Atsushi Enomoto <atsushi@ximian.com>
289 * XPathDocument2.cs, XPathDocument2Editable.cs:
290 Redesigned API. Child node list should not be required (it also
291 harms performance). Reduced extraneous methods for XPathNavigator
292 / XPathEditableNavigator implementation support.
293 * XPathEditableDocument.cs : event registration was missing (due to
294 XPathDocument changes, it might not be required anymore though).
295 * XPathNavigatorReader.cs :
296 Namespace nodes were not handled correctly.
297 EOF handling was incorrect.
298 Reduced extraneous clone from MoveTo/GetAttribute(int) and
300 2004-09-01 Atsushi Enomoto <atsushi@ximian.com>
302 * XPathNavigatorReader.cs : on GetAttributeNavigator(int), namespace
303 node could be this XmlReader's attribute node.
305 2004-08-02 Atsushi Enomoto <atsushi@ximian.com>
307 * XPathDocument2.cs : new IXPathNavigable implementation
308 XPathDocument2Navigator.cs : new XPathNavigator implementation
309 XPathDocument2Editable.cs : new XPathEditableNavigator implementation
311 To use them in XPathDocument, set environment MONO_XPATH_DOCUMENT_2=yes
312 (It is still too unstable to pass all nunit tests and standalone XSLT
315 2004-07-30 Atsushi Enomoto <atsushi@ximian.com>
317 * DTMXPathNavigator.cs :
318 Fixed IsSamePosition(). currentAttr is not always the same as
319 that of other when current is not attribute. Ditto for currentNS
320 (when current is not namespace).
321 * XPathNavigatorReader.cs : Fixed NodeType - 1) When attribute value is
322 being consumed, then node type should be Text, and 2) Root node is
323 usually mapped to Document, but XmlReader never returns Document,
324 just None (both on Initial state and EndOfFile state).
326 2004-07-30 Atsushi Enomoto <atsushi@ximian.com>
328 * XPathNavigatorReader.cs : fixed GetAttributeNavigator() that
329 incorrectly used MoveToNextAttribute().
331 2004-07-29 Atsushi Enomoto <atsushi@ximian.com>
333 * XPathNavigatorReader.cs :
334 - it is used only in 2.0 classes.
335 - It now behaves as a fragment reader.
336 - Depth is optimized not to call Clone() and MoveToParent().
337 - AttributeCount could be counted only once in Read().
338 - ReadState transition is adjusted to be same as other XmlReaders.
339 - name strings now return "" on initial state.
341 2004-07-28 Atsushi Enomoto <atsushi@ximian.com>
343 * Added XPathEditableDocument.cs.
344 - XPathEditableDocument provides IXPathEditable.
345 - XmlDocumentEditableNavigator implements XPathEditableNavigator
346 that supports CreateAttributes(), AppendChild() and so on.
348 It is nothing more than hack, and as an XPathEditableNavigator
349 provider for XPathDocument, it will be replaced by something.
351 2004-07-13 Atsushi Enomoto <atsushi@ximian.com>
353 * Added XPathNavigatorReader.cs.
355 2004-06-06 Atsushi Enomoto <atsushi@ximian.com>
357 * DTMXPathDocumentBuilder.cs : Close XmlTextReader strictly. It might
358 raise an error after opening stream and before try-catch.
360 2004-05-20 Atsushi Enomoto <atsushi@ximian.com>
362 * Pattern.cs : don't throw System.Exception. Delegate error handling to
363 the only one caller CompilePattern().
365 2004-05-12 Atsushi Enomoto <atsushi@ximian.com>
367 * Pattern.cs : made class internal.
369 2004-02-26 Atsushi Enomoto <atsushi@ximian.com>
371 * DTMXPathDocumentBuilder.cs : Close XmlReader when we passed uri.
373 2004-02-18 Atsushi Enomoto <atsushi@ximian.com>
375 * LocationPathPattern.cs : Implemented easy XPathNavigator cache on
376 predicate evaluation in Matches().
378 2004-02-17 Atsushi Enomoto <atsushi@ximian.com>
380 * KeyPattern.cs, Pattern.cs : removed using decls.
382 2004-02-17 Atsushi Enomoto <atsushi@ximian.com>
384 * LocationPathPattern.cs : Optimized Matches(). For non-positional
385 patterns, it never iterates predicate, just evaluate boolean.
387 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
389 * DTMXPathDocument.cs,
390 DTMXPathDocumentBuilder.cs,
391 DTMXPathDocumentWriter.cs,
392 DTMXPathNavigator.cs,
394 Made classes internal by default (still publicly available with
395 OUTSIDE_SYSTEM_XML switch). Removed unused "position" field.
396 Optimized DTMXPathNavigator.Value a bit.
397 * LocationPathPattern.cs : Modified some fields to private.
399 2004-02-13 Atsushi Enomoto <atsushi@ximian.com>
401 * Added DTMXPathDocumentWriter.cs. It supports DTMXPathNavigator as
402 the resulting document tree.
403 * DTMXPathDocumentBuilder.cs : Code refactory (to get closer to dtm
404 writer and commonify tasks they both should do). Reduced initial
405 array size (400 to 200, for attribute 800 to 200), and extending
406 size from 2x to 4x (to reduce _times_ of allication copy).
407 * DTMXPathNode.cs : (and all above) added experimental "DTM_CLASS"
408 switch, which changes nodes from struct to class. (It will reduce
409 memory consumption by 2/3, but will also reduce speed by 2/3.)
411 2004-01-27 Atsushi Enomoto <atsushi@ximian.com>
413 * DTMXPathDocumentBuilder.cs : Namespace nodes are incorrectly created.
414 This fix should make XPathDocument compatible with XmlDocument.
416 2004-01-26 Atsushi Enomoto <atsushi@ximian.com>
418 * DTMXPathDocument.cs : CreateNavigator() should return the first root
420 * DTMXPathNavigator.cs : ComparePosition() incorrectly compared
421 attributes and namespaces orders. Implemented IsSamePosition() more
422 efficient. MoveToFirstNamespace() should return false when the
423 current node is either attribute or namespace. Fixed IsDescendant()
424 which looks resulted in incorrect behavior.
426 2003-12-18 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
428 * DTMXPathDocumentBuilder.cs : Removed supportsID argument and always
429 assumes to support IDs when specified XmlValidatingReader.
430 Quick fix for NullReferenceException when type was null.
432 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
434 * KeyPattern.cs : Matches() should iterate candidate keys to the end.
436 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
439 KeyPattern.cs : Implemented Matches(), overrode DefaultPriority,
440 modified inheritance.
441 * Pattern.cs : Added id and key pattern support.
443 2003-11-02 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
445 * DTMXPathNavigator.cs : Fixed MoveToNamespace() that might result in
448 2003-10-04 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
450 * DTMXPathDocumentBuilder.cs : Bugfix for whitespace handling.
452 2003-10-01 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
454 * Added DTMXPathNode.cs.
455 * Fundamental changes in whole DTM stuff. Node information is now array
456 of "node struct" instead of individual arrays.
458 2003-09-21 Ben Maurer <bmaurer@users.sourceforge.net>
460 * Pattern.cs: save the parser (will reduce memory allocation when
461 Jackson's jay patch is committed).
463 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
465 * Pattern.cs: Typo, when i got //a i was giving off /
466 * LocationPathPattern.cs: Append to the tail, not head.
468 2003-09-14 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
470 * DTMXPathNavigator.cs,
472 DTMXPathDocumentBuilder.cs : Added IXmlLineInfo support. Removed
473 node's extraneous schemaType. Some code reformatting.
475 2003-09-13 Ben Maurer <bmaurer@users.sourceforge.net>
477 * Pattern.cs: Support static context.
479 2003-08-25 Ben Maurer <bmaurer@users.sourceforge.net>
481 * DTMXPathNavigator.cs: Allocate valueBuilder on first use.
483 2003-08-14 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
485 * DTMXPathDocument.cs,
486 DTMXPathDocumentBuilder.cs,
487 DTMXPathNavigator.cs :
488 - Implemented ID support using XmlValidatingReader.
489 - Prefix should be String.Empty even if XmlReader.Prefix is null.
491 2003-07-23 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
493 * DTMXPathDocumentBuilder.cs :
494 Fixed Read() that sets nodes' parent incorrectly.
496 2003-07-17 Peter Williams <peter@newton.cx>
498 * DTMXPathDocumentBuilder.cs: csc.exe is more stringent about namespaces
499 than mcs. We need to disambiguate System.Math from Mono.Math here.
501 2003-06-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
504 * Added ChangeLog, DTMXPathDocument.cs, DTMXPathDocumentBuilder.cs
505 and DTMXPathNavigator.cs.