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