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