2007-02-01 Atsushi Enomoto <atsushi@ximian.com>
[mono.git] / mcs / class / System.XML / Mono.Xml.XPath / ChangeLog
1 2007-02-01  Atsushi Enomoto <atsushi@ximian.com>
2
3         * DTMXPathDocumentWriter2.cs : supply prefix when it was not passed.
4
5 2007-01-31  Atsushi Enomoto <atsushi@ximian.com>
6
7         * DTMXPathNavigator2.cs : cosmetic performance improvement.
8
9 2007-01-05  Atsushi Enomoto <atsushi@ximian.com>
10
11         * DTMXPathDocumentBuilder2.cs : fixed incorrect namespace node links
12           which happened to following siblings of a node with namespaces.
13
14 2006-12-05  Atsushi Enomoto <atsushi@ximian.com>
15
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.
20
21 2006-11-10  Atsushi Enomoto <atsushi@ximian.com>
22
23         * XPathNavigatorReader.cs : removed node type restriction on 
24           initialization.  Fixed bug #79874, when tied to XPathNavigator fix.
25
26 2006-10-11  Atsushi Enomoto <atsushi@ximian.com>
27
28         * XPathEditableDocument.cs : (XmlDocumentEditableNavigator)
29           implement CanEdit to return true.
30
31 2006-09-11  Atsushi Enomoto <atsushi@ximian.com>
32
33         * XPathEditableDocument.cs : DocumentFragment should also be allowed
34           to have a child.
35
36 2006-09-08  Atsushi Enomoto <atsushi@ximian.com>
37
38         * DTMXPathDocumentWriter2.cs : fill String.Empty for null ns in
39           WriteStartElement() and WriteStartAttribute().
40
41 2006-09-01  Atsushi Enomoto <atsushi@ximian.com>
42
43         * XPathNavigatorReader.cs : MoveToFirstAttribute() should return
44           true when current node is an attribute (including namespace node).
45
46 2006-08-28  Atsushi Enomoto <atsushi@ximian.com>
47
48         * DTMXPathDocumentWriter2.cs : use String.Empty instead of null for
49           localName for those nodes which does not have a name.
50
51 2006-04-10  Atsushi Enomoto <atsushi@ximian.com>
52
53         * XPathNavigatorReader.cs : Read() did not compute Depth correctly.
54           It caused bug #78067.
55
56 2006-02-21  Atsushi Enomoto <atsushi@ximian.com>
57
58         * DTMXPathNavigator2.cs : removed valueBuilder field (create 
59           StringBuilder dynamically).
60
61 2006-02-16  Atsushi Enomoto <atsushi@ximian.com>
62
63         * DTMXPathDocument2.cs, DTMXPathNavigator2.cs :
64           Do not store mutable XPathDocument fields in every navigators.
65           It saves memory a lot.
66
67 2005-12-14  Atsushi Enomoto <atsushi@ximian.com>
68
69         * XPathNavigatorReader.cs : oh, so it used to compile under 1.x.
70
71 2005-12-14  Atsushi Enomoto <atsushi@ximian.com>
72
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().
78
79 2005-12-14  Atsushi Enomoto <atsushi@ximian.com>
80
81         * XPathEditableDocument.cs : added UnderlyingObject.
82
83 2005-12-14  Atsushi Enomoto <atsushi@ximian.com>
84
85         * XPathEditableDocument.cs : added 2.0 SchemaInfo.
86
87 2005-12-13  Atsushi Enomoto  <atsushi@ximian.com>
88
89         * XPathEditableDocument.cs : implement ReplaceSelf() here.
90
91 2005-12-13  Atsushi Enomoto  <atsushi@ximian.com>
92
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
98             Close() is called."
99
100 2005-12-13  Atsushi Enomoto  <atsushi@ximian.com>
101
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.
107
108 2005-12-13  Atsushi Enomoto  <atsushi@ximian.com>
109
110         * XPathEditableDocument.cs : 
111           XmlDocumentInsertionWriter.WriteFullEndElement() should set IsEmpty
112           of the element before pop.
113
114 2005-12-08  Atsushi Enomoto  <atsushi@ximian.com>
115
116         * XPathDocument2.cs, XPathDocument2Editable.cs,
117           XPathDocument2Navigator.cs : garbage cleanup.
118
119 2005-08-05  Atsushi Enomoto  <atsushi@ximian.com>
120
121         * Pattern.cs, IdPattern.cs, LocationPathPattern.cs, UnionPattern.cs :
122           added bool EvaluatedNodeType property (used in XslKeyTable).
123
124 2005-05-05  Atsushi Enomoto  <atsushi@ximian.com>
125
126         * XPathEditableDocument.cs : sync with updated 2.0 API.
127
128 2005-03-22  Atsushi Enomoto  <atsushi@ximian.com>
129
130         * DTMXPathDocumentWriter2.cs : use index for string pool.
131
132 2005-03-22  Atsushi Enomoto  <atsushi@ximian.com>
133
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.
138
139 2004-03-22  Atsushi Enomoto  <atsushi@ximian.com>
140
141         * Pattern.cs : Pattern.Compile() now uses XSLT pattern parser instead
142           of XPath parser.
143         * KeyPattern.cs : Matches() now just delegates to XsltKey.MatchesKey().
144
145 2004-03-22  Atsushi Enomoto  <atsushi@ximian.com>
146
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).
157
158 2004-03-16  Atsushi Enomoto  <atsushi@ximian.com>
159
160         * Pattern.cs : fixed incorrect optimization.
161
162 2004-03-15  Atsushi Enomoto  <atsushi@ximian.com>
163
164         * DTMXPathDocumentBuilder2.cs : skip only Read() internally called
165           xmlReader.Read(). Simplify loop a bit.
166
167 2004-03-15  Atsushi Enomoto  <atsushi@ximian.com>
168
169         * DTMXPathDocumentWriter2.cs : Eliminated Depth as well as -builder.
170         * DTMXPathNode2.cs, DTMXPathDocumentBuilder2.cs :
171           Eliminated Depth at all.
172
173 2004-03-15  Atsushi Enomoto  <atsushi@ximian.com>
174
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.
179
180 2004-03-14  Atsushi Enomoto  <atsushi@ximian.com>
181
182         * DTMXPathNavigator2.cs : Eliminating Depth. (To completely eliminate,
183           we also have to eliminate them from builder and writer).
184
185 2004-03-07  Atsushi Enomoto  <atsushi@ximian.com>
186
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.
190
191 2004-02-21  Atsushi Enomoto  <atsushi@ximian.com>
192
193         * DTMXPathDocumentBuilder2.cs : whitespace node values were not added
194           to Value.
195
196 2004-02-14  Atsushi Enomoto  <atsushi@ximian.com>
197
198         * DTMXPathDocumentBuilder2.cs : in some cases, significant whitespace
199           is incorrectly regarded as Text. Patch by Andrew Skiba.
200
201 2005-02-09  Atsushi Enomoto <atsushi@ximian.com>
202
203         * LocationPathPattern.cs : Wildcard name is held as "", so we should
204           also check "" for wildcard. Patch by Andrew Skiba.
205
206 2005-01-25  Atsushi Enomoto <atsushi@ximian.com>
207
208         * XPathEditableDocument.cs : eliminating "throw new Exception".
209
210 2004-12-17  Atsushi Enomoto <atsushi@ximian.com>
211
212         * XPathNavigatorReader.cs : added CanReadBinaryContent and
213           CanReadValueChunk. Call Binary.Reset() to enable them.
214
215 2004-12-16  Atsushi Enomoto <atsushi@ximian.com>
216
217         * XPathNavigatorReader.cs : added SchemaInfo.
218
219 2004-12-04  Atsushi Enomoto <atsushi@ximian.com>
220
221         * DTMXPathNavigator.cs : added more constant fields to utility class.
222
223 2004-12-04  Atsushi Enomoto <atsushi@ximian.com>
224
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).
231
232 2004-12-03  Atsushi Enomoto <atsushi@ximian.com>
233
234         * DTMXPathDocumentWriter.cs : Fix for DTM_CLASS switch that does not
235           allow unadjusted arrays.
236
237 2004-11-30  Atsushi Enomoto <atsushi@ximian.com>
238
239         * DTMXPathDocumentWriter.cs,
240           DTMXPathDocumentBuilder.cs,
241           DTMXPathNode.cs : SchemaType on attribute is not used.
242
243 2004-11-26  Atsushi Enomoto <atsushi@ximian.com>
244
245         * XPathNavigatorReader.cs,
246           KeyPattern.cs : warning removal
247
248 2004-11-19  Atsushi Enomoto <atsushi@ximian.com>
249
250         * XPathNavigatorReader.cs : changed to be compatible with that is
251           contained in Mono.Xml.Ext.dll.
252
253 2004-11-14  Atsushi Enomoto <atsushi@ximian.com>
254
255         * XPathEditableDocument.cs : WriteStartElement() should not expect
256           that there is an OwnerDocument (current node might be document).
257
258 2004-10-29  Atsushi Enomoto <atsushi@ximian.com>
259
260         * XPathEditableDocument.cs : internalize classes.
261
262 2004-10-28  Atsushi Enomoto <atsushi@ximian.com>
263
264         * XPathEditableDocument.cs : fixed wrong recursion problem.
265
266 2004-10-22  Atsushi Enomoto <atsushi@ximian.com>
267
268         * XPathEditableDocument.cs :
269           Now it implements updated version of .NET 2.0.
270           .ctor() should accept XmlNode, instead of XmlDocument.
271
272 2004-10-09  Atsushi Enomoto <atsushi@ximian.com>
273
274         * XPathNavigatorReader.cs : should be NET_2_0.
275
276 2004-10-08  Atsushi Enomoto <atsushi@ximian.com>
277
278         * XPathNavigatorReader.cs : IsDefault considers IXmlSchemaInfo
279           (it is anyways not implemented as yet.)
280
281 2004-10-05  Atsushi Enomoto <atsushi@ximian.com>
282
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.
286
287 2004-10-05  Atsushi Enomoto <atsushi@ximian.com>
288
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.
293
294 2004-10-04  Atsushi Enomoto <atsushi@ximian.com>
295
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.
301
302 2004-10-04  Atsushi Enomoto <atsushi@ximian.com>
303
304         * XPathNavigatorReader.cs : When the reader's root node is not of type
305           Root, it incorrectly skipped the node itself.
306
307 2004-09-06  Atsushi Enomoto <atsushi@ximian.com>
308
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
319
320 2004-09-01  Atsushi Enomoto <atsushi@ximian.com>
321
322         * XPathNavigatorReader.cs : on GetAttributeNavigator(int), namespace
323           node could be this XmlReader's attribute node.
324
325 2004-08-02  Atsushi Enomoto <atsushi@ximian.com>
326
327         * XPathDocument2.cs : new IXPathNavigable implementation
328           XPathDocument2Navigator.cs : new XPathNavigator implementation
329           XPathDocument2Editable.cs : new XPathEditableNavigator implementation
330
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
333         tests).
334
335 2004-07-30  Atsushi Enomoto <atsushi@ximian.com>
336
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).
345
346 2004-07-30  Atsushi Enomoto <atsushi@ximian.com>
347
348         * XPathNavigatorReader.cs : fixed GetAttributeNavigator() that
349           incorrectly used MoveToNextAttribute().
350
351 2004-07-29  Atsushi Enomoto <atsushi@ximian.com>
352
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.
360
361 2004-07-28  Atsushi Enomoto <atsushi@ximian.com>
362
363         * Added XPathEditableDocument.cs.
364           - XPathEditableDocument provides IXPathEditable.
365           - XmlDocumentEditableNavigator implements XPathEditableNavigator
366             that supports CreateAttributes(), AppendChild() and so on.
367
368           It is nothing more than hack, and as an XPathEditableNavigator
369           provider for XPathDocument, it will be replaced by something.
370
371 2004-07-13  Atsushi Enomoto <atsushi@ximian.com>
372
373         * Added XPathNavigatorReader.cs.
374
375 2004-06-06  Atsushi Enomoto <atsushi@ximian.com>
376
377         * DTMXPathDocumentBuilder.cs : Close XmlTextReader strictly. It might
378           raise an error after opening stream and before try-catch.
379
380 2004-05-20  Atsushi Enomoto <atsushi@ximian.com>
381
382         * Pattern.cs : don't throw System.Exception. Delegate error handling to
383           the only one caller CompilePattern().
384
385 2004-05-12  Atsushi Enomoto <atsushi@ximian.com>
386
387         * Pattern.cs : made class internal.
388
389 2004-02-26  Atsushi Enomoto <atsushi@ximian.com>
390
391         * DTMXPathDocumentBuilder.cs : Close XmlReader when we passed uri.
392
393 2004-02-18  Atsushi Enomoto <atsushi@ximian.com>
394
395         * LocationPathPattern.cs : Implemented easy XPathNavigator cache on
396           predicate evaluation in Matches().
397
398 2004-02-17  Atsushi Enomoto <atsushi@ximian.com>
399
400         * KeyPattern.cs, Pattern.cs : removed using decls.
401
402 2004-02-17  Atsushi Enomoto <atsushi@ximian.com>
403
404         * LocationPathPattern.cs : Optimized Matches(). For non-positional
405           patterns, it never iterates predicate, just evaluate boolean.
406
407 2004-02-16  Atsushi Enomoto <atsushi@ximian.com>
408
409         * DTMXPathDocument.cs,
410           DTMXPathDocumentBuilder.cs,
411           DTMXPathDocumentWriter.cs,
412           DTMXPathNavigator.cs,
413           DTMXPathNode.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.
418
419 2004-02-13  Atsushi Enomoto <atsushi@ximian.com>
420
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.)
430
431 2004-01-27  Atsushi Enomoto <atsushi@ximian.com>
432
433         * DTMXPathDocumentBuilder.cs : Namespace nodes are incorrectly created.
434           This fix should make XPathDocument compatible with XmlDocument.
435
436 2004-01-26  Atsushi Enomoto <atsushi@ximian.com>
437
438         * DTMXPathDocument.cs : CreateNavigator() should return the first root
439           as a clone.
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.
445
446 2003-12-18  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
447
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.
451
452 2003-11-19  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
453
454         * KeyPattern.cs : Matches() should iterate candidate keys to the end.
455
456 2003-11-19  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
457
458         * IdPattern.cs,
459           KeyPattern.cs : Implemented Matches(), overrode DefaultPriority,
460           modified inheritance.
461         * Pattern.cs : Added id and key pattern support.
462
463 2003-11-02  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
464
465         * DTMXPathNavigator.cs : Fixed MoveToNamespace() that might result in
466           infinite loop.
467
468 2003-10-04  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
469
470         * DTMXPathDocumentBuilder.cs : Bugfix for whitespace handling.
471
472 2003-10-01  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
473
474         * Added DTMXPathNode.cs.
475         * Fundamental changes in whole DTM stuff. Node information is now array
476           of "node struct" instead of individual arrays.
477
478 2003-09-21 Ben Maurer  <bmaurer@users.sourceforge.net>
479
480         * Pattern.cs: save the parser (will reduce memory allocation when
481         Jackson's jay patch is committed).
482
483 2003-09-20 Ben Maurer  <bmaurer@users.sourceforge.net>
484
485         * Pattern.cs: Typo, when i got //a i was giving off /
486         * LocationPathPattern.cs: Append to the tail, not head.
487
488 2003-09-14  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
489
490         * DTMXPathNavigator.cs,
491           DTMXPathDocument.cs,
492           DTMXPathDocumentBuilder.cs : Added IXmlLineInfo support. Removed
493           node's extraneous schemaType. Some code reformatting.
494
495 2003-09-13 Ben Maurer  <bmaurer@users.sourceforge.net>
496
497         * Pattern.cs: Support static context.
498
499 2003-08-25 Ben Maurer  <bmaurer@users.sourceforge.net>
500
501         * DTMXPathNavigator.cs: Allocate valueBuilder on first use.
502
503 2003-08-14  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
504
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.
510
511 2003-07-23  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
512
513         * DTMXPathDocumentBuilder.cs :
514           Fixed Read() that sets nodes' parent incorrectly.
515
516 2003-07-17  Peter Williams  <peter@newton.cx>
517
518         * DTMXPathDocumentBuilder.cs: csc.exe is more stringent about namespaces
519         than mcs. We need to disambiguate System.Math from Mono.Math here.
520
521 2003-06-30  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
522
523         * Initial checkin.
524         * Added ChangeLog, DTMXPathDocument.cs, DTMXPathDocumentBuilder.cs
525           and DTMXPathNavigator.cs.
526