2009-01-22 Atsushi Enomoto <atsushi@ximian.com>
[mono.git] / mcs / class / System.XML / System.Xml / ChangeLog
1 2009-01-22  Atsushi Enomoto  <atsushi@ximian.com>
2
3         * XmlXapResolver.cs : fix assembly qualified names,
4           and give detailed errors.
5         * XmlResolver.cs : in 2.1 do not resolve relative Uri
6           to absolute.
7
8 2009-01-22  Atsushi Enomoto  <atsushi@ximian.com>
9
10         * XmlXapResolver.cs : new in 2.1.
11         * XmlReaderSettings.cs : use above.
12
13 2009-01-20  Atsushi Enomoto  <atsushi@ximian.com>
14
15         * XmlDocumentNavigator.cs : in some corner cases an attribute
16           may have null OwnerElement. Fixed bug #458245.
17
18 2009-01-20  Atsushi Enomoto  <atsushi@ximian.com>
19
20         * XmlReaderBinarySupport.cs : do not hang in the middle of reading
21           byte chunk at some node types. Fixed bug #464229.
22
23 2009-01-14  Sebastien Pouliot  <sebastien@ximian.com>
24
25         * NamespaceHandling.cs: New. Enum for Silverlight 2. Microsoft's 
26         System.Xml.Linq.dll (often bundled in XAP files) needs it (or we 
27         throw a TypeLoadException).
28         * XmlWriterSettings.cs: Add SL2 specific NamespaceHandling property
29
30 2009-01-08  Atsushi Enomoto  <atsushi@ximian.com>
31
32         * XmlReader.cs : ReadContentAsString() does not reject non-elements.
33           ReadElementContentAsString() rejects non-content nodes.
34
35 2008-12-19  Atsushi Enomoto  <atsushi@ximian.com>
36
37         * XmlNamespaceManager.cs : namespace lookup failed for non-atomic
38           string in 1.1 profile. Fixed 1.0 part of #379139.
39
40 2008-12-18  Atsushi Enomoto  <atsushi@ximian.com>
41
42         * DTDValidatingReader.cs : remove unused file.
43
44 2008-11-04  Atsushi Enomoto  <atsushi@ximian.com>
45
46         * XmlTextReader.cs : simply call ClearValueBuffer() on each Read().
47
48 2008-10-02  Atsushi Enomoto  <atsushi@ximian.com>
49
50         * XmlDocumentNavigator.cs : added some overriden methods (to be
51           implemented).
52
53 2008-09-24  Atsushi Enomoto  <atsushi@ximian.com>
54
55         * XmlDocument.cs : it returns non-null Schemas by default (and
56           returns non-empty set after being set null).
57
58 2008-09-17  Atsushi Enomoto  <atsushi@ximian.com>
59
60         * XmlReader.cs : detailed error location in ReadSubtree().
61
62 2008-09-17  Atsushi Enomoto  <atsushi@ximian.com>
63
64         * XmlReader.cs : ReadSubtree() is valid only on an element.
65
66 2008-09-10  Atsushi Enomoto  <atsushi@ximian.com>
67
68         * XmlDocument.cs, XmlDocumentNavigator.cs :
69           reduce navigator fields.
70
71 2008-08-21  Stephane Delcroix  <sdelcroix@novell.com>
72
73         * EnityResolvingXmlReader.cs:
74         * XmlReader.cs:
75         * XmlTextReader.cs:
76         * XmlTextReader2.cs: re-enable ResolveEntity for 2.1
77
78 2008-08-21  Stephane Delcroix  <sdelcroix@novell.com>
79
80         * XmlReaderSettings.cs: adding DtdProcessing and
81         MaxCharactersFromEntities properties for 2.1
82
83 2008-08-21  Stephane Delcroix  <sdelcroix@novell.com>
84
85         * DtdProcessing: adding this enum on the 2.1 build
86
87 2008-08-05  Jb Evain  <jbevain@novell.com>
88
89         * XmlConvert.cs (ToChar): add a specific SL2 version.
90
91 2008-07-28  Atsushi Enomoto  <atsushi@ximian.com>
92
93         * XmlNamespaceManager.cs : check null arg.
94         * XmlTextReader.cs : fixed bug #412657; now we populate nametable
95           and namespace manager in case they are null in parser context, and
96           use them instead of the members in the parser context.
97
98 2008-06-11  Atsushi Enomoto  <atsushi@ximian.com>
99
100         * XmlConvert.cs : fixed bug #397934. Utc mode accepts more formats.
101
102 2008-06-11  Atsushi Enomoto  <atsushi@ximian.com>
103
104         * XmlConvert.cs : no need for TARGET_JVM.
105
106 2008-06-09  Atsushi Enomoto  <atsushi@ximian.com>
107
108         * XmlTextReader.cs : when Normalized is true, '<' after \r which
109           comes after text node was incorrectly consumed as a text content.
110           Fixed bug #398374.
111
112 2008-06-05  Atsushi Enomoto  <atsushi@ximian.com>
113
114         * XmlConvert.cs : now we can use roundtrip format for float/double.
115           Fixed bug #320424.
116
117 2008-06-04  Atsushi Enomoto  <atsushi@ximian.com>
118
119         * XmlTextReader2.cs : added FIXME comment which won't fix, that
120           I have noticed during fixing bug #378239.
121
122 2008-05-22  Atsushi Enomoto  <atsushi@ximian.com>
123
124         * XmlReader.cs : some Create() overloads with baseUri argument did
125           not set baseUri correctly. Fixed bug #392385.
126
127 2008-05-07  Atsushi Enomoto  <atsushi@ximian.com>
128
129         * XmlReader.cs : force CloseInput to every XmlReader that is created
130           from url (I mean, every internal XmlReader instance).
131
132 2008-04-17  Atsushi Enomoto  <atsushi@ximian.com>
133
134         * XmlAttributeCollection.cs : check attribute identity only if the
135           source node is in the document tree. Fixed bug #380720.
136
137 2008-02-19  Atsushi Enomoto  <atsushi@ximian.com>
138
139         * XmlParserContext.cs : .net does not populate XmlNamespaceManager
140           automatically.
141         * XmlDocument.cs : so, always create one here.
142
143 2008-01-25  Atsushi Enomoto  <atsushi@ximian.com>
144
145         * XmlReader.cs : MoveToNextSibling() should check EOF (as Skip() does
146           not). Fixed bug #347768.
147
148 2008-01-15  Atsushi Enomoto  <atsushi@ximian.com>
149
150         * XmlParserContext.cs : do not pass invalid URI to XmlTextReader#ctor
151           even as a dummy. Fixed bug #353654.
152
153 2007-12-17  Atsushi Enomoto  <atsushi@ximian.com>
154
155         * XmlConvert.cs : added NET_3_5 members.
156
157 2007-12-06  Atsushi Enomoto  <atsushi@ximian.com>
158
159         * XmlUrlResolver.cs : in net_2_0, use Uri.IsAbsoluteUri to filter
160           relative URIs out.
161
162 2007-11-09  Atsushi Enomoto  <atsushi@ximian.com>
163
164         * XmlConvert.cs : ToDateTime(XmlDateTimeSerializationMode) should
165           allow more strings than existing one. Fixed bug #339004.
166
167 2007-10-30  Atsushi Enomoto  <atsushi@ximian.com>
168
169         * XmlConvert.cs : ToDateTime(string,string) should use ParseExact(),
170           not Parse(). Use 'K' for roundtrip format.
171
172 2007-10-10  Atsushi Enomoto  <atsushi@ximian.com>
173
174         * XmlTextWriter2.cs : making <del>silly</del>funky MS compatibility
175           change in WriteStartAttribute() to call WriteEndAttribute() if an
176           attribute is open.
177
178 2007-10-10  Atsushi Enomoto  <atsushi@ximian.com>
179
180         * XmlTextWriter2.cs : I could make previous change only in 2.0 mode.
181
182 2007-10-10  Atsushi Enomoto  <atsushi@ximian.com>
183
184         * XmlTextWriter2.cs : When it is at Error state, do not try to close
185           attributes and elements at Close(). They will result in further
186           error and rather hide the actual issue when disposed.
187
188 2007-09-28  Atsushi Enomoto  <atsushi@ximian.com>
189
190         * XmlWriter.cs : it is now documented that WriteNode(XPathNavigator)
191           ignores attributes and namespace decls, so do that.
192         * XQueryConvert.cs : removed extra stuff that are not in use.
193
194 2007-09-27  Atsushi Enomoto  <atsushi@ximian.com>
195
196         * XmlWriter.cs : implemented WriteValue(object) based on
197           MSDN "Writing Typed Data" with some fix.
198           http://msdn2.microsoft.com/en-us/library/bft97s8e(VS.80).aspx
199         * XmlTextWriter.cs : state check is extraneous. It caused unexpected
200           rejection of empty namespace URI.
201
202 2007-08-13  Atsushi Enomoto  <atsushi@ximian.com>
203
204         * XmlTextWriter2.cs : fix extraneous indentation which is put after
205           omitted xmldecl.
206
207 2007-08-09  Jb Evain  <jbevain@novell.com>
208
209         * XmlTextReader.cs: Avoid using 2.0 only feature in 2.1.
210
211 2007-08-09  Jb Evain  <jbevain@novell.com>
212
213         * XmlConvert.cs: use 2.1 available overloads of Parse.
214
215 2007-08-09  Jb Evain  <jbevain@novell.com>
216
217         * XmlInputStream.cs: there's no ASCII encoding in 2.1.
218
219 2007-08-09  Atsushi Enomoto  <atsushi@ximian.com>
220
221         * XmlReader.cs XmlNodeReader2.cs XmlTextReader.cs XmlTextReader2.cs
222           XmlNodeReaderImpl.cs EntityResolvingXmlReader.cs :
223           The previous attempt was wrong. Those internal-virtualized ones
224           could be used in System.Xml.Core classes and outside the assembly
225           any derived XmlReaders would have thrown throw Exception.
226           Now I marked them as nonexistent-in-2.1 or privatized.
227         * XmlWriter.cs : actually only this class is affected (if there
228           were DOM or XSD they would have been affected as well).
229
230 2007-08-09  Atsushi Enomoto  <atsushi@ximian.com>
231
232         * XmlReader.cs : HasValue, ReadAttributeValue() and ResolveEntity()
233           do not exist in 2.1 profile. Hiding abstract stuff seems to cause
234           some issues at run time, so they are ifdef-ed out from 2.1.
235         * XmlNodeReader2.cs DTDValidatingReader2.cs XmlTextReader.cs
236           XmlTextReader2.cs XmlNodeReaderImpl.cs DTDValidatingReader.cs
237           EntityResolvingXmlReader.cs : hence the change above.
238
239 2007-08-04  Jb Evain  <jbevain@novell.com>
240
241         * XmlUrlResolver.cs: remove code duplication in 2.1.
242
243 2007-08-04  Jb Evain  <jbevain@novell.com>
244
245         * XmlTextReader.cs, XmlConvert.cs, XmlReaderBinarySupport.cs:
246         Use the available constructor for the 2.1 profile.
247
248 2007-08-03  Atsushi Enomoto  <atsushi@ximian.com>
249
250         * DTDObjectModel.cs : in 2.0 and especially 2.1 profiles, use
251           our own DictionaryBase-like generic type. It is to reduce
252           dependency on DictionaryBase which does not exist in 2.1 mscorlib.
253           (included in 2.0 as well so that we do not skip NUnit tests so far)
254
255 2007-08-03  Atsushi Enomoto  <atsushi@ximian.com>
256
257         * XmlResolver.cs, XmlUrlResolver.cs, XmlSecureResolver.cs :
258           remove ICredential in NET_2_1 (they have to be explicitly removed
259           outside tuner work as ICredentials does not exist in 2.1 profile).
260           We cannot use WebRequest in 2.1 as well, so remove dependency on
261           it in GetEntity() (and added MonoTODO for non-file URLs).
262
263 2007-07-12  Atsushi Enomoto  <atsushi@ximian.com>
264
265         * XmlWriter.cs : in WriteNode(XPathNavigator,bool), default namespace
266           is broken. Fixed bug #82051.
267
268 2007-07-11  Atsushi Enomoto  <atsushi@ximian.com>
269
270         * XmlReader.cs : looks like I introduced extra Settings check at
271           r69383. Fixed bug #82062.
272
273 2007-07-04  Atsushi Enomoto  <atsushi@ximian.com>
274
275         * DTDValidatingReader2.cs :
276           we can remove NET_2_1 from this unused code in SL.
277
278 2007-07-04  Atsushi Enomoto  <atsushi@ximian.com>
279
280         * DTDAutomata.cs DTDObjectModel.cs DTDReader.cs
281           DTDValidatingReader2.cs XmlException.cs XmlReader.cs
282           XmlReaderSettings.cs XmlWriter.cs :
283           Make System.Xml.Core.dll build easier, using NET_2_1.
284
285           DTD support is simply cut at this stage (as it largely depends on
286           sys.xml.schema stuff).
287
288 2007-06-30  Gert Driesen  <drieseng@users.sourceforge.net>
289
290         * XmlTextReader.cs: Expose ProhibitDtd on 1.0 profile too.
291
292 2007-06-13  Atsushi Enomoto  <atsushi@ximian.com>
293
294         * XmlNode.cs : InnerText is settable on XmlDocumentFragment (silly,
295           but since XmlDocumentFragment does not override this property
296           it must be handled here).
297
298 2007-06-11  Atsushi Enomoto  <atsushi@ximian.com>
299
300         * XmlTextReader.cs : ReadStartElement() has bogus error message.
301
302 2007-05-31  Atsushi Enomoto  <atsushi@ximian.com>
303
304         * XmlTextWriter2.cs :
305           NewLineOnAttributes indentation fix, for bug #81770.
306
307 2007-05-25  Atsushi Enomoto  <atsushi@ximian.com>
308
309         * XQueryConvert.cs : removed unused methods. They will prevent
310           System.Xml.Core.dll implementation.
311
312 2007-05-15  Konstantin Triger <kostat@mainsoft.com>
313
314         * XmlWriter.cs, XmlTextWriter2.cs: ensure the file
315                 is closed in XmlWriter.Create(filename).
316
317 2007-04-25  Atsushi Enomoto  <atsushi@ximian.com>
318
319         * XmlConvert.cs : MinValue and MaxValue, same for ToDateTime().
320
321 2007-04-25  Atsushi Enomoto  <atsushi@ximian.com>
322
323         * XmlConvert.cs : MinValue and MaxValue are unchanged by the
324           serialization mode (unlike DateTime.ToString()).
325
326 2007-04-25  Atsushi Enomoto  <atsushi@ximian.com>
327
328         * XmlConvert.cs : in 2.0, use F instead of f in dateTime formatting.
329
330 2007-04-25  Atsushi Enomoto  <atsushi@ximian.com>
331
332         * XmlReader.cs : fixed wrong depth comparison in ReadToNextSibling().
333           Fixed bug #81451, by Eric Mercier.
334
335 2007-04-03  Atsushi Enomoto  <atsushi@ximian.com>
336
337         * XmlTextReader.cs : character ']' inside DTD comment caused parser
338           error. Fixed bug #81294.
339
340 2007-03-05  Atsushi Enomoto  <atsushi@ximian.com>
341
342         * XmlReader.cs : when Create() returns customized XmlTextReader, set
343           EntityHandling.ExpandEntities. Fixed bug #81000.
344
345 2007-02-20  Atsushi Enomoto  <atsushi@ximian.com>
346
347         * XmlTextReader.cs, XmlTextReader2.cs : Reset() should work now.
348           Closing bug #80849.
349
350 2007-02-20  Atsushi Enomoto  <atsushi@ximian.com>
351
352         * DTDValidatingReader2.cs, XmlTextReader.cs, XmlNodeReaderImpl.cs:
353           Read() silently returns false when it is closed. Fixed bug #80848.
354
355 2007-02-07  Atsushi Enomoto  <atsushi@ximian.com>
356
357         * XmlReader.cs : ReadElementContentAsString() and all relevant methods
358           didn't consume empty element correctly.
359
360 2006-12-20  Atsushi Enomoto <atsushi@ximian.com>
361
362         * XmlNode.cs : (InsertBefore) when newChild == refChild, do nothing
363           except for node type check. Fixed bug #80331.
364
365 2006-12-19  Atsushi Enomoto <atsushi@ximian.com>
366
367         * XmlTextReader.cs : Fixed ReadChars() to consume child elements,
368           including such cases that it breaks tags in the middle of multiple
369           ReadChars() calls. Fixed bug #80308.
370
371 2006-12-19  Atsushi Enomoto <atsushi@ximian.com>
372
373         * XmlTextReader.cs : ReadChars() does not have to store characters,
374           so avoid extra storing. Patch by Csaba Halasz, fixed bug #80306.
375
376 2006-12-12  Atsushi Enomoto <atsushi@ximian.com>
377
378         * XmlNode.cs : InnerText was returning comment text when there was
379           only a Comment node. Fixed bug #80233.
380
381 2006-12-12  Atsushi Enomoto <atsushi@ximian.com>
382
383         * XmlReader.cs : Create() with string url was not returning validating
384           XmlReader.
385
386 2006-12-12  Atsushi Enomoto <atsushi@ximian.com>
387
388         * DTDValidatingReader2.cs : when an attribute declaration is missing
389           in the corresponding attlist declaration, it caused NRE.
390           Fixed bug #80231.
391
392 2006-12-11  Atsushi Enomoto <atsushi@ximian.com>
393
394         * XmlDocument.cs : call overriden CreateAttribute() when loading from
395           XmlReader.
396
397 2006-12-05  Atsushi Enomoto <atsushi@ximian.com>
398
399         * XmlReader.cs : new 2.0 MoveToAttribute(int) failed to move to the
400           final attribute in an element.
401
402 2006-12-05  Atsushi Enomoto <atsushi@ximian.com>
403
404         * XmlNode.cs : GetPrefixOfNamespace() was not correctly searching
405           ancestors' namespaces.
406
407 2006-11-20  Atsushi Enomoto <atsushi@ximian.com>
408
409         * XmlTextWriter2.cs : fixed some relationship between
410           ConformanceLevel, OmitXmlDeclaration and WriteStartDocument().
411           See new tests more details.
412         * XmlWriter.cs : it could reuse XmlTextWriter.ctor(TextWriter,
413           XmlWriterSettings). It also resulted in dropping several internal
414           members in XmlTextWriter.
415
416 2006-11-14  Atsushi Enomoto <atsushi@ximian.com>
417
418         * XmlReaderSettings.cs : in copy constructor, copy (dispatch)
419           validation event as well. Add OnValidationError() to be invoked
420           by other internal stuff to raise the validation event.
421
422 2006-11-13  Michael Meeks  <michael.meeks@novell.com>
423
424         * XmlReader.cs, XmlTextReader.cs, XmlTextReader2.cs:
425         pass the XmlResolver through to the GetStream impl.
426
427 2006-10-30  Atsushi Enomoto <atsushi@ximian.com>
428
429         * XmlTextReader2.cs : if DTD does not exist, do not try to resolve
430           entity from null DTD (caused NRE). Fixed bug #79620.
431
432 2006-10-27  Atsushi Enomoto <atsushi@ximian.com>
433
434         * DTDReader.cs : some parameter entity expansions were not done.
435           Fixed bug #79683.
436
437 2006-09-27  Atsushi Enomoto <atsushi@ximian.com>
438
439         * XmlTextWriter2.cs : null arg check.
440
441 2006-09-26  Atsushi Enomoto <atsushi@ximian.com>
442
443         * XmlDeclaration.cs :
444           Removed bogus return statement in Value. Fixed bug #79496.
445
446 2006-09-21  Atsushi Enomoto <atsushi@ximian.com>
447
448         * XmlNameEntryCache.cs : It should expand temporary buffer even at
449           initial state. Fixed bug #79468.
450
451 2006-09-19  Atsushi Enomoto <atsushi@ximian.com>
452
453         * XmlElement.cs : for non-atomized names, alter null prefix with "".
454           Fixed bug #79420.
455
456 2006-09-04  Atsushi Enomoto <atsushi@ximian.com>
457
458         * XmlReader.cs : ReadContentAsString() and its family should allow 
459           attribute node. Fixed bug #79268.
460
461 2006-09-01  Atsushi Enomoto <atsushi@ximian.com>
462
463         * XmlTextWriter2.cs : expect atomized names only when it is
464           appropriate. Fixed bug #79047.
465
466 2006-08-26  Atsushi Enomoto <atsushi@ximian.com>
467
468         * XmlDocument.cs : use XmlValidatingReader to load TextReader/Stream
469           so that it could fill default and fixed attributes. This ends up
470           to fix bug #79163 (it fills fixed "xmlns" attribute and thus
471           the node's namespace URI becomes that of glade-2.0).
472
473 2006-08-17  Atsushi Enomoto <atsushi@ximian.com>
474
475         * XmlEntity.cs, XmlEntityReference.cs, XmlNode.cs :
476           create entity content only when its children is being accessed.
477           It results differently when there is no actual reference in the
478           document - an invalid entity value (when it is used to create
479           child nodes) is ignored unless a code tries to access the Value
480           of an XmlEntity. Fixed bug #79091
481         * DTDReader.cs : the fix above uncovered another bug (ibm66n03.xml).
482           Check illegal reference name in literal entity value.
483
484 2006-08-17  Atsushi Enomoto <atsushi@ximian.com>
485
486         * XmlTextReader.cs, XmlTextReader2.cs, DTDReader.cs :
487           (ResolveExternalEntityReplacementText) need to skip text
488           declaration in external entities. To make it possible internalize
489           SkipTextDeclaration() in XmlTextReader(2). Fixed bug #79090.
490
491 2006-08-16  Atsushi Enomoto <atsushi@ximian.com>
492
493         * XmlTextReader2.cs : Check recursive entity reference.
494           Fixed bug #79085. It makes W3C standalone tests on NET_2_0 working.
495
496 2006-08-14  Atsushi Enomoto <atsushi@ximian.com>
497
498         * XmlTextReader.cs : When a whitespace node comes after a text 
499           declaration in XML external entity (i.e. .ctor() with
500           XmlNodeType.Element), it contained extra value character ('<').
501
502 2006-08-10  Atsushi Enomoto <atsushi@ximian.com>
503
504         * XmlTextWriter2.cs : more indentation fixes. Now I believe it is
505           almost MS compat, but it won't help poor Mike.
506
507 2006-08-07  Atsushi Enomoto <atsushi@ximian.com>
508
509         * XmlTextWriter2.cs : WriteBinHex() is allowed at Attribute state.
510           Fixed bug #79019.
511
512 2006-07-28  Atsushi Enomoto <atsushi@ximian.com>
513
514         * XmlTextWriter2.cs : fixed some indentation bugs: comments and PIs
515           should not cause indentation override like text, cdata and
516           whitespaces do.
517           Fixed some error messages on node kind.
518         * XmlTextWriter.cs, XmlTextWriterOpenElement.cs : removed old code.
519           (I don't want to remove old great code but it confused mike today.)
520
521 2006-07-26  Atsushi Enomoto <atsushi@ximian.com>
522
523         * XmlReader.cs :
524           For DTD validator, call to SetSchemas() makes no sense.
525         * XmlValidatingReader.cs : now it internally holds old
526           XmlSchemaCollection instead of new XmlSchemaSet, to make
527           XmlSchemaSet.SchemaCollection unneccessary.
528           Removed SetSchemas() since it is now extraneous because of the
529           XmlReaderChange above.
530
531 2006-07-25  Atsushi Enomoto <atsushi@ximian.com>
532
533         * XmlConvert.cs : TimeSpan conversion for TimeSpan.MinValue was
534           failing.
535
536 2006-07-19  Atsushi Enomoto <atsushi@ximian.com>
537
538         * XmlReader.cs : In Create(), support validation flags for DTD.
539         * DTDValidatingReader2.cs : when NET_2_0 and ProcessIdentityConstraints
540           is false, skip ID validation.
541
542 2006-06-26  Atsushi Enomoto <atsushi@ximian.com>
543
544         * XmlReader.cs : when Create() received string url, it should set 
545           XmlTextReader2.CloseInput always true. Fixed bug #78706.
546
547 2006-06-08  Atsushi Enomoto <atsushi@ximian.com>
548
549         * XmlTextWriter2.cs : if an attribute being written has the same
550           non-empty namespace URI as current default namespace, its prefix
551           should be written. Fixed bug #78598.
552
553 2006-05-09  Atsushi Enomoto <atsushi@ximian.com>
554
555         * XmlAttribute.cs : (WriteTo) when the namespace URI is empty,
556           always use empty string for prefix.
557
558 2006-04-27  Geoff Norton  <gnorton@customerdna.com>
559
560         * XmlDocument.cs: Move back to the element after
561         reading an attribute.  This mimics Microsofts behaviour.
562
563 2006-04-21  Atsushi Enomoto <atsushi@ximian.com>
564
565         * XmlTextWriter.cs : fix for bug #78148. set_Formatting() is not
566           rejected after writing some content. I totally disagree on that
567           it should be allowed, but here is the fix.
568
569 2006-04-14  Atsushi Enomoto <atsushi@ximian.com>
570
571         * XmlReader.cs : ReadElementContentAsObject() incorrectly rejected
572           the argument type System.Object.
573
574 2006-04-10  Atsushi Enomoto <atsushi@ximian.com>
575
576         * XmlWriter.cs : WriteNode(XPathNavigator) : directly write element
577           and root nodes instead of dispatching to ReadSubtree().
578
579 2006-04-06  Atsushi Enomoto <atsushi@ximian.com>
580
581         * XmlReader.cs : ReadElementContentAsXXX() did not consume empty
582           element correctly.
583
584 2006-04-05  Atsushi Enomoto <atsushi@ximian.com>
585
586         * XmlWriter.cs : Create(StringBuilder,XmlWriterSettings) was missing
587           settings argument to pass another .ctor().
588         * XmlWriterSettings.cs : set_NewLineChars() should reject null.
589
590 2006-04-03      Boris Kirzner <borisk@mainsoft.com>
591         * XmlException.cs: fix .net soap serialization compatibility.
592
593 2006-03-28  Atsushi Enomoto <atsushi@ximian.com>
594
595         * XmlNameEntry.cs XmlNameEntryCache.cs :
596           Added atomization support for prefixed names.
597           Inspired by Joshua Tauberer's patch.
598         * XmlElement.cs XmlAttribute.cs : use above.
599
600 2006-03-23  Atsushi Enomoto <atsushi@ximian.com>
601
602         * XmlReader.cs : in XmlReader.Create() ValidationType Auto and XDR
603           are simply ignored (it was found on running NvdlValidatingReader
604           under MS.NET 2.0).
605
606 2006-03-23  Atsushi Enomoto <atsushi@ximian.com>
607
608         * DTDValidatingReader.cs : avoid NullReferenceException. Input
609           XmlReader might not be IHasXmlParserContext.
610
611 2006-03-08  Atsushi Enomoto <atsushi@ximian.com>
612
613         * XmlReader.cs: ReadContentAsXXX() just stops at start element,
614           without rejecting it as an error.
615           ReadElementContentAsXXX() rejects child element nodes.
616
617 2006-02-28  Atsushi Enomoto <atsushi@ximian.com>
618
619         * XmlElement.cs : (WriteTo) use IsEmpty to determine which to use:
620           WriteEndElement() and WriteFullEndElement(). Fixed sys.security
621           regression.
622
623 2006-02-24  Atsushi Enomoto <atsushi@ximian.com>
624
625         * XmlTextWriter2.cs :
626           WriteRaw() has stupid second arg. Fixed bug #77623.
627           WriteString() should raise an error when it is called immediately
628           after WriteStartDocument().
629
630 2006-02-22  Atsushi Enomoto <atsushi@ximian.com>
631
632         * XmlTextWriter2.cs : WriteChars() should allow Attribute state.
633
634 2006-02-22  Atsushi Enomoto <atsushi@ximian.com>
635
636         * XmlChar.cs : (IndexOfInvalidChar) fixed surrogate pairs handling.
637           They were always regarded as invalid.
638         * XmlTextWriter2.cs : seems like MS XmlTextWriter outputs invalid
639           characters as character references. It totally does not make sense
640           but corcompare depended on that behavior.
641
642           This "compatibility" fix causes 10% or more performance loss!!!
643
644 2006-02-21  Atsushi Enomoto <atsushi@ximian.com>
645
646         * XmlTextWriter2.cs : (WriteStartAtribute) more == removal.
647         * XmlNode.cs : (get_InnerText) reduce extra StringBuilder creation.
648
649 2006-02-21  Atsushi Enomoto <atsushi@ximian.com>
650
651         * XmlTextWriter2.cs : (WriteStartAttribute) reduced string == string.
652
653 2006-02-21  Atsushi Enomoto <atsushi@ximian.com>
654
655         * XmlDocument.cs : (ReadNodeCore) not public.
656
657 2006-02-21  Atsushi Enomoto <atsushi@ximian.com>
658
659         * XmlTextWriter2.cs : (CloseStartElement)
660           Avoid ArrayList.Clear() and culture-sensitive Contains().
661
662 2006-02-21  Atsushi Enomoto <atsushi@ximian.com>
663
664         * XmlNamespaceManager.cs : added internal LookupPrefixExclusive()
665           which discards "overriden" namespaces.
666         * XmlTextWriter2.cs : fresh implementation.
667           - The source structure is simplified and cleaner.
668           - When outputting escaped string, output directly to TextWriter.
669           - roughly 20% performance improvement.
670
671           (Also fixed previous perf. evaluation excess in ChangeLog.)
672
673 2006-02-20  Atsushi Enomoto <atsushi@ximian.com>
674
675         * XmlElement.cs : (WriteTo) make use of HasAttributes. Remove extra
676           check. 5% speed improvement.
677
678 2006-02-20  Atsushi Enomoto <atsushi@ximian.com>
679
680         * DTDValidatingReader2.cs : added Source XmlReader property for
681           XsdValidatingReader use (see XsdValidatingReader change as well).
682
683 2006-02-20  Atsushi Enomoto <atsushi@ximian.com>
684
685         * EntityResolvingXmlReader.cs, XmlNodeReader2.cs, XmlTextReader2.cs :
686           in get_NodeType() entity reader existence check is faster.
687         * DTDValidatingReader2.cs : IsDefault could be avoided.
688
689 2006-02-20  Atsushi Enomoto <atsushi@ximian.com>
690
691         * XmlNodeReaderImpl.cs : optimized Depth.
692
693 2006-02-20  Atsushi Enomoto <atsushi@ximian.com>
694
695         * XmlValidatingReader.cs : reducing layered ReadState invocation
696           results in 10% speed up.
697
698 2006-02-20  Atsushi Enomoto <atsushi@ximian.com>
699
700         * XmlNodeReaderImpl.cs : Reimplemented Read(). Points are:
701           - reduced call to NextSibling which is very unlikely to be inlined
702           - reorganized conditioning to avoid extra check
703           - added description on each returning branch.
704           - And then, removed unused code.
705           It is 1.5x faster than before.
706
707 2006-02-17  Atsushi Enomoto <atsushi@ximian.com>
708
709         * XmlElement.cs : NextSibling could be effectively computed using
710           LastLinkedChild, beyond previous XmlLinkedNode optimization.
711
712 2006-02-17  Atsushi Enomoto <atsushi@ximian.com>
713
714         * XmlLinkedNode.cs : In NextSibling, use LastChild directly.
715           It improves NextSibling performance in bulky document.
716
717 2006-02-17  Atsushi Enomoto <atsushi@ximian.com>
718
719         * XmlNodeReaderImpl.cs : do not compute ownerLinkedNode, just store
720           it in Read(). Simply use state field in EOF. They result in 20%
721           perf. boost. Expanding EOF also improved performance by 2-3%
722           (mono --optimize=inline might work in the later stage).
723
724 2006-02-17  Atsushi Enomoto <atsushi@ximian.com>
725
726         * DTDValidatingReader2.cs : more refactoring. Split ReadContent()
727           into some methods. Reduced some extra MoveToElement().
728
729 2006-02-17  Atsushi Enomoto <atsushi@ximian.com>
730
731         * DTDValidatingReader2.cs : more refactoring. Removed and simplified
732           some error check. String += would be enough for entity-reference-
733           mixed attributes which rarely happen, so simplify the code.
734           Added comments on how the fields are used.
735
736 2006-02-17  Atsushi Enomoto <atsushi@ximian.com>
737
738         * DTDValidatingReader2.cs : attribute node simplification. It now
739           stores attribute node slots, including default attributes for
740           further refactoring.
741
742 2006-02-17  Atsushi Enomoto <atsushi@ximian.com>
743
744         * DTDValidatingReader2.cs, EntityResolvingXmlReader.cs :
745           new files for refactoring DTD validating reader. As the first stage,
746           it splits entity handling process from DTD validation step.
747
748           (DTDValidatingReader.cs will be removed at some stage).
749
750 2006-02-17  Atsushi Enomoto <atsushi@ximian.com>
751
752         * DTDObjectModel.cs : entity resolution method will be used in
753           the next DTD validating reader in 1.x.
754
755 2006-02-16  Atsushi Enomoto <atsushi@ximian.com>
756
757         * IHasXmlChildNode.cs :
758           New internal interface to hold LastLinkedChild.
759         * XmlNodeListChildren.cs XmlEntity.cs XmlElement.cs XmlAttribute.cs
760           XmlLinkedNode.cs XmlEntityReference.cs XmlNode.cs
761           XmlDocumentFragment.cs XmlDocument.cs : use it. It minimizes memory
762           consumption in XmlText, XmlWhitespace, XmlComment etc.
763
764 2006-02-16  Atsushi Enomoto <atsushi@ximian.com>
765
766         * XmlChar.cs : added IndexOfNonWhitespace() and IndexOfInvalid() (not
767           in use yet).
768         * NewLineHandling.cs : prepared to be used internally in 1.x.
769
770 2006-02-16  Atsushi Enomoto <atsushi@ximian.com>
771
772         * XmlDocument.cs XmlTextReader.cs : in ReadNode(), we can avoid
773           extraneous whitespace node creation for XmlTextReader by setting
774           WhitespaceHandling.Significant when PreserveWhitespace is false.
775
776 2006-02-16  Atsushi Enomoto <atsushi@ximian.com>
777
778         * XmlTextReader.cs : atomize whitespace values. It effectively saves
779           memory consumption when an input XML is indented.
780
781 2006-02-14  Atsushi Enomoto <atsushi@ximian.com>
782
783         * XmlTextReader.cs : When "Significant" is assigned to
784           WhitespaceHandling, it should ignore non-significant whitespaces.
785
786 2006-02-14  Atsushi Enomoto <atsushi@ximian.com>
787
788         * XmlWriter.cs : (WriteElementString and WriteAttributeString)
789           Skip empty string output.
790
791 2006-02-14  Atsushi Enomoto <atsushi@ximian.com>
792
793         * XmlTextWriter.cs : WriteRaw("") is not simply ignored but process
794           state check and closes open tag.
795
796 2006-02-11  Atsushi Enomoto <atsushi@ximian.com>
797
798         * XmlTextReader.cs :
799           Avoid extra AppendValueChar() in ReadWhitespace().
800
801 2006-02-06  Atsushi Enomoto <atsushi@ximian.com>
802
803         * XmlTextReader.cs : ReadTextReader() is now assured to have current
804           node content, except for Text, CDATA and Comment. ReadName() does
805           not use nameBuffer and reuse peekChars.
806
807 2006-02-06  Atsushi Enomoto <atsushi@ximian.com>
808
809         * XmlTextReader.cs : eliminated currentTagBuffer. XmlDeclaration is
810           now once read as PI and then re-parsed from Value. DTD internal
811           subset is now parsed as usual "value".
812
813 2006-02-06  Atsushi Enomoto <atsushi@ximian.com>
814
815         * XmlTextReader.cs : Expect() could be written inline and it could
816           provide better information. ReadEndTag() could use Expect() instead
817           of costy ReadName().
818
819 2006-02-04  Atsushi Enomoto <atsushi@ximian.com>
820
821         * XmlTextReader.cs : on ReadEndTag() we can avoid NameTable.Add().
822           Store name, local name and prefix in the stack instead of just name
823           and reuse them for EndElement.
824
825 2006-02-04  Atsushi Enomoto <atsushi@ximian.com>
826
827         * XmlDocumentNavigator.cs : make use of HasAttributes (avoid possible
828           XmlAttributeCollection creation).
829
830 2006-02-03  Atsushi Enomoto <atsushi@ximian.com>
831
832         * XmlTextReader.cs : no need to call Clear() for each attribute value.
833
834 2006-02-03  Atsushi Enomoto <atsushi@ximian.com>
835
836         * XmlDocument.cs : reverted most of the previous changes. It somehow
837           broke System.Data tests.
838
839 2006-01-30  Atsushi Enomoto <atsushi@ximian.com>
840
841         * XmlDocument.cs, XmlAttribute.cs, XmlElement.cs : Avoid unnecessary
842           name checks in CreateElement() and CreateAttribute().
843           get_DocumentType() could be stopped when the iterated child node
844           is the document element.
845         * XmlNode.cs : removed commented lines.
846         * XmlNameEntry.cs : hash code for a name entry is mostly identical by
847           its local name, so avoid extraneous GetHashCode() especially on
848           namespaces.
849
850 2006-01-30  Atsushi Enomoto <atsushi@ximian.com>
851
852         * XmlReader.cs : ReadOuterXml() returns meaingful value only for
853           element and attribute. ReadInnerXml() does not have to create
854           XmlTextWriter for empty elements.
855
856 2006-01-30  Atsushi Enomoto <atsushi@ximian.com>
857
858         * XmlNodeReader2.cs XmlException.cs XmlReader.cs XmlTextReader.cs
859           XmlWriter.cs XmlTextWriter.cs XmlValidatingReader.cs
860           XmlNodeReaderImpl.cs DTDValidatingReader.cs XmlSecureResolver.cs:
861           cleaning up obsolete NET_1_0 code.
862
863 2006-01-28  Atsushi Enomoto <atsushi@ximian.com>
864
865         * XmlTextWriter.cs : avoid case-insensitive String.Compare().
866           Use array for openElements rather than ArrayList.
867
868 2006-01-28  Atsushi Enomoto <atsushi@ximian.com>
869
870         * XmlElement.cs, XmlAttribute.cs :
871           Avoid ChildNodes.Count and use FirstChild/NextSibling.
872
873 2006-01-28  Atsushi Enomoto <atsushi@ximian.com>
874
875         * XmlNode.cs, XmlIteratorNodeList.cs :
876           Now we can enable XmlIteratorNodeList again (mcs, incorrectly
877           removing nodes in the node list, was fixed).
878
879 2006-01-28  Atsushi Enomoto <atsushi@ximian.com>
880
881         * XmlDocument.cs : in ReadNode() to consume element node, switched
882           to MoveToAttribute(int) since MoveToNextAttribute() was somehow
883           not working fine. It is needed to avoid Sys.Data test breakage
884           and anything else should be fixed indeed.
885
886 Fri Jan 27 20:39:48 CET 2006 Paolo Molaro <lupus@ximian.com>
887
888         * XmlTextReader.cs, XmlChar.cs: more tweaks and speedups.
889
890 2006-01-27  Atsushi Enomoto <atsushi@ximian.com>
891
892         * XmlTextReader.cs : optimization patch by Paolo.
893           Fast path optimization in PeekChar().
894           Avoid double-evaluation of PeekChar() and ReadChar() by new
895           Advance() method.
896
897 2006-01-27  Atsushi Enomoto <atsushi@ximian.com>
898
899         * XmlNode.cs : disabled XmlIteratorNodeList optimization. It caused
900           some kind of regression under mcs/tests/xml-025.cs.
901
902 2006-01-27  Atsushi Enomoto <atsushi@ximian.com>
903
904         * XmlAttributeCollection.cs :
905           Replaced all Nodes.Count with Count (it could avoid extraneous
906           ArrayList creation in XmlNamedNodeMap). ID attribute adjustment
907           was extraneously done against all attribute nodes and thus there
908           was a plenty of call to Value.
909         * XmlNamedNodeMap.cs : added comment on SetNamedItem() W3C spec
910           violation.
911
912 2006-01-27  Atsushi Enomoto <atsushi@ximian.com>
913
914         * XmlNode.cs,
915           XmlDocument.cs,
916           XmlAttribute.cs,
917           XmlElement.cs :
918           Added internal AppendChild() override that omites node type
919           checking, and used it in many places.
920
921 2006-01-27  Atsushi Enomoto <atsushi@ximian.com>
922
923         * XmlDocument.cs : optimized ReadAttributeNode() to not call
924           MoveToAttribute() unneccesarily (call it only when ReadNode() is
925           called on an attribute node).
926
927 2006-01-27  Atsushi Enomoto <atsushi@ximian.com>
928
929         * XmlNode.cs :
930           in get_InnerText(), avoid extraneous StringBuilder creation.
931
932 2006-01-27  Atsushi Enomoto <atsushi@ximian.com>
933
934         * XmlIteratorNodeList.cs : new file for XmlNodeList implementation.
935           It does not iterate all nodes in advance.
936         * XmlNode.cs : use XmlIteratorNodeList in SelectNodes().
937
938 2006-01-26  Atsushi Enomoto <atsushi@ximian.com>
939
940         * XmlWriter.cs : Dispose() is protected.
941
942 2006-01-25  Atsushi Enomoto <atsushi@ximian.com>
943
944         * XmlNamedNodeMap.cs : lazily create internal ArrayList. Thanks to
945           Joshua Tauberer for the hint.
946
947 2006-01-25  Atsushi Enomoto <atsushi@ximian.com>
948
949         * XmlConvert.cs : ToString(TimeSpan) should return valid duration
950           for TimeSpan.Zero, rather than "P". Fixed bug #77350
951
952 2006-01-24  Atsushi Enomoto <atsushi@ximian.com>
953
954         * XmlNameEntryCache.cs XmlNameEntry.cs :
955           Made name entry fields as not read-only. Added Update() to reset
956           members. Its semantics of Equals() is changed.
957           Now entry cache is based on Hashtable rather than ArrayList.
958           It saves heavy iteration in ArrayList.
959
960 2006-01-24  Atsushi Enomoto <atsushi@ximian.com>
961
962         * XmlNameEntryCache.cs XmlNameEntry.cs XmlDocument.cs :
963           Add Hash field to find name entry quickly.
964           In XmlNameEntryCache make use of name table (it is totally
965           unused there though).
966
967 2006-01-16  Atsushi Enomoto <atsushi@ximian.com>
968
969         * XmlConvert.cs : handle Ticks. Fixed bug #77252.
970
971 2006-01-13  Atsushi Enomoto <atsushi@ximian.com>
972
973         * XmlTextWriter.cs : Fixed bug #77082.
974           When the state was Start, after WriteProcessingInstruction() and
975           WriteWhitespace() change it to Prolog.
976           After WriteDocType() set state to WriteState.Element.
977
978 2006-01-12  Atsushi Enomoto <atsushi@ximian.com>
979
980         * XmlTextWriter.cs : Do not local duplicate of automatically-created
981           prefixes (i.e. check local autocreated prefixes other than
982           namespaces from ancestors). Fixed bug #77086 and #77087.
983
984 2006-01-12  Atsushi Enomoto <atsushi@ximian.com>
985
986         * XmlWriter.cs : use XmlChar.IsNmToken() to check argument and throw
987           ArgumentException in WriteNmTokenInternal().
988
989 2006-01-12  Atsushi Enomoto <atsushi@ximian.com>
990
991         * XmlTextWriter.cs : Fixed bug #77094. Only XmlTextWriter checks
992           such invalid "xml" prefix which is being mapped to different
993           namespace URI than the predefined one.
994           Removed comment that does not make sense.
995         * XmlNamespaceManager.cs : IsValidDeclaration() could be private.
996           Added some comments.
997
998 2006-01-11  Atsushi Enomoto <atsushi@ximian.com>
999
1000         * DTDObjectModel.cs : dtd2xsd fix; set use="optional" when an
1001           attribute is #IMPLIED.
1002
1003 2006-01-06  Atsushi Enomoto <atsushi@ximian.com>
1004
1005         * XmlWriter.cs : In WriteNode(XPathNavigator, bool), Avoid
1006           ReadSubtree() for non-element content since they are not allowed
1007           in ReadSubtree() (but allowed here).
1008
1009 2006-01-06  Atsushi Enomoto <atsushi@ximian.com>
1010
1011         * XmlValidatingReader.cs : In ReadTypedValue(), treat Whitespace
1012           nodes as target string nodes as well as other text nodes.
1013
1014 2006-01-06  Atsushi Enomoto <atsushi@ximian.com>
1015
1016         * XmlValidatingReader.cs : ReadTypedValue() was not working with
1017           non-XmlSchemaDatatype types.
1018
1019 2006-01-05  Gert Driesen <drieseng@users.sourceforge.net>
1020
1021         * XmlTextWriter.cs: Modified WriteWhitespace to throw ArgumentException
1022         if value is null or zero-length string. Modified WriteNmToken to throw
1023         ArgumentException if name is null or zero-length string. Cosmetic
1024         change to WriteStringInternal.
1025         * XmlElement.cs: In 2.0 profile, do not throw ArgumentNullException
1026         if new value for Prefix is null.
1027
1028 2005-12-26  Atsushi Enomoto <atsushi@ximian.com>
1029
1030         * XmlTextWriter.cs : when namespaceURI is String.Empty, Prefix
1031           should be just ignored (it is likely to happen that DOM nodes
1032           with empty namespace URI are specified non-empty prefix by
1033           users, which had better be just ignored). Fixed bug #77095.
1034
1035 2005-12-26  Atsushi Enomoto <atsushi@ximian.com>
1036
1037         * XmlElement.cs : patch for Prefix property by Vorobiev Maksim.
1038           - null should cause ArgumentNullException.
1039           - "" should not raise an error.
1040           - throws ArgumentException when it is readonly.
1041
1042 2005-12-23  Atsushi Enomoto <atsushi@ximian.com>
1043
1044         * XmlTextWriter.cs : When xml:space or xml:lang attribute was
1045           directly written without an element, it caused ArgumentOutOfRange.
1046           Fixed bug #77084.
1047
1048 2005-12-23  Atsushi Enomoto <atsushi@ximian.com>
1049
1050         * XmlTextWriter.cs : (WriteStartAttribute) set prefix as "xmlns" when
1051           namespaceURI is that of xmlns attributes. Fixed bug #77083.
1052
1053 2005-12-15  Atsushi Enomoto <atsushi@ximian.com>
1054
1055         * DTDObjectModel.cs : (CreateXsdParticle) element particle was
1056           missing occurence indicators.
1057
1058 2005-12-15  Atsushi Enomoto <atsushi@ximian.com>
1059
1060         * DTDObjectModel.cs : some fixes on GetXmlSchema()
1061           - make generated schema cleaner.
1062           - enumeration was missing for attribute type.
1063         * XmlTextReader.cs, XmlTextReader2.cs : added tiny notes for dtd2xsd.
1064
1065 2005-12-15  Konstantin Triger <kostat@mainsoft.com>
1066
1067         * XmlTextWriter.cs: allow null string in WriteCData.
1068
1069 2005-12-14  Atsushi Enomoto <atsushi@ximian.com>
1070
1071         * XmlNode.cs : (GetNamespaceOfPrefix) return const xml/xmlns URIs
1072           only under 2.0.
1073
1074 2005-12-14  Atsushi Enomoto <atsushi@ximian.com>
1075
1076         * XmlDocumentNavigator.cs : added UnderlyingObject as to behave as
1077           documented in MSDN.
1078
1079 2005-12-14  Atsushi Enomoto <atsushi@ximian.com>
1080
1081         * XmlNode.cs : under 2.0 xml/xmlns are treated as special cases in
1082           GetNamespaceOfPrefix()/GetPrefixOfNamespace() (but it still does not
1083           implement IXmlNamespaceResolver, bummer).
1084
1085 2005-12-14  Atsushi Enomoto <atsushi@ximian.com>
1086
1087         * XmlDocument.cs : changed some exception types.
1088         * XmlDocumentNavigator.cs : added 2.0 SchemaInfo.
1089
1090 2005-12-13  Atsushi Enomoto <atsushi@ximian.com>
1091
1092         * XmlTextReader.cs : 1.x build fix.
1093
1094 2005-12-13  Atsushi Enomoto <atsushi@ximian.com>
1095
1096         * XmlTextReader.cs : when XmlReader.Create() creates this instance,
1097           don't expect strict text declaration. Check SkipTextDeclaration()
1098           on Read().
1099
1100 2005-12-12  Atsushi Enomoto <atsushi@ximian.com>
1101
1102         * XmlReader.cs : fixed several misconception in MoveToNextSibling().
1103           It should check its ReadState to avoid infinite loop.
1104
1105 2005-12-12  Atsushi Enomoto <atsushi@ximian.com>
1106
1107         * XmlException.cs : added another .ctor() overload that takes both
1108           IXmlLineInfo and innerException.
1109         * XmlQualifiedName.cs : added Parse() overload that takes XmlReader
1110           (since XmlReader is not IXmlNamespaceResolver anymore).
1111         * XmlReader.cs : made several fixes on 2.0 ReadContentAs(),
1112           ReadElementContentAs() and all of its variants.
1113
1114 2005-12-09  Atsushi Enomoto <atsushi@ximian.com>
1115
1116         * XmlInputStream.cs :
1117           Added Encoding property on NonBlockingStreamReader
1118         * XmlTextReader.cs :
1119           set Encoding property when it proceeds to xml declaration.
1120
1121 2005-12-09  Atsushi Enomoto <atsushi@ximian.com>
1122
1123         * XmlReader.cs : ReadToDescendant() should work when its ReadState is
1124           Initial.
1125
1126 2005-12-09  Atsushi Enomoto <atsushi@ximian.com>
1127
1128         * XmlChar.cs : removed incorrect comment.
1129         * XmlReader.cs : Create() clones XmlReaderSettings (if supplied).
1130           For wrapped XmlReader, check ConformanceLevel to be consistent.
1131         * XmlTextReader.cs, XmlTextReader2.cs : added get_Conformance for
1132           internal use. Removed unused fields.
1133         * XmlInputStream.cs : updated NonBlockingStreamReader to the latest
1134           StreamReader (it is almost a copy).
1135
1136 2005-12-08  Atsushi Enomoto <atsushi@ximian.com>
1137
1138         * XmlTextReader.cs : avoid Char.IsSurrogate() and do it inside
1139           PeekChar(), which improves notable performance.
1140
1141 2005-12-08  Atsushi Enomoto <atsushi@ximian.com>
1142
1143         * XmlReaderSettings.cs : Schemas will be created only when it is
1144           required.
1145
1146 2005-12-08  Andrew Skiba  <andrews@mainsoft.com>
1147
1148         * IXmlNamespaceResolver.cs: delete TARGET_JVM,
1149         no need to mangle the name
1150
1151 2005-12-08  Atsushi Enomoto <atsushi@ximian.com>
1152
1153         * Driver.cs, Profiler.cs, XmlQualifiedNameTable.cs :
1154           removed old code.
1155
1156 2005-12-08  Atsushi Enomoto <atsushi@ximian.com>
1157
1158         * XmlReaderSettings.cs : thanks to idiotic MS design,
1159           AllowXmlAttributes is turned on by default.
1160
1161 2005-12-08  Atsushi Enomoto <atsushi@ximian.com>
1162
1163         * XmlReaderSettings.cs :
1164           set_Schemas() is fixed in 2.0 RTM (it just works).
1165         * XmlResolver.cs : throw ArgumentNullException instead of
1166           ArgumentException when both base and relative urls are null.
1167
1168 2005-12-08  Atsushi Enomoto <atsushi@ximian.com>
1169
1170         * XmlReaderSettings.cs : ProhibitDtd is set as default.
1171         * XmlWriterSettings.cs : no set_OutputMethod.
1172
1173 2005-11-30  Konstantin Triger  <kostat@mainsoft.com>
1174
1175         * IXmlNamespaceResolver.cs: TARGET_JVM namespace change.
1176
1177 2005-11-17  Vladimir Krasnov <vladimirk@mainsoft.com>
1178
1179         * XmlInputStream.cs: fixed Initialize method to be able 
1180         to read unicode file without BOM. TARGET_JVM only.
1181
1182 2005-11-14  Atsushi Enomoto <atsushi@ximian.com>
1183
1184         * XmlNodeReader.cs : removed historical one.
1185
1186 2005-11-10  Atsushi Enomoto <atsushi@ximian.com>
1187
1188         * XmlReader.cs, XmlNode.cs :
1189           [DebuggerDisplay] are not worthy of existing.
1190
1191 2005-11-09  Atsushi Enomoto <atsushi@ximian.com>
1192
1193         * XmlTokenizedType.cs, XmlNodeOrder.cs : so those enums happen to
1194           have [Serializable] in .NET 1.x, and removed in 2.0 (enums are
1195           anyways serializable, so those attributes do not make sense).
1196
1197 2005-11-09  Atsushi Enomoto <atsushi@ximian.com>
1198
1199         * XmlValidatingReader.cs : added CanReadBinaryContent.
1200         * XmlTextReader.cs, XmlTextReader2.cs : GetNamespacesInScope() are
1201           now both public and private (i.e. hush IsVirtual).
1202         * XmlWriterSettings.cs, XmlWriter.cs, XmlTextWriter.cs :
1203           NormalizeNewLines vanished.
1204
1205 2005-11-09  Atsushi Enomoto <atsushi@ximian.com>
1206
1207         * XmlReader.cs : MoveToAttribute(int) is virtual in NET_2_0.
1208
1209 2005-11-09  Atsushi Enomoto <atsushi@ximian.com>
1210
1211         * XmlConvert.cs : implemented VerifyTOKEN().
1212
1213 2005-11-09  Atsushi Enomoto <atsushi@ximian.com>
1214
1215         * XmlConvert.cs : VerifyNCName() and VerifyName() throws
1216           ArgumentNullException for "".
1217
1218 2005-11-07  Atsushi Enomoto <atsushi@ximian.com>
1219
1220         * XmlReader.cs : dependent XmlSchemaValidationFlags fix.
1221           Added ReadElementContentAsObject() and ReadContentAsObject().
1222         * XmlReader.cs, XmlTextReader.cs :
1223           LookupNamespace(string,bool) is now private.
1224         * XmlReader.cs, XmlNode,cs :
1225           [DebuggerDisplay].
1226
1227 2005-11-07  Atsushi Enomoto <atsushi@ximian.com>
1228
1229         * XmlElement.cs, XmlCDataSection.cs, XmlText.cs, XmlWhitespace.cs,
1230           XmlSignificantWhitespace.cs : added ParentNode overrides (actually
1231           they don't make sense since it just calls base.)
1232         * XmlNode.cs, XmlDocument.cs : changed .NET 2.0 CreateNavigator() impl
1233           to match signature and skip OwnerDocument check in XmlNode (since
1234           it is overriden). Maybe MS does not have ownerDocument as a field and
1235           costs too much on OwnerDocument property.
1236           Added missing bits in XmlDocument.
1237
1238 2005-11-07  Atsushi Enomoto <atsushi@ximian.com>
1239
1240         * XmlAttribute.cs : added new overrides in 2.0 RTM (this scarcely
1241           makes sense without real optimization though).
1242         * XmlDocument.cs, XmlElement.cs, XmlNode.cs : avoid ChildNodes and
1243           save extra XmlNodeList creation cost.
1244
1245 2005-11-07  Atsushi Enomoto <atsushi@ximian.com>
1246
1247         * XmlNamespaceManager.cs : NameTable is virtual in 2.0 RTM.
1248         * XmlReader.cs : IsEmptyElement is reverted to be abstract in 2.0 RTM.
1249           ReadTypedValue() is removed.
1250         * XmlValidatingReader.cs : ReadTypedValue() is not virtual now.
1251         * XmlWriter.cs : Settings is virtual.
1252
1253 2005-10-23  Atsushi Enomoto <atsushi@ximian.com>
1254
1255         * XmlDocumentNavigator.cs : now MoveToFirst() invokes internal
1256           MoveToFirstImpl().
1257
1258 2005-10-23  Atsushi Enomoto <atsushi@ximian.com>
1259
1260         * XmlTextWriter.cs : oops, so WriteState.Error is NET_2_0 only.
1261
1262 2005-10-23  Atsushi Enomoto <atsushi@ximian.com>
1263
1264         * XmlTextWriter.cs : (Error state check) actually I need to set Error.
1265
1266 2005-10-23  Atsushi Enomoto <atsushi@ximian.com>
1267
1268         * XmlTextWriter.cs : throw InvalidOperationException if any of
1269           WriteBlah() methods were invoked at error state.
1270
1271 2005-10-23  Atsushi Enomoto <atsushi@ximian.com>
1272
1273         * XmlTextReader.cs, DTDValidatingReader.cs : LookupNamespace("") for
1274           default namespace was returning "" instead of null. It didn't check
1275           empty namespace URI for non-empty prefixes.
1276
1277 2005-10-07  Joshua Tauberer <tauberer@for.net>
1278
1279         * XmlTextReader.cs: SkipTextDeclaration would not accept processing
1280         instructions that began with the string 'xml', e.g. rejecting
1281         'xml-stylesheet'.
1282
1283 2005-10-08  Gert Driesen <drieseng@users.sourceforge.net>
1284
1285         * XmlAttribute.cs: InnerText and InnerXml do not override getters in
1286         NET_2_0. Removed extra CLSCompliant attribute on SchemaInfo.
1287         * XmlReaderSettings.cs: Marked sealed.
1288
1289 2005-10-04  Atsushi Enomoto <atsushi@ximian.com>
1290
1291         * XmlConvert.cs : ToTimeSpan() resulted in an infinite loop when the
1292           digits for "second" were not exactly 3. Fixed bug #76328.
1293
1294 2005-10-04  Atsushi Enomoto <atsushi@ximian.com>
1295
1296         * XmlReader.cs : Name is virtual in NET_2_0.
1297
1298 2005-10-03  Atsushi Enomoto <atsushi@ximian.com>
1299
1300         * XmlWriter.cs, XmlWriterSettings.cs, XmlTextWriter.cs :
1301           added supprot for NormalizeNewLines.
1302           NewLineOnAttributes is considered only when Indent is true.
1303
1304 2005-10-01  Atsushi Enomoto <atsushi@ximian.com>
1305
1306         * XmlAttribute.cs, XmlDocument.cs : check id table updates when
1307           XmlAttribute.set_Value() was invoked. Fixed bug #76311.
1308
1309 2005-10-01  Atsushi Enomoto <atsushi@ximian.com>
1310
1311         * XmlReader.cs, XmlTextReader.cs, XmlTextReader2.cs :
1312          XmlReader.Create() with string url argument are not working because
1313          of incorrect choice of the .ctor().
1314
1315 2005-09-28  Atsushi Enomoto <atsushi@ximian.com>
1316
1317         * XmlNodeReaderImpl.cs : when the source node was not a document and
1318           it is an empty element, Read() was incorrectly moving to the parent
1319           of the source node. Patch by Csaba Halasz. Fixed bug #76260.
1320
1321 2005-09-27  Atsushi Enomoto <atsushi@ximian.com>
1322
1323         * XmlTextReader.cs : surrogate computation is incorrect. Fixed bug
1324           #76247. Patch by Brion Vibber.
1325
1326 2005-09-26  Atsushi Enomoto <atsushi@ximian.com>
1327
1328         * DTDValidatingReader.cs : Namespace manager was not handled correctly.
1329           Now it does the same as XmlTextReader does. Fixed bug #76234.
1330
1331 2005-09-26  Gert Driesen <drieseng@users.sourceforge.net>
1332
1333         * XmlNodeChangedEventArgs.cs: Only make ctor publicly available
1334         in NET_2_0. Fixed API compatiblity with .NET 1.1.
1335         * XmlOutputMethod.cs: Fixed values of enum fields to match MS.NET.
1336         Only available in .NET 2.0.
1337
1338 2005-09-25  Atsushi Enomoto <atsushi@ximian.com>
1339
1340         * XmlReader.cs, XmlReaderSettings.cs, XmlDocument.cs:
1341           XmlSchemaValidationFlags updates.
1342
1343 2005-09-21  Atsushi Enomoto <atsushi@ximian.com>
1344
1345         * XmlWriterSettings.cs : true NET_2_0 updates.
1346
1347 2005-09-21  Atsushi Enomoto <atsushi@ximian.com>
1348
1349         * XmlOutputMethod.cs : new file.
1350         * XmlWriter.cs, XmlValidatingReader.cs, XmlReaderSettings.cs,
1351           XmlUrlResolver.cs, XmlWriterSettings.cs :
1352           more NET_2_0 updates.
1353
1354 2005-09-21  Atsushi Enomoto <atsushi@ximian.com>
1355
1356         * XmlNodeReader2.cs, XmlReader.cs,
1357           XmlTextReader.cs, XmlTextReader2.cs,
1358           XmlNodeChangedEventArgs.cs, XmlElement.cs,
1359           XmlNode.cs, XmlDocument.cs :
1360           updated NET_2_0 API.
1361
1362 2005-09-14  Atsushi Enomoto <atsushi@ximian.com>
1363
1364         * XmlTextReader.cs : when there is a heading half of surrogate at the
1365           end of read buffer, it didn't treat it as a surrogate.
1366           Fixed bug #76102.
1367
1368 2005-09-14  Atsushi Enomoto <atsushi@ximian.com>
1369
1370         * XmlTextWriter.cs : for surrogate pair, output character reference
1371           as a single character instead of two reference pairs. Fixed bug #76095.
1372           Patch by Brion Vibber.
1373
1374 2005-08-31  Sebastien Pouliot  <sebastien@ximian.com>
1375
1376         * XmlDocument.cs: Added an InheritanceDemand for Unrestricted on 
1377         CreateDocumentType and ReadNode methods.
1378         * XmlException.cs: Added a Demand for SerializationFormatter on 
1379         GetObjectData method.
1380         * XmlResolver.cs: Added an InheritanceDemand for Unrestricted on 
1381         ResolveUri method.
1382         * XmlSecureResolver.cs: Fixed exception when creating evidences with 
1383         an empty URL in CreateEvidenceForUrl method. Only call ResolvePolicy 
1384         and PermitOnly if the security manager is enabled.
1385         * XmlTextReader.cs: Added an InheritanceDemand for Unrestricted on the
1386         class.
1387         * XmlTextReader2.cs: Added an InheritanceDemand for Unrestricted on 
1388         the class.
1389         * XmlValidatingReader.cs: Added an InheritanceDemand for Unrestricted 
1390         on the class.
1391
1392 2005-08-16  Atsushi Enomoto <atsushi@ximian.com>
1393
1394         * DTDReader.cs : no need to skip text declaration for such entity
1395           declaration that has literal entity. It should not expand entities
1396           inside ResolveExternalEntityReplacementText().
1397           Finally fixed bug #51495.
1398
1399 2005-08-16  Atsushi Enomoto <atsushi@ximian.com>
1400
1401         * XmlTextReader.cs, XmlTextReader2.cs : added internal .ctor() to
1402           receive both TextReader, XmlNodeType and BaseURI for entity
1403           resolution (though it would be removed later).
1404         * XmlParserInput.cs : Now to handle nested PE insertion and correct
1405           BaseURI, it internally holds a stack of "input source".
1406         * DTDObjectModel.cs,
1407           DTDReader.cs :
1408           Required fixes for XmlParserInput.
1409           Handle BaseURI as expected. Added ActualUri for resolved actual
1410           source URI (to resolve nested entities). Pass ActualUri to internal
1411           XmlTextReader.ctor() in ResolveExternalEntityReplacementText()
1412           (well, yes I remember, it is problematic.)
1413
1414           Incorrect Base URI handling bug (part of #51495) is fixed.
1415
1416 2005-08-16  Atsushi Enomoto <atsushi@ximian.com>
1417
1418         * DTDReader.cs, XmlParserInput.cs :
1419           let's fix #51495. First of all, refactoring.
1420
1421 2005-08-04  Atsushi Enomoto <atsushi@ximian.com>
1422
1423         * XmlAttribute.cs : When there was only one child in attribute
1424           and it was an entity reference, set_Value() tried to set text value
1425           and thus failed.
1426
1427 2005-08-03  Gert Driesen  <drieseng@users.sourceforge.net>
1428
1429         * XmlConvert.cs: Renamed RoundTripKind to RoundtripKind.
1430         * XmlDateTimeSerializationMode.cs: Renamed RoundTripKind to
1431         RoundtripKind to match .NET 2.0 Beta 2.
1432         * XmlNodeReader2.cs: GetNamespacesInScope returns generic IDictionary
1433         in .NET 2.0 Beta 2, and is explicit interface implementation.
1434         * XmlTextReader.cs: GetNamespacesInScope returns generic IDictionary
1435         in .NET 2.0 Beta 2.
1436         * XmlTextReader2.cs: GetNamespacesInScope returns generic IDictionary
1437         in .NET 2.0 Beta 2.
1438         * XmlValidatingReader.cs: GetNamespacesInScope returns generic 
1439         IDictionary in .NET 2.0 Beta 2.
1440         * IXmlNamespaceResolver.cs: GetNamespacesInScope returns generic
1441         IDictionary in .NET 2.0 Beta 2.
1442         * XmlNamespaceManager.cs: GetNamespacesInScope returns generic 
1443         IDictionary in .NET 2.0 Beta 2.
1444         * XmlNodeReaderImpl.cs: GetNamespacesInScope returns generic 
1445         IDictionary in .NET 2.0 Beta 2.
1446         * DTDValidatingReader.cs: GetNamespacesInScope returns generic
1447         IDictionary in .NET 2.0 Beta 2.
1448
1449 2005-07-14  Atsushi Enomoto <atsushi@ximian.com>
1450
1451         * XmlTextWriter.cs : In WriteQualifiedName(), when there is open
1452           attribute, it calls LookupPrefix() and then if namespace was empty,
1453           it resulted in an exception. Fixed bug #75546.
1454
1455 2005-06-29  Atsushi Enomoto <atsushi@ximian.com>
1456
1457         * XmlConvert.cs : ToTimeSpan() should accept milliseconds (according
1458           to ISO 8601 and XSD datatypes 3.2.6.1).
1459
1460 2005-06-27  Andrew Skiba  <andrews@mainsoft.com>
1461
1462         * DTDReader.cs : don't validate entity values, when the entry is
1463         redefined so it will be never used. Fixes valid-sa-086 test from W3C
1464         xmlconf suite.
1465
1466 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
1467
1468         * XmlQueryDialect.cs : removed.
1469
1470 2005-06-27  Atsushi Enomoto <atsushi@ximian.com>
1471
1472         * XmlWriter.cs : added Create(XmlWriter).
1473         * XmlValidatingReader.cs : added Read*AsBase64/BinHex().
1474         * XmlReaderSettings.cs : added obsolete annoyances to hush corcompare.
1475
1476 2005-06-22  Atsushi Enomoto <atsushi@ximian.com>
1477
1478         * XmlTextReader.cs : use StringBuilder.ToString(int,int) when it does
1479           not have a large chunk of data, following Ben's idea.
1480
1481 2005-06-22  Atsushi Enomoto <atsushi@ximian.com>
1482
1483         * XmlTextReader.cs : use StringBuilder to store character values; that
1484           saves 40% memory for large chunk of xml. Patch by Gonzalo.
1485
1486 2005-06-22  Andrew Skiba  <andrews@mainsoft.com>
1487
1488         * XmlNode.cs : cosmetic fix - remove unnecessary argument from
1489           AppendChildValues function.
1490           
1491 2005-06-22  Atsushi Enomoto <atsushi@ximian.com>
1492
1493         * XmlTextReader.cs : normalization is not required to check character
1494           validity everywhere except for character reference.
1495
1496 2005-06-17  Atsushi Enomoto <atsushi@ximian.com>
1497
1498         * DTDValidatingReader.cs : removed some extra IsDefault check (with
1499           the latse code default attributes are stored in hashtables anyways.)
1500           Fixup attribute namespaces _after_ xmlns attributse are filled.
1501           The latest change is not good that namespaceURI of a local attribute
1502           was incorrectly globally looked up (it should be always "").
1503
1504 2005-06-17  Atsushi Enomoto <atsushi@ximian.com>
1505
1506         * XmlValidatingReader.cs : LookupNamespace() was trying to access to 
1507           null reference to validatingReader.
1508         * DTDValidatingReader.cs : Fixed default xmlns* attribute handling.
1509           It used to be valid only at the declaring element.
1510
1511 2005-06-14  Atsushi Enomoto <atsushi@ximian.com>
1512
1513         * DTDValidatingReader.cs : further text node fixes.
1514           - Cut out validation code from Text node case.
1515           - Now it does not use error-prone case transition but uses 
1516             DocumentFragment 'vacant room' and fixed incorrect transition from
1517             whitespace to text.
1518           - CDATA should be validated the same as Text is.
1519
1520 2005-06-14  Atsushi Enomoto <atsushi@ximian.com>
1521
1522         * DTDValidatingReader.cs : whitespace nodes were incorrectly rejected
1523           inside non-mixed content model.
1524
1525 2005-06-09  Andrew Skiba  <andrews@mainsoft.com>
1526
1527         * XmlConvert.cs : add TARGET_JVM for roundtrip bug
1528
1529 2005-06-06  Atsushi Enomoto <atsushi@ximian.com>
1530
1531         * XmlEntityReference.cs, XmlNode.cs : protected api fix.
1532
1533 2005-06-02  Atsushi Enomoto <atsushi@ximian.com>
1534
1535         * XmlEntityReference.cs, XmlNode.cs : For entity references, BaseURI 
1536           resolution should be different from that of parent since they might
1537           differ. Patch by Andrew Skiba.
1538
1539 2005-05-31  Atsushi Enomoto <atsushi@ximian.com>
1540
1541         * DTDReader.cs :
1542           make sure to close parser input before parser stack pop.
1543         * DTDValidatingReader.cs : ditto.
1544         * DTDObjectModel.cs : Fixed another incorrect null BaseURI check.
1545
1546 2005-05-31  Atsushi Enomoto <atsushi@ximian.com>
1547
1548         * DTDValidatingReader.cs : Last BaseURI exposed this hidden bug via
1549           sys.security tests.
1550
1551 2005-05-30  Atsushi Enomoto <atsushi@ximian.com>
1552
1553         * DTDObjectModel.cs : in DTDEntityBase.Resolve() don't overwrite
1554           BaseURI which results in incorrect URI resolution.
1555
1556 2005-05-21  Atsushi Enomoto <atsushi@ximian.com>
1557
1558         * DTDObjectModel.cs : For simple type restriction creation it failed
1559           when there is no enumerations (largely failed).
1560
1561 2005-05-21  Atsushi Enomoto <atsushi@ximian.com>
1562
1563         * XmlImplementation.cs : added new NET_2_0 ctor.
1564           Let's check corcompare:-/
1565
1566 2005-05-11  Atsushi Enomoto <atsushi@ximian.com>
1567
1568         * DTDValidatingReader.cs : namespace storing was stupid.
1569
1570 2005-05-10  Atsushi Enomoto <atsushi@ximian.com>
1571
1572         * DTDValidatingReader.cs : since namespace declarations might be
1573           resolved differently due to entity handling, it holds its own set
1574           of declared namespaces. NamespaceURI and LookupNamespace() use it.
1575
1576 2005-05-09  Atsushi Enomoto <atsushi@ximian.com>
1577
1578         * XmlReader.cs : added ReadElementContentAsLong().
1579         * XmlWriter.cs : removed some obsolete WriteValue() overloads.
1580         * XmlResolver.cs,
1581           IXmlNamespaceResolver.cs : removed deprecated 2.0 bits.
1582         * XQueryConvert.cs : obsolete (yeah, now XQuery should be hidden).
1583
1584 2005-05-06  Atsushi Enomoto <atsushi@ximian.com>
1585
1586         * XmlInputStream.cs : Now XmlStreamReader uses non-blocking TextReader
1587           that is mostly copied from StreamReader. It should fix bug #74161.
1588
1589 2005-05-05  Atsushi Enomoto <atsushi@ximian.com>
1590
1591         * XmlNodeReader2.cs, XmlTextReader2.cs, XmlValidatingReader.cs,
1592           XmlNamespaceManager.cs, IXmlNamespaceResolver.cs,
1593           DTDValidatingReader.cs : Removed most of "atomizedName" related
1594           stuff that are obsoleted in 2.0 beta2.
1595         * XQueryConvert.cs : XPathAtomicValue -> XmlAtomicValue.
1596
1597 2005-05-04  Andrew Skiba <andrews@mainsoft.com>
1598
1599         * IXmlNamespaceResolver.cs : mangle the interface method names when
1600         compiling for TARGET_JVM
1601         
1602 2005-03-30  Atsushi Enomoto <atsushi@ximian.com>
1603
1604         * XmlUrlResolver.cs : just return connected Stream instead of fully
1605           downloaded memory cache. Fix by Konstantin Triger.
1606
1607 2005-03-24  Atsushi Enomoto <atsushi@ximian.com>
1608
1609         * XmlWriter.cs : WriteQualifiedName() should check namespace validity
1610           (whether it is in scope or not).
1611         * XmlTextWriter.cs : When WriteQualifiedName() is invoked inside
1612           attribute and no matching namespace declaration, create prefix
1613           on demand. Code reused from WriteStartAttribute().
1614
1615 2005-03-22  Atsushi Enomoto <atsushi@ximian.com>
1616
1617         * XmlValidatingReader.cs : create schema set on demand.
1618
1619 2005-03-22  Atsushi Enomoto <atsushi@ximian.com>
1620
1621         * XmlParserInput.cs,
1622           XmlNode.cs,
1623           XmlUrlResolver.cs,
1624           DTDValidatingReader.cs : removed/commented out those warned code.
1625
1626 2005-03-15  Atsushi Enomoto <atsushi@ximian.com>
1627
1628         * XmlDocumentNavigator.cs : overriden IsDescendant (default 
1629           implementation extraneously clones).
1630
1631 2005-03-15  Atsushi Enomoto <atsushi@ximian.com>
1632
1633         * DTDValidatingReader.cs : When expanding entities and there is a
1634           sequence of text nodes, its value was not returned.
1635         * XmlTextReader.cs : better invalid char error report for EOF.
1636
1637 2005-03-09  Andrew Skiba <andrews@mainsoft.com>
1638
1639         * XmlTextReader.cs, XmlParserInput.cs, DTDReader.cs: fix UCM-4
1640           surrogate calculations. This fixes bug 73513.
1641
1642 2005-03-09  Atsushi Enomoto <atsushi@ximian.com>
1643
1644         * XmlParserInput.cs : silly mixed line endings :(
1645
1646 2005-03-08  Atsushi Enomoto <atsushi@ximian.com>
1647
1648         * XmlTextWriter.cs : namespace declaration check for those which starts
1649           with 'x' 'm' 'l' should not be done here (it might be 'declared'
1650           though reserved).
1651         * XmlNamespaceManager.cs : error message for "'xml' prefix for
1652           different namespace" is incorrect.
1653
1654 2005-03-07  Atsushi Enomoto <atsushi@ximian.com>
1655
1656         * XmlDocument.cs : ugh, so I introduced extraneous reader.Read() in
1657           ReadNode() for EntityReference and it resulted in unexpected skip.
1658         * DTDValidatingReader.cs : On EndEntity, LocalName and Name should
1659           return the name of entity. Removed unused entityReaderNameStack.
1660
1661 2005-03-07  Atsushi Enomoto <atsushi@ximian.com>
1662
1663         * DTDValidatingReader.cs : reverted one change in r40985. Entity stack
1664           is nothing to do with ReadAttributeValue().
1665
1666 2005-03-07  Atsushi Enomoto <atsushi@ximian.com>
1667
1668         * DTDValidatingReader.cs : When there was actual attribute in source 
1669           XmlReader, MoveToAttribute(i) did not move source reader as expected.
1670
1671 2005-03-03  Atsushi Enomoto <atsushi@ximian.com>
1672
1673         * XmlDocument.cs : In ReadNode(), on EntityReference node, when 
1674           XmlReader can resolve entity, it expands entity and apppend 
1675           children into the entity reference. Patch by Konstantin Triger.
1676
1677 2005-03-03  Atsushi Enomoto <atsushi@ximian.com>
1678
1679         * XmlTextWriter.cs : For duplicating namespace mapping, it should
1680           create another prefix without throwing an exception.
1681
1682 2005-03-02  Atsushi Enomoto <atsushi@ximian.com>
1683
1684         * XmlTextWriter.cs : LookupPrefix() should not return those prefix
1685           that is overriden by another xmlns declaration.
1686
1687 2005-02-26  Atsushi Enomoto <atsushi@ximian.com>
1688
1689         * XmlEntity.cs : it was not returning SYSTEM ID when there is no
1690           PUBLIC ID.
1691         * XmlDocumentNavigator.cs : On Whitespace followed by DocumentType,
1692           get_NodeType() resulted in loop.
1693
1694 2005-02-25  Atsushi Enomoto <atsushi@ximian.com>
1695
1696         * XmlComment.cs, XmlNode.cs, XmlText.cs, XmlProcessingInstruction.cs,
1697           XmlEntityReference.cs, XmlSignificantWhitespace.cs, XmlAttribute.cs,
1698           XmlElement.cs, XmlEntity.cs, XmlCDataSection.cs :
1699           For those nodes that are created by Clone(), IsReadOnly is false.
1700           Patch by Konstantin Triger.
1701
1702 2005-02-25  Atsushi Enomoto <atsushi@ximian.com>
1703
1704         * XmlDocumentNavigator.cs : iteratedNames array could be fixed and
1705           performance got improved. Patch by Konstantin Triger.
1706
1707 2005-02-25  Atsushi Enomoto <atsushi@ximian.com>
1708
1709         * XmlAttribute.cs : MS does not reject non-NCName prefix. Patch by
1710           Konstantin Triger.
1711
1712 2005-02-24  Atsushi Enomoto <atsushi@ximian.com>
1713
1714         * XmlTextWriter.cs : WriteString() should be valid when 
1715           WriteStartDocument() was not called.
1716
1717 2005-02-23  Atsushi Enomoto <atsushi@ximian.com>
1718
1719         * XmlNamespaceManager.cs : IsValidDeclaration was giving useless error
1720           information.
1721
1722 2005-02-23  Atsushi Enomoto <atsushi@ximian.com>
1723
1724         * XmlDocumentNavigator.cs : it should virtually expand EntityReference,
1725           so refactored to handle both entity references and top level children.
1726
1727 2005-02-22  Atsushi Enomoto <atsushi@ximian.com>
1728
1729         * XmlTextReader.cs : XmlParserContext was not properly popped on
1730           the expected timing and thus had lost BaseURI, XmlSpace and XmlLang.
1731         * XmlInputStream.cs : XmlTextReader does not allow invalid utf-8 
1732           characters.
1733
1734 2005-02-21  Atsushi Enomoto <atsushi@ximian.com>
1735
1736         * DTDValidatingReader.cs : It should not skip whitespace and
1737           significant whitespace nodes unless it is expanding entities.
1738         * XmlDocumentNavigator.cs : Fixed NodeType that was returning
1739           incorrect type when there is a sequence of text/cdata/space nodes.
1740
1741 2005-02-18  Atsushi Enomoto <atsushi@ximian.com>
1742
1743         * XmlNamespaceManager.cs : Prefix "xml" is bound to the fixed
1744           namespace "http://www.w3.org/XML/1998/namespace", but it is not
1745           vice versa (i.e. we can use other prefixes for this namespace URI).
1746
1747 2005-02-17  Atsushi Enomoto <atsushi@ximian.com>
1748
1749         * XmlNode.cs : It does not have to iterate children to find argument
1750           node. Fixed exception type to ArgumentException. Patch by Andrew
1751           Skiba.
1752
1753 2005-02-16  Atsushi Enomoto <atsushi@ximian.com>
1754
1755         * XmlAttribute.cs : just use InnerText for Value. Patch by Andrew
1756           Skiba.
1757         * XmlConvert.cs : Handle null and empty strings for EncodeName(),
1758           EncodeLocalName() and EncodeNmToken(). Patch by Andrew Skiba.
1759         * NameTable.cs : usually tail of namespaces are rather different than
1760           head of them. Patch by Andrew Skiba.
1761         * XmlUrlResolver.cs : missing %20 handling. Patch by Andrew Skiba.
1762
1763 2005-02-15  Atsushi Enomoto <atsushi@ximian.com>
1764
1765         * XmlAttribute.cs : For default attributes, WriteTo() writes nothing
1766           under MS.NET.
1767         * DTDValidatingReader.cs : reduced indentation using Linus trick
1768           (it was too deep in nest).
1769
1770 2005-02-14  Atsushi Enomoto <atsushi@ximian.com>
1771
1772         * DTDValidatingReader.cs : Namespaces and prefixes are not properly
1773           handled (it incorrectly assumed DTD definitions and thus always 
1774           assumed empty namespace/prefixes).
1775
1776 2005-02-14  Atsushi Enomoto <atsushi@ximian.com>
1777
1778         * DTDValidatingReader.cs : element name stack might be empty when the
1779           input XmlReader contains fragments. Patch by Andrew Skiba.
1780
1781 2005-01-25  Martin Baulig  <martin@ximian.com>
1782
1783         * XmlNode.cs (XmlNode.SchemaInfo): Mark this as not CLS-compliant
1784         to avoid a CS3025.
1785
1786         * XmlReaderSettings.cs (XmlReaderSettings.XmlResolver): Mark this
1787         as not CLS-compliant to avoid a CS3025.
1788
1789 2005-01-18  Atsushi Enomoto <atsushi@ximian.com>
1790
1791         * XmlNode.cs,
1792           XmlAttribute.cs,
1793           XmlAttributeCollection.cs :
1794           Now reuse parentNode field for XmlAttribute.OwnerElement and
1795           reduce class allocation size.
1796         * XmlNameEntry.cs :
1797           New class that represents a name triplet.
1798           XmlNameEntryCache.cs :
1799           New type to cache name entries.
1800         * XmlAttribute.cs,
1801           XmlElement.cs :
1802           Replace name strings with name entry and save class allocation size.
1803           XmlDocument.cs :
1804           Add name entry cache field to document and reuse name entries that 
1805           are already allocated.
1806
1807 2005-01-17  Atsushi Enomoto <atsushi@ximian.com>
1808
1809         * XmlNode.cs, XmlAttribute.cs : reverted the previous patch. It broke
1810           several nunit tests.
1811
1812 2005-01-15  Ben Maurer  <bmaurer@ximian.com>
1813
1814         * XmlNode.cs (InnerText, AppendChildValues): Don't allocate a
1815         string in the case where nothing needs to be appended.
1816
1817         * XmlAttribute.cs (BuildChildValue): Start out the string with
1818         `null' not `String.Empty'. String.Concat (null, blah) == blah,
1819         pointerwise. ie, there is no allocation. This makes it so that
1820         getting the value of an attribute is faster for the fast case.
1821
1822 2005-01-13  Atsushi Enomoto <atsushi@ximian.com>
1823
1824         * XmlResolver.cs : throw ArgumentException in ResolveUri().
1825
1826 2005-01-11  Atsushi Enomoto <atsushi@ximian.com>
1827
1828         * XmlTextWriter.cs : WriteComment() was outputting extraneous EOL.
1829
1830 2004-12-26  Atsushi Enomoto <atsushi@ximian.com>
1831
1832         * XmlReader.cs : ReadElementContentAsBinHex() was calling ..AsBase64().
1833         * XmlValidatingReader.cs : In set_EntityHandling(), set that property
1834           of DTDValidatingReader.
1835         * XmlNodeReader2.cs,
1836           XmlNodeReaderImpl.cs : added simplified implementation that splits
1837           entity handling and anything else.
1838         * XQueryConvert.cs : implemented ShouldCheckValueFacets().
1839           Use Convert class instead of simple casts (check range).
1840         * XmlReaderSettings.cs : added SetSchemas() for XPathNavigator.
1841
1842 2004-12-22  Atsushi Enomoto <atsushi@ximian.com>
1843
1844         * XmlParserContext.cs : all the string properties must not be set as
1845           null. Thanks to Joshua.
1846         * XmlTextReader.cs,
1847           DTDObjectModel.cs,
1848           DTDReader.cs : XmlResolver.ResolveUri() may return null.
1849
1850 2004-12-17  Atsushi Enomoto <atsushi@ximian.com>
1851
1852         * XmlReaderBinarySupport.cs : added support class for base64/binhex
1853           reading that mostly automates those reader support.
1854         * XmlReader.cs : added CanReadBinaryContent, CanReadValueChunk,
1855           ReadContentAsBase64(), ReadElementContentAsBase64(),
1856           ReadContentAsBinHex(), ReadElementContentAsBinHex() and
1857           ReadValueChunk().
1858         * XmlTextReader.cs : Now ReadBase64() and ReadBinHex() implementations
1859           are moved to XmlReaderBinarySupport. Added CanReadBinaryContent and
1860           CanReadValueChunk overrides. Call Binary.Reset() to enable them.
1861         * XmlTextReader2.cs : added CanReadBinaryContent, CanReadValueChunk.
1862           Added ReadContentAsBase64(), ReadElementContentAsBase64(),
1863           ReadContentAsBinHex(), ReadElementContentAsBinHex() (just because
1864           they are overriden in MS.NET).
1865         * XmlNodeReader.cs : added CanReadBinaryContent and CanReadValueChunk.
1866           Call Binary.Reset() to enable them.
1867
1868 2004-12-16  Atsushi Enomoto <atsushi@ximian.com>
1869
1870         * XmlConvert.cs :
1871           Added DateTime related methods with serialization mode.
1872
1873 2004-12-16  Atsushi Enomoto <atsushi@ximian.com>
1874
1875         * XmlReader.cs : added MoveToFollowing().
1876         * XmlNode.cs,
1877           XmlElement.cs,
1878           XmlAttribute.cs : added SchemaInfo support.
1879         * XmlDocument.cs : added Schemas and Validate().
1880           ReadNode() now copies xmlReader's SchemaInfo.
1881         * XmlNodeReader.cs : ditto (just reflects node's SchemaInfo).
1882
1883 2004-12-15  Atsushi Enomoto <atsushi@ximian.com>
1884
1885         * XmlReader.cs :
1886           Create() should assure NameTable!=null on creating XmlTextReader.
1887           Now use XmlSchemaValidatingReader for all xsd validation.
1888         * XmlTextReader2.cs :
1889           Don't use input reader's Settings. It is null.
1890         * XmlReaderSettings.cs : added XmlResolver.
1891
1892 2004-12-14  Atsushi Enomoto <atsushi@ximian.com>
1893
1894         * XmlReaderSettings.cs : XsdValidate and DtdValidate are now
1895           ValidationType.
1896         * XmlReader.cs : In Create(), use XmlSchemaValidatingReader for xsd
1897           validation.
1898
1899 2004-12-12  Zoltan Varga  <vargaz@freemail.hu>
1900
1901         * XmlTextReader.cs: Work around a compiler bug in csc 2.0 beta 1.
1902
1903 2004-12-09  Atsushi Enomoto <atsushi@ximian.com>
1904
1905         * DTDObjectModel.cs : implemented lightweight XmlSchema generator.
1906
1907 2004-12-08  Atsushi Enomoto <atsushi@ximian.com>
1908
1909         * XmlValidatingReader.cs : making smarter relationship between
1910           XsdValidatingReader.
1911
1912 2004-12-08  Atsushi Enomoto <atsushi@ximian.com>
1913
1914         * XmlException.cs : added SecurityPermissionAttributes.
1915         * XmlReaderSettings.cs,
1916           XmlReader.cs : added ValidationFlags and removed obsolete ones.
1917
1918 2004-12-06  Atsushi Enomoto <atsushi@ximian.com>
1919
1920         * XmlWriter.cs : WriteQualifiedNameInternal() should consider the case
1921           ns is null, and don't lookup prefix for empty namespace.
1922
1923 2004-12-03 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1924
1925         * XmlTextReader.cs: don't use \0 as buffer terminator.
1926         * XmlInputStream.cs: s/Array.Copy/Buffer.BlockCopy/.
1927
1928 2004-11-30  Atsushi Enomoto <atsushi@ximian.com>
1929
1930         * DTDReader.cs : Consideration on parameter entity was missing for 
1931           attribute default value. Fixed bug #70008.
1932
1933 2004-11-26  Atsushi Enomoto <atsushi@ximian.com>
1934
1935         * XmlReader.cs : not fixage, just explicitly formatted code a bit.
1936         * XmlTextReader.cs,
1937           XmlEntity.cs,
1938           XmlAttributeCollection.cs,
1939           XmlTextWriter.cs,
1940           XmlElement.cs,
1941           XmlNode.cs,
1942           DTDObjectModel.cs,
1943           XmlParserInput.cs,
1944           DTDReader.cs,
1945           XmlDocument.cs : warning removal.
1946
1947 2004-11-25  Atsushi Enomoto <atsushi@ximian.com>
1948
1949         * XmlQualifiedNameTable.cs : oops, it was not implemented.
1950
1951 2004-11-24  Atsushi Enomoto <atsushi@ximian.com>
1952
1953         * XmlQualifiedName.cs : in 2.0 it is [Serializable].
1954         * XmlTextReader.cs : removed unused local variable.
1955         * XmlTextWriter.cs : Improved some exception messages.
1956           moved some private fields into #if NET_2_0.
1957         * XmlValidatingReader.cs : rename specifiedResolver to
1958           resolverSpecified and use it in internal get_Resolver().
1959           Added [Obsolete] for ReadTypedValue() whose base is obsoleted.
1960
1961 2004-11-22  Atsushi Enomoto <atsushi@ximian.com>
1962
1963         * XmlTextReader.cs : Now attribute normalization is handled on Read(),
1964           not on get_Value. This caused a problem when we use
1965           XmlValidatingReader that value is not always normalized expectedly.
1966
1967 2004-11-22  Atsushi Enomoto <atsushi@ximian.com>
1968
1969         * XmlReader.cs : removed old ReadValueAsXXX() and added new
1970           ReadContentAsXXX() and ReadElementContentAsXXX().
1971         * XmlTextReader.cs : removed old ReadValueAsXXX() (no overrides now).
1972         * XmlTextWriter.cs : added indentation on Comment nodes.
1973         * XmlDateTimeSerializationMode.cs : updated.
1974         * XmlResolver.cs : added 2.0 NameTable field.
1975         * ValidationType.cs : added ObsoleteAttributes on some members.
1976
1977 2004-11-18  Atsushi Enomoto <atsushi@ximian.com>
1978
1979         * XmlParserContext.cs : the fix was not checked in :(
1980
1981 2004-11-17  Atsushi Enomoto <atsushi@ximian.com>
1982
1983         * XQueryConvert.cs : moved from System.Xml.Query.
1984
1985 2004-11-14  Atsushi Enomoto <atsushi@ximian.com>
1986
1987         * XmlWriter.cs : after WriteAttributes(), argument XmlReader must
1988           move to element. This fixes bug #69350.
1989
1990 2004-11-10  Atsushi Enomoto <atsushi@ximian.com>
1991
1992         * XmlParserContext.cs : PushScope() was accessing list out of range.
1993
1994 2004-11-09  Atsushi Enomoto <atsushi@ximian.com>
1995
1996         * DTDValidatingReader.cs, XmlTextReader.cs :
1997           needed more changes wrt XmlException.
1998
1999 2004-11-08  Atsushi Enomoto <atsushi@ximian.com>
2000
2001         * DTDObjectModel.cs,
2002           DTDReader.cs,
2003           XmlReader.cs,
2004           XmlTextReader.cs,
2005           XmlException.cs :
2006
2007           Added support for 2.0 XmlException.SourceUri property. Improved
2008           exception handling to contain BaseURI everywhere in the parser.
2009
2010 2004-11-08  Atsushi Enomoto <atsushi@ximian.com>
2011
2012         * XmlTextReader2.cs : added. It is used to serve public API, plus
2013           entity handling support.
2014
2015         * DTDObjectModel.cs,
2016           DTDValidatingReader.cs,
2017           XmlDocumentType.cs,
2018           XmlParserContext.cs,
2019           XmlTextReader.cs :
2020           Implemented XmlTextReader.EntityHandling and ResolveEntity(). To
2021           implement them, XmlTextReader in 2.0 itself is in XmlTextReader2.cs
2022           and XmlTextReader.cs contains Mono.Xml2.XmlTextReader which is the
2023           same as 1.x XmlTextReader. XmlTextReader2 switches entity reader and
2024           source reader, and never handles tokenization. 
2025           The reason for "Mono.Xml2" is to avoid large changes in constructor.f
2026
2027 2004-11-08  Atsushi Enomoto <atsushi@ximian.com>
2028
2029         * XmlAttribute.cs, XmlElement.cs : get_Name should consider name table.
2030         * XmlDocument.cs : use NameTable in Load() and LoadXml().
2031         * XmlReader.cs : In Create(), use NameTable in XmlReaderSettings.
2032
2033 2004-11-05  Atsushi Enomoto <atsushi@ximian.com>
2034
2035         * XmlDocumentNavigator.cs : create rarely-used ArrayList later. This
2036           significantly improves XmlDocument-based XPath performance.
2037
2038 2004-11-04  Atsushi Enomoto <atsushi@ximian.com>
2039
2040         * XmlTextReader.cs : Manually expanded some of AppendValueChar() and
2041           XmlChar.IsWhitespace() which are on critical points on performance
2042           (marked as FIXME, but it depends on JIT).
2043
2044 2004-11-04  Atsushi Enomoto <atsushi@ximian.com>
2045
2046         * XmlTextReader.cs : Search xml:* attributes more efficiently.
2047
2048 2004-11-04  Atsushi Enomoto <atsushi@ximian.com>
2049
2050         * XmlTextReader.cs : Reduced NameTable.Add() for prefixed names. First,
2051           ReadName() now returns atomized LocalName and Prefix. Second, to
2052           avoid extraneous split, SetProperties() now takes prefix and
2053           localName that might be given from ReadName(). Third, removed 
2054           FillNames(). This optimizes "namespace-aware and prefixed document"
2055           parsing 10-20% faster.
2056
2057 2004-11-03  Atsushi Enomoto <atsushi@ximian.com>
2058
2059         * XmlTextReader.cs :
2060           With related to AddNamespace(), there was extra string.StartsWith()
2061           calls. Now AttributeTokenInfo.FillNames() is splitted into
2062           FillPrefixAndXmlns() and FillNamespace(), and AddNamespace() is done
2063           at FillPrefixAndXmlns().
2064
2065 2004-11-03  Atsushi Enomoto <atsushi@ximian.com>
2066
2067         * XmlTextReader.cs :
2068           Reduces LookupNamespace() call in FillNames(). This improves 6-7%
2069           speedup in some scenario.
2070           Code refactory; Removed unused code. AddAttribute() is used only for
2071           DTD, so renamed to AddDtdAttribute(). For PUBLIC and SYSTEM ids,
2072           FillNames() is not required. Two SetProperties() are ambiguous, so
2073           renamed one (that takes TokenInfo) as SetTokenProperties().
2074
2075 2004-11-03  Atsushi Enomoto <atsushi@ximian.com>
2076
2077         * XmlParserContext.cs : rewrote; especially to avoid XmlSpace boxing.
2078
2079 2004-11-03  Atsushi Enomoto <atsushi@ximian.com>
2080
2081         * XmlTextReader.cs : LookupNamespace() don't have to be called in
2082           ReadStartTag() to check prefix, since NamespaceURI is filled in
2083           FillNames(). 10% performance up by avoiding this extra check.
2084
2085 2004-10-29  Atsushi Enomoto <atsushi@ximian.com>
2086
2087         * XmlValidatingReader.cs : fixed incorrect recursion between
2088           indexer and GetAttribute().
2089
2090 2004-10-29  Atsushi Enomoto <atsushi@ximian.com>
2091
2092         * DTDReader.cs, DTDValidatingReader.cs, XmlTextReader.cs :
2093           When XmlTextReader is created with NodeType Element or Attribute,
2094           skip possible text declaration (that might be used for resolving
2095           entities) that specifies text encoding. With this fix, bug #61274
2096           must be regarded as fixed.
2097
2098 2004-10-29  Atsushi Enomoto <atsushi@ximian.com>
2099
2100         * XmlNodeReader.cs : Reimplemented ResolveEntity(). It does not use
2101           XmlTextReader trick anymore. XmlNodeReader itself is used instead.
2102
2103 2004-10-29  Atsushi Enomoto <atsushi@ximian.com>
2104
2105         * XmlNodeReader.cs : for NET_1_0 ReadInnerXml(), just use
2106           XmlReader.ReadInnerXmlInternal(). It should work fine.
2107           Ditto for ReadOuterXml().
2108
2109 2004-10-29  Atsushi Enomoto <atsushi@ximian.com>
2110
2111         * XmlNodeReader.cs : removed unused/unreachable code. Simplify
2112           namespace lookup.
2113
2114 2004-10-29  Atsushi Enomoto <atsushi@ximian.com>
2115
2116         * XmlDocument.cs, XmlNodeReader.cs, XmlTextReader.cs,
2117           XmlValidatingReader.cs : Those readers could just implement internal
2118           interface IHasXmlParserContext.
2119         * XmlTextReader.cs, XmlValidatingReader.cs : this[] disappeared in 2.0.
2120           (XmlReader has them as virtual.)
2121         * XmlReader.cs : ReadAsObject() disappeared.
2122         * XmlWriter.cs : WriteFromObject() disappeared.
2123
2124 2004-10-29  Atsushi Enomoto <atsushi@ximian.com>
2125
2126         * XmlDocumentNavigator.cs : GetNode() should consider namespace nodes.
2127         * XmlNode.cs : dustclean.
2128
2129 2004-10-28  Atsushi Enomoto <atsushi@ximian.com>
2130
2131         * XmlDocument.cs : use XPathEditableDocument again.
2132         * XmlNode.cs : To be compatible with XPathEditableDocument, it should
2133           not cast XPathNavigator to XmlDocumentNavigator but to IHasXmlNode.
2134
2135 2004-10-28  Atsushi Enomoto <atsushi@ximian.com>
2136
2137         * XmlChar.cs, XmlConstructs.cs :
2138           Switched again, for reducing per-process memory consumption.
2139         * XmlInputStream.cs :
2140           Just 64 bytes of buffer would be enough, for example like
2141           <?xml version="1.0" encoding="iso-8859-15" standalone="yes" ?>
2142
2143 2004-10-28  Atsushi Enomoto <atsushi@ximian.com>
2144
2145         * IXmlDataEvidence.cs : disappeared.
2146         * XmlConvertDateTimeSerializationMode.cs : incorrect filename. removed.
2147         * XmlDateTimeSerializationMode.cs : added
2148         * NewLineHandling.cs : added
2149         * IXmlNamespaceResolver.cs, XmlNamespaceManager.cs :
2150           now 'atomizedNames' is obsolete.
2151         * XmlReaderSettings.cs, XmlWriterSettings.cs :
2152           Should not be sealed. Should not be ICloneable.
2153
2154 2004-10-28  Atsushi Enomoto <atsushi@ximian.com>
2155
2156         * XmlDocument.cs : XPathEditableDocument looks broken. Just reverted
2157           to fix 2.0 corcompare.
2158
2159 2004-10-26  Atsushi Enomoto <atsushi@ximian.com>
2160
2161         * XmlTextReader.cs : Don't create attribute Value string on Read()
2162           (i.e. create string when get_Value() is invoked.) This optimizes
2163           some kind of XmlTextReader usage significantly such as Skip().
2164
2165 2004-10-22  Atsushi Enomoto <atsushi@ximian.com>
2166
2167         * XmlConvertDateTimeSerializationMode.cs : added.
2168         * XmlConvertDateTimeOption.cs : removed.
2169
2170 2004-10-22  Atsushi Enomoto <atsushi@ximian.com>
2171
2172         * XmlDocument.cs :
2173           For net_2_0, CreateNavigator() returns editable XPathNavigator.
2174         * XmlReader.cs, XmlTextReader.cs, XmlValidatingReader.cs :
2175           They do not implement IXmlDataEvidence anymore.
2176
2177 2004-10-18  Atsushi Enomoto  <atsushi@ximian.com>
2178
2179         * XmlTextReader.cs :
2180           Fixed CheckCharacters setter that always set false.
2181           CheckCharacters check is also required for ReadText(). This fixes
2182           bug #68449.
2183
2184 2004-10-15  Atsushi Enomoto  <atsushi@ximian.com>
2185
2186         * XmlTextReader.cs : Inside DTD, '<' character inside XML comment 
2187           is regatded as invalid. This fixes bug #68410. (Error message was
2188           also not correct.)
2189
2190 2004-10-14  Atsushi Enomoto  <atsushi@ximian.com>
2191
2192         * XmlWriter.cs : CreateTextWriter() is private.
2193
2194 2004-10-09  Atsushi Enomoto  <atsushi@ximian.com>
2195
2196         * XmlNodeReader.cs : LookupPrefix() was only after 2.0.
2197
2198 2004-10-08  Atsushi Enomoto  <atsushi@ximian.com>
2199
2200         * XmlNamespaceManager.cs : GetNamespacesInScope() caused
2201           IndexOutOfRangeException (miscounted indexes).
2202
2203 2004-10-04  Atsushi Enomoto  <atsushi@ximian.com>
2204
2205         * XmlWriter.cs : WriteNode(XPathNavigator,bool) should check null arg.
2206           For attribute nodes, it should not use WriteSubtree() which does not
2207           support attribute nodes.
2208
2209 2004-09-20  Gert Driesen <drieseng@users.sourceforge.net>
2210         
2211         * XmlValidatingReader.cs: Added deprecation message.
2212
2213 2004-09-14  Atsushi Enomoto  <atsushi@ximian.com>
2214
2215         * XmlTextWriter.cs : Close() should not Flush() when the output is
2216           already closed. bug #65918 is fixed.
2217
2218 2004-09-12  Atsushi Enomoto  <atsushi@ximian.com>
2219
2220         * XmlTextWriter.cs : CloseOutput must be true by default.
2221
2222 2004-09-08  Atsushi Enomoto  <atsushi@ximian.com>
2223
2224         * XmlWriter.cs, XmlTextWriter.cs, XmlWriterSettings.cs :
2225           Implemented CheckCharacters and CloseOutput support.
2226
2227 2004-09-08  Atsushi Enomoto  <atsushi@ximian.com>
2228
2229         * XmlReader.cs : evidence is always provided.
2230         * XmlWriter.cs, XmlTextWriter.cs :
2231           added support for ConformanceLevel and OmitXmlDeclaration.
2232
2233 2004-09-08  Atsushi Enomoto  <atsushi@ximian.com>
2234
2235         * XmlTextReader.cs : Console.WriteLine() injected :(
2236         * XmlTextWriter.cs : It it partly supports XmlWriterSettings.
2237         * XmlWriter.cs : implemented Create().
2238         * XmlWriterSettings.cs : removed EncodeXmlBinary (deprecated).
2239
2240 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
2241
2242         * XmlFactory.cs : removed (obsolete).
2243
2244 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
2245
2246         * XmlNamespaceManager.cs : GetNamespacesInScope() ignored default
2247           namespace when scope is .ExcludeXml or .All.
2248         * XmlReader.cs : Implemented ValueType, SchemaInfo, ReadAsObject().
2249           Fixed ReadTypedValue() to call ReadValueAs().
2250
2251 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
2252
2253         * XmlNamespaceManager.cs : Fixed GetNamespacesInScope() that returned
2254           inconsistent namespace pairs.
2255
2256 2004-09-07  Atsushi Enomoto  <atsushi@ximian.com>
2257
2258         * XmlReader.cs, XmlTextReader.cs :
2259           Added NET_2_0 CheckCharacters support.
2260
2261 2004-09-06  Atsushi Enomoto  <atsushi@ximian.com>
2262
2263         * XmlNode.cs : GetEnumerator() does not have to create ChildNodes
2264           every time. Removed unused StringBuilder field.
2265
2266 2004-09-06  Atsushi Enomoto  <atsushi@ximian.com>
2267
2268         * XmlWriter.cs : on reader.NodeType is None, WriteNode() still tries
2269           to read more (and might result in an error).
2270
2271 2004-09-03  Atsushi Enomoto  <atsushi@ximian.com>
2272
2273         * XmlTextReader.cs : When Normalization is true, CRLF and CR should
2274           be converted to single LF. This should fix part of bug #62076.
2275
2276 2004-08-30  Atsushi Enomoto  <atsushi@ximian.com>
2277
2278         * XmlWriter.cs : implemented WriteValue(object) for known types.
2279
2280 2004-08-30  Atsushi Enomoto  <atsushi@ximian.com>
2281
2282         * XmlElement.cs : XmlAttributeCollection doesn't have to be created
2283           every time until the actual use. This sometimes optimizes
2284           attribute-less XML performance siginificantly.
2285
2286 2004-08-27  Atsushi Enomoto  <atsushi@ximian.com>
2287
2288         * XmlAttribute.cs : some property getters threw NullReferenceException
2289           when the attribute is not added to an element.
2290         * XmlNode.cs : When a node is not appended to another node, BaseURI
2291           is empty. Bug #64120 is fixed.
2292
2293 2004-08-26  Atsushi Enomoto  <atsushi@ximian.com>
2294
2295         * XmlTextWriter.cs : In CheckState(), don't create indentation string
2296           at every time. WriteIndent() now handles the indentation without
2297           recomputation.
2298
2299 2004-08-23  Atsushi Enomoto  <atsushi@ximian.com>
2300
2301         * XmlReader.cs, XmlTextReader.cs, XmlWriter.cs :
2302           eliminate MS.Internal.Xml.* classes.
2303
2304 2004-08-21  Atsushi Enomoto  <atsushi@ximian.com>
2305
2306         * XmlElement.cs : set_InnerText was removing children incompletely.
2307           This fixes bug #63574.
2308
2309 2004-08-20  Atsushi Enomoto  <atsushi@ximian.com>
2310
2311         * XmlTextReader.cs : Fixed EOF not to return true when it is just
2312           closed. Element and EndElement location is now adjusted to be the
2313           same as MS.NET does. This fixes bug #63505 and #63507.
2314           ResetState() now throws InvalidOperationException() as MS.NET does.
2315
2316         * WriteState.cs : added missing 2_0 enumeration.
2317         * XmlReader.cs : ReadTypedValue() is virtual.
2318         * XmlValidatingReader.cs : ReadTypedValue() is override under 2_0.
2319
2320 2004-08-10  Atsushi Enomoto  <atsushi@ximian.com>
2321
2322         * XmlValidatingReader.cs : Replaced XmlSchemaCollection with
2323           XmlSchemaSet. Added Settings property override
2324
2325 2004-08-10  Atsushi Enomoto  <atsushi@ximian.com>
2326
2327         * DTDReader.cs : Replacing XmlSchemaDatatype .FromName(string) with
2328           .FromName(string, string) [going to remove former one; it is not
2329           good to support xdt:blah datatypes].
2330
2331 2004-08-03  Atsushi Enomoto  <atsushi@ximian.com>
2332
2333         * DTDValidatingReader.cs,
2334           XmlValidatingReader.cs : implemented IXmlNamespaceResolver.
2335         * XmlNamespaceManager.cs,
2336           XmlNodeReader.cs : implemented GetNamespacesInScope().
2337
2338 2004-08-03  Atsushi Enomoto  <atsushi@ximian.com>
2339
2340         * XmlCharacterData.cs,
2341           XmlDocument.cs,
2342           XmlNodeChangedEventArgs.cs : 
2343           Implemented XmlNodeChangedEventArgs.OldValue and .NewValue.
2344
2345 2004-08-03  Atsushi Enomoto  <atsushi@ximian.com>
2346
2347         * XmlWriter.cs : implemented settings-less Create().
2348         * XmlWriterSettings.cs : added some comments.
2349
2350 2004-07-29  Atsushi Enomoto  <atsushi@ximian.com>
2351
2352         * XmlWriter.cs : implemented WriteNode(XPathNavigator, bool) 
2353           incompletely, using XPathNavigator.ReadSubtree().
2354
2355 2004-07-29  Atsushi Enomoto  <atsushi@ximian.com>
2356
2357         * XmlReader.cs : Implemented new 2.0 virtual members that used to be
2358           abstract in 1.x. Implemented ReadSubtree().
2359
2360 2004-07-28  Lluis Sanchez Gual  <lluis@novell.com>
2361
2362         * XmlTextReader.cs: Stop parsing when a null character is found.
2363
2364 2004-07-28  Atsushi Enomoto  <atsushi@ximian.com>
2365
2366         * XmlReader.cs : Implemented missing MoveToNextSibling() and
2367           MoveToDescendant().
2368         * XmlTextReader.cs : Added missing ReadValueAs() override (hmm...
2369           are they really worth overriding?)
2370
2371 2004-07-28  Atsushi Enomoto  <atsushi@ximian.com>
2372
2373         * XmlWriter.cs : Added new WriteStartAttribute(string).
2374
2375 2004-07-28  Atsushi Enomoto  <atsushi@ximian.com>
2376
2377         * XmlConvert.cs : Added 2.0 VerifyNMTOKEN() and internal WriteBinHex().
2378         * XmlQualifiedName.cs : Added internal static Parse().
2379         * XmlReader.cs : use XmlQualifiedName.Parse().
2380         * XmlTextWriter.cs : use new XmlWriter.WriteNameInternal() etc.
2381         * XmlWriter.cs : Added 2.0 Settings and WriteFromObject().
2382           Implemented 2.0 virtual methods that used to be abstract in 1.x.
2383
2384 2004-07-26  Atsushi Enomoto  <atsushi@ximian.com>
2385
2386         * XmlReader.cs : Implemented ReadValueAsXxx() except for
2387           ReadValueAsList().
2388         * XmlTextReader.cs : implemented them as well, just invoking 
2389           base.ReadValueAsXxx ().
2390         * XmlWriter.cs : implemented some WriteValue() methods.
2391
2392 2004-07-21  Atsushi Enomoto  <atsushi@ximian.com>
2393
2394         * XmlConvert.cs : added internal ToBinHexString() (BTW according to
2395           MSDN documentation it should be public).
2396         * XmlReader.cs : fixed one incorrect Create() overload. Added
2397           LookupNamespace (string, bool) (public for 2.0, internal for 1.x).
2398         * XmlTextReader.cs : Mostly implemented IXmlNamespaceResolver
2399           interface. Fixed HasLineInfo() access modifier on 2.0.
2400         * XmlNodeReader.cs : Mostly implemented IXmlNamespaceResolver
2401           interface. Wrote common namespace node lookup method and rewrote
2402           existing LookupNamespace().
2403         * XmlValidatingReader.cs : Fixed 2.0 IXmlLineInfo members' signatures.
2404
2405 2004-07-20  Atsushi Enomoto  <atsushi@ximian.com>
2406
2407         * XmlNode.cs : When the argument node being inserted is the existing
2408           document element, it should not result in an error (since it should
2409           be first removed from document, thus no error should happen).
2410
2411 2004-07-16  Atsushi Enomoto  <atsushi@ximian.com>
2412
2413         * XmlTextReader.cs : Fixed several problems on ReadBase64();
2414           Whitespaces should be ignored, and '=' was not skipped correctly.
2415           It caused "unexpected end of document" error at immediate close tag.
2416
2417 2004-07-13  Atsushi Enomoto  <atsushi@ximian.com>
2418
2419         * Added MonoFIXAttribute.cs
2420
2421 2004-07-13  Atsushi Enomoto  <atsushi@ximian.com>
2422
2423         * XmlWriter.cs : Added Create() stubs.
2424         * XmlWriterSettings.cs : Added missing property setters.
2425         * XmlValidatingReader.cs : added internal schemas setter.
2426         * XmlTextReader.cs : added internal XmlReaderSettings property setter.
2427         * XmlReader.cs :  Halfly implemented Create().
2428         * DTDValidatingReader.cs : author information was missing.
2429
2430 2004-07-11  Atsushi Enomoto  <atsushi@ximian.com>
2431
2432         * XmlConvertDateTimeOption.cs : it is NET_2_0.
2433         * IXmlNamespaceResolver.cs,
2434           XmlNamespaceScope.cs : Compile it in .net 1.1 (as internal).
2435         * XmlNamespaceManager.cs : Implement IXmlNamespaceResolver.
2436
2437 2004-07-09  Atsushi Enomoto  <atsushi@ximian.com>
2438
2439         * XmlConvertDateTimeOption.cs : Forgot to change the content...
2440
2441 2004-07-09  Atsushi Enomoto  <atsushi@ximian.com>
2442
2443         * ConformanceLevel.cs : Fixed integer value.
2444         * Added XmlConvertDateTimeOption.cs.
2445         * Removed XmlItemView.cs and XmlItemViewCollection.cs.
2446
2447 2004-07-09  Atsushi Enomoto  <atsushi@ximian.com>
2448
2449         * IXmlNamespaceResolver.cs :
2450           Fixed return value of GetNamespacesInScope().
2451         * IXmlDataEvidence.cs,
2452           XmlReader.cs,
2453           XmlTextReader.cs,
2454           XmlValidatingReader.cs : fixed Evidence (it is not array anymore).
2455         * XmlReader.cs :
2456           Implemented virtual indexers, QuoteChar, and Dispose() (2.0 stuff).
2457         * XmlNodeReader.cs,
2458           In net_2_0, indexers vanished from XmlNodeReader.
2459           In net_2_0, overriden QuoteChar vanished.
2460         * XmlReaderSettings.cs : set_NameTable is missing.
2461         * XmlTextReader.cs : Implemented ProhibitDtd.
2462
2463 2004-07-09  Atsushi Enomoto  <atsushi@ximian.com>
2464
2465         * XmlAttributeCollection.cs : In .net 2.0, it became sealed class.
2466         * IXmlDataEvidence.cs : not "Evidences" but "Evidence".
2467         * XmlInputStream.cs : new csc rejected implicit int->char cast.
2468         * XmlNamespaceManager.cs : In net_2_0, LookupNamespace(string) and
2469           LookupPrefix(string) does not require argument string as atomized.
2470           Added HasNamespace (string, bool).
2471         * XmlReader.cs : Added Settings and SchemaInfo properties.
2472         * XmlReaderSettings.cs : Added NameTable. Throw XmlException when
2473           attempt to set Schemas.
2474         * XmlTextReader.cs : Fixed "Evidences" to "Evidence". new csc rejected
2475           implicit int->char cast.
2476         * XmlValidatingReader.cs : Fixed "Evidences" to "Evidence".
2477
2478 2004-06-27  Atsushi Enomoto  <atsushi@ximian.com>
2479
2480         * XmlDocument.cs:
2481           Close XmlReader only when it is created. This fixes bug #60809.
2482
2483 2004-06-18  Atsushi Enomoto <atsushi@ximian.com>
2484
2485         * DTDObjectModel.cs, DTDReader.cs, XmlConvert.cs, XmlDocument.cs,
2486           XmlException.cs, XmlParserInput.cs, XmlTextReader.cs,
2487           XmlTextWriter.cs : Globalization.
2488         * XmlNode.cs : Fixed error message that confused node type.
2489
2490 2004-06-14  Atsushi Enomoto <atsushi@ximian.com>
2491
2492         * XmlDocumentNavigator.cs : MoveToNext() should skip concatenating
2493           text/cdata/whitespace nodes.
2494
2495 2004-06-14  Atsushi Enomoto <atsushi@ximian.com>
2496
2497         * XmlInputStream.cs : Fixed encoding detection detected in xslt
2498           standalone tests. Removed extraneous code.
2499
2500 2004-06-13  Atsushi Enomoto <atsushi@ximian.com>
2501
2502         * XmlTextReader.cs : Character range check is always done. It is only
2503           character references for which check is not done when Normalization
2504           is false.
2505           A bit more kind error message for multiple document element error.
2506         * XmlTextWriter.cs : Check if character is valid and entitize when
2507           it was invalid.
2508
2509 2004-06-09  Atsushi Enomoto <atsushi@ximian.com>
2510
2511         * XmlNamespaceManager.cs : The error message was improper.
2512           Fix for bug #59880.
2513
2514 2004-06-07  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2515
2516         * XmlInputStream.cs: Initialize reads a larger buffer now when trying
2517         to guess the encoding.
2518
2519 2004-06-06  Atsushi Enomoto <atsushi@ximian.com>
2520
2521         * NameTable.cs : Fixed incorrect hash computation. Thanks to Ben.
2522         * XmlTextWriter.cs : Fixed remaining LookupNamespace() atom problem
2523           shown in xslt standalone tests.
2524
2525 2004-06-06  Atsushi Enomoto <atsushi@ximian.com>
2526
2527         * XmlTextWriter.cs : Improved indenting. For children of a mixed 
2528           content element, it won't be indented.
2529
2530 2004-06-06  Atsushi Enomoto <atsushi@ximian.com>
2531
2532         * DTDObjectModel.cs,
2533           XmlDocument.cs : Close stream always.
2534         * XmlNodeReader.cs : don't expect atomized name in LookupNamespace().
2535         * XmlTextReader.cs : Namespace check was not done. Some tests depends
2536           on this failure and to be fixed.
2537
2538 2004-06-03  Atsushi Enomoto <atsushi@ximian.com>
2539
2540         * XmlNamespaceManagre.cs : Fixed LookupNamespace() and LookupPrefix().
2541           They require that names are *already* atomized.
2542         * XmlNodeReader.cs,
2543           XmlTextWriter.cs : use safe overload of LookupXXX().
2544
2545 2004-05-30  Atsushi Enomoto <atsushi@ximian.com>
2546
2547         * XmlTextReader.cs : Fixed version mismatch; ProhibitDtd should be
2548           NET_2_0.
2549
2550 2004-05-29  Gert Driesen (drieseng@users.sourceforge.net)
2551         
2552         * XmlTextReader.cs: Added ProhibitDtd property for NET 1.1 to match
2553         public API in MS.NET 1.1
2554
2555 2004-05-27  Atsushi Enomoto <atsushi@ximian.com>
2556
2557         * XmlDocument.cs : Save() should indent only when PreserveWhitespace
2558           is false. Fixed bug #59155.
2559           Modified comment lines a bit.
2560
2561 2004-05-27  Atsushi Enomoto <atsushi@ximian.com>
2562
2563         * XmlTextWriter.cs : WriteRaw() looks to proceed WriteState to Prolog
2564           (if it is Start). Fixed bug #59154.
2565
2566 2004-05-27  Atsushi Enomoto <atsushi@ximian.com>
2567
2568         * XmlTextReader.cs : simplified ReadCharsInternal(); use ReadEndTag()
2569           and don't bork against <foo></foo>. Also mofidied this method to skip
2570           <foo/>. Fixed bug #59142.
2571           Modified some comments on the code (FIXME->LAMESPEC et al).
2572
2573 2004-05-24  Atsushi Enomoto <atsushi@ximian.com>
2574
2575         * DTDReader.cs : When sequential PE references exist, the reader only
2576           expands the first one and in some cases the parser complaints the
2577           content (such like expecting name character but found '%').
2578           This fixes bug #58818.
2579
2580 2004-05-23  Atsushi Enomoto <atsushi@ximian.com>
2581
2582         * XmlNode.cs : RemoveChild() should check null argument.
2583           Normalize() was broken in some cases.
2584
2585 2004-05-22  Atsushi Enomoto <atsushi@ximian.com>
2586
2587         * ConformanceLevel.cs : added.
2588
2589 2004-05-22  Atsushi Enomoto <atsushi@ximian.com>
2590
2591         * XmlNodeChangedEventArgs.cs : the last patch looks true 
2592           ONLY AFTER .NET 2.0.
2593
2594 2004-05-22  Atsushi Enomoto <atsushi@ximian.com>
2595
2596         * XmlReaderSettings.cs, XmlWriterSettings.cs : NET_2_0 were missed.
2597
2598 2004-05-22  Atsushi Enomoto <atsushi@ximian.com>
2599
2600         * XmlFactory.cs,
2601           XmlItemView.cs,
2602           XmlItemViewCollection.cs,
2603           XmlReaderSettings.cs,
2604           XmlWriterSettings.cs : added new .NET 2.0 classes.
2605
2606         * AsyncXmlTextWriter.cs,
2607           IXPathChangeNavigator.cs,
2608           IXPathEditor.cs,
2609           IXPathNavigator.cs,
2610           XmlChangeFilters.cs,
2611           XmlInfoItemType.cs,
2612           XmlNodeChangeType.cs,
2613           XPathChangeNavigator.cs,
2614           XPathDocument2.cs,
2615           XPathDocument2ChangedEventAction.cs,
2616           XPathDocument2ChangedEventHandler.cs,
2617           XPathEditor.cs,
2618           XPathNavigator2.cs : removed. (They are only in .NET 1.2)
2619
2620         * XmlWriter.cs : added new NET_2_0 WriteElementString().
2621
2622 2004-05-22  Atsushi Enomoto <atsushi@ximian.com>
2623
2624         * XmlNodeChangedEventArgs.cs : not properly inherited from EventArgs.
2625
2626 2004-05-17  Atsushi Enomoto <atsushi@ximian.com>
2627
2628         * XmlConvert.cs : Fixed ToString(TimeSpan) that didn't handle Hour 
2629           correctly. This fixes bug #57786.
2630
2631 2004-05-13  Atsushi Enomoto <atsushi@ximian.com>
2632
2633         * XmlValidatingReader.cs : explicitly mark as MonoTODO for XDR (not
2634           supported).
2635
2636 2004-05-12  Atsushi Enomoto <atsushi@ximian.com>
2637
2638         * DTDObjectModel.cs,
2639           DTDReader.cs,
2640           XmlDocument.cs,
2641           XmlInputStream.cs,
2642           XmlParserInput.cs,
2643           XmlTextReader.cs,
2644           XmlUrlResolver.cs : removed reference to Mono.Xml.
2645           Made Mono.Xml.* classes internal.
2646         * XmlDocument.cs : output xml declaration for TextWriter output in Save()
2647         * XmlElement.cs : Name character check should be done in .ctor().
2648         * XmlNamespaceManager.cs : Removed dangerous internal .ctor()
2649
2650 2004-05-10  Atsushi Enomoto <atsushi@ximian.com>
2651
2652         * XmlNodeReader.cs : renamed ownerElement to ownerLinkedNode (text
2653           node can be it as well) and added check for Attributes existence
2654           in GetAttribute() and MoveTo*Attribute().
2655
2656 2004-05-10  Atsushi Enomoto <atsushi@ximian.com>
2657
2658         * XmlTextWriter.cs : comment not in the content state is indented.
2659           This fixes bug #58247.
2660
2661 2004-05-07  Lluis Sanchez Gual  <lluis@ximian.com>
2662
2663         * XmlTextWriter.cs: In WriteStartAttribute, when the prefix is xmlns and
2664           the name is empty, convert it to a xmlns attribute.
2665
2666 2004-04-27  Atsushi Enomoto <atsushi@ximian.com>
2667
2668         * XmlTextReader.cs : don't use NET_1_0.
2669
2670 2004-04-24  Atsushi Enomoto <atsushi@ximian.com>
2671
2672         * XmlComment.cs. XmlProcessingInstruction.cs : missing commits.
2673
2674 2004-04-24  Atsushi Enomoto <atsushi@ximian.com>
2675
2676         W3C DOM compliant read-only check support (buggy part in MS.NET).
2677         * XmlAttribute.cs,
2678           XmlCDataSection.cs,
2679           XmlCharacterData.cs,
2680           XmlDocument.cs,
2681           XmlElement.cs,
2682           XmlNode.cs,
2683           XmlSignificantWhitespace.cs,
2684           XmlText.cs
2685           : CloneNode() - set read-only when copied node is read-only.
2686             Check IsReadOnly on attempt to modify value.
2687         * XmlEntity.cs,
2688           XmlEntityReference.cs : Set descendant nodes read-only.
2689         * XmlAttributeCollection.cs,
2690           XmlNode.cs
2691           : Fixed incompatible exception type.
2692         * XmlEntityReference.cs : CloneNode() should not pass an empty string
2693           as its name.
2694         * XmlEntityReference.cs,
2695           XmlProcessingInstruction.cs : Check XML name validity.
2696         * XmlText.cs : CloneNode() does not have to check children.
2697
2698 2004-04-24  Atsushi Enomoto <atsushi@ximian.com>
2699
2700         * XmlDeclaration.cs : More strict check on InnerText and Value.
2701
2702 2004-04-24  Atsushi Enomoto <atsushi@ximian.com>
2703
2704         * DTDReader.cs, XmlConvert.cs, XmlDeclaration.cs, XmlImplementation.cs,
2705           XmlNode.cs : Culture independency fix.
2706
2707 2004-04-22  Atsushi Enomoto <atsushi@ximian.com>
2708
2709         * XmlEntityReference.cs : Added XPathNodeType (just for workaround).
2710           This should really fix bug #57248.
2711
2712 2004-04-20  Atsushi Enomoto <atsushi@ximian.com>
2713
2714         * XmlDocumentNavigator.cs : MoveToFirstChild() failed when there is
2715           only an EntityReference (not navigatable) child. Bug #57248 fixed.
2716         * XmlWriter.cs : Modified WriteNode() to use MoveToAttribute(int)
2717           instead of WriteAttributes() only for MS.NET behavior compatibility.
2718           This change makes SgmlReader usable (due to SgmlReader bug).
2719
2720 2004-04-10  Atsushi Enomoto <atsushi@ximian.com>
2721
2722         * XmlParserContext.cs : Fixed .ctor() not to reference null namespace
2723           manager. This fixes bug #56770.
2724
2725 2004-04-06  Atsushi Enomoto <atsushi@ximian.com>
2726
2727         * DTDReader.cs : In ProcessDTDSubset(), 1)error message was 
2728           generated with incorrect stream character, 2)entity nest check 
2729           should not depend on line info which might not be supplied, 3)
2730           empty PE should be skipped.
2731         * XmlParserInput.cs : use index for StringBuilder instead of calling
2732           Remove() many times. This highly optimizes DTD parser.
2733
2734         * XmlAttribute.cs : removed commented code.
2735         * XmlEntity.cs : removed unused field.
2736
2737 2004-04-05  Atsushi Enomoto <atsushi@ximian.com>
2738
2739         * DTDObjectModel.cs : (DTDAttributeDefinition) create ArrayList 
2740           only when they are required.
2741         * DTDReader.cs,
2742           XmlParserInput.cs : raw tag string now don't have to be kept, while
2743           it cost so much. Removed unused code. 20% to 30% memory got saved.
2744         * XmlNotation.cs : removed unused code.
2745         * XmlTextReader.cs : Removed unused code. ReadString() now uses 
2746           XmlReader's internal method. Fixed BaseURI to be conformant with
2747           W3C XML InfoSet and (subsequently) xml:base specification (i.e. 
2748           reflect xml:base attribute correctly).
2749
2750 2004-04-05  Atsushi Enomoto <atsushi@ximian.com>
2751
2752         * XmlAttribute.cs : get_Value should return all children's value.
2753         * XmlCharacterData.cs : DOM's substring does not raise an error when
2754           startIndex + count exceeds the length of Data.
2755         * XmlNamedNodeMap.cs : SetNamedItem() returns the new child when it
2756           does not replace another named item.
2757         * XmlElement.cs : with related to the XmlNamedNodeMap change, 
2758           SetAttributeNode() is required to fix as to return null when it does
2759           not replace existing attribute.
2760
2761 2004-03-31  Atsushi Enomoto <atsushi@ximian.com>
2762
2763         * XmlDocumentNavigator.cs : When this instance is created from xmlns 
2764           attributes, it should be Namespace node.
2765
2766 2004-03-27  Atsushi Enomoto <atsushi@ximian.com>
2767
2768         * XmlReader.cs : ReadInnerXml() should progress reader when it is on
2769           an empty element. This fixes bug #56064.
2770
2771 2004-03-27  Atsushi Enomoto <atsushi@ximian.com>
2772
2773         * DTDReader.cs : In some places sequential parameter entity was
2774           incorrectly skipped (and caused invalid result).
2775
2776 2004-03-24  Atsushi Enomoto <atsushi@ximian.com>
2777
2778         * XmlDocumentNavigator.cs : MoveTo*Namespace() should not iterate
2779           namespace nodes which has the same name as already-iterated nodes.
2780           Also xmlns='' should not be selected, and once it appeared, default 
2781           namespace should not be selected anymore.
2782
2783 2004-03-24  Atsushi Enomoto <atsushi@ximian.com>
2784
2785         * XmlCharacterData.cs : ReplaceData() should reject negative integer
2786           value for count argument.
2787         * XmlAttribute.cs, XmlAttributeCollection.cs, XmlNamedNodeMap.cs :
2788           On RemoveNamedItem(), default attribute value should be restored.
2789
2790 2004-03-24  Atsushi Enomoto <atsushi@ximian.com>
2791
2792         * XmlAttributeCollection.cs : Remove() should throw an exception when
2793           target attribute is not included in the collection.
2794         * XmlDocument.cs : ImportNode() should reject null node.
2795         * XmlNode.cs : Fixed type of exception for invalid insertion.
2796           It should throw an exception not only when the owner document of the
2797           reference element is different but its parent element is different.
2798           Some error message improvement.
2799
2800 2004-03-21  Atsushi Enomoto <atsushi@ximian.com>
2801
2802         * XmlReader.cs : ReadInnerXml() incorrectly tried to get output xml.
2803           This fixes bug #55856.
2804
2805 2004-03-20  Atsushi Enomoto <atsushi@ximian.com>
2806
2807         * XmlTextWriter.cs : Fixed indentation on CDATA. This fixes bug #55828.
2808
2809 2004-03-19  Atsushi Enomoto <atsushi@ximian.com>
2810
2811         * XmlImplementation.cs : HasFeature() returns true when strVersion
2812           is null.
2813
2814 2004-03-16  Atsushi Enomoto <atsushi@ximian.com>
2815
2816         * XmlWhitespace.cs : Fixed WriteTo(). Whitespace nodes should be 
2817           written regardless of document's PreserveWhitespace.
2818
2819 2004-03-16  Atsushi Enomoto <atsushi@ximian.com>
2820
2821         * XmlDocumentNavigator.cs : Value should return concatenated string for 
2822           sequential text nodes. Considered detached nodes, the result of 
2823           MoveToParent() should be checked.
2824
2825 2004-03-15  Atsushi Enomoto <atsushi@ximian.com>
2826
2827         * XmlReader.cs : ReadInnerXml()/ReadOuterXml() should not bork when
2828           the reader is on EndElement. Patch by Jean-Marc Andre.
2829
2830 2004-03-14  Atsushi Enomoto <atsushi@ximian.com>
2831
2832         * XmlDocumentNavigator.cs : as for namespace node "xml", MS.NET seems
2833           to return attribute node. It affects on IHasXmlNode.GetNode() and
2834           SelectNodes()/SelectSingleNode().
2835
2836 2004-03-04  Atsushi Enomoto <atsushi@ximian.com>
2837
2838         * XmlImplementation.cs : fixity fix (I need NUnit runnable ;)
2839
2840 2004-03-04  Atsushi Enomoto <atsushi@ximian.com>
2841
2842         * XmlImplementation.cs : forgot to commit (renaming internal case)
2843
2844 2004-03-04  Atsushi Enomoto <atsushi@ximian.com>
2845
2846         * XmlDocument.cs : Implementation should not return null.
2847
2848 2004-02-25  Atsushi Enomoto <atsushi@ximian.com>
2849
2850         * XmlTextWriterOpenElement.cs : Reset() should reset _all_ fields.
2851           This fixes indentation bug.
2852
2853 2004-02-19  Atsushi Enomoto <atsushi@ximian.com>
2854
2855         * XmlTextWriter.cs : Fixed bugzilla #54554 (incorrent end tag output).
2856
2857 2004-02-16  Atsushi Enomoto <atsushi@ximian.com>
2858
2859         * DTDAutomata.cs,
2860           DTDObjectModel.cs,
2861           DTDReader.cs,
2862           DTDValidatingReader.cs : made classes internal.
2863         * XmlDocument.cs : removed extra FIXMEs.
2864         * XmlNamedNodeMap.cs,
2865           XmlResolver.cs,
2866           XmlUrlResolver.cs : 
2867           Fixed incorrect method signature.
2868
2869 2004-02-13  Atsushi Enomoto <atsushi@ximian.com>
2870
2871         * DTDObjectModel.cs, DTDReader.cs, DTDValidatingReader.cs : 
2872           say goodbye to sys.collections.specialized.
2873           (replaced the classes in that namespace with ArrayList or Hashtable)
2874
2875 2004-02-12  Atsushi Enomoto <atsushi@ximian.com>
2876
2877         * XmlReader.cs : For performance reason, XmlTextReader now uses
2878           base ReadInnerXml() and don't store currentTag array unnecessarily.
2879         * XmlTextReader.cs :
2880           - Fixed GetAttribute(int) that might cause index out of range.
2881           - Now it consumes the text reader by reading blocks, as MS.NET does.
2882             Modified GetRemainder(), PeekChar(), ReadChar() and so on.
2883           - Now it doesn't create Value string for linked nodes, unless it 
2884             is actually required.
2885           - some code refactory.
2886
2887 2004-02-11  Atsushi Enomoto <atsushi@ximian.com>
2888
2889         * XmlTextWriter.cs, XmlTextWriterOpenElement.cs :
2890           Reduced creation of openlElement. It also saves much memory.
2891
2892 2004-02-10  Atsushi Enomoto <atsushi@ximian.com>
2893
2894         * XmlNode.cs : ChildNodes should not create XmlNodeListChildren
2895           every time. This fix heavily improved performance.
2896
2897 2004-02-10  Atsushi Enomoto <atsushi@ximian.com>
2898
2899         * XmlAttributeCollection.cs : set owner element as parent on removal
2900           events (though they are not "parent" in infoset or dom context)
2901         * XmlElement.cs : Don't remove attributes twice (raises extraneous
2902           removal events).
2903         * XmlNamespaceManager.cs, XmlNodeChangedEventArgs :
2904           Added NET_2_0 members.
2905
2906 2004-02-08  Atsushi Enomoto <atsushi@ximian.com>
2907
2908         * DTDObjectModel.cs : Limit external entity reference from DTD by 256.
2909           foreach elimination.  DTDParameterEntityDeclaration should set Root.
2910           Compute attribute default value without raising an error.
2911           (for non-error reporting reader)
2912         * DTDReader.cs : Fixes for the above fixes. foreach elimination.
2913         * DTDValidatingReader.cs, NameTable.cs, XmlAttribute.cs,
2914           XmlAttributeCollection.cs, XmlChar.cs, XmlConstruct.cs,
2915           XmlDocumentFragment.cs, XmlDocumentNavigator.cs, XmlElement.cs,
2916           XmlEntityReference.cs, XmlNamedNodeMap.cs, XmlNode.cs,
2917           XmlText.cs : foreach elimination.
2918         * XmlDocument.cs, XmlSignificantWhitespace.cs, XmlWhitespace.cs :
2919           foreach elimination. Removed unnecesary methods.
2920         * XmlTextReader.cs : code format refactory. Optimized some methods.
2921           foreach elimination. Replaced Stack with string array.
2922           Replaced StringBuilder with char array. Removed unnecessary methods.
2923
2924 2004-02-06  Atsushi Enomoto <atsushi@ximian.com>
2925
2926         * DTDValidatingReader.cs : Fixed MoveToElement() that causes incorrect
2927           IsDefault and Depth.
2928         * XmlAttribute.cs : Fixed .ctor(). Omit more namespace check when 
2929           checkNamespace = false.
2930         * XmlNamedNodeMap.cs : Fixed SetNamedItem() to raise events.
2931         * XmlAttributeCollection.cs : Reimplemented InsertAfter to use
2932           InsertBefore() (similar to XmlNode).
2933         * XmlDocument.cs : Added internal .ctor().  Reimplemented ReadNode()
2934           as recursive, to make event order compatible.
2935         * XmlDocumentType.cs : Use SetNamedItem() (to raise events).
2936         * XmlElement.cs : Some refactory.  Fixed SetAttributeNode() with 
2937           string name to block prefixed name.
2938         * XmlEntity.cs : Don't raise events on setting contents.
2939         * XmlNode.cs : Some refactory. Added raiseEvent argument to internal
2940           InsertBefore().
2941         * XmlEntityReference.cs : related fix for XmlNode change.
2942         * XmlTextReader.cs : When the reader is on "attributes" of xmldecl or
2943           doctype, Depth 1 lower than usual attribute. Split large function.
2944
2945 2004-02-05  Atsushi Enomoto <atsushi@ximian.com>
2946
2947         * XmlConvert.cs : ToSingle() and ToDouble() should be culture 
2948           independent. Patch by Rodolfo Campero.
2949
2950 2004-02-04  Atsushi Enomoto <atsushi@ximian.com>
2951
2952         * DTDObjectModel.cs : Never expand entity on ScanEntityValue().
2953         * DTDValidatingReader.cs : XmlDeclaration node requires attributes
2954           to be movable.
2955         * XmlAttribute.cs,
2956           XmlDocument.cs,
2957           XmlDocumentFragment.cs,
2958           XmlElement.cs,
2959           XmlEntity.cs,
2960           XmlLinkedNode.cs,
2961           XmlNode.cs,
2962           XmlNotation.cs : 
2963           Added namespace checking flag (required for such xml readers
2964           that holds Namespaces=false). Now only XmlNode holds LastLinkedNode.
2965         * XmlDocumentType.cs,
2966           XmlEntity.cs,
2967           XmlEntityReference.cs : The children of Entity and EntityReference
2968           became correct. They now holds parsed nodes, but it is only when
2969           they are appended to the document.
2970         * XmlNode.cs : Modified insertBeforeIntern() to InsertBefore() with
2971           boolean checkNodeType argument.  This method also tries to create
2972           Entity's and EntityReference's child nodes.  Also added internal
2973           RemoveChild() with boolean checkNodeType argument.
2974         * XmlNodeReader.cs : Quick hack for ResolveEntity() that became 
2975           broken with these changes. use InnerXml as input to entityReader.
2976         * XmlTextReader.cs : XmlDeclaration's value LocalName should be the
2977           same as Name.  The names of DTD's pseudo attributes should be empty.
2978           Fixed DTD node's Depth (was regarded as attribute value's depth).
2979
2980 2004-02-03  Atsushi Enomoto <atsushi@ximian.com>
2981
2982         * XmlTextReader.cs, DTDReader.cs : fixity fix ;)
2983
2984 2004-02-03  Atsushi Enomoto <atsushi@ximian.com>
2985
2986         * ChangeLog : Fixed incorrect description that should be written for
2987           DTDValidatingReader.cs but written for DTDReader.cs.
2988         * DTDValidatingReader.cs : Fixes described in the last DTDReader fix.
2989
2990         * XmlChar.cs,
2991           XmlConstructs.cs : Made XmlChar and XmlConstructs equivalent and
2992           replaced XmlChar with XmlConstruts, renaming "XmlChar" to 
2993           "XmlCharCompact" and "XmlConstructs" to "XmlChar". 
2994           (XmlChar will be used for compact framework.)
2995         * DTDReader.cs, XmlParserInput.cs, XmlTextReader.cs : 
2996           XmlChar related changes.  Support for surrogate pair.
2997           It cannot use TextReader's peek anymore (for surrogate pair).
2998           Character range check for PI value, attribute value, text
2999         * XmlTextWriter.cs : Change openElements from Stack to ArrayList.
3000           (It calls ToArray() every time.)
3001
3002 2004-02-03  Alon Gazit <along@mainsoft.com>
3003         * XmlNamedNodeMap - now Item(int index) returns null for nodeList.Count
3004           instead of throwing ArgumentOutOfRangeException.
3005
3006 2004-02-03  Atsushi Enomoto <atsushi@ximian.com>
3007
3008         * XmlChar.cs : now GetPredefinedEntity() returns int and -1 for not
3009           predefined entity names.
3010         * DTDObjectModel.cs : DTDxxxCollection now derives from 
3011           - DTDCollectionBase that derives from DictionaryBase.
3012           - "Literal value" and "replacement text" are handled differently.
3013           - Throw XmlException when external entity could not be resolved. 
3014           - Return ReplacementText for EntityValue.
3015         * DTDReader.cs :
3016           - Support IXmlLineInfo.
3017           - Fixed IGNORE section handling to be more strict.
3018           - Compute replacement text on reading entity declarations.
3019           - Don't expand char references before getting literal entity value.
3020           - Check not allowed parameter entity inside internal subset.
3021         * DTDValidatingReader.cs :
3022           - Added ValidateWhitespaceNode() to check whitespace's Validity
3023             Constraints on external elementdecl and standalone document.
3024           - When invalid data against its datatype was found, don't throw
3025             parse error.
3026           - Other code refactory.
3027         * XmlTextReader.cs : 
3028           - Check for invalid Text pattern "]]>" should not depend on line 
3029             info since it might not be supported.
3030           - Check referenced character's validity (WFC).
3031
3032 2004-01-28  Atsushi Enomoto <atsushi@ximian.com>
3033
3034         * DTDReader.cs : Added Normalization.  Parameter Entity declaration
3035           should block invalid characters. (GEDecl should be fixed as well.)
3036         * XmlConstruct.cs : Should allow surrogate chars.
3037         * XmlNotation.cs : When prefix is empty (i.e. almost all cases) 
3038           Name should not add ':'. Patch by Boris Kirzner.
3039         * XmlTextReader.cs : Modified private ReadCharacterReference() to
3040           return the character (or -1 when should not return anything).
3041           Now Text character reference are checked their character range.
3042           Set DTDReader.Normalization as well as the reader itself.
3043
3044 2004-01-28  Atsushi Enomoto <atsushi@ximian.com>
3045
3046         * DTDReader.cs : Make sure that parameter entities are not allowed
3047           inside internal subset unless it appears as a markupdecl.
3048         * DTDValidatingReader.cs : ENTITY or ENTITIES type attributes must have
3049           a value that indicates *unparsed* entity (i.e. NDATA required).
3050
3051 2004-01-26  Atsushi Enomoto <atsushi@ximian.com>
3052
3053         * XmlTextWriter.cs : quick performance fix.
3054           Reduced memoty allocation (e.g. 12% when writing XMLSchema.xsd.)
3055
3056 2004-01-26  Atsushi Enomoto <atsushi@ximian.com>
3057
3058         * DTDObjectModel.cs :
3059           - DTDNode's BaseURI should not always refer to that of DTD's.
3060           - Use absolute URI's .ToString() instead of AbsolutePath.
3061         * DTDReader.cs : Throw XmlException for illegal character references.
3062         * DTDValidatingReader.cs :
3063           - Share XmlResolver when the actual reader is XmlTextReader.
3064             (MS's XmlValidatingReader and XmlTextReader do this.)
3065           - Added its own EntityHandling property.
3066         * XmlValidatingReader.cs : Share XmlResolver with XmlTextReader.
3067         * XmlReader.cs,
3068           XmlTextReader.cs : Added new NET_2_0 members.
3069         * XmlElement.cs : Removed extra lines (caused by XmlTextWriter bugs).
3070         * XmlEntityReference.cs : Forgot to add, the real fix by Boris.
3071
3072 2004-01-23  Atsushi Enomoto <atsushi@ximian.com>
3073
3074         * XmlWriter.cs, XmlTextWriter.cs :
3075           Several namespace related fixes.
3076           - Current element's NamespaceURI should be immediately available
3077             after the call of WriteStartElement() for LookupPrefix(), so 
3078             AddMissingElementXmlns() only affects on output. This is 
3079             now identified by shouldCheckElementXmlns field.
3080           - Attribute's overraped xmlns should be ignored for LookupPrefix(),
3081             Especially, when the owner element is written with the default
3082             namespace. HOWEVER, the attribute should be *written*. This is
3083             identified by shouldAddSavedNsToManager field.
3084           - In AddMissingElementXmlns(), non-empty prefix namespace was not
3085             checked user-written attributes.
3086           - XmlWriter.WriteAttributeString() never supplies namespace URI for
3087             xmlns attributes for other versions than NET_1_0. Instead, added
3088             ns check logic in WriteStartAttribute() only with NET_1_0.
3089           - WriteEndAttribute() should reject zero-length namespace for 
3090             non-default xmlns declarations.
3091           - LookupPrefix() should reject argument null and empty.
3092
3093         (added 2004-01-24 : forgot to mention more)
3094           - WriteAttributeString() w/o namespace should supply null, not ""
3095           - Added .NET 1.2 members.
3096           - Regard any name with "xml" prefix as in "namespace for XML".
3097
3098 2004-01-22  Atsushi Enomoto <atsushi@ximian.com>
3099
3100         * XmlElement.cs : Reverted previous fix since it broke monodoc web 
3101           service.
3102
3103 2004-01-20  Atsushi Enomoto <atsushi@ximian.com>
3104
3105         * XmlNode.cs : When adding a node to child list, it should reject its
3106           ancestors. Patch by Boris Kirzner.
3107         * XmlNodeReader.cs : Related fix to the fix above. It should not move
3108           to children of XmlEntityReference nodes.
3109         * XmlTextWriter.cs : FixedWriteStartElement() not to write default
3110           namespace when ns is null (while ns is "", it writes default ns).
3111         * XmlElement.cs : Fixed WriteTo() to call WriteStartElement(localName)
3112           when NamespaceURI is an empty string.
3113
3114 2004-01-14  Atsushi Enomoto <atsushi@ximian.com>
3115
3116         * XmlAttribute.cs : when set a value, it is no longer default 
3117           (even if the value is the same as default value).
3118         * XmlAttributeCollection.cs : Remove() should recover default attribute
3119           value to default, not specified value.
3120           Patch by Boris Kirzner (modified a bit)
3121         * XmlDocument.cs : Reference to undeclared entity is not allowed in
3122           Load(), while allowed in ReadNode(). Added such distinguishing logic.
3123
3124 2004-01-13  Atsushi Enomoto <atsushi@ximian.com>
3125
3126         * XmlValidatingReader.cs : Throw exception only in case of errors.
3127           Added NET_2_0 Evidences property.
3128
3129 2004-01-12  Atsushi Enomoto  <atsushi@ximian.com>
3130
3131         * XmlElement.cs : Fixed .ctor(). Default attribute was not treated as
3132           Specified = false. Patch by Boris Kirzner.
3133
3134 2004-01-11  Atsushi Enomoto <atsushi@ximian.com>
3135
3136         * XmlException.cs : Fixed incorrect .ctor signature.
3137         * XmlParserInput.cs : Fixed in sync with the above fix.
3138
3139 2004-01-08  Atsushi Enomoto  <atsushi@ximian.com>
3140
3141         * XmlAttribute.cs, XmlElement.cs : 
3142           Fixed incorrect protected .ctor modification.
3143
3144 2004-01-08  Nick Drochak <ndrochak@ieee.org>
3145
3146         * DTDValidatingReader.cs: Removed unused variable
3147         
3148 2004-01-07  Atsushi Enomoto  <atsushi@ximian.com>
3149
3150         * XmlNamespaceManager.cs : Implemented .NET 1.2 methods that take
3151           atomizedNames argument.
3152         * XmlTextReader.cs : Use new namespace manager methods.
3153           Reduced NameTable.Add().
3154         * DTDObjectModel.cs : fixed incorrectly commented-out line.
3155
3156 2004-01-07  Atsushi Enomoto  <atsushi@ximian.com>
3157
3158         * XmlAttribute.cs, XmlDocument.cs, XmlElement.cs :
3159           set_Prefix should atomize to name table.
3160           Avoided extraneous atomization attempt a bit.
3161
3162 2004-01-07  Atsushi Enomoto  <atsushi@ximian.com>
3163
3164         * DTDObjectModel.cs, DTDReader.cs, XmlSecureResolver.cs :
3165           avoiding obvious exception.
3166         * DTDReader.cs, XmlTextReader.cs : Some optimization. 
3167           Avoided extraneous PeekChar() and reduced name string creation.
3168
3169 2004-01-05  David Sheldon <dave-mono@earth.li>
3170   
3171   * XmlTextReader.cs: Fixed constructors taking string url to not
3172     loose the absolute part of the path.
3173
3174 2004-01-04  Atsushi Enomoto  <atsushi@ximian.com>
3175
3176         * XmlDocument.cs : Fixed Load() to set XmlResolver correctly. Patch
3177           by Benjamin Jemlich.
3178           Assure closing XmlTextReader which are internally used.
3179
3180 2004-01-03  Atsushi Enomoto  <atsushi@ximian.com>
3181
3182         * XmlTextWriter.cs : trivial character-case fix
3183         * XmlUrlResolver.cs : It downloads network stream content at 
3184           GetEntity() call. You can try like below:
3185             for (int i=0;i<100;i++) u.GetEntity(url, null, typeof(Stream));
3186
3187 2003-12-23  Atsushi Enomoto  <atsushi@ximian.com>
3188
3189         * XmlNamedNodeMap.cs : Fixed internal SetNamedItem(node, pos) to set
3190           replacing node correctly. This fixes bug #52453.
3191
3192 2003-12-21  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
3193
3194         * XmlDocument.cs, XmlElement.cs, XmlNode.cs :
3195           GetElementsByTagName() - Fixed bugzilla #52419, refactored, 
3196           and moved private implementation methods to XmlNode class.
3197
3198 2003-12-20  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
3199
3200         * XmlTextWriter.cs :
3201           Element's namespace should be escaped as usual attribute.
3202
3203 2003-12-18  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
3204
3205         * XmlTextWriter.cs : Indentation between xmldecl and doctype.
3206         * DTDValidatingReader.cs : AttList null reference fix.
3207
3208 2003-12-16  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
3209
3210         * DTDValidatingReader.cs : Validity check and entity expansion were
3211           incorrectly mixed.
3212         * DTDObjectModel.cs, DTDReader.cs, XmlInputStream.cs :
3213           Going to remove XmlInputStream. XmlStreamReader might be replacable.
3214
3215 2003-12-15  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
3216
3217         * XPathDocument2ChangedEventHandler.cs : fixed incorrect argument.
3218         * Moved UpdateEventHandler.cs and XmlUpdateEventArgs.cs to sqlxml.
3219
3220 2003-12-15  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
3221
3222         * XmlTextReader.cs : BaseURI was broken. This fixes bug #52098.
3223
3224 2003-12-15  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
3225
3226         * XmlUrlResolver.cs : GetEntity() does not return direct network stream
3227           that may hold up connection. Now it reads up all the content stream.
3228
3229 2003-12-12  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
3230
3231         * XmlAttributeCollection.cs,
3232           XmlElement.cs : Fixed bug #51415.
3233           When adding attribute to an element using Attributes, it failed.
3234
3235 2003-12-11  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
3236
3237         * XmlDocument.cs : Fixed ReadNode() to call AppendChild() to document
3238           after setting all attribute nodes. Modified ReadNode() to handle
3239           Depth comparison and error handling (!= to <). It allows MS's
3240           SgmlReader bug that returns incorrect Depth.
3241
3242 2003-12-11  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
3243
3244         * XmlDocumentNavigator.cs : Fixed MoveToNextAttribute (and 
3245           MoveToNextNamespace) that might result in NullReferenceException.
3246           patch by Sanjay Gupta. This fixed bug #51941 (and possibly #51415)
3247
3248 2003-12-07  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
3249
3250         * XmlUrlResolver.cs : Update with recent System.Uri change. This fixes
3251           bugzilla #51808 (patch by Jeroen Zwartepoorte, a bit modified).
3252
3253 2003-12-04  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
3254
3255         * XmlTextWriter.cs : WriteComment() should block "--", not full "-->".
3256         * XmlDocumentNavigator.cs : Added null check in MoveToNextAttribute().
3257           This may fix bug #51415.
3258
3259 2003-11-28  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
3260
3261         * XmlAttribute.cs : set_Prefix checks value when existing is "xmlns".
3262
3263 2003-11-28  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
3264
3265         * XmlWriter.cs : patch by Gonzalo (I modified a bit). WriteNode()
3266           shouldn't expect non-empty element content. This will fix bug #48287.
3267
3268 2003-11-28  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
3269
3270         * XmlTextWriter.cs : When element's namespace should be overwritten by
3271           one of its attribute, if exist as such. This fixes bug #51305.
3272
3273 2003-11-24  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
3274
3275         * DTDValidatingReader.cs : Fixed ReadContent() which may result in 
3276           invalid additional Text node.
3277
3278 2003-11-24  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
3279
3280         * XmlTextWriter.cs : 
3281           On WriteProcessingInstruction(), ArgumentException() is expected ;-)
3282
3283 2003-11-24  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
3284
3285         * XmlTextWriter.cs :
3286           WriteProcessingInstruction() should check name validity.
3287           AddMissingElementXmlns() should allow namespace emission even if it
3288           is identical to existing one.
3289
3290 2003-11-22  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
3291
3292         * XmlTextReader.cs : Fixed ReadInnerXml(). This fixes bug #51267.
3293
3294 2003-11-20 Eran Domb <erand@mainsoft.com>
3295
3296         * XmlTextWriter.cs (WriteStartAttribute) : Check if the ket already exists in the newAttributeNamespaces table 
3297           before trying to add it to the table.
3298
3299 2003-11-19  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
3300
3301         * DTDValidatingReader.cs : Replaced entity should not treat whitespaces
3302           as significant.
3303         * XmlNode.cs : Removed extraneous MonoTODOs.
3304
3305 2003-11-17  Jackson Harper  <jackson@ximian.com>
3306
3307         * XPathEditor.cs: .net 1.2 only
3308         
3309 2003-11-17  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
3310
3311         * AsyncXmlTextWriter.cs, IXPathChangeNavigator.cs, IXPathEditor.cs,
3312           IXPathNavigator.cs, IXmlDataEvidence.cs, IXmlNamespaceResolver.cs,
3313           UpdateEventHandler.cs, XPathChangeNavigator.cs, XPathDocument2.cs,
3314           XPathDocument2ChangedEventAction.cs, 
3315           XPathDocument2ChangedEventHandler.cs, XPathEditor.cs,
3316           XPathNavigator2.cs, XmlChangeFilters.cs, XmlInfoItemType.cs,
3317           XmlNamespaceScope.cs, XmlNodeChangeType.cs, XmlQualifiedNameTable,cs,
3318           XmlQueryDialect.cs, XmlUpdateEventArgs.cs
3319           : Added .NET 1.2 classes (for convenience of ObjectSpaces stubbing).
3320
3321 2003-11-02  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
3322
3323         * XmlDocumentNavigator.cs : Fixed MoveToFirstChild() and MoveToNext()
3324           to skip XmlEntityReference.
3325         * XmlTextWriter.cs : Fixed AddMissingElements() and 
3326           WriteStartAttribute() not to emit extraneous xmlns.
3327
3328 2003-11-02  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
3329
3330         * XmlTextWriter.cs : Skip multiple xmlns when element and any of 
3331           attributes have the same xmlns values.
3332           WriteEndElement() allows open attribute (calles WriteEndAttribute()).
3333           Indentation should be inserted between ">" and "</xxx>" .
3334
3335 2003-11-02  Pedro Martínez Juliá  <yoros@wanadoo.es>
3336
3337         * XmlConvert.cs: Only parse INF/-INF/NaN. Other Infinty or NAN
3338         numbers are parsed with the respective ::Parse method.
3339
3340 2003-11-01  Pedro Martínez Juliá  <yoros@wanadoo.es>
3341
3342         * XmlConvert.cs: Revert my last change. INF and -INF must be
3343         processed here because Double::Parse and Single::Parse doesn't
3344         understand anything of parsing [-]INF.
3345
3346 2003-11-01  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
3347
3348         * XmlDocument.cs : Save(Stream) should not close the stream.
3349
3350 2003-10-25  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
3351
3352         * DTDReader.cs, DTDValidatingReader.cs, XmlInputStream.cs,
3353           XmlTextReader.cs : More cleanup.
3354         * XmlDocument.cs : Removed CheckName(). Code cleanup.
3355         * XmlElement.cs : .ctor() now adds default attributes (if required).
3356         * XmlAttribute.cs, XmlElement.cs, XmlEntity.cs, XmlEntityReference.cs,
3357           XmlNotation.cs : Now uses OwnerDocument's NameTable.
3358
3359 2003-10-25  Pedro Martínez Juliá  <yoros@wanadoo.es>
3360
3361         * XmlConvert.cs: Support for the sign in double and single. The
3362         processing of the infinites and nan numbers are more complex than
3363         comparing to "INF" so we must let Double::Parse and Single::Parse
3364         doing their job.
3365
3366 2003-10-25  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
3367
3368         * DTDValidatingReader.cs : Now it handles whitespace entity as
3369           significant.
3370         * XmlConvert.cs : As to NIST testcases, exponential support on single
3371           and double floating point numbers.
3372         * XmlValidatingReader.cs : If it IsDefault, then line number and line
3373           position returns 0.
3374
3375 2003-10-25  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
3376
3377         * DTDReader.cs,
3378           XmlConstructs.cs,
3379           XmlTextReader.cs,
3380           XmlWriter.cs : Fixed incorrect access modifier.
3381         * XmlTextWriter.cs : Imported state variable from XmlWriter.
3382         * DTDValidatingReader.cs : Removed extraneous MonoTODO.
3383         * XmlConvert.cs : Implemented ToTimeSpan().
3384           Modified ToDateTime() to reuse the same array.
3385
3386 2003-10-19  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
3387
3388         * XmlAttributeCollection.cs : Fixed synchronization stuff.
3389         * XmlConvert.cs : Added two FromBinHexString() methods.
3390         * XmlTextReader.cs : Modified to use one of the above method.
3391         * XmlValidatingReader.cs : XsdValidatingReader.XmlResolver will be 
3392           disabled (in the next commit), so resolver won' be set to it.
3393           Attempt to validate against XDR now throws NotSupportedException.
3394
3395 2003-10-19  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
3396
3397         * XmlChar.cs : added WhitespaceChars, used in common.
3398         * XmlConvert.cs,
3399           XmlDeclaration.cs,
3400           XmlParserInput.cs,
3401           XmlTextReader.cs,
3402           XmlTextWriter.cs : String.Trim()
3403         * XmlConvert.cs : shifted XmlConstructs to XmlChar.
3404         * XmlTextReader.cs : Implemented Normalization.
3405
3406 2003-10-19  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
3407
3408         * XmlNode.cs : GetPrefixOfNamespace() also contained a bug similar to
3409           GetNamespaceOfPrefix() fixed at 2003-10-13.
3410         * XmlTextReader.cs : ReadBase64() should keep incomplete base64 block
3411           which remained by previous call of this method.
3412         * XmlUrlResolver.cs : Added assertion for file Uri path's absoluteness.
3413         * XmlValidatingReader.cs : Notice about intention of XDR won't be
3414           supported (at least in Mono 1.0).
3415
3416 2003-10-18  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
3417
3418         * XmlDocument.cs : CloneNode() does not copy PreserveWhitespace.
3419         * XmlWriter.cs : Calling WriteNode() with XmlReader whose state is
3420           XmlDeclaration now calls WriteProcessingInstruction(). This fixes
3421           testcase XmlWriterTests.WriteNodeFullDocument().
3422         * XmlTextWriter.cs : Added LAMESPEC comments related to above.
3423
3424 2003-10-13  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
3425
3426         * XmlDocument.cs : Fixed bugzilla #49607. Save() outputs XML 
3427           declaration even though there is no XmlDeclaration child.
3428         * XmlTextReader.cs : Fixed Init() so that ResetState() should work.
3429
3430 2003-10-13  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
3431
3432         * XmlTextWriter.cs : Implemented WriteSurrogateCharEntity().
3433           Reverted my recent extraneous check in WriteStartAttribute().
3434
3435 2003-10-13  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
3436
3437         * XmlNode.cs : GetNamespaceOfPrefix() should check Attributes existence.
3438           And it should throw ArgumentNullException.
3439
3440 2003-10-13  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
3441
3442         * XmlAttribute.cs : Fixed InnerText that did not removed its content
3443           if there is two or more children.
3444         * XmlNode.cs : XmlNode.cs : Fixed bugzilla #49580 (1)to return "",
3445           (2)not to compare NodeType for detached nodes, (3)optimization to
3446           compare element's prefix.
3447         * XmlSecureResolver.cs : Removed extraneous members.
3448
3449 2003-10-09  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
3450
3451         * Added DTDReader.cs. It is almost importation of XmlTextReader.
3452         * DTDObjectModel.cs :
3453           - More .NET-ism. Properties took place of fields.
3454           - Imported PE set from XmlTextReader. Added location info.
3455           - Added DTDEntityBase common to PE and GE.
3456           - More correct text declaration handling with new XmlTextReader.
3457         * DTDValidatingReader.cs :
3458           - Now uses entity resolving XmlTextReader to validate attributes
3459             correctly. Implemented standalone
3460           - Standalone and default related validity constraints check.
3461         * XmlImplementation.cs: Implemented HasFeature().
3462         * XmlNode.cs : Implemented Supports().
3463         * XmlNodeReader.cs : Modified to use XmlTextReader.SkipTextDeclaration()
3464         * XmlParserInput.cs : Removed extraneous members.
3465         * XmlTextReader.cs :
3466           - All DTD related functionality now goes to DTDReader.cs
3467           - It became old simple TextReader input style.
3468           - Implemented GetRemainder().
3469           - Implemented ReadBase64(), ReadBinHex() and ReadChars(), using 
3470             additional new private method ReadUntilEndTag().
3471           - Removed incomplete MaybeTextDecl and added SkipTextDeclaration().
3472             ReadXmlDeclaration() now became simple.
3473           - More strict entity reference check at SetEntityReferenceProperty()
3474           - Removed extraneous members.
3475         * XmlWriter.cs : WriteNode(XmlNodeType.None) does not raise error.
3476
3477 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
3478
3479         * XmlTextReader.cs: when we get an unexpected EOF in ReadContent, set
3480         the state before throwing the exception if depth > 0.
3481
3482 2003-10-04  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
3483
3484         * XmlAttribute.cs : Removed extraneous MonoTODO.
3485         * XmlTextWriter.cs : Implemented WriteBinHex() and WriteChars().
3486           WriteStartElement() and WriteStartAttribute() should ignore Prefix
3487           if namespace uri is not specified.
3488
3489 2003-10-04  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
3490
3491         * XmlDocumentFragment.cs,
3492           XmlElement.cs,
3493           XmlEntityReference.cs : Removed extraneous MonoTODO.
3494         * XmlNode.cs : Implemented Normalize().
3495         * XmlNodeReader.cs :
3496           - AttributeCount and HasAttributes should return its owner element's
3497             value, to be consistent with XmlTextReader.
3498           - Fixed Depth to reflect correct attribute/attribute-value iteration.
3499           - simplified ownerElement and HasValue.
3500           - Prefix won't return null.
3501           - MoveToElement() should also work against attribute value nodes.
3502         * XmlTextReader.cs : MoveToElement() should return false if it is
3503           positioned at element itself.
3504
3505 2003-10-04  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
3506
3507         * XmlTextReader.cs : Improved SignificantWhitespace handling.
3508
3509 2003-10-01  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
3510
3511         * XmlSecureResolver.cs : Implemented basic feature.
3512
3513 2003-10-01  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
3514
3515         * XmlUrlResolver.cs : Should work with null type argument.
3516
3517 2003-10-01  Lluis Sanchez Gual <lluis@ximian.com>
3518
3519         * XmlTextWriter.cs : An attribute can require a prefix for the default
3520           namespace, so we need to store the prefix as well as the namespace.
3521
3522 2003-09-30  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
3523
3524         * DTDValidatingReader.cs : Simplified to use 
3525           XmlSchemaUtil.GetParserContext().
3526         * XmlValidatingReader.cs : ValidationType.Auto should always use
3527           XsdValidatingReader because xsi:schemaLocation might be used.
3528
3529 2003-09-30  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
3530
3531         * XmlTextReader.cs : Attribute value token properties were incorrectly
3532           set by the linked node.
3533
3534 2003-09-26  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
3535
3536         * XmlDocumentNavigator.cs : Fix for bugzilla #48931. MoveToRoot() now
3537           considers such case that target node was not adapted to the document.
3538         * XmlNamespaceManager.cs : GetEnumerator() missed the last pair.
3539         * XmlTextWriter.cs : use 'as'  instead of 'try..catch'.
3540
3541 2003-09-25 Ben Maurer  <bmaurer@users.sourceforge.net>
3542
3543         * XmlNode.cs (XPathNodeType): Give more useful debugging message.
3544         * XmlDocumentNavigator.cs (MoveToPrevious): Needs same checks as
3545         in MoveToNext.
3546
3547 2003-09-23  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
3548
3549         * XmlNamespaceManager.cs: Rewrote PopScope() because its namespace
3550           recovery was still not enough. Fixed GrowScopes() (incorrect index).
3551
3552 2003-09-21  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
3553
3554         * XmlTextReader.cs : 
3555           - Fix for bugzilla #48337 (containing Ben's advice on that).
3556           - Added internal XmlTokenInfo classes. Nodes are now handled as token 
3557             objects (linked node, attributes and attribute values). Most of the
3558             node state properties and iterating methods are changed to refer to
3559             the token classes (except for value builder availability). Removed
3560             fields which are never used. CompileDTDSubset() is changed in
3561             reflection to nodeType field removal.
3562           - Fixed Depth that should vary in moving between attributes and/or
3563             reading attribute values.
3564           - LineNumber and LinePosition now returns more correct location.
3565           - Fixed Value that should still return true if its value is an empty
3566             attribute value string.
3567           - EntityValue is checked WFC constraints even thoug it is not used.
3568           - All .ctor() now initializes ReadState as Initial.
3569           - Read() should be available for attribute value constructor.
3570         * XmlAttribute.cs : set_InnerXml() now calls reader's Read().
3571
3572 2003-09-21  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
3573
3574         * XmlNamespaceManager.cs: PopScope() must retain those namespaces which
3575           are added in the scope before PushScope() was called.
3576
3577 2003-09-20 Ben Maurer  <bmaurer@users.sourceforge.net>
3578
3579         * XmlNamespaceManager.cs: Rewrote. Uses arrays, rather than linked
3580         lists and removes uses of Hashtable. Results in huge speed gains.
3581
3582 2003-09-19 Ben Maurer  <bmaurer@users.sourceforge.net>
3583
3584         * XmlConvert.cs: NaN.ToString () != INF.
3585
3586 2003-09-14  Lluis Sanchez Gual  <lluis@ximian.com>
3587
3588         * XmlTextWriter.cs: Attributes that have a namespace must be always
3589           prefixed.
3590
3591 2003-09-13  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
3592
3593         * XmlTextWriterOpenElement.cs : Changed to receive prefix and localName
3594           in .ctor().
3595         * XmlTextWriter.cs : Changed to use above XmlTextWriterOpenElement.
3596           Changed xmlns adding scheme. In detail, 1) WriteStartElement does not
3597           add Namespaces immediately, but adds at AddMissingElementXmlns so 
3598           that we don't have to have extra check than namespaceManager's
3599           LookupPrefix(). 2) Removed writtenAttributes for performance reason
3600           since it is no more required.
3601
3602 2003-09-10  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
3603
3604         * XmlDocument.cs : patch by Jonathan Hogg. Fixed CreateAttribute()
3605           that handled xmlns attributes inproperly.
3606
3607 2003-09-08  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
3608
3609         * XmlNamespaceManager.cs : GetEnumerator() should return all of the
3610           available pairs (of prefix and namespace).
3611         * XmlQualifiedName.cs : Quick fix for NullReferenceException in case
3612           of name (or ns) is null. (The description of the immediate previous 
3613           changes will be inserted below.)
3614         * XmlTextWriter.cs : Fixed WriteDocType(). Removed CheckValidName().
3615         * XmlUrlResolver.cs : Changed not to call WebClient.Dispose() which
3616           will release resources it had allocated.
3617
3618 2003-09-01 Ben Maurer  <bmaurer@users.sourceforge.net>
3619
3620         * XmlDocument.cs (Save): use the encoding of the document, if
3621         available.
3622
3623 2003-08-24  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
3624
3625         * XmlValidatingReader.cs : Implemented SchemaType. Added support for
3626           ValidationType.Schema. Added support for XmlResolver. Fixed 
3627           ReadTypedValue() not to consume EndElement.
3628
3629 2003-08-19  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
3630
3631         * XmlDocumentNavigator.cs : Fixed MoveToFirstNamespace() that arose
3632           infinite loop.
3633         * XmlNamespaceManager.cs : Renamed AtomStrEq to AtomicStringEquals.
3634           Commented out Console.Error.WriteLine().
3635         * XmlUrlResolver.cs : Fixed ResolveUri() and GetEntity() to support
3636           escape and unescape for relative URI string.
3637
3638 2003-08-19 Ben Maurer  <bmaurer@users.sourceforge.net>
3639
3640         * XmlParserContext.cs: Make each context inherit next.
3641
3642 2003-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
3643
3644         * XmlChar.cs (IsWhitespace): Spare enumerator allocation.
3645         * XmlTextWriter.cs (WriteWhitespace): Enumerators are very high in
3646         fat, use low-fat loops instead. Even better, call the function
3647         inside XmlChar for code reuse.
3648         * HighWaterStack.cs (added): New class that acts like a Stack, but
3649         helps with memory allocation.
3650         * XmlNamespaceManager.cs, XmlParserContext.cs: Rewrote to use
3651         HighWaterStack.
3652         * XmlTextReader.cs: Remove orderedAttributesEnumerator variable,
3653         use a variable that stores the position in the ArrayList.
3654         
3655 2003-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
3656
3657         * XmlTextWriter.cs: Begin diet. String.Format has too much
3658         saturated fat, lets replace with the fat-free .Write ()
3659         calls. Effects best seen when Paolo's StreamWriter patch is
3660         applied.
3661
3662 2003-08-14  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
3663
3664         * XmlNodeReader.cs : Fixed ReadAttributeValue() that might result in
3665           vanishing current node.
3666
3667 2003-08-14  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
3668
3669         * DTDValidatingReader.cs : Added SchemaType.
3670           Read() Assures to return to element.
3671         * DTDObjectModel.cs : Removed DTDEntityDeclaration.BaseURI.
3672         * XmlReader.cs : ReadString() should be virtual in NET_1_1.
3673         * XmlTextReader.cs : 1) Depth should consider Attribute and its values.
3674           Introduced insideAttribute field to support them.
3675           2) ReadAttributeValue() should consider empty string.
3676         * XmlValidatingReader.cs :
3677           Fixed several properties which premised as if it was already read.
3678           Encoding and Namespaces now throws NotSupportedException for other
3679           than XmlTextReader.
3680           Implemented ReadTypedValue() based on IHasXmlSchemaInfo.SchemaType.
3681
3682 2003-08-10  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
3683
3684         * XmlInputStream.cs : Reverted CanSeek as to return false anyway.
3685
3686 2003-08-10  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
3687
3688         * DTDObjectModel.cs : added XmlResolver related members. Added
3689           invalid entity recursion logic. Added encodingdecl check on textdecl.
3690         * DTDValidatingReader.cs : It now implements IHasXmlParserContext.
3691         * XmlChar.cs : IsPubidChar() should not allow TAB(&#9;).
3692         * XmlDocumentType.cs : 1) internal CreateDocumentType() was now changed
3693           to receive DTDObjectModel to support other than XmlTextReader. 
3694           2) Most of its public member is now based on DTDObjectModel.
3695         * XmlDocument.cs : 1) Synchronous change with XmlDocumentType.
3696           2) ReadNode() now considers XmlParserContext's DTDObjectModel for
3697           other than XmlTextReader (such as XmlValidatingReader).
3698         * XmlNode.cs : code cleanup only.
3699         * XmlParserInput.cs : added HasPEBuffer, used to check illegal nesting.
3700         * XmlTextReader.cs : 1) Illegal entity reference check logic was moved 
3701           from ReadContent() to SetEntityReferenceProperties(). 2) Indentation
3702           change on ReadEntityReference(). 3) ReadAttribute() now checks
3703           reference to external entity reference. 4) Added textdecl encoding
3704           check. 5) DTDObjectModel fields are now set correctly. 6) added
3705           PERef markup nest check. 7) If PEDecl was not found, it might be WFC
3706           violation, not only be VC violation. 8) ReadEntityDecl() now receives
3707           its declared entity itself, and this method checks IsInternalSubset.
3708         * XmlValidatingReader.cs : 1) Added GetInternalPerserContext().
3709           2) ValidationType.None should be the same as Auto, not DTD (in the
3710           future it should keep xml schema's default values).
3711
3712         Pending Stuff in XmlTextReader which breaks some NUnit tests;
3713           1) SetEntityReferenceProperies() has check for illegal references.
3714           2) ReadAttribute(bool) has similar check for illegal references.
3715
3716 2003-08-09  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
3717
3718         * DTDAutomata.cs : Fixed (modified or added) TryEndElement() of choice,
3719           sequence and oneOrMore. Fixed DTDChoiceAutomata.TryStartElement().
3720
3721 2003-08-09  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
3722
3723         * XmlTextReader.cs : Checked and fixed all TryExpandPERef() invokation 
3724           and supplied SkipWhitespace() as they needed. It broke monodoc.
3725           Fixed ReadEntityValueDecl() to get correct value.
3726
3727 2003-08-08  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
3728
3729         * XmlInputStream.cs :
3730           Fixed Initialize() that might result in incorrect buffer.
3731           CanRead and Position should consider buffer (especially when the
3732           stream was EOF).
3733           CanSeek should use stream's CanSeek.
3734
3735         * XmlChar.cs : added GetPredefinedEntity().
3736         * DTDObjectModel.cs :
3737           - Modified ComputeDefaultValue() to use it.
3738           - Fixed NormalizedDefaultValue not to expect parsed value as string.
3739           - ResolveExternalEntity now detects invalid standalone specification.
3740           - DTDParameterEntityDeclaration.Value is now changed to property and
3741             keep its resolved value of literal value of external value using
3742             new Resolve (XmlResolver) method (called only by XmlTextReader).
3743         * DTDValidatingReader.cs :
3744           - It now handles entity-expanded Whitespace and SignificantWhitespace
3745             correctly. Does not raise unexpected text not allowed error.
3746           - Fixed MoveToAttribute()s to move internal reader correctly, and
3747             should be able to move in other cases than on element node.
3748           - On Read()ing document type and ResolveEntity(), it now sets
3749             XmlResolver on text reader.
3750           - On ID constraints check and type verification, it now uses
3751             normalized attribute or its tokenized value(s).
3752           - Fixed ValidateAttributes() to add default values when 
3753             ValidationType is Auto.
3754         * XmlParserContext.cs : added internal Dtd setter.
3755         * XmlParserInput.cs :
3756           InsertParameterEntityBuffer() should add surrounding whitespaces.
3757           Removed unused code block.
3758         * XmlTextReader.cs :
3759           - Modified ReadReference(), ReadAttribute() and Dereference() to use
3760             XmlChar.GetPredefinedEntity().
3761           - When returning entity reference, it checks extity declaration
3762             existence in certain conditions.
3763           - ReadAttribute() now skips general entity replacement on reading
3764             entity value.
3765           - ReadText() now handles whitespace texts as XmlNodeType.Whitespace.
3766           - ReadXmlDeclaration() holds isStandalone, which might be used in
3767             entity reference's well-formedness check.
3768           - internal 'DTD' now uses XmlParserContext.Dtd.
3769           - isInternalSubset was meaningless. Now uses input stack's Count.
3770           - Added some required SkipWhitespace().
3771           - Several parameter entity handling changes.  Added GetPEValue(name).
3772             TryExpandPERef() now uses ImportAsPERef(). ReadParameterEntityDecl()
3773             now uses its Resolve() when it was external PE.  Now it uses value
3774             buffer instead of currentTag, to efficiently read (included) PE.
3775             CompileDeclaration() now uses ImportAsPERef instead of ExpandPERef().
3776             ImportAsPERef() simply inserts the value to currentInput.
3777             ReadEntityDecl() also uses value buffer.   Removed non-used methods.
3778           - Default attributes are now stored in normalized form.
3779           - Dereference() now considers non-expanding predefined entities.
3780         * XmlValidatingReader.cs : now holds Schemas, and ValidationType.Auto
3781           is more correctly supported.
3782
3783         * XmlAttributeCollection.cs :
3784           When removing default attribute, it immediately inserts the attribute.
3785           RemoveAll() should consider default (not-removable) attributes.
3786         * XmlDocument.cs :
3787           Should have its default XmlResolver. Added Internal Resolver.
3788           Some Load() should use its XmlResolver.
3789           ImportNode() should copy its children in node level, not value level.
3790           It also have to consider not to copy default attribute on importing
3791           XmlElement.
3792         * XmlDocumentType.cs : Now uses document's XmlResolver to read DTD.
3793         * XmlAttribute.cs,
3794           XmlDocumentFragment.cs.
3795           XmlElement.cs : use XmlResolver on InnerXml. Removed some MonoTODO.
3796         * XmlNodeReader.cs : GetInternalParserConext() should provide its DTD.
3797           ResolveEntity() uses XmlResolver on entityReader.
3798
3799 2003-08-07  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
3800
3801         * DTDObjectModel.cs :
3802           - Added validation error check (and AddError(), Errors).
3803           - Fixed ComputeDefaultValue() to handle various references correctly.
3804           - DTDEntityDeclaration.EntityValue became property, and added
3805             LiteralEntityValue. The new one holds resolved value.
3806             Added ResolveExternalEntity(). It now required root in .ctor().
3807         * DTDValidatingReader.cs :
3808           - Now it handles namespaced attributes (as input to xsd validator).
3809           - Added XmlResolver property as usual XmlReader.
3810           - Added currentEntityHandling field so that it can stand changing
3811             XmlValidatingReader's EntityHandling dynamically.
3812           - FilterNormalization() now requires name for getting datatypes and
3813             can stand for non-current attribute normalization.
3814           - Splitted ReadContent() from Read() that can be called recursively
3815             when expanding entities.
3816           - Now handles Entity not found error *after* resolution of entities,
3817             as MS.NET does.
3818           - Read()ing DTD checks its Errors and raises validation error events.
3819             In some situations, DTD parsing may detect VC error, not WFC error.
3820             It also strictly checks NData existence.
3821           - Handling of entity-resolved text is a bit changed and Read()ing
3822             element, endElement, cdata now changed to switch collecting text
3823             and collected text.
3824           - content type ANY should allow texts.
3825           - Added enumerated attribute validity check.
3826           - Added Name/Names creation rule check for ID/IDREF/IDREFS.
3827           - Added entity existence check for ENTITY/ENTITIES attributes.
3828           - Added NMTOKEN creation rule check for NMTOKEN/NMTOKENS.
3829           - Fixed to remove extraneous #REQUIRED check.
3830           - Contributing default attribute is now only applied to the case
3831             ValidationType is DTD or None.
3832           - ResolveEntity() now handles external entities.
3833             Added Mono.Xml.IXmlParserContext interface support.
3834         * XmlDocumentType.cs : Fixed to use BaseURI to build DTD model.
3835         * XmlTextReader.cs :
3836           - Fixed ReadAttributeValue() to reset returnEntityReference.
3837           - Added bool MaybeTextDecl only for ResolveEntity().
3838           - Fixed ReadWhitespace(). In fact its value is considered even if it
3839             is in the end of the XML.
3840           - Fixed ReadXmlDeclaration(). Now skips text declaration.
3841           - CompileDTDSubset() now checks IGNORE/INCLUDE section end balances.
3842           - ReadContentSpec() should set OrderType = OR for mixed model.
3843             Fixed to set content element name correctly.
3844           - ImportAsPERef() now skips Text declaration.
3845           - Type of enumerated default attributes shold be string.
3846           - Undeclared PE error is now handled as DTD's VC error, not
3847             XmlTextReader's WFC error.
3848         * XmlValidatingReader.cs : BaseURI should provide that of 
3849           original XmlReader's when read was not started yet.
3850           Fixed XmlResolver to delegate to DTDValidatingReader.
3851
3852         * XmlAttributeCollection.cs : Acquiring attList declaration is
3853           insufficient especially in case of lack of elementdecl.
3854         * XmlChar.cs : (Maybe this is compact than XmlConstructs.)
3855           added IsWhitespace(),IsNCNameChar(),IsName(),IsNCName(),IsNmToken(),
3856           IsPubid(). Copies IsValidIANAEncoding() from XmlConstructs.
3857
3858         * XmlInputStream.cs : Removed "version" declaration check. It should
3859           be done by XmlTextReader.
3860
3861         * XmlNodeReader.cs : added internal GetInternalParserContext() and now
3862           it can be used in XmlValidatingReader.ResolveEntity().
3863           ResolveEntity() sets XmlTextReader.MaybeTextDecl.
3864
3865 2003-08-05  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
3866
3867         * DTDValidatingReader.cs :
3868           Added full ExpandEntities support for text node and entity reference
3869           node (although require many usage tests). Almost all methods and
3870           properties now have currentTextValue != null check, that field means
3871           that there are cached (entity-resolved) text.
3872           Implemented default attribute aware XmlLang and XmlSpace.
3873         * XmlNodeReader.cs : ResolveEntity() should not require DTD.
3874
3875 2003-08-03  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
3876
3877         * DTDValidatingReader.cs,
3878           XmlNodeReader.cs,
3879           XmlReader.cs,
3880           XmlTextReader.cs,
3881           XmlValidatingReader.cs : fixed pragma USE_VERSION_1_0 to NET_1_0.
3882
3883 2003-08-03  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
3884
3885         * DTDObjectModel.cs : Added BaseURI (but not used yet).
3886           DTDAttListDeclaration.ctro() now requires root dtd object model.
3887         * DTDValidatingReader.cs : Read() now expands EntityReference if
3888           entity handling of validating reader is ExpandEntities.
3889         * XmlReader.cs,
3890           XmlTextReader.cs,
3891           XmlNodeReader.cs,
3892           XmlValidatingReader.cs : Implemented "virtual" ReadInnerXml and
3893             ReadOuterXml which are modified in MS.NET 1.1.
3894         * XmlConstructs.cs : added int version of IsValid, IsInvalid,
3895           IsContent, IsMarkup and IsNCNameStart.
3896           Fixed int version of IsXXX() to check array index range. 
3897           Added IsValidName (string).
3898         * XmlTextReader.cs :
3899           - Read() handles document with non document element as an error.
3900           - ReadText() and ReadCharacterReference() checkes illegal characters.
3901           - ReadEntityReference() checks name validity.
3902           - ReadProcessingInstruction() rejects such name that starts with
3903             "xml" ignoring case, and checks attributes more strictly.
3904           - ReadDeclaration() rejects unrecognized kind of declaration.
3905           - In many places, added "required whitespace" check in DTD markup.
3906           - DTD content model now disallows mixing use of '|' and ','.
3907
3908 2003-08-02  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
3909
3910         * XmlDocumentFragment.cs : I missed to add it in relation to the
3911           previous XmlParserContext patch. Similar to XmlAttribute/XmlElement.
3912         * XmlNodeReader.cs : removed some TODO attributes.
3913         * DTDValidatingReader.cs,
3914           XmlValidatingReader.cs : Implemented ResolveEntity().
3915
3916 2003-07-31  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
3917
3918         * XmlParserContext.cs,
3919           XmlAttribute.cs,
3920           XmlElement.cs : Added internal Dtd and new internal XmlParserContext
3921           .ctor() that takes DTDObjectModel. And then rewrote classes which 
3922           uses DTD information. Changed DocTypeName, InternalSubset, PublicId
3923           and SystemId to use DTDObjectModel.
3924         * DTDObjectModel.cs :
3925           Added DTDObjectModel.InternalSubsetHasPEReference.
3926           Added DTDEntityDeclaration.IsInternalSubset.
3927         * XmlTextReader.cs :
3928           Added internal GetInternalParserContext (to build entity reader).
3929           Added private isIntSubset to check if the DTD subset is internal or
3930           external, which might affect well-formedness constraints.
3931           Changed GenerateDTDObjectModel to return the resulting DTD model.
3932
3933         * XmlEntityReference.cs : implemented BaseURI.
3934         * XmlNodeReader.cs :
3935           - Implemented ResolveEntity() and CanResolveEntity(). In fact
3936             it leads too many changes on almost all methods and properties,
3937             since they now must be aware of entityReader.
3938           - fixed ownerElement that might be used to return from attribute 
3939             value to the element through parent attribtues.
3940           - Now changed indexer to call GetAttribute() and moved actual logic
3941             to the matching GetAttribute() methods.
3942
3943 2003-07-29  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
3944
3945         * XmlNode.cs : fixed internal ConstructNamespaceManager() for InnerXml
3946           not to create extraneous xmlns="".
3947
3948 2003-07-28  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
3949
3950         * DTDValidatingReader.cs : (Read,ValidateAttributes,ReadAttributeValue)
3951           attribute declaration should be got independently of elementdecl.
3952         * XmlAttribute.cs :
3953           Added internal SetDefault() to mark as default.
3954           Removed InnerText implementation that is just the same as XmlNode.
3955         * XmlDocument.cs : id shouldn't be removed from table at 'trying' to
3956           get matching elements.  ReadAttributeNode() now sets default mark.
3957         * XmlElement.cs : WriteTo() should ignore default attributes.
3958         * XmlTextWriter.cs : shuold allow valid name char such as digits.
3959
3960 2003-07-27  Piers Haken <piersh@friskit.com>
3961
3962         * XmlQualifiedName.cs : fields should never be null
3963
3964 2003-07-27  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
3965
3966         * XmlDocumentFragment.cs : added XPathNodeType indicating Root.
3967
3968 2003-07-27  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
3969
3970         * XmlDocument.cs (GetIdenticalAttribute): restored OwnerElement.IsRooted
3971
3972 2003-07-27  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
3973
3974         * XmlLinkedNode.cs : added internal IsRooted.
3975
3976 2003-07-26  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
3977
3978         * DTDValidatingReader.cs :
3979           - Added ID support in ValidateAttributes().
3980           - More refined ReadAttributeValue() support for non-expanding entity
3981             situation
3982           - It should handle LocalName, Name, Prefix, NamespaceURI and Value
3983             correctly when the reader is on each of the value nodes of an
3984             attribute. Now XmlDocument.ReadNode() should work well.
3985         * XmlDocument.cs :
3986           - added idTable, AddIdenticalAttribute(), GetIdenticalAttribute() and
3987             RemoveIdenticalAttribute()
3988           - Implemented GetElementById().
3989         * XmlAttributeCollection.cs :
3990           - added private ownerDocument property and replaced
3991             ownerElement.OwnerDocument with it.
3992           - Added AdjustIdenticalAttribute() and it is used in SetNamedItem().
3993             It calls XmlDocument.{Add|Remove}IdenticalAttribute().
3994           - Added RemoveIdenticalAttribute() and it is used in Remove().
3995             (I also added AddIdenticalAttribute() but is not used.)
3996
3997 2003-07-26  Duncan Mak  <duncan@ximian.com>
3998
3999         * XmlDocument.cs (GetIdenticalAttribute): Temporarily remove test
4000         for OwnerElement.IsRooted to fix the build..
4001
4002 2003-07-26  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
4003
4004         * XmlDocumentType.cs :
4005           modified private DTD to dtd and added internal DTD (the same thing).
4006         * XmlElement.cs :
4007           Fixed SetAttributeNode() to check if specified attribute is already
4008           set to the other element. In fact it is W3C DOM's specification but
4009           MS.NET 1.0 failed to catch it.
4010         * XmlTextReader.cs :
4011           ReadAttributeValue() should check if the value of the attribute is
4012           already read when the whole value is entity reference.
4013           Also, Name of text nodes should be "", not "#text"
4014
4015 2003-07-26  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
4016
4017         * XmlAttribute.cs : .ctor() shouldallow localName "xml" (not prefix)
4018           with http://www.w3.org/XML/1998/namespace.
4019         * XmlEntity.cs : patch by Aleksey Sanin. InnerText is now supported.
4020         * XmlNode.cs : InnerText should handle CDATA and whitespaces.
4021         * XmlTextReader.cs : Should allow " (#PCDATA)* " in ReadContentSpec().
4022         * XmlTextWriter.cs : Quick fix for accepting (and writing) same-named
4023           attributes (as MS.NET does). It isn't good way and I may change it.
4024
4025 2003-07-24  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
4026
4027         * DTDObjectModel.cs : Added DTDEntityDeclarationCollection and
4028           DTDNotationDeclarationCollection and replaced Hashtables with them.
4029           Added NormalizedDefaultValue property for DTDAttributeDefinition.
4030         * DTDValidatingReader.cs :
4031           - It now reads attribute values into value collection. 
4032           - Renamed consumedDefaultAttribute to consumedAttribute, and
4033             inContent to insideContent.
4034           - GetAttribute() should allow reader's other node state than element.
4035           - MoveToNextAttribute() should move when reader is placed other than
4036             the first attribute.
4037           - HandleError() now supports ValidationType.None (i.e. does nothing).
4038           - ValidateAttribute() now collects and resolves attribute value 
4039             entity references. (On the other hand, it doesn't support
4040             EntityHandling.ExpandCharEntity.)
4041           - NodeType shouldn't return Attribute after ReadAttributeValue().
4042             Now only Text is supported, but must also support EntityReference.
4043           - Add FilterNormalization() and partially support Normalization.
4044
4045 2003-07-24  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
4046
4047         * XmlTextReader.cs :
4048           Read() now handles parser context stuff (BaseURI, XmlLang and 
4049           XmlSpace) correctly for an empty element.
4050           Normalization property now doesn't throw an error. Will be used soon.
4051         * XmlValidatingReader.cs : added ValidationType.None support (wait for
4052           the next DTDValidatingReader update for "not firing event handler).
4053         * XmlNodeReader.cs : jun. 30th commit seems wrong. It keeps its state.
4054
4055 2003-07-19  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
4056
4057         * DTDValidatingReader.cs :
4058           changed base class to XmlReader and implemented IXmlLineInfo members.
4059           changed .ctor() argument from event handler to validating reader.
4060           Removed some #if ... #else ... #endif blocks.
4061           Added validation event support for Read() using HandleError().
4062         * XmlValidatingReader.cs : added internal OnValidationEvent().
4063         * XmlDocument.cs : ReadNode() now checks reader's state more strictly.
4064
4065 2003-07-19  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
4066
4067         * XmlUrlResolver.cs : applied BenM's patch for file uri problem
4068           (bug #46610).
4069
4070 2003-07-15  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
4071
4072         * DTDValidatingReader.cs :
4073           added DTDObjectModel support for non-XmlTextReader XmlReader 
4074           e.g. XmlNodeReader (Read() method).
4075         * XmlDocument.cs :
4076           added internal CreateDocumentType(XmlTextReader) and moved
4077           ReadDoctypeNode() to XmlDocumentType.ImportFromDTD().
4078         * XmlDocumentType.cs :
4079           added internal .ctor(XmlTextReader, document) and ImportFromDTD().
4080         * XmlTextReader.cs :
4081           Renamed useSbForVal (valueBuilderAvailable), valSb (valueBuilder)
4082           and currentSubset (DTD).
4083           Added GenerateDTDObjectModel() (for independent doctype parsing).
4084
4085 2003-07-15  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
4086
4087         * XmlAttribute.cs :
4088           .ctor() should reject xml- or xmlns-prefixed node.
4089         * XmlNamespaceManager.cs :
4090           added some xmlns validity check.
4091         * XmlNode.cs :
4092           optimized GetNamespaceOfPrefix() and GetPrefixOfNamespace() by
4093           avoiding XmlNamespaceManager creation.
4094         * XmlNodeReader.cs :
4095           doctype node should return PUBLIC and SYSTEM for its indexer, 
4096           and Value should be internal subset,
4097
4098 2003-07-12  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
4099
4100         * DTDObjectModel.cs,
4101           DTDValidatingReader.cs : Completely rewrote attribute handling.
4102
4103 2003-07-12  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
4104
4105         * XmlAttribute.cs,
4106           XmlElement.cs : Fixed CloneNode() for bug #46129.
4107         * XmlDocument.cs : Fixed MakeReaderErrorMessage that specified invalid
4108           String.Format arguments, and basically XmlException.ctor(
4109           IXmlLineInfo, message) seems good idea to use.
4110         * XmlTextReader.cs :
4111           - Fixed .ctor(Stream, XmlNodeType, XmlParserContext) which had
4112             required non-null context which don't have to exist.
4113           - Added state check. Introduced 'currentState' and 'maybeTextDecl' 
4114             (for external entity) and removed hasEnteredDocument. Added 
4115             state-check logic to ReadStartTag(), ReadEndTag(), ReadText(),
4116             ReadCData(), ReadDoctypeDecl() and ReadWhitespace().
4117           - Replaced throw ReaderError() with throw new XmlException() and
4118             fixed that some error hadn't thrown, only created.
4119           - ResetState() should re-initialize existing private members other 
4120             than some specified fields.
4121           - Private AddAttribute() should check if the same-named attribute 
4122             already exists.
4123         * DTDObjectModel.cs : Additive declaration for ATTLIST is availabe now.
4124
4125 2003-07-09  Lluis Sanchez Gual <lluis@ximian.com>
4126
4127         * XmlTextReader.cs : Implemented ResetState() method.
4128
4129 2003-07-06  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
4130
4131         * XmlElement.cs : IsEmpty has removed attributes since it incorrectly
4132           used RemoveAll().
4133
4134 2003-07-06  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
4135
4136         * XmlDocument.cs : Load(string filename) should close its stream.
4137           Small change for the latest DTDObjectModel change.
4138         * XmlTextReader.cs : Changed for the latest DTDObjectModel change (all
4139           changed methods are only related to DTD stuff).
4140           Now uses XmlSchemaDatatype for attribute type definition.
4141         * XmlValidatingReader : initial (limited) support for DTD validation.
4142           It can handle only XmlTextReader.
4143         * DTDObjectModel.cs : changed radically for initial validation support.
4144         * added DTDAutomata.cs and DTDValidatingReader.cs.
4145
4146 2003-07-06  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
4147
4148         * XmlElement.cs : Removed extraneous xmlns output support (it should
4149           be done by XmlTextWriter).
4150         * XmlNode.cs : InsertBefore() now checks validity of the newChild (and
4151           most of the changes are in fact indentation changes).
4152         * XmlWriter.cs : WriteAttributes() now can write entity references.
4153           WriteNode() now writes xmldecl attributes correctly.
4154           Removed namespaceManager and xmlns check logic, since it should be 
4155           done by individual XmlTextWriter.
4156         * XmlTextWriter.cs : Patch by Jerome. AddMissingElementXmlns () has
4157           written multiple xmlns declarations.
4158           Moved namespaceManager from abstract XmlWriter.
4159           Write{Start|End}Attribute() and WriteString() now checks xmlns 
4160           attribute value. (MS.NET holds value only with this write method).
4161
4162 2003-07-04  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
4163
4164         * XmlDocument.cs : removed xmlReader.Close() from Load(XmlReader).
4165
4166 2003-06-30  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
4167
4168         * XmlDocumentNavigator.cs : Implemented MoveTo*Namespace() and 
4169           essentially changed most of the property handling (e.g. removed attribute 
4170           enumerator and it now became really cloneable).
4171         * XmlNodeReader.cs : ReadInnerXml() changes its state as error
4172           when the method is called at Initial state.
4173
4174 2003-06-25  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
4175
4176         * XmlDocumentNavigator.cs : Fixed IsEmptyElement. It treats <foo></foo>
4177           as non-empty, and XmlElement's IsEmpty is designed as such.
4178           Fixed MoveToFirst() and MoveToNext() not to move to xmldecl nor 
4179           doctype node. 
4180         * XmlNode.cs : Fixed XPathNodeType. It should throw an exception
4181           instead of returning undefined enum value.
4182           Modified some code comments.
4183         * XmlWriter.cs : Fixed WriteNode () to use WriteFullEndElement() 
4184           when XmlReader's node is not at empty element or at EndElement. 
4185           Fixed XmlDeclaration's standalone check.
4186
4187 2003-06-21  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
4188
4189         * XmlTextReader.cs : removed CRLFs. Fixed private InitializeContext()
4190           to use known Uri way (used in XmlUrlResolver) instead of UriBuilder.
4191
4192 2003-06-20  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
4193
4194         * XmlInputStream.cs : quick fix for public ctor() BaseURI bug.
4195
4196 2003-06-20  Ben Maurer <bmaurer@users.sourceforge.net>
4197         
4198         * XmlTextReader.cs: Reduces memory allocation when the reader is
4199         not queried for some values.
4200         * NameTable.cs: Now uses a custom hashtable to implement. As a
4201         result, when Get (char[], int, int) is called, a string is only
4202         allocated if it is actually a new entry.
4203         (StrEqArray) Compares a string and a char[]
4204         (AddEntry) Adds a new entry to the hashtable
4205         (Entry) Represents a hashtable entry.
4206
4207 2003-06-20  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
4208
4209         * XmlUrlResolver.cs : several ResolveUri() fix. e.g. for external URIs.
4210
4211 2003-06-16  Ben Maurer <bmaurer@users.sourceforge.net>
4212         * XmlUrlResolver.cs: really fixed #44231
4213
4214 2003-06-16  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
4215
4216         * XmlNodeReader.cs : fixed MoveToNextAttribute(). In some cases 
4217           this method set current node null.
4218         * XmlTextReader.cs : fixed GetAttribute (name, ns), which returned
4219           String.Empty instead of null (expected value).
4220         * XmlTextReader.cs,
4221           XmlUrlResolver.cs,
4222           XmlInputStream.cs : fixed BaseURI problem (bug #44231).
4223
4224 2003-06-15  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
4225
4226         * XmlNodeReader.cs : this [name] and this [name, ns] (and
4227           GetAttribute() methods in turn) returns null instead of String.Empty.
4228         * XmlTextWriter.cs : WriteStartAttribute() should try to use specified
4229           prefix before auto-generating prefixes.
4230           Implemented WriteBase64().
4231
4232 2003-06-13  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
4233
4234         * XmlNodeReader.cs : LookupNamespace () has refered invalid current
4235           node for attributes. Modified to use private "document" property.
4236
4237 2003-06-10  Lluis Sanchez Gual <lluis@ximian.com>
4238
4239         * XmlTextWriter.cs: when adding an attribute with a namespace, a prefix must be automaticaly
4240           generated, and a namespace declaration must be added. 
4241         * XmlWriter.cs: the namespace for the prefix xmlns must be http://www.w3.org/2000/xmlns/
4242
4243 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
4244
4245         * XmlAttribute.cs: Accept a null prefix or namespaceURI.
4246
4247 2003-06-10  Duncan Mak  <duncan@ximian.com>
4248
4249         * XmlDocumentNavigator.cs (GetNode): Make it implement
4250         IHasXmlNode.
4251
4252 2003-06-05  Lluis Sanchez Gual <lluis@ideary.com>
4253
4254         * XmlTextWriter.cs : Fixed bug. After calling for example WriteStartElement ("pref","ln","ns");
4255           a call to LookupPrefix ("pref") when still writting attributes should 
4256           return "ns", and it didn't.
4257
4258 2003-06-02  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
4259
4260         * XmlDocumentNavigator.cs : quick fix for MoveToFirstChild().
4261         * XmlConvert.cs : fixed VerifyNCName() to check correctly.
4262
4263 2003-06-01  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
4264
4265         * XmlDocumentNavigator.cs : Compute document node one time.
4266           MoveToFirstChild() should move to PIs and comments.
4267
4268 2003-05-30  Miguel de Icaza  <miguel@ximian.com>
4269
4270         * XmlReader.cs (ReadStartElement): Improve error message.  
4271
4272 2003-05-28  Lluis Sanchez Gual <lluis@ideary.com>
4273
4274         * XmlTextReader.cs : MoveToAttribute methods must set the enumerator to the right
4275           position, since MoveToNextAttribute may be called after it. 
4276           SetProperties(): attributes do not "inherit" the namespace.
4277         * XmlDocument.cs: ReadNode(), ReadAttributeNode(): must keep the current reader position.
4278
4279 2003-05-27  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
4280
4281         * NameTable.cs : Add() sets the given name string interned.
4282         * XmlParserContext.cs : added internal PushScope() and PopScope() to
4283           hold stacks of xml:base, xml:lang and xml:space.
4284         * XmlTextReader.cs : implemented XmlLang and XmlSpace (only as a
4285           property for stacked attributes). Renamed Initialize() to Initialize-
4286           Context(). Modified to use XmlParserContext.PushScope()/PopScope().
4287
4288 2003-05-26  Lluis Sanchez Gual <lluis@ximian.com>
4289
4290         * XmlReader.cs: Little fix to WriteAttributeString()
4291
4292 2003-05-24  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
4293
4294         * XmlAttribute.cs, XmlCharacterData.cs, XmlComment.cs, XmlDocument.cs,
4295           XmlDocumentFragment.cs, XmlElement.cs, XmlEntity.cs, XmlLinkedNode.cs,
4296           XmlNode.cs, XmlNotation.cs, XmlProcessingInstruction.cs, XmlReader.cs,
4297           XmlSignificantWhitespace.cs, XmlText.cs, XmlWhitespace.cs:
4298           Reverted the recent accessibility mistake (5/16).
4299         * XmlDocument.cs, XmlNode.cs : moved actual CreateNavigator() logic 
4300           from XmlNode to XmlDocument.
4301
4302 2003-05-18  Lluis Sanchez Gual <lluis@ideary.com>
4303
4304         * XmlQualifiedName.cs : Fixed bug in equality operator.
4305
4306 2003-05-18  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
4307
4308         * XmlTextWriter.cs : patch by Jonathan Hogg. Flush() does not close
4309           any open attributes or elements. WriteWhitespace() checks state and
4310           closes start tag.  Fixed WriteStringInternal() to replace CR/LF chars
4311           when it is called inside attribute value.
4312         * XmlException.cs : added .NET 1.1 .ctor.
4313         * added XmlSecureResolver.cs (only stubbing).
4314         * XmlAttribute.cs : set_InnerXml() should remove children.
4315         * XmlAttribute.cs,
4316           XmlElement.cs,
4317           XmlDocumentFragment.cs,
4318           XmlDocument.cs : removed XmlTextReader reuse (It was buggy stuff).
4319         * XmlNode.cs : RemoveAll() should also remove all attributes.
4320         * XmlTextRader.cs : .ctor() for attribute value reader should add
4321           quotations at initialization, since it requires quote chars.
4322         * XmlWriter.cs : WriteAttributeString() more correct xmlns check.
4323
4324 2003-05-16  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
4325
4326         * changed XPathNodeType modifier to internal *protected* override.
4327         * XmlAttribute.cs : .ctor() now checks name validity e.g. xmlns.
4328         * XmlAttribute.cs, XmlElement.cs : set_Prefix checks NCName validity.
4329         * XmlAttributeCollection.cs : removed some incorrect TODO attributes.
4330         * XmlDocument.cs ; CreateAttribute(name) now auto-completes xmlns NSURI
4331           when the argument is "xmlns".
4332         * XmlElement.cs : more compliant IsEmpty support. See also WriteTo().
4333         * XmlNamespaceManager.cs : added initial "xml" and "xmlns" namespaces.
4334         * XmlNode.cs : ser_InnerXml() throws InvalidOperationException.
4335         * XmlNodeReader.cs : LookupNamespace() refactory. Fixed ReadInnerXml()
4336           not to set error state for non-started XmlNodeReader.
4337         * XmlTextReader.cs : fixed ReadAttributeValue() not to reset state.
4338           BaseURI support. Fixed Initialize() to handle Attribute correctly.
4339           SetProperty for attribute auto-completes xmlns NSURI.
4340           Attribute and whitespace handling became more correct.
4341           Don't parse external DTD if XmlResolver is null.
4342         * XmlTextWriter.cs : implemented WriteEntityRef().
4343           WriteStartAttribute() checks if ns does not equal to that of xmlns.
4344         * XmlWriter.cs : trivial refactoring (WriteNode() xmldecl output).
4345
4346 2003-05-05  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
4347
4348         * XmlConvert.cs : IsInvalid() Now uses XmlConstructs.IsName(Start).
4349           EncodeName() now correctly encodes invalid names.
4350           Result string of ToString(DateTime) contains "fffffff".
4351
4352 2003-04-29  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
4353
4354         * XmlElement.cs : fixed IsEmpty (removed private field isEmpty).
4355         * XmlNodeReader.cs : Fixed AttributeCount, each this[] (indexers),
4356           MoveTo*Attribute(),
4357           Fixed this[] to work correctly against XmlDeclarations.
4358           Fixed ReadInnerXml() and ReadOuterXml() to call Read() correctly.
4359           (which may prevent validations etc.)
4360         * XmlReader.cs,
4361           XmlNodeReader.cs,
4362           XmlTextReader.cs : Fixed ReadString() to be compliant with each
4363           other.
4364         * XmlTextReader.cs : ReadInnerXml() now moves to next node correctly.
4365
4366 2003-04-27  Pedro Martínez Juliá  <yoros@wanadoo.es>
4367
4368         * XmlNode.cs: ensure to get a valid Uri in BaseUri when loading the
4369         source document from a file.
4370
4371 2003-04-27  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
4372
4373         * XmlAttribute.cs : fixed WriteTo() and WriteContentTo() to write
4374           content EntityReference correctly.
4375         * XmlNodeReader.cs : many fix for EndElement handling (AttributeCount,
4376           HasAttributes, indexers, MoveTo*Attribute() and Read() ).
4377           Modified Skip() to call Read () explicitly.
4378         * XmlTextReader.cs :
4379           Fixed ReadInnerXml() which ignored EndElement token in certain cases.
4380           Implemented MoveToAttribute (local, ns), and modified GetAttribute()
4381           in relation to this change.
4382           Attributes for XmlDeclaration are now correctly set.
4383         * XmlTextWriter.cs : WriteRaw() is now different from WriteString().
4384           Simplified WriteAttributes() for XmlDeclaration.
4385
4386 2003-04-26  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
4387
4388         * XmlTextReader.cs : fixed ReadInnerXml(). it was inconsistent with
4389           Depth property fix.
4390
4391 2003-04-25  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
4392
4393         * XmlDocument.cs : fixed Load() to set baseURI correctly.
4394         * XmlReader.cs : patch by Gonzalo. Fixed not to skip XmlDeclaration.
4395         * XmlTextReader.cs :
4396           fixed Depth. When it's on StartElement, Depth was already incremented.
4397           fixed private SaveProperty(), which moved away its saved properties
4398           when MoveToElement was called repeatedly.
4399         * XmlTextWriter.cs : fixed WriteQualifiedName() to close start tag.
4400         * XmlWriter.cs :
4401           WriteAttributes() refactory (for XMLDecl).
4402           WriteNode() don't Read() when the reader is Initial state, let other
4403           invokation to Read(). In case of Element, it should write entire
4404           element. In case of Attribute, it shouldn't Read().
4405           WriteStartDocument() should omit standalone decl. when there is no
4406           explicit value.
4407
4408 2003-04-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4409
4410         * XmlReader.cs: reverted last patch. It breaks System.Configuration 
4411         because 1. it considers XmlDeclaration as content and 2. always
4412         returns XmlNodeType.None.
4413         
4414
4415 2003-04-23  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
4416
4417         * Added missing ChangeLog of 4/4/2003.
4418         * XmlTextWriter.cs : patch by Erik. fixed WriteQualifiedName.
4419           (write prefix instead of ns.)
4420         * XmlInputStream.cs : file access mode fix (FileAccess.Read was missing)
4421         * XmlTextReader.cs : modified to call Read() instead of ReadContent().
4422           (It may be required for decorated reader such as XmlValidatingReader.)
4423           Changed Read() error message for mismatch end tag.
4424         * XmlDocument.cs : (ReadNode) friendly message for mismatch EndElement.
4425         * XmlReader.cs : Corrected misinterpreted MoveToContent() method.
4426
4427 2003-04-04  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
4428
4429         * XmlDocument.cs : Load() now closes the given XmlReader.
4430           Don't allow creation of XmlTextReader for Doctype. (workaround.)
4431         * XmlInputStream.cs : It now closes its internal stream explicitly.
4432         * XmlNode.cs : RemoveChild() bugfix for removing LastLinkedChild.
4433         * XmlNodeReader.cs : GetAttribute() bugfix for not-present attribute.
4434         * XmlParserInput.cs : added Close() method.
4435         * XmlReader.cs : MoveToContent() should (1) not Read in case of empty
4436           element, and (2) MoveToElement() in case of attribute.
4437         * XmlTextReader.cs : Close() now actually closes source TextReaders.
4438
4439 2003-03-26  Duncan Mak  <duncan@ximian.com>
4440
4441         * XmlTextWriter.cs (Write): A patch from Atsushi to fix
4442         prematurely ending the write, or something like that. It was
4443         causing us to chop off the end of the document when we're trying
4444         to generate XML Schemas.
4445
4446 2003-03-23  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
4447
4448         * XmlTextReader.cs : implemented ReadString().
4449           fixed ctor(string, XmlNodeType, XmlParserContext) - don't raise
4450           null reference exception when context is null.
4451         * XmlNodeReader.cs : fixed ReadString() - should ignore attributes etc.
4452           fixed Read() - when positioned at EndElement, it didn't progress.
4453           fixed HasAttribute - it didn't return false in all cases.
4454           fixed Name and LocalName - only limited type of nodes return names.
4455           fixed AttributeCount - in some cases it threw null ref exception.
4456
4457 2003-03-22  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
4458
4459         * XmlTextWriter.cs : WriteStartDocument doesn't set hasRoot=true, then
4460           WriteEndDocument without root element now raises an error correctly.
4461         * XmlDocumentNavigator.cs : (MoveToFirstChild) fixed bugzilla #36672.
4462           implemented BaseURI, NameTable, XmlLang, GetAttributes, GetNamespace,
4463           MoveToAttribute.
4464
4465 2003-03-22  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
4466
4467         * XmlElement.cs : RemoveAttribute now don't throws when specified
4468           attribute does not exist.
4469
4470 2003-03-21  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
4471
4472         * XmlNode.cs : add descriptions for some node type error.
4473
4474 2003-03-21  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
4475
4476         * XmlNodeArrayList.cs, XmlNodeListChildren.cs : bugzilla #39920 fix.
4477
4478 2003-03-19  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
4479
4480         * XmlDeclaration.cs : quick fix, not to use regex for set_Value.
4481
4482 2003-03-19  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
4483
4484         * XmlTextReader.cs : Fixed wrong notationdecl SYSTEM id read.
4485         * XmlInputStream.cs : Should allow versionless input stream entity.
4486
4487 2003-03-18  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
4488
4489         * added XmlParserInput.cs for multi xml document sources.
4490         * added DTDObjectModel.cs (maybe temporary).
4491         * XmlTextReader.cs :
4492           + fixed ctor to use XmlStreamReader. Allowed null XmlParserContext.
4493           + Some members such as LineNumber, ReadChar now uses XmlParserInput.
4494           + added support for Namespaces (namespace-ignorant parse available).
4495           + added support for XmlResolver.
4496           + replace SetReaderContext()/SetReaderFragment() with Initialize().
4497           + use NameTable in CreateNameString.
4498           + fixed ReadCData(). Now reads "]]]>" correctly.
4499           + support for DTD parse.
4500           + Read() now throws an error when it reached EOF while Depth > 0.
4501         * XmlAttribute.cs,
4502           XmlDocumentFragment.cs,
4503           XmlElement.cs : fix related to the changes of XmlTextReader.Initialize
4504         * XmlDocument.cs : ReadNode() now reads DocumentType.
4505         * XmlDocumentType.cs : implemented Entities, Notations, WriteTo().
4506         * XmlEntity.cs,
4507           XmlNotation.cs : added override LastLinkedChild (for doctype node).
4508         * XmlNamedNodeMap.cs : Remove() raises an error if target is read only.
4509         * XmlElement.cs : bugfix for node removal of set_InnerXml.
4510         * XmlNode.cs : added insertBeforeIntern() derived from InsertBefore().
4511           (to append child XmlEntity into XmlDocumentType correctly.)
4512         * XmlInputStream.cs : fixed to access file with FileAccess.Read.
4513
4514 2003-03-15  Duncan Mak  <duncan@ximian.com>
4515
4516         * XmlElement.cs (Name): Only append prefix + ':' when prefix is
4517         neither String.Empty nor null. Thanks to Simon Guindon for
4518         reporting the bug and Jackson for fixing this bug with me.
4519
4520 2003-03-15  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
4521
4522         * XmlConstructs.cs : fix "int IsXXX()" to reject negative value.
4523         * XmlDocument.cs : simplify Load(string url) to use XmlTextReader.
4524           fixed ReadNode(), it should call reader.Read() only on Initial state.
4525         * XmlInputStream.cs : Changed namespace. Added XmlStreamReader(stream)
4526           and XmlStreamReader (string). Fixed XmlInputStream(url) not to use
4527           System.Net.WebClient directly.
4528         * XmlParserContext.cs : baseURI never be null.
4529         * XmlTextWriter.cs : use WebName for Encoding instead of HeaderName.
4530         * XmlUrlResolver.cs : namespace change for XmlInputStream.
4531
4532 2003-03-12  Elan Feingold <efeingold@mn.rr.com>
4533
4534         * XmlTextReader.cs: When throwing a ReaderException, show what
4535         character was the culprit
4536
4537 2003-03-05  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
4538
4539         * XmlDocumentFragment.cs, XmlElement.cs :
4540           modified InnerXml (fragment type from Element to DocumentFragment).
4541
4542         * XmlElement.cs : fixed WriteTo() ns check.
4543         * XmlNamespaceManager.cs : MS.NET allows Add() used two or more times.
4544         * XmlNode.cs : fixed ConstructNamespaceManager().
4545
4546         * XmlConstructs.cs : added IsSpace, IsName, IsNameStart, IsNCName,
4547           IsPubid with an int arg.
4548         * XmlReader.cs : changed to use XmlChar.cs (its role is as same as
4549           XmlConstructs.cs).
4550         * XmlTextReader.cs :
4551           improved error messages with line info.
4552           / checking matching start and end tags.
4553           / prevents the apperance of multiple root elements. (patch by Erik)
4554           fixed and refactored ReadInnerXml() and ReadOuterXml()
4555           changed to use XmlChar.cs.
4556
4557         * XmlTextWriter.cs : changed to put element's xmlns at CloseStartTag ()
4558           (It will help c14n implementation.)
4559           / blocks multiple attribute output with element node.
4560
4561 2003-02-28  Alan Tam <Tam@SiuLung.com>
4562
4563         * XmlConvert.cs: fixed the most ToXXX(string) and ToString(XXX)
4564         methods to make them compatible with the XML Schema Spec from W3C
4565         ToString(TimeSpan) is still outstanding
4566
4567 2003-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4568
4569         * XmlDocument.cs:
4570         (Load (string)): hack to workaround some issues with Uri.Parse. Once
4571         Parse is fixed, remove the hack.
4572
4573 2003-02-16  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
4574
4575         * XmlQualifiedName.cs : fixed GetHashCode() to avoid null reference
4576         * XmlTextReader.cs : fixed ReadAttributeValue() to handle 
4577                 entity reference, and some refactory.
4578
4579 2003-02-16  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
4580
4581         * XmlUrlResolver.cs : WebClient.Credentials was not implemented yet.
4582
4583 2003-02-16  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
4584
4585         * XmlInputStream.cs : added (also contains internal XmlStreamReader).
4586         * XmlDocument.cs : Load () now can specify URL using XmlUrlResolver,
4587                 and can read non-UTF-8 stream.
4588         * XmlTextReader.cs : related to above stream fix.
4589         * XmlUrlResolver.cs : implemented GetEntity ().
4590
4591 2003-02-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4592
4593         * XmlTextWriter.cs: implemented WriteRaw (char[], int, int).
4594
4595 2003-02-02  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
4596
4597         * XmlTextReader.cs : implemented QuoteChar.
4598
4599 2003-01-26  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
4600
4601         * XmlNode.cs : implemented ReplaceChild.
4602           removed DocElem checking at InsertBefore.
4603         * XmlNodeReader.cs : fixed ReadString and Read for correct node info.
4604         * XmlText.cs : implemented CloneNode and SplitText.
4605
4606 2003-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4607
4608         * XmlCharacterData.cs: added XPathNodeType property.
4609
4610 2003-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4611
4612         * XmlTextWriter.cs: throw an exception if WriteEndDocument is
4613         called without a prior call to WriteStartDocument.
4614
4615 2003-01-21  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
4616
4617         * XmlNodeReader.cs : several fix to get more compatible with MS.NET.
4618
4619 2003-01-19  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
4620
4621         * XmlNamespaceManager.cs : fundamental change of LookupPrefix to return
4622                 null when no matching uri.
4623         * XmlElement.cs : removed unnecessary xmlns output.
4624         * XmlNode.cs : GetPrefixOfNamespace fix along with the change above.
4625         * XmlTextWriter.cs : LookupPrefix and WriteStartElementInternal fix 
4626                 along with the change above, and moved timing of 'xmlns' output 
4627                 to CloseStartElement.
4628         * XmlWriter.cs: modified WriteStartAttribute, same as yesterday.
4629
4630 2003-01-18  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
4631
4632         * XmlWriter.cs: modified WriteStartElement (see test for detail).
4633         Added WriteNode.
4634
4635 2003-01-13  Ville Palo <vi64pa@koti.soon.fi>
4636
4637         * XmlDocument.cs: Added CheckName () method to check names validity.
4638         
4639 2003-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4640
4641         * XmlTextReader.cs:
4642         (ReadOuterXml): use Depth property which return elementDepth, not depth.
4643
4644 2003-01-11  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
4645
4646         * XmlElement.cs : (by ville) XmlElement.set_InnerText event bugfix.
4647         * XmlTextReader.cs : some fix for ReadOuterXml().
4648
4649 2003-01-08  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
4650
4651         * XmlTextReader.cs : bugfix for attributes related to creation of 
4652           XmlAttribute *node*.
4653
4654 2003-01-08  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
4655
4656         * XmlTextReader.cs : bugfix for attribute values which have entity
4657           references.
4658
4659 2002-12-28  Ville Palo <vi64pa@koti.soon.fi>
4660
4661         * XmlDocument.cs: XmlTextWriter.Formatting == Indented when 
4662         calling Save () -methods.
4663         
4664 2002-12-28  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
4665
4666         * XmlNodeReader.cs : primitive reading implementation.
4667
4668 2002-12-28  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
4669
4670         * XmlElement.cs : quick fix for the incomplete patch of #35308 below.
4671
4672 2002-12-28  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
4673
4674         * XmlDocument.cs : removed inconsistent line-feed output.
4675         * XmlElement.cs, XmlTextWriter.cs :
4676                 fixed for bugzilla 35308 (default ns output)
4677         * XmlWhitespace.cs : limited output only when preserving whitespace.
4678
4679 2002-12-24  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
4680
4681         * XmlAttribute.cs, XmlDocument.cs, XmlTextReader.cs:
4682                 Implemented XmlTextReader.ReadAttributeValue().
4683                 Added internal ReadAttributeNodeValue().
4684                 Fixed XmlAttribute.InnerXml to use these methods.
4685         
4686         * XmlDocument.cs, XmlDocumentFragment.cs, XmlElement.cs, XmlNode.cs:
4687                 Implemented XmlDocument.ReadNode() and removed ConstructDOM().
4688                 Other changes are replacing them.
4689
4690 2002-12-24  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
4691
4692         * XmlDocument.cs: patch by Ville (fixed default PreserveWhitespace)
4693
4694 2002-12-21  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
4695
4696         * XmlElement.cs, XmlTextWriter.cs, XmlWriter.cs:
4697                 patch by JD Conley <jconley@winfessor.com>.
4698                 (Fix for xmlns attribute output.)
4699
4700 2002-12-05  Ville Palo <vi64p@koti.soon.fi>
4701
4702         * XmlQualifiedName.cs: Little fix to ToString () -method
4703
4704 2002-12-04  Tim Haynes  <thaynes@openlinksw.com>
4705
4706         * class/System.XML/System.Xml/XmlElement.cs: Made more refined
4707         checks on attributeNode to fix 32262.
4708
4709 2002-12-03  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
4710
4711         * XmlDocument.cs (CreateNavigator(XmlNode)) : reverted
4712         * XmlTextWriter.cs (WriteStartElementInternal):
4713           fixed when default namespace was specified, all descendants
4714           fail to omit the default namespace declarations.
4715         * XmlAttribute.cs,
4716           XmlDocument.cs,
4717           XmlNode.cs (internal XmlLang/XmlSpace) : implemented(defined)
4718         * XmlAttribute.cs,
4719           XmlDocumentFragment.cs,
4720           XmlElement.cs (set_InnerXml): now uses XmlLang/XmlSpace
4721         * XmlElement.cs (set_IsEmpty) : implemented
4722           (WriteTo) : removed my improper indenting (Writer already done)
4723         * XmlNode.cs (BaseURI) : fixed if ParentNode is null, NullPointerEx
4724           (ConstructDOM) : implemented when xmlReader isn't XmlTextReader
4725         ...and renamed XmlDocument.ConventionalParser to ReusableReader ;-)
4726
4727 2002-12-01  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
4728
4729         * XmlNode.cs (RemoveChild):
4730                 bugfixed when XmlNode is Document OwnerDocument is null
4731         * XmlDeclaration.cs (Value):
4732                 bugfixed regular expression pattern.
4733         * XmlDocument.cs (CreateNavigator): bugfixed access modifier.
4734
4735 2002-11-24  Duncan Mak  <duncan@ximian.com>
4736
4737         * XmlImplementation.cs (HasFeature): Fixed a typo. Thanks for
4738         Fabricio Barros Cabral (fx) on #mono for spotting it. This is his
4739         first patch to Mono! ;-)
4740
4741 2002-11-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4742
4743         * XmlNode.cs:
4744         (AppendChild): readded refChild != null condition before throwing
4745         "cannot insert this node in this position" exception. There's probably
4746         a better solution. Fixes #34191.
4747         (RemoveAll): changed following Atsushi instructions.
4748         
4749
4750 2002-11-13  Duncan Mak  <duncan@ximian.com>
4751
4752         * XmlElement.cs (IsEmpty): A temporary check-in to keep gtk-sharp
4753         compiling.
4754
4755 2002-11-14  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
4756
4757         * XmlDocument.cs : unified all constructors, added ConventionalParser,
4758                 implemented CloneNode() and CreateEntityReference(),
4759         * XmlEntityReference.cs : set_Value, WriteContentTo, WriteTo
4760                 set BaseURI to MonoTODO
4761         * XmlNode.cs : implemented PrependChild, modified ConstructDOM,
4762                 bugfix InsertAfter (incorrect prepending) and InsertBefore
4763                 (more than one DocumentElements hadn't caused errors)
4764         * XmlTextReader.cs : unified all constructors,
4765                 added internal SetReaderContext(), SetReaderFragment()
4766                 bugfix (syntax check of PUBLIC / getting internal subset)
4767
4768 2002-11-13  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
4769
4770         XmlAttribute.cs : set_InnerText, set_InnerXml, some check for set_Prefix
4771         XmlAttributeCollection.cs : (indexer) this[localName, namespaceURI]
4772         XmlCharacterData.cs : exchanged Data and Value
4773                 (for processing events and inheritance)
4774         XmlDocumentFragment.cs : set_InnerXml
4775         XmlSignificantWhitespace.cs : set_Value
4776         XmlTextReader.cs : ReadAttributeValue
4777
4778 2002-11-04  Atsushi Enomoto <gigna@kit.hi-ho.ne.jp>
4779
4780         XmlAttribute.cs: fixed missing internal 'OwnerElement''SetOwnerElement'
4781
4782 2002-11-03  Atsushi Enomoto <gigna@kit.hi-ho.ne.jp>
4783
4784         * XmlAttributeCollection.cs : checks owner element.
4785                 implemented CopyTo, InsertAfter, InsertBefore, Prepend,
4786                 Remove, RemoveAt, SetNamedItem.
4787                 removed some logics that sets 'Parent' (that should be null)
4788         * XmlDocument.cs : set_InnerXml, [PreserveWhitespace(incomplete)]
4789         * XmlDocumentFragment.cs : get_InnerXml, WriteContentTo, WriteTo
4790         * XmlElement.cs : implemented WriteTo, set_InnerText.
4791                 Fixed WriteTo() to add xmlns:* attributes when
4792                 writer.LookupPrefix() returned mismatching.
4793         * XmlNamedNodeMap.cs : compare not only name but localname and nsuri.
4794                 Removing different prefixes for the same uri now runs correct.
4795                 added SetNamedItem(XmlNode node, int position_to_insert).
4796         * XmlNode.cs : ConstructDOM (logically) creates XmlEntityReference,
4797                 XmlWhitespace, and XmlSignificantWhitespace
4798
4799 2002-10-31  Atsushi Enomoto <gigna@kit.hi-ho.ne.jp>
4800
4801         * XmlDocument.cs : implemented CreateDocumentFragment()
4802         * XmlElement.cs, XmlLinkedNode.cs :
4803                 moved LastLinkedChild from XmlElement to XmlLinkedNode.
4804         * XmlEntityReference.cs : must throw NotImplementedException.
4805         * XmlNode.cs :
4806               + implemented InsertBefore() and then implemented InsertAfter()
4807                 and modified AppendChild() to call it.
4808               + added logic to check ReadOnly, parent document equivalence,
4809                 and inserting any 'content' before/after DocumentElement.
4810               + implemented Clone() [it is equals to CloneNode() by MS doc.]
4811               + added logic in RemoveChild() to check parent of oldChild.
4812               + fixed ConstructNamespaceManager() to internal only.
4813
4814 2002-10-29  Atsushi Enomoto <gigna@kit.hi-ho.ne.jp>
4815
4816         * XmlAttribute.cs : add internal 'IsDefault' property
4817                             (equals to !Specified)
4818         * XmlImplementation.cs : added 'internalNameTable' property.
4819         * XmlDocument.cs :
4820             + now allows "" for 'standalone' in CreateXmlDeclaration.
4821             + implemented 'Implementation' property and constructor with it.
4822             + added logic for appending name table (but still no use)
4823             + implemented property 'DocumentType'
4824               (but without internalSubset parsing. wait for next update.)
4825         * XmlNode.cs :
4826             + modified AppendChild() and RemoveChild() to support fragment.
4827             + modified AppendChild() to remove newChild from its parent
4828               when newChild is already in the other place.
4829             + modified RemoveChild() to set parentNode null.
4830             + modified ConstructDOM() to create DocumentType,
4831               and fixed access modifier ('internal protected' to 'internal')
4832         * XmlLinkedNode.cs : fixed 'NextSibling' to return null
4833                 when its parent is null.
4834         * XmlDocumentFragment.cs : added internal override 'LastLinkedChild'
4835                 property to enable AppendChild() for this class.
4836         * XmlTextReader.cs : appended private publicId and systemId fields.
4837
4838 2002-10-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4839
4840         * XmlTextReader.cs: make it work when the underlying Stream is not
4841         'seekable'.
4842
4843 2002-10-26  Piers Haken <piersh@friskit.com>
4844
4845         * XmlNode.cs: add virtual property XPathNodeType
4846         * XmlAttribute.cs:
4847         * XmlComment.cs:
4848         * XmlDocument.cs:
4849         * XmlElement.cs::
4850         * XmlProcessingInstruction.cs:
4851         * XmlSignificantWhitespace.cs:
4852         * XmlText.cs:
4853         * XmlWhitespace.cs: implement XPathNodeType property
4854         * XmlDocumentNavigator.cs: use XPathNodeType property instead of switch
4855
4856 2002-10-26  Piers Haken <piersh@friskit.com>
4857
4858         * XmlDocumentNavigator.cs: return invalid XPathNodeType (-1) for unknown node types.
4859
4860 2002-10-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4861
4862         * XmlTextReader.cs: don't increment depth for entity references.
4863
4864 2002-10-22  Tim Haynes <thaynes@openlinksw.com>
4865
4866         * - Fixed the duplication of xmlns:xx = yy when serializing the
4867         XML for serialization
4868         
4869         Fixed the unnecessary parsing/serializing when adding assemblies
4870         for serialization 
4871
4872         Avoided setting the XmlNode.InnerXml property
4873         (as it's not implemented) 
4874
4875         Fixed the usage/implementation of
4876         XmlElement.GetElementsByTagName()
4877         
4878 2002-10-21  Duncan Mak  <duncan@ximian.com>
4879
4880         * XmlDocument.cs:
4881         * XmlElement.cs:
4882         * XmlNode.cs:
4883         * XmlTextReader.cs: Implementation for XmlNode.InnerXml from
4884         Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>.
4885
4886 2002-10-18  Duncan Mak  <duncan@ximian.com>
4887
4888         * XmlDocument.cs: Applied a patch by Atsushi Enomoto
4889         <ginga@kit.hi-ho.ne.jp>.
4890
4891 2002-10-12  A.Enomoto <ginga@kit.hi-ho.ne.jp>
4892
4893         * XmlDocument.cs (ImportNode): Implemented
4894
4895 2002-10-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4896
4897         * XmlDocument.cs: one more Load method implemented.
4898         * XmlTextReader.cs: Depth now works.
4899
4900 2002-09-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4901
4902         * XmlConvert.cs: IsInvalid is now internal.
4903         * XmlNamespaceManager.cs: implemented RemoveNamespace
4904         * XmlTextReader.cs: return BaseURI and Encoding from the parser.
4905         * XmlTextWriter.cs: implemented WriteName and WriteNmToken.
4906
4907 2002-09-19  Matt Hunter <mahunter@tconl.com>
4908
4909         * XmlElement.cs: Implementing SetAttributeNode(localName,namespaceURI)
4910         * XmlAttributeCollection.cs: Implemented Append (XmlAttribute) 
4911           
4912 2002-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4913
4914         * XmlConvert.cs: finished implementation.
4915         * XmlTextReader.cs: fixed #30239.
4916         * XmlTextWriter.cs: fixed #30240.
4917
4918 2002-09-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4919
4920         * XmlTextReader.cs: line and position begin with 1.
4921
4922 2002-09-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4923
4924         * XmlException.cs: added a new internal constructor for IXmlLineInfo
4925         and output line and position info in Message.
4926
4927         * XmlReader.cs: implemented missing bits.
4928
4929 2002-09-12      Piers Haken <piersh@friksit.com>
4930
4931         * XmlDocumentNavigator.cs: implement MoveToId()
4932
4933 2002-09-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4934
4935         * XmlTextWriter.cs: fixed bug #29886.
4936
4937 2002-08-26  Ravi Pratap  <ravi@ximian.com>
4938
4939
4940         * XmlAttribute.cs (InnerText): Implement getting this property.
4941
4942         * XmlNode.cs (InnerText): Ensure that we append only values of
4943         text nodes.
4944
4945 2002-08-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
4946
4947         * XmlWriter.cs: made ws and namespaceManager protected. mcs has a bug
4948         that allowed compiling this.
4949         [ FIXME: filed bug #29435. mcs should have failed on this ]
4950
4951 2002-08-25  Tim Coleman <tim@timcoleman.com>
4952         * XmlNode.cs:
4953                 Change CreateNavigator to not be virtual.
4954         * XmlElement.cs:
4955                 Add set_Prefix and InnerText accessors.
4956         * XmlEntityReference.cs:
4957                 Add set_Value accessor.
4958         * XmlTextWriter.cs:
4959                 Make objects which should be private private.
4960         * XmlWriter.cs:
4961                 Remove WriteStartElementInternal abstract definition.
4962         * XmlValidatingReader.cs:
4963                 New stubs added.
4964
4965 2002-08-22  Jason Diamond <jason@injektilo.org>
4966
4967         * XmlAttributeCollection.cs, XmlElement.cs: Implementation of RemoveAll
4968         and RemoveAllAttributes courtesy of Matt Hunter <xrkune@tconl.com>.
4969
4970 2002-08-22  Jason Diamond <jason@injektilo.org>
4971
4972         * XmlElement.cs: Correction to previous GetElementsByTagName patch
4973         courtesy of Matt Hunter <xrkune@tconl.com>.
4974
4975 2002-08-22  Jason Diamond <jason@injektilo.org>
4976
4977         * XmlDocument.cs, XmlElement.cs: Added implementation of namepsace
4978         qualified GetElementsByTagName courtesy of Matt Hunter 
4979         <xrkune@tconl.com>.
4980
4981 2002-08-19  Jason Diamond <jason@injektilo.org>
4982
4983         * XmlDocument.cs, XmlElement.cs: Added implementation of 
4984         GetElementsByTagName courtesy of Matt Hunter <xrkune@tconl.com>.
4985
4986 2002-08-16  Jason Diamond <jason@injektilo.org>
4987
4988         * XmlElement.cs: Fixed writing out qualified elements courtesy of
4989         Marcus Bürgel <marcus.buergel@gmx.de>.
4990
4991 2002-08-13  Tim Coleman <tim@timcoleman.com>
4992         * XmlTextWriter.cs:
4993                 Partial implementation of WriteQualifiedName ().
4994
4995 2002-08-07  Kral Ferch <kral_ferch@hotmail.com>
4996         * XmlCharacterData.cs:  Implemented AppendData(), DeleteData(),
4997                 InsertData(), and ReplaceData().  These methods fire the
4998                 NodeChanging and NodeChanged events.
4999                 
5000         * XmlDocument.cs:  Fixed bugs in onNodeChanged() and onNodeChanging().
5001         
5002         * XmlNode.cs:  AppendChild() fires NodeInserting and NodeInserted events.
5003                 RemoveAll() and RemoveChild() fire NodeRemoving and NodeRemoved events.
5004         
5005 2002-08-03  Tim Coleman <tim@timcoleman.com>
5006         * XmlNamespaceManager.cs:
5007                 .Net allows the empty namespace to be redefined
5008                 at a later point, but the current implementation
5009                 did not.  This fixes a hashtable conflict.
5010
5011 2002-07-26  Tim Coleman <tim@timcoleman.com>
5012         * XmlTextWriter.cs:
5013                 When given a textwriter, check to see if it has a
5014                 null encoding. This was being done for other inputs
5015                 than a textwriter.
5016
5017 Wed Jul 24 13:16:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
5018
5019         * XmlTextReader.cs: rough line/column support.
5020
5021 2002-07-23  Duncan Mak  <duncan@ximian.com>
5022
5023         * XmlConvert.cs: Implement the ToDateTime method. ToDateTime
5024         (string, string []) is particularly strange.
5025
5026         * XmlException.cs: Remember to call the base serialization
5027         constructor.
5028
5029         * XmlNodeReader.cs: Keep a new variable to store the Depth. 
5030
5031 2002-07-14  Jason Diamond  <jason@injektilo.org>
5032
5033         * XmlAttribute.cs: Removed ownerElement field since we can reuse 
5034         parentNode field.
5035
5036         * XmlDocumentNavigator.cs: MoveToParent now moves to the OwnerElement
5037         if the current node is an attribute.
5038
5039         * XmlElement.cs: SetAttributeNode now sets the new attribute's
5040         owner element.
5041
5042 2002-07-12  Jason Diamond  <jason@injektilo.org>
5043
5044         * XmlDocument.cs: If null was passed in for prefix or namespaceURI when
5045         creating an element, use String.Empty instead.
5046
5047 2002-07-12      Piers Haken <piersh@friksit.com>
5048
5049         * XmlAttributeCollection.cs: implement some ItemOf indexers
5050         * XmlNamedNodeMap.cs: add internal 'Nodes' accessor for the nodeList field
5051         * XmlNode.cs: SelectNodes: return empty XmlNodeList, not null
5052
5053 2002-07-06  Ajay kumar Dwivedi <adwiv@yahoo.com>
5054
5055
5056 2002-10-26  Piers Haken <piersh@friskit.com>
5057
5058         * XmlDocumentNavigator.cs: return invalid XPathNodeType (-1) for unknown node types.
5059
5060 2002-10-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5061
5062         * XmlTextReader.cs: don't increment depth for entity references.
5063
5064 2002-10-22  Tim Haynes <thaynes@openlinksw.com>
5065
5066         * - Fixed the duplication of xmlns:xx = yy when serializing the
5067         XML for serialization
5068         
5069         Fixed the unnecessary parsing/serializing when adding assemblies
5070         for serialization 
5071
5072         Avoided setting the XmlNode.InnerXml property
5073         (as it's not implemented) 
5074
5075         Fixed the usage/implementation of
5076         XmlElement.GetElementsByTagName()
5077         
5078 2002-10-21  Duncan Mak  <duncan@ximian.com>
5079
5080         * XmlDocument.cs:
5081         * XmlElement.cs:
5082         * XmlNode.cs:
5083         * XmlTextReader.cs: Implementation for XmlNode.InnerXml from
5084         Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>.
5085
5086 2002-10-18  Duncan Mak  <duncan@ximian.com>
5087
5088         * XmlDocument.cs: Applied a patch by Atsushi Enomoto
5089         <ginga@kit.hi-ho.ne.jp>.
5090
5091 2002-10-12  A.Enomoto <ginga@kit.hi-ho.ne.jp>
5092
5093         * XmlDocument.cs (ImportNode): Implemented
5094
5095 2002-10-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5096
5097         * XmlDocument.cs: one more Load method implemented.
5098         * XmlTextReader.cs: Depth now works.
5099
5100 2002-09-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5101
5102         * XmlConvert.cs: IsInvalid is now internal.
5103         * XmlNamespaceManager.cs: implemented RemoveNamespace
5104         * XmlTextReader.cs: return BaseURI and Encoding from the parser.
5105         * XmlTextWriter.cs: implemented WriteName and WriteNmToken.
5106
5107 2002-09-19  Matt Hunter <mahunter@tconl.com>
5108
5109         * XmlElement.cs: Implementing SetAttributeNode(localName,namespaceURI)
5110         * XmlAttributeCollection.cs: Implemented Append (XmlAttribute) 
5111           
5112 2002-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5113
5114         * XmlConvert.cs: finished implementation.
5115         * XmlTextReader.cs: fixed #30239.
5116         * XmlTextWriter.cs: fixed #30240.
5117
5118 2002-09-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5119
5120         * XmlTextReader.cs: line and position begin with 1.
5121
5122 2002-09-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5123
5124         * XmlException.cs: added a new internal constructor for IXmlLineInfo
5125         and output line and position info in Message.
5126
5127         * XmlReader.cs: implemented missing bits.
5128
5129 2002-09-12      Piers Haken <piersh@friksit.com>
5130
5131         * XmlDocumentNavigator.cs: implement MoveToId()
5132
5133 2002-09-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5134
5135         * XmlTextWriter.cs: fixed bug #29886.
5136
5137 2002-08-26  Ravi Pratap  <ravi@ximian.com>
5138
5139
5140         * XmlAttribute.cs (InnerText): Implement getting this property.
5141
5142         * XmlNode.cs (InnerText): Ensure that we append only values of
5143         text nodes.
5144
5145 2002-08-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5146
5147         * XmlWriter.cs: made ws and namespaceManager protected. mcs has a bug
5148         that allowed compiling this.
5149         [ FIXME: filed bug #29435. mcs should have failed on this ]
5150
5151 2002-08-25  Tim Coleman <tim@timcoleman.com>
5152         * XmlNode.cs:
5153                 Change CreateNavigator to not be virtual.
5154         * XmlElement.cs:
5155                 Add set_Prefix and InnerText accessors.
5156         * XmlEntityReference.cs:
5157                 Add set_Value accessor.
5158         * XmlTextWriter.cs:
5159                 Make objects which should be private private.
5160         * XmlWriter.cs:
5161                 Remove WriteStartElementInternal abstract definition.
5162         * XmlValidatingReader.cs:
5163                 New stubs added.
5164
5165 2002-08-22  Jason Diamond <jason@injektilo.org>
5166
5167         * XmlAttributeCollection.cs, XmlElement.cs: Implementation of RemoveAll
5168         and RemoveAllAttributes courtesy of Matt Hunter <xrkune@tconl.com>.
5169
5170 2002-08-22  Jason Diamond <jason@injektilo.org>
5171
5172         * XmlElement.cs: Correction to previous GetElementsByTagName patch
5173         courtesy of Matt Hunter <xrkune@tconl.com>.
5174
5175 2002-08-22  Jason Diamond <jason@injektilo.org>
5176
5177         * XmlDocument.cs, XmlElement.cs: Added implementation of namepsace
5178         qualified GetElementsByTagName courtesy of Matt Hunter 
5179         <xrkune@tconl.com>.
5180
5181 2002-08-19  Jason Diamond <jason@injektilo.org>
5182
5183         * XmlDocument.cs, XmlElement.cs: Added implementation of 
5184         GetElementsByTagName courtesy of Matt Hunter <xrkune@tconl.com>.
5185
5186 2002-08-16  Jason Diamond <jason@injektilo.org>
5187
5188         * XmlElement.cs: Fixed writing out qualified elements courtesy of
5189         Marcus Bürgel <marcus.buergel@gmx.de>.
5190
5191 2002-08-13  Tim Coleman <tim@timcoleman.com>
5192         * XmlTextWriter.cs:
5193                 Partial implementation of WriteQualifiedName ().
5194
5195 2002-08-07  Kral Ferch <kral_ferch@hotmail.com>
5196         * XmlCharacterData.cs:  Implemented AppendData(), DeleteData(),
5197                 InsertData(), and ReplaceData().  These methods fire the
5198                 NodeChanging and NodeChanged events.
5199                 
5200         * XmlDocument.cs:  Fixed bugs in onNodeChanged() and onNodeChanging().
5201         
5202         * XmlNode.cs:  AppendChild() fires NodeInserting and NodeInserted events.
5203                 RemoveAll() and RemoveChild() fire NodeRemoving and NodeRemoved events.
5204         
5205 2002-08-03  Tim Coleman <tim@timcoleman.com>
5206         * XmlNamespaceManager.cs:
5207                 .Net allows the empty namespace to be redefined
5208                 at a later point, but the current implementation
5209                 did not.  This fixes a hashtable conflict.
5210
5211 2002-07-26  Tim Coleman <tim@timcoleman.com>
5212         * XmlTextWriter.cs:
5213                 When given a textwriter, check to see if it has a
5214                 null encoding. This was being done for other inputs
5215                 than a textwriter.
5216
5217 Wed Jul 24 13:16:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
5218
5219         * XmlTextReader.cs: rough line/column support.
5220
5221 2002-07-23  Duncan Mak  <duncan@ximian.com>
5222
5223         * XmlConvert.cs: Implement the ToDateTime method. ToDateTime
5224         (string, string []) is particularly strange.
5225
5226         * XmlException.cs: Remember to call the base serialization
5227         constructor.
5228
5229         * XmlNodeReader.cs: Keep a new variable to store the Depth. 
5230
5231 2002-07-14  Jason Diamond  <jason@injektilo.org>
5232
5233         * XmlAttribute.cs: Removed ownerElement field since we can reuse 
5234         parentNode field.
5235
5236         * XmlDocumentNavigator.cs: MoveToParent now moves to the OwnerElement
5237         if the current node is an attribute.
5238
5239         * XmlElement.cs: SetAttributeNode now sets the new attribute's
5240         owner element.
5241
5242 2002-07-12  Jason Diamond  <jason@injektilo.org>
5243
5244         * XmlDocument.cs: If null was passed in for prefix or namespaceURI when
5245         creating an element, use String.Empty instead.
5246
5247 2002-07-12      Piers Haken <piersh@friksit.com>
5248
5249         * XmlAttributeCollection.cs: implement some ItemOf indexers
5250         * XmlNamedNodeMap.cs: add internal 'Nodes' accessor for the nodeList field
5251         * XmlNode.cs: SelectNodes: return empty XmlNodeList, not null
5252
5253 2002-07-06  Ajay kumar Dwivedi <adwiv@yahoo.com>
5254
5255         * XmlTextWriter: Fixed Indentation. IndentationOverridden should
5256                 not be set when inside a attribute.
5257
5258 2002-07-06  Ajay kumar Dwivedi <adwiv@yahoo.com>
5259
5260         * XmlTextWriter: In WriteStartElement, if namespace is null and 
5261                 prefix is null|empty do not write out xmlns=""
5262         
5263         * XmlWriter: WriteStartElement calls the virtual method with null
5264                 argument instead of empty string.
5265
5266 2002-07-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
5267
5268         * XmlTextReader.cs: implemented .ctor (Stream).
5269
5270 2002-06-26  Duncan Mak  <duncan@ximian.com>
5271
5272         * XmlNodeReader.cs: Implementation of most of the properties, and
5273         some of the related methods. 
5274
5275 2002-06-23  Piers Haken <piersh@friskit.com>
5276         
5277         * XmlDocumentNavigator.cs: implement Clone()
5278         * XmlElement.cs: remove bogus unimplemented override of InnerText
5279         * XmlNode.cs: implment SelectNodes/SelectSingleNode
5280         * XmlNodeArrayList.cs: new support class for SelectNodes
5281
5282 2002-06-21  Ajay kumar Dwivedi <adwiv@yahoo.com>
5283         
5284         * XmlQualifiedName: Name and Namespaces are never null. If null is passed
5285                 to the constructor, set them to empty strings.
5286                 Fixed the Operators.
5287         
5288 2002-06-18  Ajay kumar Dwivedi <adwiv@yahoo.com>
5289         
5290         * XmlTextReader.cs: HasLineInfo returns false instead of throwing an
5291         Exception.
5292
5293 2002-06-14  Duncan Mak  <duncan@ximian.com>
5294
5295         * XmlConvert.cs: Added CLSCompliant attributes to methods.
5296         
5297 2002-06-12  Duncan Mak  <duncan@ximian.com>
5298
5299         * XmlCharacterData.cs (Value): Throw an ArgumentException in the
5300         set block if the node is read-only.
5301
5302 2002-06-10  Ajay kumar Dwivedi <adwiv@yahoo.com>
5303         * XmlConstruct.cs : New Internal class with Helper methods for
5304         Checking XmlConstructs
5305         * XmlConvert.cs: Implemented most of the methods
5306
5307 2002-06-08  Duncan Mak  <duncan@ximian.com>     
5308
5309         * XmlDocument.cs (Load):
5310         Added bits to Load (string) for BaseURI support.
5311
5312         * XmlAttribute.cs (BaseURI): 
5313         * XmlDocument.cs (BaseURI): 
5314         * XmlEntity.cs (BaseURI): Implemented.
5315
5316 2002-05-27  Jason Diamond  <jason@injektilo.org>
5317
5318         * XmlDocumentNavigator.cs: Added file to directory.
5319
5320         * XmlNode.cs (CreateNavigator): Implemented.
5321         (InnerText): Implemented.
5322
5323         * XmlDocument.cs (NamespaceURI, Prefix): Return String.Empty instead of
5324         throwing exception.
5325         (Load(XmlReader)): Allow for namespace qualified attributes.
5326
5327         * XmlElement.cs: Implemented GetAttribute(string, string) and both 
5328         GetAttributeNode overloads.
5329         (SetAttributeNode(XmlAttribute)): Implemented.
5330
5331         * XmlNamedNodeMap.cs: Fixed copy/paste bugs in GetNamedItem(string, string)
5332         and RemoveNamedItem(string, string).
5333
5334         * XmlLinkedNode.cs (PreviousSibling): Implemented.
5335
5336         * XmlTextReader.cs: Added code to maintain the order of attributes as 
5337         they're parsed. XML doesn't require this but Microsoft's parser does it and
5338         matching them makes testing easier so now we have it, too.
5339
5340 2002-05-26  Miguel de Icaza  <miguel@ximian.com>
5341
5342         * XmlDocument.cs: Implement the Save methods.
5343
5344 2002-05-08  Mike Kestner  <mkestner@speakeasy.net>
5345
5346         * XmlNamedNodeMap.cs (SetNamedItem): Fixed a copy/paste bug.
5347
5348 2002-04-28  Duncan Mak  <duncan@ximian.com>
5349
5350         * XmlSignificantWhitespace.cs (Value):
5351         * XmlWhitespace.cs (Value): Added MonoTODO to the 'set'
5352         block. Added new private method, IsValidWhitespaceChar, for
5353         checking.
5354
5355 2002-04-16  Duncan Mak  <duncan@ximian.com>
5356
5357         * XmlParserContext.cs (NameTable): Fixed a typo in the set block.
5358
5359 2002-04-12  Duncan Mak  <duncan@ximian.com>
5360
5361         * XmlAttribute.cs (Prefix): Added preliminary code for set block,
5362         added comment on work that needs to be done here. A new MonoTODO item. 
5363
5364         * XmlDocument.cs (ctor): Corrected constructor signature, changed
5365         parameter from 'NameTable' to 'XmlNameTable'.
5366
5367         * XmlDocumentFragment.cs (InnerXml): Added missing set block.
5368
5369         * XmlCaseOrder.cs: Moved to System.Xml.XPath.
5370
5371 2002-04-10  Duncan Mak  <duncan@ximian.com>
5372
5373         * XmlNodeReader.cs: Initial stubs for the class.
5374
5375 2002-04-08  Kral Ferch  <kral_ferch@hotmail.com>
5376
5377         * XmlAttributes.cs: InnerXml getter, WriteContentTo, and WriteTo
5378         implementations.
5379         
5380         * XmlDeclaration.cs: WriteTo implementation.
5381         
5382         * XmlDocument.cs: InnerXml getter implementation.
5383         
5384         * XmlElement.cs: InnerXml getter implementation.
5385
5386         * XmlNode.cs: Removed MonoTODO attrib on OuterXml.
5387         
5388         * XmlSignificantWhitespace.cs: WriteTo implementation.
5389         
5390         * XmlText.cs: WriteContentTo and WriteTo implementation.
5391         
5392         * XmlTextWriter.cs: WriteRaw implementation.
5393         
5394         * XmlWhitespace.cs: WriteContentTo and WriteTo implementations.
5395
5396 2002-04-05  Kral Ferch  <kral_ferch@hotmail.com>
5397
5398         * XmlAttributes.cs: Added reminder MonoTODO to set NamespaceURI
5399         if prefix in constructor is one of the default ones.
5400         
5401         * XmlCharacterData.cs: Returns String.Empty for Value and Data
5402         even when constructed with null.
5403         
5404         * XmlDeclaration.cs: Value doesn't put encoding or standalone
5405         in if they are empty.
5406         
5407         * XmlDocument.cs: Implemented CreateNode methods and this caused
5408         the changes in the other files in this checkin.
5409         
5410         * XmlProcessingInstruction.cs: Returns String.Empty for Value and Data
5411         even when constructed with null.
5412         
5413         * XmlWhitespace.cs: Changed Value 'get' to return Data.
5414
5415 2002-04-01  Kral Ferch  <kral_ferch@hotmail.com>
5416
5417         * XmlTextWriter.cs: Impls for WriteEndDocument and WriteFullEndElement.
5418         
5419 2002-03-31  Kral Ferch  <kral_ferch@hotmail.com>
5420
5421         * XmlTextWriter.cs: Impls for LookupPrefix, WriteBase64,
5422         and WriteCharEntity.
5423         
5424         * XmlWrite.cs:  Fixed bug where attribute namespace decl
5425         was pushing a scope onto the namespace manager when it shouldn't
5426         have been.
5427         
5428 2002-03-31  Kral Ferch  <kral_ferch@hotmail.com>
5429
5430         * XmlTextWriter.cs: Some tweaks for WriteAttibuteString
5431         in different states (no open start element, in WriteState.Content mode).
5432         
5433 2002-03-29  Kral Ferch  <kral_ferch@hotmail.com>
5434
5435         * XmlTextWriter.cs: XmlLang and XmlSpace properties
5436         and WriteWhitespace.
5437         
5438         * XmlTextWriterOpenElement.cs: scope support for XmlLang
5439         and XmlSpace.
5440
5441 2002-03-29  Kral Ferch  <kral_ferch@hotmail.com>
5442
5443         * XmlTextWriter.cs: Working on Attribute methods.
5444         
5445         * XmlWriter.cs: Working on Attribute methods.
5446
5447 2002-03-28  Duncan Mak  <duncan@ximian.com>
5448
5449         * XmlDocument.cs (CreateWhitespace):
5450         (CreateSignificantWhitespace): Removed extraneous call to the ToCharArray
5451         method.
5452
5453         * XmlSignificantWhitespace.cs (Value): Removed MonoTODO attribute.
5454
5455 2002-03-26  Duncan Mak  <duncan@ximian.com>
5456
5457         * XmlDocument.cs (CreateDocumentType): Implemented.
5458
5459         * XmlNode.cs (Value): Implemented.
5460
5461         * XmlProcessingInstruction.cs (InnerText): Implemented. It works just
5462         like XmlCharacterData.
5463
5464         * XmlDeclaration.cs (CloneNode): 
5465         * XmlDocument.cs (CreateXmlDeclaration): Added missing constructor
5466         arguments.
5467
5468         * XmlCharacterData.cs (InnerText): Implemented. Funny that the
5469         docs say it is the "The concatenated values of the node and all
5470         the children of the node.". I wrote some test programs and
5471         couldn't get any of the derived nodes to AppendChild. For now,
5472         InnerText == Data == Value.
5473         (Substring): Fixed typo.
5474
5475         * XmlDeclaration.cs (XmlDeclaration): Fixed the constructor parameter signature.
5476
5477         * XmlImplementation.cs (CreateDocument): Implemented.
5478
5479 2002-03-25  Duncan Mak  <duncan@ximian.com>
5480
5481         * XmlDeclaration.cs: Rewrote the class, fixed formatting, added
5482         missing properties (InnerText, Value).
5483         
5484         * XmlDocument.cs (CreateXmlDeclaration): Implemented.
5485
5486 2002-03-23  Kral Ferch <kral_ferch@hotmail.com>
5487
5488         * XmlTextWriter.cs: Impls for BaseStream and
5489         Namespaces and WriteState.
5490         
5491         * XmlWriter.cs: WriteState and WriteStartElementInternal.
5492
5493 2002-03-23  Kral Ferch <kral_ferch@hotmail.com>
5494
5495         * XmlNodeListChildren.cs: made class internal
5496         instead of public.  Shouldn't be visible outside
5497         of System.Xml.
5498         
5499         * XmlTextWriter.cs: Implementations for Formatting,
5500         IndentChar, Indenting, QuoteChar, WriteStartDocument(standalone).
5501         Suppresses encoding on xml declaration if null stream passed in.
5502         Formats output including suppressing indentation for elements in
5503         mixed content mode.
5504         
5505         * XmlTextWriterOpenElement.cs: Initial checkin.
5506         XmlTextWriter uses stack of these objects to track
5507         state.
5508         
5509 2002-03-22  Mike Kestner  <mkestner@speakeasy.net>
5510
5511         * XmlElement.cs: impl HasAttribute(string name).
5512
5513 2002-03-22  Duncan Mak  <duncan@ximian.com>
5514
5515         * XmlElement.cs: Reformatted.
5516         (CloneNode) Corrected.
5517
5518         * XmlDocument.cs (CreateWhitespace):
5519         (CreateSignificantWhitespace): Implemented.
5520
5521         * XmlAttribute.cs (CloneNode): Changed the child's CloneNode to
5522         true, because Attributes have ChildNodes.
5523
5524 2002-03-21  Kral Ferch <kral_ferch@hotmail.com>
5525
5526         * XmlTextWriter.cs: WriteStartDocument tracks state, writes out
5527         xml declaration along with encoding.  WriteEndElement throws
5528         exception if no WriteStartElement exists.
5529
5530 2002-03-20  Duncan Mak  <duncan@ximian.com>
5531
5532         * XmlEntityReference.cs (CloneNode): Implemented.
5533
5534         * XmlException.cs (Message): Implemented. We need to cache the
5535         message string because SystemException doesn't expose 'message'
5536         from Exception.
5537
5538         * XmlText.cs (Value): Added in the missing Value property.
5539
5540 2002-03-20  Duncan Mak  <duncan@ximian.com>     
5541
5542         * XmlAttribute.cs (CloneNode): Implemented.
5543
5544         * XmlDocumentFragment.cs (CloneNode): Implemented.
5545
5546         * XmlElement.cs (CloneNode): Implemented.
5547
5548 2002-03-19  Duncan Mak  <duncan@ximian.com>
5549
5550         * XmlNotation.cs: Added to CVS.
5551
5552         * XmlAttribute.cs (CloneNode): First crack at the CloneNode method.
5553
5554         * XmlCDataSection.cs (CloneNode): Implemented.
5555
5556         * XmlDocumentFragment.cs: Reformatted and added the missing properties
5557         (InnerXml, OwnerDocument, ParentNode).
5558         (CloneNode): Implemented.
5559
5560         * XmlSignificantWhitespace.cs (CloneNode): Implemented.
5561         (Value) Implemented the 'get' property.
5562
5563         * XmlWhitespace.cs (Module): implemented.
5564
5565 2002-03-19  Jason Diamond <jason@injektilo.org>
5566
5567         * XmlDocument.cs: Fixed typo in Load that was duplicating the LocalName
5568         in the prefix.
5569
5570 2002-03-18  Jason Diamond <jason@injektilo.org>
5571
5572         * XmlTextReader.cs: Don't restore properties after reading last
5573         attribute on an element.
5574
5575         * XmlDocument.cs: Move back to element after reading attributes
5576         so that IsEmptyElement test succeeds.
5577
5578 2002-03-18  Kral Ferch <kral_ferch@hotmail.com>
5579
5580         * XmlNamespaceManager.cs: Implemented LookupPrefix.
5581         
5582         * XmlTextWriter.cs: Implemented namespace and prefix support.
5583
5584 2002-03-18  Kral Ferch <kral_ferch@hotmail.com>
5585
5586         * XmlTextReader.cs: Restores properties after
5587         reading last attribute on an element.
5588         
5589         * XmlNode.cs: AppendChild sets the parent
5590         on the child.
5591
5592 2002-03-17  Kral Ferch  <kral_ferch@hotmail.com>
5593
5594         * XmlCDataSection.cs: Formatting, Implementation for WriteTo.
5595
5596         * XmlComment.cs: Implementations for WriteTo and WriteContentTo.
5597         
5598         * XmlElement.cs: Fixed bug in WriteTo.
5599         
5600         * XmlProcessingInstruction.cs: Formatting.
5601         
5602         * XmlTextWriter.cs: Implementations for Close, WriteCData, WriteComment,
5603         fixes for WriteEndElement, WriteProcessingInstruction.
5604
5605 2002-03-17  Kral Ferch  <kral_ferch@hotmail.com>
5606
5607         * XmlDocument.cs: Implementations for WriteTo() and WriteContentTo(),
5608         had Load() add PIs to the document, moved onXXX methods to alphabetical
5609         order in the file.
5610         
5611         * XmlElement.cs: Implementations for WriteTo() and WriteContentTo().
5612         
5613         * XmlNode.cs: Implementations for InnerXml Get and OuterXml.
5614         
5615         * XmlProcessingInstruction.cs: Implementations for WriteTo() and
5616         WriteContentTo().
5617         
5618         * XmlTextWriter.cs: Implementations for WriteEndElement,
5619         WriteProcessingInstruction, WriteStartElement, and WriteString.
5620         
5621         * XmlWriter.cs: Implemented WriteStartElement() methods.
5622
5623 2002-03-15  Duncan Mak  <duncan@ximian.com>
5624
5625         * XmlEntity.cs: Added to CVS. Need to implement BaseURI and
5626         InnerText once I know what they do.
5627
5628         * XmlDocumentType.cs (XmlDocumentType): Fix the constructor now
5629         that we can properly chain constructors.
5630         (CloneNode): implemented.
5631         (WriteContentTo): Removed MonoTODO attribute as this method has no
5632         effect in this class.
5633
5634         * XmlProcessingInstruction.cs (Value): Added the missing Set
5635         block.
5636         (InnerText): Added in, but not implemented.
5637
5638 2002-03-14  Kral Ferch  <kral_ferch@hotmail.com>
5639
5640         * XmlTextWriter.cs: implemented constructors and 
5641         WriteCData and WriteComment.
5642
5643 2002-03-14  Duncan Mak  <duncan@ximian.com>
5644
5645         * XmlDocument.cs: Moved the NodeChanged EventHandler to its own
5646         file, and updated the callbacks to reflect the change.
5647         (XmlDocument): Added the NameTable constructor.
5648         (NameTable): Also the NameTable property.
5649
5650         * XmlNodeChangedEventHandler.cs: Added, replacing the version that
5651         was in XmlDocument.cs. It has two arguments now (object,
5652         EventArgs) , instead of one (object).
5653
5654 2002-03-14  Kral Ferch  <kral_ferch@hotmail.com>
5655
5656         * XmlWriter.cs: Formatting.
5657         
5658         * XmlTextWriter.cs: Initial checkin.
5659         
5660 2002-03-14  Duncan Mak  <duncan@ximian.com>
5661
5662         * Validation.cs: Removed, replaced by ValidationType.cs.
5663
5664         * ValidationType.cs: Added.
5665
5666 2002-03-13  Duncan Mak  <duncan@ximian.com>
5667
5668         * XmlException.cs: Made it [Serializable], implemented good ol'
5669         GetObjectData, and the serialization constructor.
5670
5671         * XmlNamedNodeMap.cs (SetNamedItem): Check for the Name property.
5672         (SetNamedItem): Reverted (added back in) the patch with the
5673         ReadOnly checks. "Don't doubt yourself, my son... you were right!"
5674
5675         * XmlNamedNodeMap.cs (GetEnumerator): piggyback on the ArrayList implementation.
5676         (GetNamedItem (string, string)): implemented.
5677         (RemoveNamedItem): implemented.
5678         (SetNamedItem): implemented.
5679
5680 2002-03-12  Kral Ferch  <kral_ferch@hotmail.com>
5681
5682         * XmlAttribute.cs: Moved a method from amongst properties down to
5683         it's alphabetical position in the methods section.
5684         
5685         * XmlNode.cs: Passes in 'this' to XmlNodeList constructor instead of
5686         last linked child.  Set XmlNode base class to return false for IsReadOnly().
5687         Implemented GetEnumerator() and RemoveChild().
5688         
5689         * XmlNodeListChildren.cs: Now stores the parent instead of the last child.
5690         This is to support the behavior that the Enumerator doesn't become invalid
5691         when changes to the children occur.  Flushed out rest of implementation for
5692         MoveNext, Current, and Reset.
5693
5694 2002-03-12  Duncan Mak  <duncan@ximian.com>
5695
5696         * XmlCharacterData.cs: Reformatted the properties for better readability.
5697
5698         * XmlLinkedNode.cs: Removed the awful boxy comments.
5699
5700         * XmlNamedNodeMap.cs (Count):
5701         (Item): Implemented. Tests will be coming.
5702
5703         * XmlEntityReference.cs: 
5704         * XmlSignificantWhitespace.cs: Implemented these classes except for
5705         the Clone, WriteContentTo and WriteTo methods. Will have to
5706         investigate into these later.
5707
5708 2002-03-11  Duncan Mak  <duncan@ximian.com>
5709
5710         * IHasXmlNode.cs: Added to CVS.
5711
5712 2002-03-08  Jason Diamond <jason@injektilo.org>
5713
5714         * XmlParserContext.cs: Added missing constructors and missing Encoding 
5715         property.
5716
5717         * XmlTextReader.cs: Start using the XmlParserContext class.
5718
5719 2002-03-08  Jason Diamond <jason@injektilo.org>
5720
5721         * XmlTextReader.cs: Implemented MoveToElement and MoveToFirstAttribute.
5722
5723 2002-03-08  Mike Kestner  <mkestner@speakeasy.net>
5724
5725         * XmlNode.cs (Item): Implemented both indexers.
5726
5727 2002-03-08  Jason Diamond  <jason@injektilo.org>
5728
5729         * DomEncodingType.cs, TreePosition.cs, XPathNodeType.cs, XmlDataType.cs,
5730         XmlExceptionCode.cs, XmlSortOrder.cs, XmlUtil.cs: Removed files.
5731
5732 2002-03-08  Jason Diamond  <jason@injektilo.org>
5733
5734         * XmlAttribute.cs: Attribute nodes are supposed to store their values
5735         as child nodes so updated to reflect that.
5736
5737         * XmlDocument.cs, XmlElement.cs, XmlNode.cs: Moved code that was
5738         duplicated in XmlDocument and XmlElement into XmlNode so that it
5739         wouldn't have to be duplicated in XmlAttribute, too.
5740
5741 2002-03-08  Kral Ferch <kral_ferch@hotmail.com>
5742
5743         * XmlNodeList.cs, XmlDocument.cs, XmlLinkedNode.cs,
5744         XmlNode.cs: Formatting.
5745         
5746         * XmlNodeListChildren.cs: Implementation of XmlNodeList
5747         for XmlNode.ChildNodes property.
5748         
5749         * XmlNodeListAsArrayList.cs: Removed file.  Using different
5750         data structure (circular list) in XmlNode so this file
5751         is no longer valid.
5752         
5753         * XmlDocument.cs, XmlElement.cs: New ChildNodes tests found
5754         bug in setter property of LastLinkedChild so fixed it.
5755         
5756 2002-03-06  Jason Diamond  <jason@injektilo.org>
5757
5758         * XmlInputSource.cs, XmlNames_1_0.cs, XmlParse.cs: Removed files.
5759         We already have a parser in XmlTextReader.
5760
5761         * XmlException.cs: Removed constructor accepting XmlInputSource.
5762
5763 2002-03-06  Kral Ferch <kral_ferch@hotmail.com>
5764
5765         * XmlNode.cs: Rewrote this class from scratch with
5766         MonoToDo attribs and NotImplementedExceptions.  Now defines an
5767         internal LastLinkedNode property to aid the new implementation.
5768         XmlNodes only have ref to owner doc and parent nodes now.
5769         
5770         * XmlLinkedNode.cs: Added NextLinkedSibling internal property
5771         and ref to next sibling to support walking our circular child
5772         node list.
5773         
5774         * XmlDocument.cs: Added ref to last child node and overrides
5775         XmlNode's internal LastLinkedChild property to support walking
5776         our circular child node list.
5777         
5778 2002-03-02  Kral Ferch <kral_ferch@hotmail.com>
5779
5780         * XmlProcessingInstructions.cs: Class was empty.  Implemented
5781         constructor, properties, and CloneNode() method.  Put in
5782         MonoToDo attrib for remaining methods.
5783
5784         * XmlComment.cs: Reformatted and put in MonoToDo attribs.
5785         Got rid of helper methods and fields since they were no
5786         longer needed.
5787
5788         * XmlLinkedNode.cs: Reformatted and put in MonoToDo attribs.
5789
5790         * XmlDocument.cs: Added code to Load(XmlReader) to create XmlComment,
5791         XmlCDataSection, and XmlProcessingInstruction nodes. Implemented
5792         Createxxx() methods for those three node types.
5793
5794 2002-03-02  Jason Diamond <jason@injektilo.org>
5795
5796         * XmlDocument.cs: Implemented the remaining CreateElement and
5797         CreateAttribute methods.
5798
5799         * XmlAttribute.cs: Re-implemented.
5800
5801         * XmlElement.cs: Set owner element on attributes. Reformatted.
5802
5803 2002-03-02  Jason Diamond <jason@injektilo.org>
5804
5805         * XmlTextReader.cs: Implemented MoveToNextAttribute().
5806
5807         * XmlDocument.cs: Reformatted. Adding missing methods and MonoTODO
5808         attributes. Create attribute nodes while loading. Implemented
5809         Load(string) and CreateTextNode().
5810
5811         * XmlCharacterData.cs, XmlText.cs: Re-implemented.
5812
5813         * XmlCDataSection.cs, XmlComment.cs: Call correct constructor in 
5814         XmlCharacterData.
5815
5816         * XmlNamedNodeMap.cs, XmlAttributeCollection.cs: Stubbed out.
5817
5818 2002-03-02  Mike Kestner <mkestner@speakeasy.net>
5819
5820         * XmlAttribute.cs : Using fix.
5821         * XmlDocument.cs (CreateAttribute(String)): Implement.
5822
5823 2002-03-02  Jason Diamond <jason@injektilo.org>
5824
5825         * XmlNamespaceManager.cs: Atomize prefixes and namespaces strings in 
5826         the name table.
5827
5828 2002-02-28  Jason Diamond <jason@injektilo.org>
5829
5830         * XmlDocument.cs, XmlNode.cs: Initial implementation of LoadXml 
5831         courtesy of Kral Ferch <kral.ferch@hotmail.com>.
5832
5833 2002-02-28  Jason Diamond <jason@injektilo.org>
5834
5835         * XmlException.cs, XmlReader.cs, XmlTextReader.cs: Reformatted, 
5836         added missing members and MonoTODO attributes.
5837         
5838         * XmlTextReader.cs: Throw XmlException instead of System.Exception.
5839
5840 2002-02-27  Jason Diamond <jason@injektilo.org>
5841
5842         * XmlElement.cs: Reformatted, added missing members and MonoTODO 
5843         attributes.
5844
5845 2002-02-26  Duncan Mak  <duncan@ximian.com>
5846
5847         * XmlCDataSection.cs: Initial implementation.
5848
5849         * NameTable.cs: Fixed the whole thing. Wrote a NUnit test to test
5850         it out. This should (hopefully) be correct.
5851
5852 2002-02-26  Jason Diamond <jason@injektilo.org>
5853
5854         * XmlTextReader.cs: Apparently Microsoft's implementation treats
5855         namespace declarations as attributes so we do now, too.
5856
5857         * XmlNamespaceManager.cs: HasNamespace fixed so that it only
5858         checks the current scope.
5859
5860 2002-02-26  Duncan Mak  <duncan@ximian.com>
5861
5862         * XmlDocumentType.cs: Added a few hacks here and there to
5863         temporarily fix the "I broke the build issue".
5864
5865 2002-02-25  Jason Diamond <jason@injektilo.org>
5866
5867         * XmlDocument.cs, XmlElement.cs, XmlNode.xs, XmlNodeList.cs,
5868         XmlNodeListAsArrayList.cs: Multiple fixes necessary to get
5869         simple test to pass. The existing code is really shitty so I'll
5870         probably start writing tests and refactoring before much else 
5871         can get done.
5872
5873 2002-02-25  Duncan Mak  <duncan@ximian.com>
5874
5875         * NameTable.cs: Implemented.
5876
5877         * XmlDeclaration.cs: It should inherit from XmlLinkedNode, not XmlNode.
5878
5879 2002-02-24  Duncan Mak  <duncan@ximian.com>
5880         
5881         * XmlNodeOrder.cs: Added to CVS.
5882
5883         * XmlQualifiedName.cs: Fixed a warning from Equals ().
5884
5885         * XmlTokenizedType.cs: Added to CVS.
5886
5887         * XmlUrlResolver.cs: Added to CVS with one TODO task.
5888
5889 2002-02-23  Duncan Mak  <duncan@ximian.com>
5890
5891         * XmlQualifiedName.cs: Fixed ToString () and added the operators
5892         (== and !=).
5893
5894 2002-02-23  Jason Diamond <jason@injektilo.org>
5895
5896         * XmlTextReader.cs: Added support for qualified attributes.
5897
5898 2002-02-23  Jason Diamond <jason@injektilo.org>
5899
5900         * XmlNamespaceManager.cs: Initial implementation.
5901         
5902         * XmlTextReader.cs: Added support for NamespaceURI property on
5903         elements.
5904
5905 2002-02-23  Nick Drochak <ndrochak@gol.com>
5906
5907         * ChangeLog: Add the change log to this directory
5908
5909         * XmlQualifiedName.cs: Fixed compile errors so it would build. Still has
5910         MonoTODO's