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