New test.
[mono.git] / mcs / class / System.XML / Mono.Xml.XPath / ChangeLog
1 2006-09-11  Atsushi Enomoto <atsushi@ximian.com>
2
3         * XPathEditableDocument.cs : DocumentFragment should also be allowed
4           to have a child.
5
6 2006-09-08  Atsushi Enomoto <atsushi@ximian.com>
7
8         * DTMXPathDocumentWriter2.cs : fill String.Empty for null ns in
9           WriteStartElement() and WriteStartAttribute().
10
11 2006-09-01  Atsushi Enomoto <atsushi@ximian.com>
12
13         * XPathNavigatorReader.cs : MoveToFirstAttribute() should return
14           true when current node is an attribute (including namespace node).
15
16 2006-08-28  Atsushi Enomoto <atsushi@ximian.com>
17
18         * DTMXPathDocumentWriter2.cs : use String.Empty instead of null for
19           localName for those nodes which does not have a name.
20
21 2006-04-10  Atsushi Enomoto <atsushi@ximian.com>
22
23         * XPathNavigatorReader.cs : Read() did not compute Depth correctly.
24           It caused bug #78067.
25
26 2006-02-21  Atsushi Enomoto <atsushi@ximian.com>
27
28         * DTMXPathNavigator2.cs : removed valueBuilder field (create 
29           StringBuilder dynamically).
30
31 2006-02-16  Atsushi Enomoto <atsushi@ximian.com>
32
33         * DTMXPathDocument2.cs, DTMXPathNavigator2.cs :
34           Do not store mutable XPathDocument fields in every navigators.
35           It saves memory a lot.
36
37 2005-12-14  Atsushi Enomoto <atsushi@ximian.com>
38
39         * XPathNavigatorReader.cs : oh, so it used to compile under 1.x.
40
41 2005-12-14  Atsushi Enomoto <atsushi@ximian.com>
42
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().
48
49 2005-12-14  Atsushi Enomoto <atsushi@ximian.com>
50
51         * XPathEditableDocument.cs : added UnderlyingObject.
52
53 2005-12-14  Atsushi Enomoto <atsushi@ximian.com>
54
55         * XPathEditableDocument.cs : added 2.0 SchemaInfo.
56
57 2005-12-13  Atsushi Enomoto  <atsushi@ximian.com>
58
59         * XPathEditableDocument.cs : implement ReplaceSelf() here.
60
61 2005-12-13  Atsushi Enomoto  <atsushi@ximian.com>
62
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
68             Close() is called."
69
70 2005-12-13  Atsushi Enomoto  <atsushi@ximian.com>
71
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.
77
78 2005-12-13  Atsushi Enomoto  <atsushi@ximian.com>
79
80         * XPathEditableDocument.cs : 
81           XmlDocumentInsertionWriter.WriteFullEndElement() should set IsEmpty
82           of the element before pop.
83
84 2005-12-08  Atsushi Enomoto  <atsushi@ximian.com>
85
86         * XPathDocument2.cs, XPathDocument2Editable.cs,
87           XPathDocument2Navigator.cs : garbage cleanup.
88
89 2005-08-05  Atsushi Enomoto  <atsushi@ximian.com>
90
91         * Pattern.cs, IdPattern.cs, LocationPathPattern.cs, UnionPattern.cs :
92           added bool EvaluatedNodeType property (used in XslKeyTable).
93
94 2005-05-05  Atsushi Enomoto  <atsushi@ximian.com>
95
96         * XPathEditableDocument.cs : sync with updated 2.0 API.
97
98 2005-03-22  Atsushi Enomoto  <atsushi@ximian.com>
99
100         * DTMXPathDocumentWriter2.cs : use index for string pool.
101
102 2005-03-22  Atsushi Enomoto  <atsushi@ximian.com>
103
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.
108
109 2004-03-22  Atsushi Enomoto  <atsushi@ximian.com>
110
111         * Pattern.cs : Pattern.Compile() now uses XSLT pattern parser instead
112           of XPath parser.
113         * KeyPattern.cs : Matches() now just delegates to XsltKey.MatchesKey().
114
115 2004-03-22  Atsushi Enomoto  <atsushi@ximian.com>
116
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).
127
128 2004-03-16  Atsushi Enomoto  <atsushi@ximian.com>
129
130         * Pattern.cs : fixed incorrect optimization.
131
132 2004-03-15  Atsushi Enomoto  <atsushi@ximian.com>
133
134         * DTMXPathDocumentBuilder2.cs : skip only Read() internally called
135           xmlReader.Read(). Simplify loop a bit.
136
137 2004-03-15  Atsushi Enomoto  <atsushi@ximian.com>
138
139         * DTMXPathDocumentWriter2.cs : Eliminated Depth as well as -builder.
140         * DTMXPathNode2.cs, DTMXPathDocumentBuilder2.cs :
141           Eliminated Depth at all.
142
143 2004-03-15  Atsushi Enomoto  <atsushi@ximian.com>
144
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.
149
150 2004-03-14  Atsushi Enomoto  <atsushi@ximian.com>
151
152         * DTMXPathNavigator2.cs : Eliminating Depth. (To completely eliminate,
153           we also have to eliminate them from builder and writer).
154
155 2004-03-07  Atsushi Enomoto  <atsushi@ximian.com>
156
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.
160
161 2004-02-21  Atsushi Enomoto  <atsushi@ximian.com>
162
163         * DTMXPathDocumentBuilder2.cs : whitespace node values were not added
164           to Value.
165
166 2004-02-14  Atsushi Enomoto  <atsushi@ximian.com>
167
168         * DTMXPathDocumentBuilder2.cs : in some cases, significant whitespace
169           is incorrectly regarded as Text. Patch by Andrew Skiba.
170
171 2005-02-09  Atsushi Enomoto <atsushi@ximian.com>
172
173         * LocationPathPattern.cs : Wildcard name is held as "", so we should
174           also check "" for wildcard. Patch by Andrew Skiba.
175
176 2005-01-25  Atsushi Enomoto <atsushi@ximian.com>
177
178         * XPathEditableDocument.cs : eliminating "throw new Exception".
179
180 2004-12-17  Atsushi Enomoto <atsushi@ximian.com>
181
182         * XPathNavigatorReader.cs : added CanReadBinaryContent and
183           CanReadValueChunk. Call Binary.Reset() to enable them.
184
185 2004-12-16  Atsushi Enomoto <atsushi@ximian.com>
186
187         * XPathNavigatorReader.cs : added SchemaInfo.
188
189 2004-12-04  Atsushi Enomoto <atsushi@ximian.com>
190
191         * DTMXPathNavigator.cs : added more constant fields to utility class.
192
193 2004-12-04  Atsushi Enomoto <atsushi@ximian.com>
194
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).
201
202 2004-12-03  Atsushi Enomoto <atsushi@ximian.com>
203
204         * DTMXPathDocumentWriter.cs : Fix for DTM_CLASS switch that does not
205           allow unadjusted arrays.
206
207 2004-11-30  Atsushi Enomoto <atsushi@ximian.com>
208
209         * DTMXPathDocumentWriter.cs,
210           DTMXPathDocumentBuilder.cs,
211           DTMXPathNode.cs : SchemaType on attribute is not used.
212
213 2004-11-26  Atsushi Enomoto <atsushi@ximian.com>
214
215         * XPathNavigatorReader.cs,
216           KeyPattern.cs : warning removal
217
218 2004-11-19  Atsushi Enomoto <atsushi@ximian.com>
219
220         * XPathNavigatorReader.cs : changed to be compatible with that is
221           contained in Mono.Xml.Ext.dll.
222
223 2004-11-14  Atsushi Enomoto <atsushi@ximian.com>
224
225         * XPathEditableDocument.cs : WriteStartElement() should not expect
226           that there is an OwnerDocument (current node might be document).
227
228 2004-10-29  Atsushi Enomoto <atsushi@ximian.com>
229
230         * XPathEditableDocument.cs : internalize classes.
231
232 2004-10-28  Atsushi Enomoto <atsushi@ximian.com>
233
234         * XPathEditableDocument.cs : fixed wrong recursion problem.
235
236 2004-10-22  Atsushi Enomoto <atsushi@ximian.com>
237
238         * XPathEditableDocument.cs :
239           Now it implements updated version of .NET 2.0.
240           .ctor() should accept XmlNode, instead of XmlDocument.
241
242 2004-10-09  Atsushi Enomoto <atsushi@ximian.com>
243
244         * XPathNavigatorReader.cs : should be NET_2_0.
245
246 2004-10-08  Atsushi Enomoto <atsushi@ximian.com>
247
248         * XPathNavigatorReader.cs : IsDefault considers IXmlSchemaInfo
249           (it is anyways not implemented as yet.)
250
251 2004-10-05  Atsushi Enomoto <atsushi@ximian.com>
252
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.
256
257 2004-10-05  Atsushi Enomoto <atsushi@ximian.com>
258
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.
263
264 2004-10-04  Atsushi Enomoto <atsushi@ximian.com>
265
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.
271
272 2004-10-04  Atsushi Enomoto <atsushi@ximian.com>
273
274         * XPathNavigatorReader.cs : When the reader's root node is not of type
275           Root, it incorrectly skipped the node itself.
276
277 2004-09-06  Atsushi Enomoto <atsushi@ximian.com>
278
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
289
290 2004-09-01  Atsushi Enomoto <atsushi@ximian.com>
291
292         * XPathNavigatorReader.cs : on GetAttributeNavigator(int), namespace
293           node could be this XmlReader's attribute node.
294
295 2004-08-02  Atsushi Enomoto <atsushi@ximian.com>
296
297         * XPathDocument2.cs : new IXPathNavigable implementation
298           XPathDocument2Navigator.cs : new XPathNavigator implementation
299           XPathDocument2Editable.cs : new XPathEditableNavigator implementation
300
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
303         tests).
304
305 2004-07-30  Atsushi Enomoto <atsushi@ximian.com>
306
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).
315
316 2004-07-30  Atsushi Enomoto <atsushi@ximian.com>
317
318         * XPathNavigatorReader.cs : fixed GetAttributeNavigator() that
319           incorrectly used MoveToNextAttribute().
320
321 2004-07-29  Atsushi Enomoto <atsushi@ximian.com>
322
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.
330
331 2004-07-28  Atsushi Enomoto <atsushi@ximian.com>
332
333         * Added XPathEditableDocument.cs.
334           - XPathEditableDocument provides IXPathEditable.
335           - XmlDocumentEditableNavigator implements XPathEditableNavigator
336             that supports CreateAttributes(), AppendChild() and so on.
337
338           It is nothing more than hack, and as an XPathEditableNavigator
339           provider for XPathDocument, it will be replaced by something.
340
341 2004-07-13  Atsushi Enomoto <atsushi@ximian.com>
342
343         * Added XPathNavigatorReader.cs.
344
345 2004-06-06  Atsushi Enomoto <atsushi@ximian.com>
346
347         * DTMXPathDocumentBuilder.cs : Close XmlTextReader strictly. It might
348           raise an error after opening stream and before try-catch.
349
350 2004-05-20  Atsushi Enomoto <atsushi@ximian.com>
351
352         * Pattern.cs : don't throw System.Exception. Delegate error handling to
353           the only one caller CompilePattern().
354
355 2004-05-12  Atsushi Enomoto <atsushi@ximian.com>
356
357         * Pattern.cs : made class internal.
358
359 2004-02-26  Atsushi Enomoto <atsushi@ximian.com>
360
361         * DTMXPathDocumentBuilder.cs : Close XmlReader when we passed uri.
362
363 2004-02-18  Atsushi Enomoto <atsushi@ximian.com>
364
365         * LocationPathPattern.cs : Implemented easy XPathNavigator cache on
366           predicate evaluation in Matches().
367
368 2004-02-17  Atsushi Enomoto <atsushi@ximian.com>
369
370         * KeyPattern.cs, Pattern.cs : removed using decls.
371
372 2004-02-17  Atsushi Enomoto <atsushi@ximian.com>
373
374         * LocationPathPattern.cs : Optimized Matches(). For non-positional
375           patterns, it never iterates predicate, just evaluate boolean.
376
377 2004-02-16  Atsushi Enomoto <atsushi@ximian.com>
378
379         * DTMXPathDocument.cs,
380           DTMXPathDocumentBuilder.cs,
381           DTMXPathDocumentWriter.cs,
382           DTMXPathNavigator.cs,
383           DTMXPathNode.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.
388
389 2004-02-13  Atsushi Enomoto <atsushi@ximian.com>
390
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.)
400
401 2004-01-27  Atsushi Enomoto <atsushi@ximian.com>
402
403         * DTMXPathDocumentBuilder.cs : Namespace nodes are incorrectly created.
404           This fix should make XPathDocument compatible with XmlDocument.
405
406 2004-01-26  Atsushi Enomoto <atsushi@ximian.com>
407
408         * DTMXPathDocument.cs : CreateNavigator() should return the first root
409           as a clone.
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.
415
416 2003-12-18  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
417
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.
421
422 2003-11-19  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
423
424         * KeyPattern.cs : Matches() should iterate candidate keys to the end.
425
426 2003-11-19  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
427
428         * IdPattern.cs,
429           KeyPattern.cs : Implemented Matches(), overrode DefaultPriority,
430           modified inheritance.
431         * Pattern.cs : Added id and key pattern support.
432
433 2003-11-02  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
434
435         * DTMXPathNavigator.cs : Fixed MoveToNamespace() that might result in
436           infinite loop.
437
438 2003-10-04  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
439
440         * DTMXPathDocumentBuilder.cs : Bugfix for whitespace handling.
441
442 2003-10-01  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
443
444         * Added DTMXPathNode.cs.
445         * Fundamental changes in whole DTM stuff. Node information is now array
446           of "node struct" instead of individual arrays.
447
448 2003-09-21 Ben Maurer  <bmaurer@users.sourceforge.net>
449
450         * Pattern.cs: save the parser (will reduce memory allocation when
451         Jackson's jay patch is committed).
452
453 2003-09-20 Ben Maurer  <bmaurer@users.sourceforge.net>
454
455         * Pattern.cs: Typo, when i got //a i was giving off /
456         * LocationPathPattern.cs: Append to the tail, not head.
457
458 2003-09-14  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
459
460         * DTMXPathNavigator.cs,
461           DTMXPathDocument.cs,
462           DTMXPathDocumentBuilder.cs : Added IXmlLineInfo support. Removed
463           node's extraneous schemaType. Some code reformatting.
464
465 2003-09-13 Ben Maurer  <bmaurer@users.sourceforge.net>
466
467         * Pattern.cs: Support static context.
468
469 2003-08-25 Ben Maurer  <bmaurer@users.sourceforge.net>
470
471         * DTMXPathNavigator.cs: Allocate valueBuilder on first use.
472
473 2003-08-14  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
474
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.
480
481 2003-07-23  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
482
483         * DTMXPathDocumentBuilder.cs :
484           Fixed Read() that sets nodes' parent incorrectly.
485
486 2003-07-17  Peter Williams  <peter@newton.cx>
487
488         * DTMXPathDocumentBuilder.cs: csc.exe is more stringent about namespaces
489         than mcs. We need to disambiguate System.Math from Mono.Math here.
490
491 2003-06-30  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
492
493         * Initial checkin.
494         * Added ChangeLog, DTMXPathDocument.cs, DTMXPathDocumentBuilder.cs
495           and DTMXPathNavigator.cs.
496