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