1 2006-09-11 Atsushi Enomoto <atsushi@ximian.com>
3 * XPathEditableDocument.cs : DocumentFragment should also be allowed
6 2006-09-08 Atsushi Enomoto <atsushi@ximian.com>
8 * DTMXPathDocumentWriter2.cs : fill String.Empty for null ns in
9 WriteStartElement() and WriteStartAttribute().
11 2006-09-01 Atsushi Enomoto <atsushi@ximian.com>
13 * XPathNavigatorReader.cs : MoveToFirstAttribute() should return
14 true when current node is an attribute (including namespace node).
16 2006-08-28 Atsushi Enomoto <atsushi@ximian.com>
18 * DTMXPathDocumentWriter2.cs : use String.Empty instead of null for
19 localName for those nodes which does not have a name.
21 2006-04-10 Atsushi Enomoto <atsushi@ximian.com>
23 * XPathNavigatorReader.cs : Read() did not compute Depth correctly.
26 2006-02-21 Atsushi Enomoto <atsushi@ximian.com>
28 * DTMXPathNavigator2.cs : removed valueBuilder field (create
29 StringBuilder dynamically).
31 2006-02-16 Atsushi Enomoto <atsushi@ximian.com>
33 * DTMXPathDocument2.cs, DTMXPathNavigator2.cs :
34 Do not store mutable XPathDocument fields in every navigators.
35 It saves memory a lot.
37 2005-12-14 Atsushi Enomoto <atsushi@ximian.com>
39 * XPathNavigatorReader.cs : oh, so it used to compile under 1.x.
41 2005-12-14 Atsushi Enomoto <atsushi@ximian.com>
43 * XPathNavigatorReader.cs : several fixes.
44 - Unless ReadState is Interactive, all name stuff should return "".
45 - Refactored Read() to work fine when input navigator is Root.
46 - Fixed all MoveTo*Attribute() methods match with other XmlReaders.
47 - Namespace nodes were not handled fine in MoveTo*Attribute().
49 2005-12-14 Atsushi Enomoto <atsushi@ximian.com>
51 * XPathEditableDocument.cs : added UnderlyingObject.
53 2005-12-14 Atsushi Enomoto <atsushi@ximian.com>
55 * XPathEditableDocument.cs : added 2.0 SchemaInfo.
57 2005-12-13 Atsushi Enomoto <atsushi@ximian.com>
59 * XPathEditableDocument.cs : implement ReplaceSelf() here.
61 2005-12-13 Atsushi Enomoto <atsushi@ximian.com>
63 * XPathEditableDocument.cs :
64 - Now it does not append "written" nodes until Close() is invoked.
65 - Use XmlDocumentFragment to store incomplete tree fragment.
66 - Implemented DeleteRange() and ReplaceRange().
67 - Added "Closed" event for ReplaceRange() to "not remove until
70 2005-12-13 Atsushi Enomoto <atsushi@ximian.com>
72 * XPathEditableDocument.cs :
73 - Removed almost all redundant code in XPathEditableDocument,
74 which is based on .net 1.2 XPathDocument functionality.
75 - It was always doing AppendChild even if the operation is
76 InsertBefore or InsertAfter.
78 2005-12-13 Atsushi Enomoto <atsushi@ximian.com>
80 * XPathEditableDocument.cs :
81 XmlDocumentInsertionWriter.WriteFullEndElement() should set IsEmpty
82 of the element before pop.
84 2005-12-08 Atsushi Enomoto <atsushi@ximian.com>
86 * XPathDocument2.cs, XPathDocument2Editable.cs,
87 XPathDocument2Navigator.cs : garbage cleanup.
89 2005-08-05 Atsushi Enomoto <atsushi@ximian.com>
91 * Pattern.cs, IdPattern.cs, LocationPathPattern.cs, UnionPattern.cs :
92 added bool EvaluatedNodeType property (used in XslKeyTable).
94 2005-05-05 Atsushi Enomoto <atsushi@ximian.com>
96 * XPathEditableDocument.cs : sync with updated 2.0 API.
98 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
100 * DTMXPathDocumentWriter2.cs : use index for string pool.
102 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
104 * IdPattern.cs, LocationPathPattern.cs :
105 Use XsltCompiledContext.GetNavCache() that returns reusable
106 navigator cache for each pattern, to avoid Clone() and not to leave
107 reference to already-done instance navigator.
109 2004-03-22 Atsushi Enomoto <atsushi@ximian.com>
111 * Pattern.cs : Pattern.Compile() now uses XSLT pattern parser instead
113 * KeyPattern.cs : Matches() now just delegates to XsltKey.MatchesKey().
115 2004-03-22 Atsushi Enomoto <atsushi@ximian.com>
117 * DTMXPathDocumentBuilder.cs,
118 DTMXPathDocumentWriter.cs,
119 DTMXPathNavigator.cs,
120 DTMXPathNode.cs : updated to be equivalent to DTMXPathNavigator2.
121 * DTMXPathDocumentBuilder2.cs :
122 String pool is now under index based management. For nonAtomicIndex
123 string, don't try all the entries the pool holds. It causes
124 significant performance loss for large documents.
125 * DTMXPathDocument.cs,
126 DTMXPathDocument2.cs : removed unused fields (warning elimination).
128 2004-03-16 Atsushi Enomoto <atsushi@ximian.com>
130 * Pattern.cs : fixed incorrect optimization.
132 2004-03-15 Atsushi Enomoto <atsushi@ximian.com>
134 * DTMXPathDocumentBuilder2.cs : skip only Read() internally called
135 xmlReader.Read(). Simplify loop a bit.
137 2004-03-15 Atsushi Enomoto <atsushi@ximian.com>
139 * DTMXPathDocumentWriter2.cs : Eliminated Depth as well as -builder.
140 * DTMXPathNode2.cs, DTMXPathDocumentBuilder2.cs :
141 Eliminated Depth at all.
143 2004-03-15 Atsushi Enomoto <atsushi@ximian.com>
145 * DTMXPathDocumentBuilder2.cs : Eliminating Depth. Store parent index
146 stack instead of depending on Depth.
147 Just use hasAttributes and hasLocalNs instead of indices.
148 * DTMXPathNavigator2.cs : (get_Value) Check empty element earlier.
150 2004-03-14 Atsushi Enomoto <atsushi@ximian.com>
152 * DTMXPathNavigator2.cs : Eliminating Depth. (To completely eliminate,
153 we also have to eliminate them from builder and writer).
155 2004-03-07 Atsushi Enomoto <atsushi@ximian.com>
157 * DTMXPathDocumentBuilder2.cs : When there was an empty element and
158 namespace declarations, the next element namespace index was
159 incorrectly pointing to that of empty element.
161 2004-02-21 Atsushi Enomoto <atsushi@ximian.com>
163 * DTMXPathDocumentBuilder2.cs : whitespace node values were not added
166 2004-02-14 Atsushi Enomoto <atsushi@ximian.com>
168 * DTMXPathDocumentBuilder2.cs : in some cases, significant whitespace
169 is incorrectly regarded as Text. Patch by Andrew Skiba.
171 2005-02-09 Atsushi Enomoto <atsushi@ximian.com>
173 * LocationPathPattern.cs : Wildcard name is held as "", so we should
174 also check "" for wildcard. Patch by Andrew Skiba.
176 2005-01-25 Atsushi Enomoto <atsushi@ximian.com>
178 * XPathEditableDocument.cs : eliminating "throw new Exception".
180 2004-12-17 Atsushi Enomoto <atsushi@ximian.com>
182 * XPathNavigatorReader.cs : added CanReadBinaryContent and
183 CanReadValueChunk. Call Binary.Reset() to enable them.
185 2004-12-16 Atsushi Enomoto <atsushi@ximian.com>
187 * XPathNavigatorReader.cs : added SchemaInfo.
189 2004-12-04 Atsushi Enomoto <atsushi@ximian.com>
191 * DTMXPathNavigator.cs : added more constant fields to utility class.
193 2004-12-04 Atsushi Enomoto <atsushi@ximian.com>
195 * DTMXPathDocument2.cs,
196 DTMXPathNavigator2.cs,
197 DTMXPathDocumentBuilder2.cs,
198 DTMXPathDocumentWriter2.cs,
199 DTMXPathNode2.cs : added new implementation that uses string pool
200 and eliminates string field inside struct (IF we use struct).
202 2004-12-03 Atsushi Enomoto <atsushi@ximian.com>
204 * DTMXPathDocumentWriter.cs : Fix for DTM_CLASS switch that does not
205 allow unadjusted arrays.
207 2004-11-30 Atsushi Enomoto <atsushi@ximian.com>
209 * DTMXPathDocumentWriter.cs,
210 DTMXPathDocumentBuilder.cs,
211 DTMXPathNode.cs : SchemaType on attribute is not used.
213 2004-11-26 Atsushi Enomoto <atsushi@ximian.com>
215 * XPathNavigatorReader.cs,
216 KeyPattern.cs : warning removal
218 2004-11-19 Atsushi Enomoto <atsushi@ximian.com>
220 * XPathNavigatorReader.cs : changed to be compatible with that is
221 contained in Mono.Xml.Ext.dll.
223 2004-11-14 Atsushi Enomoto <atsushi@ximian.com>
225 * XPathEditableDocument.cs : WriteStartElement() should not expect
226 that there is an OwnerDocument (current node might be document).
228 2004-10-29 Atsushi Enomoto <atsushi@ximian.com>
230 * XPathEditableDocument.cs : internalize classes.
232 2004-10-28 Atsushi Enomoto <atsushi@ximian.com>
234 * XPathEditableDocument.cs : fixed wrong recursion problem.
236 2004-10-22 Atsushi Enomoto <atsushi@ximian.com>
238 * XPathEditableDocument.cs :
239 Now it implements updated version of .NET 2.0.
240 .ctor() should accept XmlNode, instead of XmlDocument.
242 2004-10-09 Atsushi Enomoto <atsushi@ximian.com>
244 * XPathNavigatorReader.cs : should be NET_2_0.
246 2004-10-08 Atsushi Enomoto <atsushi@ximian.com>
248 * XPathNavigatorReader.cs : IsDefault considers IXmlSchemaInfo
249 (it is anyways not implemented as yet.)
251 2004-10-05 Atsushi Enomoto <atsushi@ximian.com>
253 * XPathNavigatorReader.cs : Actually all other kind of nodes than
254 Element and Root must be treated as "start node only" as well as
255 attributes and namespaces.
257 2004-10-05 Atsushi Enomoto <atsushi@ximian.com>
259 * XPathDocument2Editable.cs : for WriteAttributes(), use
260 CreateAttributesWriter() that creates attribute tree XmlWriter.
261 * XPathNavigatorReader.cs : the reader was missing attributes when
262 it is created with an element node that has attriibutes.
264 2004-10-04 Atsushi Enomoto <atsushi@ximian.com>
266 * XPathNavigatorReader.cs : It can reject attribute and namespace
267 nodes as its input (It is used only for WriteNode(), InsertBefore()
268 and so on, which are not intended to be used with attribute nodes).
269 On Initial state, it was Element that should check IsEmptyElement,
270 and Root should just go to the first child node.
272 2004-10-04 Atsushi Enomoto <atsushi@ximian.com>
274 * XPathNavigatorReader.cs : When the reader's root node is not of type
275 Root, it incorrectly skipped the node itself.
277 2004-09-06 Atsushi Enomoto <atsushi@ximian.com>
279 * XPathDocument2.cs, XPathDocument2Editable.cs:
280 Redesigned API. Child node list should not be required (it also
281 harms performance). Reduced extraneous methods for XPathNavigator
282 / XPathEditableNavigator implementation support.
283 * XPathEditableDocument.cs : event registration was missing (due to
284 XPathDocument changes, it might not be required anymore though).
285 * XPathNavigatorReader.cs :
286 Namespace nodes were not handled correctly.
287 EOF handling was incorrect.
288 Reduced extraneous clone from MoveTo/GetAttribute(int) and
290 2004-09-01 Atsushi Enomoto <atsushi@ximian.com>
292 * XPathNavigatorReader.cs : on GetAttributeNavigator(int), namespace
293 node could be this XmlReader's attribute node.
295 2004-08-02 Atsushi Enomoto <atsushi@ximian.com>
297 * XPathDocument2.cs : new IXPathNavigable implementation
298 XPathDocument2Navigator.cs : new XPathNavigator implementation
299 XPathDocument2Editable.cs : new XPathEditableNavigator implementation
301 To use them in XPathDocument, set environment MONO_XPATH_DOCUMENT_2=yes
302 (It is still too unstable to pass all nunit tests and standalone XSLT
305 2004-07-30 Atsushi Enomoto <atsushi@ximian.com>
307 * DTMXPathNavigator.cs :
308 Fixed IsSamePosition(). currentAttr is not always the same as
309 that of other when current is not attribute. Ditto for currentNS
310 (when current is not namespace).
311 * XPathNavigatorReader.cs : Fixed NodeType - 1) When attribute value is
312 being consumed, then node type should be Text, and 2) Root node is
313 usually mapped to Document, but XmlReader never returns Document,
314 just None (both on Initial state and EndOfFile state).
316 2004-07-30 Atsushi Enomoto <atsushi@ximian.com>
318 * XPathNavigatorReader.cs : fixed GetAttributeNavigator() that
319 incorrectly used MoveToNextAttribute().
321 2004-07-29 Atsushi Enomoto <atsushi@ximian.com>
323 * XPathNavigatorReader.cs :
324 - it is used only in 2.0 classes.
325 - It now behaves as a fragment reader.
326 - Depth is optimized not to call Clone() and MoveToParent().
327 - AttributeCount could be counted only once in Read().
328 - ReadState transition is adjusted to be same as other XmlReaders.
329 - name strings now return "" on initial state.
331 2004-07-28 Atsushi Enomoto <atsushi@ximian.com>
333 * Added XPathEditableDocument.cs.
334 - XPathEditableDocument provides IXPathEditable.
335 - XmlDocumentEditableNavigator implements XPathEditableNavigator
336 that supports CreateAttributes(), AppendChild() and so on.
338 It is nothing more than hack, and as an XPathEditableNavigator
339 provider for XPathDocument, it will be replaced by something.
341 2004-07-13 Atsushi Enomoto <atsushi@ximian.com>
343 * Added XPathNavigatorReader.cs.
345 2004-06-06 Atsushi Enomoto <atsushi@ximian.com>
347 * DTMXPathDocumentBuilder.cs : Close XmlTextReader strictly. It might
348 raise an error after opening stream and before try-catch.
350 2004-05-20 Atsushi Enomoto <atsushi@ximian.com>
352 * Pattern.cs : don't throw System.Exception. Delegate error handling to
353 the only one caller CompilePattern().
355 2004-05-12 Atsushi Enomoto <atsushi@ximian.com>
357 * Pattern.cs : made class internal.
359 2004-02-26 Atsushi Enomoto <atsushi@ximian.com>
361 * DTMXPathDocumentBuilder.cs : Close XmlReader when we passed uri.
363 2004-02-18 Atsushi Enomoto <atsushi@ximian.com>
365 * LocationPathPattern.cs : Implemented easy XPathNavigator cache on
366 predicate evaluation in Matches().
368 2004-02-17 Atsushi Enomoto <atsushi@ximian.com>
370 * KeyPattern.cs, Pattern.cs : removed using decls.
372 2004-02-17 Atsushi Enomoto <atsushi@ximian.com>
374 * LocationPathPattern.cs : Optimized Matches(). For non-positional
375 patterns, it never iterates predicate, just evaluate boolean.
377 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
379 * DTMXPathDocument.cs,
380 DTMXPathDocumentBuilder.cs,
381 DTMXPathDocumentWriter.cs,
382 DTMXPathNavigator.cs,
384 Made classes internal by default (still publicly available with
385 OUTSIDE_SYSTEM_XML switch). Removed unused "position" field.
386 Optimized DTMXPathNavigator.Value a bit.
387 * LocationPathPattern.cs : Modified some fields to private.
389 2004-02-13 Atsushi Enomoto <atsushi@ximian.com>
391 * Added DTMXPathDocumentWriter.cs. It supports DTMXPathNavigator as
392 the resulting document tree.
393 * DTMXPathDocumentBuilder.cs : Code refactory (to get closer to dtm
394 writer and commonify tasks they both should do). Reduced initial
395 array size (400 to 200, for attribute 800 to 200), and extending
396 size from 2x to 4x (to reduce _times_ of allication copy).
397 * DTMXPathNode.cs : (and all above) added experimental "DTM_CLASS"
398 switch, which changes nodes from struct to class. (It will reduce
399 memory consumption by 2/3, but will also reduce speed by 2/3.)
401 2004-01-27 Atsushi Enomoto <atsushi@ximian.com>
403 * DTMXPathDocumentBuilder.cs : Namespace nodes are incorrectly created.
404 This fix should make XPathDocument compatible with XmlDocument.
406 2004-01-26 Atsushi Enomoto <atsushi@ximian.com>
408 * DTMXPathDocument.cs : CreateNavigator() should return the first root
410 * DTMXPathNavigator.cs : ComparePosition() incorrectly compared
411 attributes and namespaces orders. Implemented IsSamePosition() more
412 efficient. MoveToFirstNamespace() should return false when the
413 current node is either attribute or namespace. Fixed IsDescendant()
414 which looks resulted in incorrect behavior.
416 2003-12-18 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
418 * DTMXPathDocumentBuilder.cs : Removed supportsID argument and always
419 assumes to support IDs when specified XmlValidatingReader.
420 Quick fix for NullReferenceException when type was null.
422 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
424 * KeyPattern.cs : Matches() should iterate candidate keys to the end.
426 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
429 KeyPattern.cs : Implemented Matches(), overrode DefaultPriority,
430 modified inheritance.
431 * Pattern.cs : Added id and key pattern support.
433 2003-11-02 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
435 * DTMXPathNavigator.cs : Fixed MoveToNamespace() that might result in
438 2003-10-04 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
440 * DTMXPathDocumentBuilder.cs : Bugfix for whitespace handling.
442 2003-10-01 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
444 * Added DTMXPathNode.cs.
445 * Fundamental changes in whole DTM stuff. Node information is now array
446 of "node struct" instead of individual arrays.
448 2003-09-21 Ben Maurer <bmaurer@users.sourceforge.net>
450 * Pattern.cs: save the parser (will reduce memory allocation when
451 Jackson's jay patch is committed).
453 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
455 * Pattern.cs: Typo, when i got //a i was giving off /
456 * LocationPathPattern.cs: Append to the tail, not head.
458 2003-09-14 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
460 * DTMXPathNavigator.cs,
462 DTMXPathDocumentBuilder.cs : Added IXmlLineInfo support. Removed
463 node's extraneous schemaType. Some code reformatting.
465 2003-09-13 Ben Maurer <bmaurer@users.sourceforge.net>
467 * Pattern.cs: Support static context.
469 2003-08-25 Ben Maurer <bmaurer@users.sourceforge.net>
471 * DTMXPathNavigator.cs: Allocate valueBuilder on first use.
473 2003-08-14 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
475 * DTMXPathDocument.cs,
476 DTMXPathDocumentBuilder.cs,
477 DTMXPathNavigator.cs :
478 - Implemented ID support using XmlValidatingReader.
479 - Prefix should be String.Empty even if XmlReader.Prefix is null.
481 2003-07-23 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
483 * DTMXPathDocumentBuilder.cs :
484 Fixed Read() that sets nodes' parent incorrectly.
486 2003-07-17 Peter Williams <peter@newton.cx>
488 * DTMXPathDocumentBuilder.cs: csc.exe is more stringent about namespaces
489 than mcs. We need to disambiguate System.Math from Mono.Math here.
491 2003-06-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
494 * Added ChangeLog, DTMXPathDocument.cs, DTMXPathDocumentBuilder.cs
495 and DTMXPathNavigator.cs.