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