1 2005-05-05 Atsushi Enomoto <atsushi@ximian.com>
3 * XPathEditableDocument.cs : sync with updated 2.0 API.
5 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
7 * DTMXPathDocumentWriter2.cs : use index for string pool.
9 2005-03-22 Atsushi Enomoto <atsushi@ximian.com>
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.
16 2004-03-22 Atsushi Enomoto <atsushi@ximian.com>
18 * Pattern.cs : Pattern.Compile() now uses XSLT pattern parser instead
20 * KeyPattern.cs : Matches() now just delegates to XsltKey.MatchesKey().
22 2004-03-22 Atsushi Enomoto <atsushi@ximian.com>
24 * DTMXPathDocumentBuilder.cs,
25 DTMXPathDocumentWriter.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).
35 2004-03-16 Atsushi Enomoto <atsushi@ximian.com>
37 * Pattern.cs : fixed incorrect optimization.
39 2004-03-15 Atsushi Enomoto <atsushi@ximian.com>
41 * DTMXPathDocumentBuilder2.cs : skip only Read() internally called
42 xmlReader.Read(). Simplify loop a bit.
44 2004-03-15 Atsushi Enomoto <atsushi@ximian.com>
46 * DTMXPathDocumentWriter2.cs : Eliminated Depth as well as -builder.
47 * DTMXPathNode2.cs, DTMXPathDocumentBuilder2.cs :
48 Eliminated Depth at all.
50 2004-03-15 Atsushi Enomoto <atsushi@ximian.com>
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.
57 2004-03-14 Atsushi Enomoto <atsushi@ximian.com>
59 * DTMXPathNavigator2.cs : Eliminating Depth. (To completely eliminate,
60 we also have to eliminate them from builder and writer).
62 2004-03-07 Atsushi Enomoto <atsushi@ximian.com>
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.
68 2004-02-21 Atsushi Enomoto <atsushi@ximian.com>
70 * DTMXPathDocumentBuilder2.cs : whitespace node values were not added
73 2004-02-14 Atsushi Enomoto <atsushi@ximian.com>
75 * DTMXPathDocumentBuilder2.cs : in some cases, significant whitespace
76 is incorrectly regarded as Text. Patch by Andrew Skiba.
78 2005-02-09 Atsushi Enomoto <atsushi@ximian.com>
80 * LocationPathPattern.cs : Wildcard name is held as "", so we should
81 also check "" for wildcard. Patch by Andrew Skiba.
83 2005-01-25 Atsushi Enomoto <atsushi@ximian.com>
85 * XPathEditableDocument.cs : eliminating "throw new Exception".
87 2004-12-17 Atsushi Enomoto <atsushi@ximian.com>
89 * XPathNavigatorReader.cs : added CanReadBinaryContent and
90 CanReadValueChunk. Call Binary.Reset() to enable them.
92 2004-12-16 Atsushi Enomoto <atsushi@ximian.com>
94 * XPathNavigatorReader.cs : added SchemaInfo.
96 2004-12-04 Atsushi Enomoto <atsushi@ximian.com>
98 * DTMXPathNavigator.cs : added more constant fields to utility class.
100 2004-12-04 Atsushi Enomoto <atsushi@ximian.com>
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).
109 2004-12-03 Atsushi Enomoto <atsushi@ximian.com>
111 * DTMXPathDocumentWriter.cs : Fix for DTM_CLASS switch that does not
112 allow unadjusted arrays.
114 2004-11-30 Atsushi Enomoto <atsushi@ximian.com>
116 * DTMXPathDocumentWriter.cs,
117 DTMXPathDocumentBuilder.cs,
118 DTMXPathNode.cs : SchemaType on attribute is not used.
120 2004-11-26 Atsushi Enomoto <atsushi@ximian.com>
122 * XPathNavigatorReader.cs,
123 KeyPattern.cs : warning removal
125 2004-11-19 Atsushi Enomoto <atsushi@ximian.com>
127 * XPathNavigatorReader.cs : changed to be compatible with that is
128 contained in Mono.Xml.Ext.dll.
130 2004-11-14 Atsushi Enomoto <atsushi@ximian.com>
132 * XPathEditableDocument.cs : WriteStartElement() should not expect
133 that there is an OwnerDocument (current node might be document).
135 2004-10-29 Atsushi Enomoto <atsushi@ximian.com>
137 * XPathEditableDocument.cs : internalize classes.
139 2004-10-28 Atsushi Enomoto <atsushi@ximian.com>
141 * XPathEditableDocument.cs : fixed wrong recursion problem.
143 2004-10-22 Atsushi Enomoto <atsushi@ximian.com>
145 * XPathEditableDocument.cs :
146 Now it implements updated version of .NET 2.0.
147 .ctor() should accept XmlNode, instead of XmlDocument.
149 2004-10-09 Atsushi Enomoto <atsushi@ximian.com>
151 * XPathNavigatorReader.cs : should be NET_2_0.
153 2004-10-08 Atsushi Enomoto <atsushi@ximian.com>
155 * XPathNavigatorReader.cs : IsDefault considers IXmlSchemaInfo
156 (it is anyways not implemented as yet.)
158 2004-10-05 Atsushi Enomoto <atsushi@ximian.com>
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.
164 2004-10-05 Atsushi Enomoto <atsushi@ximian.com>
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.
171 2004-10-04 Atsushi Enomoto <atsushi@ximian.com>
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.
179 2004-10-04 Atsushi Enomoto <atsushi@ximian.com>
181 * XPathNavigatorReader.cs : When the reader's root node is not of type
182 Root, it incorrectly skipped the node itself.
184 2004-09-06 Atsushi Enomoto <atsushi@ximian.com>
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
197 2004-09-01 Atsushi Enomoto <atsushi@ximian.com>
199 * XPathNavigatorReader.cs : on GetAttributeNavigator(int), namespace
200 node could be this XmlReader's attribute node.
202 2004-08-02 Atsushi Enomoto <atsushi@ximian.com>
204 * XPathDocument2.cs : new IXPathNavigable implementation
205 XPathDocument2Navigator.cs : new XPathNavigator implementation
206 XPathDocument2Editable.cs : new XPathEditableNavigator implementation
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
212 2004-07-30 Atsushi Enomoto <atsushi@ximian.com>
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).
223 2004-07-30 Atsushi Enomoto <atsushi@ximian.com>
225 * XPathNavigatorReader.cs : fixed GetAttributeNavigator() that
226 incorrectly used MoveToNextAttribute().
228 2004-07-29 Atsushi Enomoto <atsushi@ximian.com>
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.
238 2004-07-28 Atsushi Enomoto <atsushi@ximian.com>
240 * Added XPathEditableDocument.cs.
241 - XPathEditableDocument provides IXPathEditable.
242 - XmlDocumentEditableNavigator implements XPathEditableNavigator
243 that supports CreateAttributes(), AppendChild() and so on.
245 It is nothing more than hack, and as an XPathEditableNavigator
246 provider for XPathDocument, it will be replaced by something.
248 2004-07-13 Atsushi Enomoto <atsushi@ximian.com>
250 * Added XPathNavigatorReader.cs.
252 2004-06-06 Atsushi Enomoto <atsushi@ximian.com>
254 * DTMXPathDocumentBuilder.cs : Close XmlTextReader strictly. It might
255 raise an error after opening stream and before try-catch.
257 2004-05-20 Atsushi Enomoto <atsushi@ximian.com>
259 * Pattern.cs : don't throw System.Exception. Delegate error handling to
260 the only one caller CompilePattern().
262 2004-05-12 Atsushi Enomoto <atsushi@ximian.com>
264 * Pattern.cs : made class internal.
266 2004-02-26 Atsushi Enomoto <atsushi@ximian.com>
268 * DTMXPathDocumentBuilder.cs : Close XmlReader when we passed uri.
270 2004-02-18 Atsushi Enomoto <atsushi@ximian.com>
272 * LocationPathPattern.cs : Implemented easy XPathNavigator cache on
273 predicate evaluation in Matches().
275 2004-02-17 Atsushi Enomoto <atsushi@ximian.com>
277 * KeyPattern.cs, Pattern.cs : removed using decls.
279 2004-02-17 Atsushi Enomoto <atsushi@ximian.com>
281 * LocationPathPattern.cs : Optimized Matches(). For non-positional
282 patterns, it never iterates predicate, just evaluate boolean.
284 2004-02-16 Atsushi Enomoto <atsushi@ximian.com>
286 * DTMXPathDocument.cs,
287 DTMXPathDocumentBuilder.cs,
288 DTMXPathDocumentWriter.cs,
289 DTMXPathNavigator.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.
296 2004-02-13 Atsushi Enomoto <atsushi@ximian.com>
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.)
308 2004-01-27 Atsushi Enomoto <atsushi@ximian.com>
310 * DTMXPathDocumentBuilder.cs : Namespace nodes are incorrectly created.
311 This fix should make XPathDocument compatible with XmlDocument.
313 2004-01-26 Atsushi Enomoto <atsushi@ximian.com>
315 * DTMXPathDocument.cs : CreateNavigator() should return the first root
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.
323 2003-12-18 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
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.
329 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
331 * KeyPattern.cs : Matches() should iterate candidate keys to the end.
333 2003-11-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
336 KeyPattern.cs : Implemented Matches(), overrode DefaultPriority,
337 modified inheritance.
338 * Pattern.cs : Added id and key pattern support.
340 2003-11-02 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
342 * DTMXPathNavigator.cs : Fixed MoveToNamespace() that might result in
345 2003-10-04 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
347 * DTMXPathDocumentBuilder.cs : Bugfix for whitespace handling.
349 2003-10-01 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
351 * Added DTMXPathNode.cs.
352 * Fundamental changes in whole DTM stuff. Node information is now array
353 of "node struct" instead of individual arrays.
355 2003-09-21 Ben Maurer <bmaurer@users.sourceforge.net>
357 * Pattern.cs: save the parser (will reduce memory allocation when
358 Jackson's jay patch is committed).
360 2003-09-20 Ben Maurer <bmaurer@users.sourceforge.net>
362 * Pattern.cs: Typo, when i got //a i was giving off /
363 * LocationPathPattern.cs: Append to the tail, not head.
365 2003-09-14 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
367 * DTMXPathNavigator.cs,
369 DTMXPathDocumentBuilder.cs : Added IXmlLineInfo support. Removed
370 node's extraneous schemaType. Some code reformatting.
372 2003-09-13 Ben Maurer <bmaurer@users.sourceforge.net>
374 * Pattern.cs: Support static context.
376 2003-08-25 Ben Maurer <bmaurer@users.sourceforge.net>
378 * DTMXPathNavigator.cs: Allocate valueBuilder on first use.
380 2003-08-14 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
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.
388 2003-07-23 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
390 * DTMXPathDocumentBuilder.cs :
391 Fixed Read() that sets nodes' parent incorrectly.
393 2003-07-17 Peter Williams <peter@newton.cx>
395 * DTMXPathDocumentBuilder.cs: csc.exe is more stringent about namespaces
396 than mcs. We need to disambiguate System.Math from Mono.Math here.
398 2003-06-30 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
401 * Added ChangeLog, DTMXPathDocument.cs, DTMXPathDocumentBuilder.cs
402 and DTMXPathNavigator.cs.