2003-10-19 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
[mono.git] / mcs / class / System.XML / System.Xml / ChangeLog
1 2003-10-19  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
2
3         * XmlNode.cs : GetPrefixOfNamespace() also contained a bug similar to
4           GetNamespaceOfPrefix() fixed at 2003-10-13.
5         * XmlTextReader.cs : ReadBase64() should keep incomplete base64 block
6           which remained by previous call of this method.
7         * XmlUrlResolver.cs : Added assertion for file Uri path's absoluteness.
8         * XmlValidatingReader.cs : Notice about intention of XDR won't be
9           supported (at least in Mono 1.0).
10
11 2003-10-18  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
12
13         * XmlDocument.cs : CloneNode() does not copy PreserveWhitespace.
14         * XmlWriter.cs : Calling WriteNode() with XmlReader whose state is
15           XmlDeclaration now calls WriteProcessingInstruction(). This fixes
16           testcase XmlWriterTests.WriteNodeFullDocument().
17         * XmlTextWriter.cs : Added LAMESPEC comments related to above.
18
19 2003-10-13  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
20
21         * XmlDocument.cs : Fixed bugzilla #49607. Save() outputs XML 
22           declaration even though there is no XmlDeclaration child.
23         * XmlTextReader.cs : Fixed Init() so that ResetState() should work.
24
25 2003-10-13  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
26
27         * XmlTextWriter.cs : Implemented WriteSurrogateCharEntity().
28           Reverted my recent extraneous check in WriteStartAttribute().
29
30 2003-10-13  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
31
32         * XmlNode.cs : GetNamespaceOfPrefix() should check Attributes existence.
33           And it should throw ArgumentNullException.
34
35 2003-10-13  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
36
37         * XmlAttribute.cs : Fixed InnerText that did not removed its content
38           if there is two or more children.
39         * XmlNode.cs : XmlNode.cs : Fixed bugzilla #49580 (1)to return "",
40           (2)not to compare NodeType for detached nodes, (3)optimization to
41           compare element's prefix.
42         * XmlSecureResolver.cs : Removed extraneous members.
43
44 2003-10-09  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
45
46         * Added DTDReader.cs. It is almost importation of XmlTextReader.
47         * DTDObjectModel.cs :
48           - More .NET-ism. Properties took place of fields.
49           - Imported PE set from XmlTextReader. Added location info.
50           - Added DTDEntityBase common to PE and GE.
51           - More correct text declaration handling with new XmlTextReader.
52         * DTDValidatingReader.cs :
53           - Now uses entity resolving XmlTextReader to validate attributes
54             correctly. Implemented standalone
55           - Standalone and default related validity constraints check.
56         * XmlImplementation.cs: Implemented HasFeature().
57         * XmlNode.cs : Implemented Supports().
58         * XmlNodeReader.cs : Modified to use XmlTextReader.SkipTextDeclaration()
59         * XmlParserInput.cs : Removed extraneous members.
60         * XmlTextReader.cs :
61           - All DTD related functionality now goes to DTDReader.cs
62           - It became old simple TextReader input style.
63           - Implemented GetRemainder().
64           - Implemented ReadBase64(), ReadBinHex() and ReadChars(), using 
65             additional new private method ReadUntilEndTag().
66           - Removed incomplete MaybeTextDecl and added SkipTextDeclaration().
67             ReadXmlDeclaration() now became simple.
68           - More strict entity reference check at SetEntityReferenceProperty()
69           - Removed extraneous members.
70         * XmlWriter.cs : WriteNode(XmlNodeType.None) does not raise error.
71
72 2003-10-09  Gonzalo Paniagua Javier <gonzalo@ximian.com>
73
74         * XmlTextReader.cs: when we get an unexpected EOF in ReadContent, set
75         the state before throwing the exception if depth > 0.
76
77 2003-10-04  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
78
79         * XmlAttribute.cs : Removed extraneous MonoTODO.
80         * XmlTextWriter.cs : Implemented WriteBinHex() and WriteChars().
81           WriteStartElement() and WriteStartAttribute() should ignore Prefix
82           if namespace uri is not specified.
83
84 2003-10-04  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
85
86         * XmlDocumentFragment.cs,
87           XmlElement.cs,
88           XmlEntityReference.cs : Removed extraneous MonoTODO.
89         * XmlNode.cs : Implemented Normalize().
90         * XmlNodeReader.cs :
91           - AttributeCount and HasAttributes should return its owner element's
92             value, to be consistent with XmlTextReader.
93           - Fixed Depth to reflect correct attribute/attribute-value iteration.
94           - simplified ownerElement and HasValue.
95           - Prefix won't return null.
96           - MoveToElement() should also work against attribute value nodes.
97         * XmlTextReader.cs : MoveToElement() should return false if it is
98           positioned at element itself.
99
100 2003-10-04  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
101
102         * XmlTextReader.cs : Improved SignificantWhitespace handling.
103
104 2003-10-01  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
105
106         * XmlSecureResolver.cs : Implemented basic feature.
107
108 2003-10-01  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
109
110         * XmlUrlResolver.cs : Should work with null type argument.
111
112 2003-10-01  Lluis Sanchez Gual <lluis@ximian.com>
113
114         * XmlTextWriter.cs : An attribute can require a prefix for the default
115           namespace, so we need to store the prefix as well as the namespace.
116
117 2003-09-30  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
118
119         * DTDValidatingReader.cs : Simplified to use 
120           XmlSchemaUtil.GetParserContext().
121         * XmlValidatingReader.cs : ValidationType.Auto should always use
122           XsdValidatingReader because xsi:schemaLocation might be used.
123
124 2003-09-30  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
125
126         * XmlTextReader.cs : Attribute value token properties were incorrectly
127           set by the linked node.
128
129 2003-09-26  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
130
131         * XmlDocumentNavigator.cs : Fix for bugzilla #48931. MoveToRoot() now
132           considers such case that target node was not adapted to the document.
133         * XmlNamespaceManager.cs : GetEnumerator() missed the last pair.
134         * XmlTextWriter.cs : use 'as'  instead of 'try..catch'.
135
136 2003-09-25 Ben Maurer  <bmaurer@users.sourceforge.net>
137
138         * XmlNode.cs (XPathNodeType): Give more useful debugging message.
139         * XmlDocumentNavigator.cs (MoveToPrevious): Needs same checks as
140         in MoveToNext.
141
142 2003-09-23  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
143
144         * XmlNamespaceManager.cs: Rewrote PopScope() because its namespace
145           recovery was still not enough. Fixed GrowScopes() (incorrect index).
146
147 2003-09-21  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
148
149         * XmlTextReader.cs : 
150           - Fix for bugzilla #48337 (containing Ben's advice on that).
151           - Added internal XmlTokenInfo classes. Nodes are now handled as token 
152             objects (linked node, attributes and attribute values). Most of the
153             node state properties and iterating methods are changed to refer to
154             the token classes (except for value builder availability). Removed
155             fields which are never used. CompileDTDSubset() is changed in
156             reflection to nodeType field removal.
157           - Fixed Depth that should vary in moving between attributes and/or
158             reading attribute values.
159           - LineNumber and LinePosition now returns more correct location.
160           - Fixed Value that should still return true if its value is an empty
161             attribute value string.
162           - EntityValue is checked WFC constraints even thoug it is not used.
163           - All .ctor() now initializes ReadState as Initial.
164           - Read() should be available for attribute value constructor.
165         * XmlAttribute.cs : set_InnerXml() now calls reader's Read().
166
167 2003-09-21  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
168
169         * XmlNamespaceManager.cs: PopScope() must retain those namespaces which
170           are added in the scope before PushScope() was called.
171
172 2003-09-20 Ben Maurer  <bmaurer@users.sourceforge.net>
173
174         * XmlNamespaceManager.cs: Rewrote. Uses arrays, rather than linked
175         lists and removes uses of Hashtable. Results in huge speed gains.
176
177 2003-09-19 Ben Maurer  <bmaurer@users.sourceforge.net>
178
179         * XmlConvert.cs: NaN.ToString () != INF.
180
181 2003-09-14  Lluis Sanchez Gual  <lluis@ximian.com>
182
183         * XmlTextWriter.cs: Attributes that have a namespace must be always
184           prefixed.
185
186 2003-09-13  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
187
188         * XmlTextWriterOpenElement.cs : Changed to receive prefix and localName
189           in .ctor().
190         * XmlTextWriter.cs : Changed to use above XmlTextWriterOpenElement.
191           Changed xmlns adding scheme. In detail, 1) WriteStartElement does not
192           add Namespaces immediately, but adds at AddMissingElementXmlns so 
193           that we don't have to have extra check than namespaceManager's
194           LookupPrefix(). 2) Removed writtenAttributes for performance reason
195           since it is no more required.
196
197 2003-09-10  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
198
199         * XmlDocument.cs : patch by Jonathan Hogg. Fixed CreateAttribute()
200           that handled xmlns attributes inproperly.
201
202 2003-09-08  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
203
204         * XmlNamespaceManager.cs : GetEnumerator() should return all of the
205           available pairs (of prefix and namespace).
206         * XmlQualifiedName.cs : Quick fix for NullReferenceException in case
207           of name (or ns) is null. (The description of the immediate previous 
208           changes will be inserted below.)
209         * XmlTextWriter.cs : Fixed WriteDocType(). Removed CheckValidName().
210         * XmlUrlResolver.cs : Changed not to call WebClient.Dispose() which
211           will release resources it had allocated.
212
213 2003-09-01 Ben Maurer  <bmaurer@users.sourceforge.net>
214
215         * XmlDocument.cs (Save): use the encoding of the document, if
216         available.
217
218 2003-08-24  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
219
220         * XmlValidatingReader.cs : Implemented SchemaType. Added support for
221           ValidationType.Schema. Added support for XmlResolver. Fixed 
222           ReadTypedValue() not to consume EndElement.
223
224 2003-08-19  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
225
226         * XmlDocumentNavigator.cs : Fixed MoveToFirstNamespace() that arose
227           infinite loop.
228         * XmlNamespaceManager.cs : Renamed AtomStrEq to AtomicStringEquals.
229           Commented out Console.Error.WriteLine().
230         * XmlUrlResolver.cs : Fixed ResolveUri() and GetEntity() to support
231           escape and unescape for relative URI string.
232
233 2003-08-19 Ben Maurer  <bmaurer@users.sourceforge.net>
234
235         * XmlParserContext.cs: Make each context inherit next.
236
237 2003-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
238
239         * XmlChar.cs (IsWhitespace): Spare enumerator allocation.
240         * XmlTextWriter.cs (WriteWhitespace): Enumerators are very high in
241         fat, use low-fat loops instead. Even better, call the function
242         inside XmlChar for code reuse.
243         * HighWaterStack.cs (added): New class that acts like a Stack, but
244         helps with memory allocation.
245         * XmlNamespaceManager.cs, XmlParserContext.cs: Rewrote to use
246         HighWaterStack.
247         * XmlTextReader.cs: Remove orderedAttributesEnumerator variable,
248         use a variable that stores the position in the ArrayList.
249         
250 2003-08-18 Ben Maurer  <bmaurer@users.sourceforge.net>
251
252         * XmlTextWriter.cs: Begin diet. String.Format has too much
253         saturated fat, lets replace with the fat-free .Write ()
254         calls. Effects best seen when Paolo's StreamWriter patch is
255         applied.
256
257 2003-08-14  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
258
259         * XmlNodeReader.cs : Fixed ReadAttributeValue() that might result in
260           vanishing current node.
261
262 2003-08-14  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
263
264         * DTDValidatingReader.cs : Added SchemaType.
265           Read() Assures to return to element.
266         * DTDObjectModel.cs : Removed DTDEntityDeclaration.BaseURI.
267         * XmlReader.cs : ReadString() should be virtual in NET_1_1.
268         * XmlTextReader.cs : 1) Depth should consider Attribute and its values.
269           Introduced insideAttribute field to support them.
270           2) ReadAttributeValue() should consider empty string.
271         * XmlValidatingReader.cs :
272           Fixed several properties which premised as if it was already read.
273           Encoding and Namespaces now throws NotSupportedException for other
274           than XmlTextReader.
275           Implemented ReadTypedValue() based on IHasXmlSchemaInfo.SchemaType.
276
277 2003-08-10  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
278
279         * XmlInputStream.cs : Reverted CanSeek as to return false anyway.
280
281 2003-08-10  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
282
283         * DTDObjectModel.cs : added XmlResolver related members. Added
284           invalid entity recursion logic. Added encodingdecl check on textdecl.
285         * DTDValidatingReader.cs : It now implements IHasXmlParserContext.
286         * XmlChar.cs : IsPubidChar() should not allow TAB(&#9;).
287         * XmlDocumentType.cs : 1) internal CreateDocumentType() was now changed
288           to receive DTDObjectModel to support other than XmlTextReader. 
289           2) Most of its public member is now based on DTDObjectModel.
290         * XmlDocument.cs : 1) Synchronous change with XmlDocumentType.
291           2) ReadNode() now considers XmlParserContext's DTDObjectModel for
292           other than XmlTextReader (such as XmlValidatingReader).
293         * XmlNode.cs : code cleanup only.
294         * XmlParserInput.cs : added HasPEBuffer, used to check illegal nesting.
295         * XmlTextReader.cs : 1) Illegal entity reference check logic was moved 
296           from ReadContent() to SetEntityReferenceProperties(). 2) Indentation
297           change on ReadEntityReference(). 3) ReadAttribute() now checks
298           reference to external entity reference. 4) Added textdecl encoding
299           check. 5) DTDObjectModel fields are now set correctly. 6) added
300           PERef markup nest check. 7) If PEDecl was not found, it might be WFC
301           violation, not only be VC violation. 8) ReadEntityDecl() now receives
302           its declared entity itself, and this method checks IsInternalSubset.
303         * XmlValidatingReader.cs : 1) Added GetInternalPerserContext().
304           2) ValidationType.None should be the same as Auto, not DTD (in the
305           future it should keep xml schema's default values).
306
307         Pending Stuff in XmlTextReader which breaks some NUnit tests;
308           1) SetEntityReferenceProperies() has check for illegal references.
309           2) ReadAttribute(bool) has similar check for illegal references.
310
311 2003-08-09  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
312
313         * DTDAutomata.cs : Fixed (modified or added) TryEndElement() of choice,
314           sequence and oneOrMore. Fixed DTDChoiceAutomata.TryStartElement().
315
316 2003-08-09  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
317
318         * XmlTextReader.cs : Checked and fixed all TryExpandPERef() invokation 
319           and supplied SkipWhitespace() as they needed. It broke monodoc.
320           Fixed ReadEntityValueDecl() to get correct value.
321
322 2003-08-08  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
323
324         * XmlInputStream.cs :
325           Fixed Initialize() that might result in incorrect buffer.
326           CanRead and Position should consider buffer (especially when the
327           stream was EOF).
328           CanSeek should use stream's CanSeek.
329
330         * XmlChar.cs : added GetPredefinedEntity().
331         * DTDObjectModel.cs :
332           - Modified ComputeDefaultValue() to use it.
333           - Fixed NormalizedDefaultValue not to expect parsed value as string.
334           - ResolveExternalEntity now detects invalid standalone specification.
335           - DTDParameterEntityDeclaration.Value is now changed to property and
336             keep its resolved value of literal value of external value using
337             new Resolve (XmlResolver) method (called only by XmlTextReader).
338         * DTDValidatingReader.cs :
339           - It now handles entity-expanded Whitespace and SignificantWhitespace
340             correctly. Does not raise unexpected text not allowed error.
341           - Fixed MoveToAttribute()s to move internal reader correctly, and
342             should be able to move in other cases than on element node.
343           - On Read()ing document type and ResolveEntity(), it now sets
344             XmlResolver on text reader.
345           - On ID constraints check and type verification, it now uses
346             normalized attribute or its tokenized value(s).
347           - Fixed ValidateAttributes() to add default values when 
348             ValidationType is Auto.
349         * XmlParserContext.cs : added internal Dtd setter.
350         * XmlParserInput.cs :
351           InsertParameterEntityBuffer() should add surrounding whitespaces.
352           Removed unused code block.
353         * XmlTextReader.cs :
354           - Modified ReadReference(), ReadAttribute() and Dereference() to use
355             XmlChar.GetPredefinedEntity().
356           - When returning entity reference, it checks extity declaration
357             existence in certain conditions.
358           - ReadAttribute() now skips general entity replacement on reading
359             entity value.
360           - ReadText() now handles whitespace texts as XmlNodeType.Whitespace.
361           - ReadXmlDeclaration() holds isStandalone, which might be used in
362             entity reference's well-formedness check.
363           - internal 'DTD' now uses XmlParserContext.Dtd.
364           - isInternalSubset was meaningless. Now uses input stack's Count.
365           - Added some required SkipWhitespace().
366           - Several parameter entity handling changes.  Added GetPEValue(name).
367             TryExpandPERef() now uses ImportAsPERef(). ReadParameterEntityDecl()
368             now uses its Resolve() when it was external PE.  Now it uses value
369             buffer instead of currentTag, to efficiently read (included) PE.
370             CompileDeclaration() now uses ImportAsPERef instead of ExpandPERef().
371             ImportAsPERef() simply inserts the value to currentInput.
372             ReadEntityDecl() also uses value buffer.   Removed non-used methods.
373           - Default attributes are now stored in normalized form.
374           - Dereference() now considers non-expanding predefined entities.
375         * XmlValidatingReader.cs : now holds Schemas, and ValidationType.Auto
376           is more correctly supported.
377
378         * XmlAttributeCollection.cs :
379           When removing default attribute, it immediately inserts the attribute.
380           RemoveAll() should consider default (not-removable) attributes.
381         * XmlDocument.cs :
382           Should have its default XmlResolver. Added Internal Resolver.
383           Some Load() should use its XmlResolver.
384           ImportNode() should copy its children in node level, not value level.
385           It also have to consider not to copy default attribute on importing
386           XmlElement.
387         * XmlDocumentType.cs : Now uses document's XmlResolver to read DTD.
388         * XmlAttribute.cs,
389           XmlDocumentFragment.cs.
390           XmlElement.cs : use XmlResolver on InnerXml. Removed some MonoTODO.
391         * XmlNodeReader.cs : GetInternalParserConext() should provide its DTD.
392           ResolveEntity() uses XmlResolver on entityReader.
393
394 2003-08-07  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
395
396         * DTDObjectModel.cs :
397           - Added validation error check (and AddError(), Errors).
398           - Fixed ComputeDefaultValue() to handle various references correctly.
399           - DTDEntityDeclaration.EntityValue became property, and added
400             LiteralEntityValue. The new one holds resolved value.
401             Added ResolveExternalEntity(). It now required root in .ctor().
402         * DTDValidatingReader.cs :
403           - Now it handles namespaced attributes (as input to xsd validator).
404           - Added XmlResolver property as usual XmlReader.
405           - Added currentEntityHandling field so that it can stand changing
406             XmlValidatingReader's EntityHandling dynamically.
407           - FilterNormalization() now requires name for getting datatypes and
408             can stand for non-current attribute normalization.
409           - Splitted ReadContent() from Read() that can be called recursively
410             when expanding entities.
411           - Now handles Entity not found error *after* resolution of entities,
412             as MS.NET does.
413           - Read()ing DTD checks its Errors and raises validation error events.
414             In some situations, DTD parsing may detect VC error, not WFC error.
415             It also strictly checks NData existence.
416           - Handling of entity-resolved text is a bit changed and Read()ing
417             element, endElement, cdata now changed to switch collecting text
418             and collected text.
419           - content type ANY should allow texts.
420           - Added enumerated attribute validity check.
421           - Added Name/Names creation rule check for ID/IDREF/IDREFS.
422           - Added entity existence check for ENTITY/ENTITIES attributes.
423           - Added NMTOKEN creation rule check for NMTOKEN/NMTOKENS.
424           - Fixed to remove extraneous #REQUIRED check.
425           - Contributing default attribute is now only applied to the case
426             ValidationType is DTD or None.
427           - ResolveEntity() now handles external entities.
428             Added Mono.Xml.IXmlParserContext interface support.
429         * XmlDocumentType.cs : Fixed to use BaseURI to build DTD model.
430         * XmlTextReader.cs :
431           - Fixed ReadAttributeValue() to reset returnEntityReference.
432           - Added bool MaybeTextDecl only for ResolveEntity().
433           - Fixed ReadWhitespace(). In fact its value is considered even if it
434             is in the end of the XML.
435           - Fixed ReadXmlDeclaration(). Now skips text declaration.
436           - CompileDTDSubset() now checks IGNORE/INCLUDE section end balances.
437           - ReadContentSpec() should set OrderType = OR for mixed model.
438             Fixed to set content element name correctly.
439           - ImportAsPERef() now skips Text declaration.
440           - Type of enumerated default attributes shold be string.
441           - Undeclared PE error is now handled as DTD's VC error, not
442             XmlTextReader's WFC error.
443         * XmlValidatingReader.cs : BaseURI should provide that of 
444           original XmlReader's when read was not started yet.
445           Fixed XmlResolver to delegate to DTDValidatingReader.
446
447         * XmlAttributeCollection.cs : Acquiring attList declaration is
448           insufficient especially in case of lack of elementdecl.
449         * XmlChar.cs : (Maybe this is compact than XmlConstructs.)
450           added IsWhitespace(),IsNCNameChar(),IsName(),IsNCName(),IsNmToken(),
451           IsPubid(). Copies IsValidIANAEncoding() from XmlConstructs.
452
453         * XmlInputStream.cs : Removed "version" declaration check. It should
454           be done by XmlTextReader.
455
456         * XmlNodeReader.cs : added internal GetInternalParserContext() and now
457           it can be used in XmlValidatingReader.ResolveEntity().
458           ResolveEntity() sets XmlTextReader.MaybeTextDecl.
459
460 2003-08-05  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
461
462         * DTDValidatingReader.cs :
463           Added full ExpandEntities support for text node and entity reference
464           node (although require many usage tests). Almost all methods and
465           properties now have currentTextValue != null check, that field means
466           that there are cached (entity-resolved) text.
467           Implemented default attribute aware XmlLang and XmlSpace.
468         * XmlNodeReader.cs : ResolveEntity() should not require DTD.
469
470 2003-08-03  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
471
472         * DTDValidatingReader.cs,
473           XmlNodeReader.cs,
474           XmlReader.cs,
475           XmlTextReader.cs,
476           XmlValidatingReader.cs : fixed pragma USE_VERSION_1_0 to NET_1_0.
477
478 2003-08-03  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
479
480         * DTDObjectModel.cs : Added BaseURI (but not used yet).
481           DTDAttListDeclaration.ctro() now requires root dtd object model.
482         * DTDValidatingReader.cs : Read() now expands EntityReference if
483           entity handling of validating reader is ExpandEntities.
484         * XmlReader.cs,
485           XmlTextReader.cs,
486           XmlNodeReader.cs,
487           XmlValidatingReader.cs : Implemented "virtual" ReadInnerXml and
488             ReadOuterXml which are modified in MS.NET 1.1.
489         * XmlConstructs.cs : added int version of IsValid, IsInvalid,
490           IsContent, IsMarkup and IsNCNameStart.
491           Fixed int version of IsXXX() to check array index range. 
492           Added IsValidName (string).
493         * XmlTextReader.cs :
494           - Read() handles document with non document element as an error.
495           - ReadText() and ReadCharacterReference() checkes illegal characters.
496           - ReadEntityReference() checks name validity.
497           - ReadProcessingInstruction() rejects such name that starts with
498             "xml" ignoring case, and checks attributes more strictly.
499           - ReadDeclaration() rejects unrecognized kind of declaration.
500           - In many places, added "required whitespace" check in DTD markup.
501           - DTD content model now disallows mixing use of '|' and ','.
502
503 2003-08-02  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
504
505         * XmlDocumentFragment.cs : I missed to add it in relation to the
506           previous XmlParserContext patch. Similar to XmlAttribute/XmlElement.
507         * XmlNodeReader.cs : removed some TODO attributes.
508         * DTDValidatingReader.cs,
509           XmlValidatingReader.cs : Implemented ResolveEntity().
510
511 2003-07-31  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
512
513         * XmlParserContext.cs,
514           XmlAttribute.cs,
515           XmlElement.cs : Added internal Dtd and new internal XmlParserContext
516           .ctor() that takes DTDObjectModel. And then rewrote classes which 
517           uses DTD information. Changed DocTypeName, InternalSubset, PublicId
518           and SystemId to use DTDObjectModel.
519         * DTDObjectModel.cs :
520           Added DTDObjectModel.InternalSubsetHasPEReference.
521           Added DTDEntityDeclaration.IsInternalSubset.
522         * XmlTextReader.cs :
523           Added internal GetInternalParserContext (to build entity reader).
524           Added private isIntSubset to check if the DTD subset is internal or
525           external, which might affect well-formedness constraints.
526           Changed GenerateDTDObjectModel to return the resulting DTD model.
527
528         * XmlEntityReference.cs : implemented BaseURI.
529         * XmlNodeReader.cs :
530           - Implemented ResolveEntity() and CanResolveEntity(). In fact
531             it leads too many changes on almost all methods and properties,
532             since they now must be aware of entityReader.
533           - fixed ownerElement that might be used to return from attribute 
534             value to the element through parent attribtues.
535           - Now changed indexer to call GetAttribute() and moved actual logic
536             to the matching GetAttribute() methods.
537
538 2003-07-29  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
539
540         * XmlNode.cs : fixed internal ConstructNamespaceManager() for InnerXml
541           not to create extraneous xmlns="".
542
543 2003-07-28  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
544
545         * DTDValidatingReader.cs : (Read,ValidateAttributes,ReadAttributeValue)
546           attribute declaration should be got independently of elementdecl.
547         * XmlAttribute.cs :
548           Added internal SetDefault() to mark as default.
549           Removed InnerText implementation that is just the same as XmlNode.
550         * XmlDocument.cs : id shouldn't be removed from table at 'trying' to
551           get matching elements.  ReadAttributeNode() now sets default mark.
552         * XmlElement.cs : WriteTo() should ignore default attributes.
553         * XmlTextWriter.cs : shuold allow valid name char such as digits.
554
555 2003-07-27  Piers Haken <piersh@friskit.com>
556
557         * XmlQualifiedName.cs : fields should never be null
558
559 2003-07-27  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
560
561         * XmlDocumentFragment.cs : added XPathNodeType indicating Root.
562
563 2003-07-27  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
564
565         * XmlDocument.cs (GetIdenticalAttribute): restored OwnerElement.IsRooted
566
567 2003-07-27  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
568
569         * XmlLinkedNode.cs : added internal IsRooted.
570
571 2003-07-26  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
572
573         * DTDValidatingReader.cs :
574           - Added ID support in ValidateAttributes().
575           - More refined ReadAttributeValue() support for non-expanding entity
576             situation
577           - It should handle LocalName, Name, Prefix, NamespaceURI and Value
578             correctly when the reader is on each of the value nodes of an
579             attribute. Now XmlDocument.ReadNode() should work well.
580         * XmlDocument.cs :
581           - added idTable, AddIdenticalAttribute(), GetIdenticalAttribute() and
582             RemoveIdenticalAttribute()
583           - Implemented GetElementById().
584         * XmlAttributeCollection.cs :
585           - added private ownerDocument property and replaced
586             ownerElement.OwnerDocument with it.
587           - Added AdjustIdenticalAttribute() and it is used in SetNamedItem().
588             It calls XmlDocument.{Add|Remove}IdenticalAttribute().
589           - Added RemoveIdenticalAttribute() and it is used in Remove().
590             (I also added AddIdenticalAttribute() but is not used.)
591
592 2003-07-26  Duncan Mak  <duncan@ximian.com>
593
594         * XmlDocument.cs (GetIdenticalAttribute): Temporarily remove test
595         for OwnerElement.IsRooted to fix the build..
596
597 2003-07-26  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
598
599         * XmlDocumentType.cs :
600           modified private DTD to dtd and added internal DTD (the same thing).
601         * XmlElement.cs :
602           Fixed SetAttributeNode() to check if specified attribute is already
603           set to the other element. In fact it is W3C DOM's specification but
604           MS.NET 1.0 failed to catch it.
605         * XmlTextReader.cs :
606           ReadAttributeValue() should check if the value of the attribute is
607           already read when the whole value is entity reference.
608           Also, Name of text nodes should be "", not "#text"
609
610 2003-07-26  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
611
612         * XmlAttribute.cs : .ctor() shouldallow localName "xml" (not prefix)
613           with http://www.w3.org/XML/1998/namespace.
614         * XmlEntity.cs : patch by Aleksey Sanin. InnerText is now supported.
615         * XmlNode.cs : InnerText should handle CDATA and whitespaces.
616         * XmlTextReader.cs : Should allow " (#PCDATA)* " in ReadContentSpec().
617         * XmlTextWriter.cs : Quick fix for accepting (and writing) same-named
618           attributes (as MS.NET does). It isn't good way and I may change it.
619
620 2003-07-24  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
621
622         * DTDObjectModel.cs : Added DTDEntityDeclarationCollection and
623           DTDNotationDeclarationCollection and replaced Hashtables with them.
624           Added NormalizedDefaultValue property for DTDAttributeDefinition.
625         * DTDValidatingReader.cs :
626           - It now reads attribute values into value collection. 
627           - Renamed consumedDefaultAttribute to consumedAttribute, and
628             inContent to insideContent.
629           - GetAttribute() should allow reader's other node state than element.
630           - MoveToNextAttribute() should move when reader is placed other than
631             the first attribute.
632           - HandleError() now supports ValidationType.None (i.e. does nothing).
633           - ValidateAttribute() now collects and resolves attribute value 
634             entity references. (On the other hand, it doesn't support
635             EntityHandling.ExpandCharEntity.)
636           - NodeType shouldn't return Attribute after ReadAttributeValue().
637             Now only Text is supported, but must also support EntityReference.
638           - Add FilterNormalization() and partially support Normalization.
639
640 2003-07-24  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
641
642         * XmlTextReader.cs :
643           Read() now handles parser context stuff (BaseURI, XmlLang and 
644           XmlSpace) correctly for an empty element.
645           Normalization property now doesn't throw an error. Will be used soon.
646         * XmlValidatingReader.cs : added ValidationType.None support (wait for
647           the next DTDValidatingReader update for "not firing event handler).
648         * XmlNodeReader.cs : jun. 30th commit seems wrong. It keeps its state.
649
650 2003-07-19  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
651
652         * DTDValidatingReader.cs :
653           changed base class to XmlReader and implemented IXmlLineInfo members.
654           changed .ctor() argument from event handler to validating reader.
655           Removed some #if ... #else ... #endif blocks.
656           Added validation event support for Read() using HandleError().
657         * XmlValidatingReader.cs : added internal OnValidationEvent().
658         * XmlDocument.cs : ReadNode() now checks reader's state more strictly.
659
660 2003-07-19  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
661
662         * XmlUrlResolver.cs : applied BenM's patch for file uri problem
663           (bug #46610).
664
665 2003-07-15  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
666
667         * DTDValidatingReader.cs :
668           added DTDObjectModel support for non-XmlTextReader XmlReader 
669           e.g. XmlNodeReader (Read() method).
670         * XmlDocument.cs :
671           added internal CreateDocumentType(XmlTextReader) and moved
672           ReadDoctypeNode() to XmlDocumentType.ImportFromDTD().
673         * XmlDocumentType.cs :
674           added internal .ctor(XmlTextReader, document) and ImportFromDTD().
675         * XmlTextReader.cs :
676           Renamed useSbForVal (valueBuilderAvailable), valSb (valueBuilder)
677           and currentSubset (DTD).
678           Added GenerateDTDObjectModel() (for independent doctype parsing).
679
680 2003-07-15  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
681
682         * XmlAttribute.cs :
683           .ctor() should reject xml- or xmlns-prefixed node.
684         * XmlNamespaceManager.cs :
685           added some xmlns validity check.
686         * XmlNode.cs :
687           optimized GetNamespaceOfPrefix() and GetPrefixOfNamespace() by
688           avoiding XmlNamespaceManager creation.
689         * XmlNodeReader.cs :
690           doctype node should return PUBLIC and SYSTEM for its indexer, 
691           and Value should be internal subset,
692
693 2003-07-12  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
694
695         * DTDObjectModel.cs,
696           DTDValidatingReader.cs : Completely rewrote attribute handling.
697
698 2003-07-12  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
699
700         * XmlAttribute.cs,
701           XmlElement.cs : Fixed CloneNode() for bug #46129.
702         * XmlDocument.cs : Fixed MakeReaderErrorMessage that specified invalid
703           String.Format arguments, and basically XmlException.ctor(
704           IXmlLineInfo, message) seems good idea to use.
705         * XmlTextReader.cs :
706           - Fixed .ctor(Stream, XmlNodeType, XmlParserContext) which had
707             required non-null context which don't have to exist.
708           - Added state check. Introduced 'currentState' and 'maybeTextDecl' 
709             (for external entity) and removed hasEnteredDocument. Added 
710             state-check logic to ReadStartTag(), ReadEndTag(), ReadText(),
711             ReadCData(), ReadDoctypeDecl() and ReadWhitespace().
712           - Replaced throw ReaderError() with throw new XmlException() and
713             fixed that some error hadn't thrown, only created.
714           - ResetState() should re-initialize existing private members other 
715             than some specified fields.
716           - Private AddAttribute() should check if the same-named attribute 
717             already exists.
718         * DTDObjectModel.cs : Additive declaration for ATTLIST is availabe now.
719
720 2003-07-09  Lluis Sanchez Gual <lluis@ximian.com>
721
722         * XmlTextReader.cs : Implemented ResetState() method.
723
724 2003-07-06  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
725
726         * XmlElement.cs : IsEmpty has removed attributes since it incorrectly
727           used RemoveAll().
728
729 2003-07-06  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
730
731         * XmlDocument.cs : Load(string filename) should close its stream.
732           Small change for the latest DTDObjectModel change.
733         * XmlTextReader.cs : Changed for the latest DTDObjectModel change (all
734           changed methods are only related to DTD stuff).
735           Now uses XmlSchemaDatatype for attribute type definition.
736         * XmlValidatingReader : initial (limited) support for DTD validation.
737           It can handle only XmlTextReader.
738         * DTDObjectModel.cs : changed radically for initial validation support.
739         * added DTDAutomata.cs and DTDValidatingReader.cs.
740
741 2003-07-06  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
742
743         * XmlElement.cs : Removed extraneous xmlns output support (it should
744           be done by XmlTextWriter).
745         * XmlNode.cs : InsertBefore() now checks validity of the newChild (and
746           most of the changes are in fact indentation changes).
747         * XmlWriter.cs : WriteAttributes() now can write entity references.
748           WriteNode() now writes xmldecl attributes correctly.
749           Removed namespaceManager and xmlns check logic, since it should be 
750           done by individual XmlTextWriter.
751         * XmlTextWriter.cs : Patch by Jerome. AddMissingElementXmlns () has
752           written multiple xmlns declarations.
753           Moved namespaceManager from abstract XmlWriter.
754           Write{Start|End}Attribute() and WriteString() now checks xmlns 
755           attribute value. (MS.NET holds value only with this write method).
756
757 2003-07-04  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
758
759         * XmlDocument.cs : removed xmlReader.Close() from Load(XmlReader).
760
761 2003-06-30  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
762
763         * XmlDocumentNavigator.cs : Implemented MoveTo*Namespace() and 
764           essentially changed most of the property handling (e.g. removed attribute 
765           enumerator and it now became really cloneable).
766         * XmlNodeReader.cs : ReadInnerXml() changes its state as error
767           when the method is called at Initial state.
768
769 2003-06-25  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
770
771         * XmlDocumentNavigator.cs : Fixed IsEmptyElement. It treats <foo></foo>
772           as non-empty, and XmlElement's IsEmpty is designed as such.
773           Fixed MoveToFirst() and MoveToNext() not to move to xmldecl nor 
774           doctype node. 
775         * XmlNode.cs : Fixed XPathNodeType. It should throw an exception
776           instead of returning undefined enum value.
777           Modified some code comments.
778         * XmlWriter.cs : Fixed WriteNode () to use WriteFullEndElement() 
779           when XmlReader's node is not at empty element or at EndElement. 
780           Fixed XmlDeclaration's standalone check.
781
782 2003-06-21  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
783
784         * XmlTextReader.cs : removed CRLFs. Fixed private InitializeContext()
785           to use known Uri way (used in XmlUrlResolver) instead of UriBuilder.
786
787 2003-06-20  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
788
789         * XmlInputStream.cs : quick fix for public ctor() BaseURI bug.
790
791 2003-06-20  Ben Maurer <bmaurer@users.sourceforge.net>
792         
793         * XmlTextReader.cs: Reduces memory allocation when the reader is
794         not queried for some values.
795         * NameTable.cs: Now uses a custom hashtable to implement. As a
796         result, when Get (char[], int, int) is called, a string is only
797         allocated if it is actually a new entry.
798         (StrEqArray) Compares a string and a char[]
799         (AddEntry) Adds a new entry to the hashtable
800         (Entry) Represents a hashtable entry.
801
802 2003-06-20  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
803
804         * XmlUrlResolver.cs : several ResolveUri() fix. e.g. for external URIs.
805
806 2003-06-16  Ben Maurer <bmaurer@users.sourceforge.net>
807         * XmlUrlResolver.cs: really fixed #44231
808
809 2003-06-16  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
810
811         * XmlNodeReader.cs : fixed MoveToNextAttribute(). In some cases 
812           this method set current node null.
813         * XmlTextReader.cs : fixed GetAttribute (name, ns), which returned
814           String.Empty instead of null (expected value).
815         * XmlTextReader.cs,
816           XmlUrlResolver.cs,
817           XmlInputStream.cs : fixed BaseURI problem (bug #44231).
818
819 2003-06-15  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
820
821         * XmlNodeReader.cs : this [name] and this [name, ns] (and
822           GetAttribute() methods in turn) returns null instead of String.Empty.
823         * XmlTextWriter.cs : WriteStartAttribute() should try to use specified
824           prefix before auto-generating prefixes.
825           Implemented WriteBase64().
826
827 2003-06-13  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
828
829         * XmlNodeReader.cs : LookupNamespace () has refered invalid current
830           node for attributes. Modified to use private "document" property.
831
832 2003-06-10  Lluis Sanchez Gual <lluis@ximian.com>
833
834         * XmlTextWriter.cs: when adding an attribute with a namespace, a prefix must be automaticaly
835           generated, and a namespace declaration must be added. 
836         * XmlWriter.cs: the namespace for the prefix xmlns must be http://www.w3.org/2000/xmlns/
837
838 2003-06-10  Zoltan Varga  <vargaz@freemail.hu>
839
840         * XmlAttribute.cs: Accept a null prefix or namespaceURI.
841
842 2003-06-10  Duncan Mak  <duncan@ximian.com>
843
844         * XmlDocumentNavigator.cs (GetNode): Make it implement
845         IHasXmlNode.
846
847 2003-06-05  Lluis Sanchez Gual <lluis@ideary.com>
848
849         * XmlTextWriter.cs : Fixed bug. After calling for example WriteStartElement ("pref","ln","ns");
850           a call to LookupPrefix ("pref") when still writting attributes should 
851           return "ns", and it didn't.
852
853 2003-06-02  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
854
855         * XmlDocumentNavigator.cs : quick fix for MoveToFirstChild().
856         * XmlConvert.cs : fixed VerifyNCName() to check correctly.
857
858 2003-06-01  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
859
860         * XmlDocumentNavigator.cs : Compute document node one time.
861           MoveToFirstChild() should move to PIs and comments.
862
863 2003-05-30  Miguel de Icaza  <miguel@ximian.com>
864
865         * XmlReader.cs (ReadStartElement): Improve error message.  
866
867 2003-05-28  Lluis Sanchez Gual <lluis@ideary.com>
868
869         * XmlTextReader.cs : MoveToAttribute methods must set the enumerator to the right
870           position, since MoveToNextAttribute may be called after it. 
871           SetProperties(): attributes do not "inherit" the namespace.
872         * XmlDocument.cs: ReadNode(), ReadAttributeNode(): must keep the current reader position.
873
874 2003-05-27  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
875
876         * NameTable.cs : Add() sets the given name string interned.
877         * XmlParserContext.cs : added internal PushScope() and PopScope() to
878           hold stacks of xml:base, xml:lang and xml:space.
879         * XmlTextReader.cs : implemented XmlLang and XmlSpace (only as a
880           property for stacked attributes). Renamed Initialize() to Initialize-
881           Context(). Modified to use XmlParserContext.PushScope()/PopScope().
882
883 2003-05-26  Lluis Sanchez Gual <lluis@ximian.com>
884
885         * XmlReader.cs: Little fix to WriteAttributeString()
886
887 2003-05-24  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
888
889         * XmlAttribute.cs, XmlCharacterData.cs, XmlComment.cs, XmlDocument.cs,
890           XmlDocumentFragment.cs, XmlElement.cs, XmlEntity.cs, XmlLinkedNode.cs,
891           XmlNode.cs, XmlNotation.cs, XmlProcessingInstruction.cs, XmlReader.cs,
892           XmlSignificantWhitespace.cs, XmlText.cs, XmlWhitespace.cs:
893           Reverted the recent accessibility mistake (5/16).
894         * XmlDocument.cs, XmlNode.cs : moved actual CreateNavigator() logic 
895           from XmlNode to XmlDocument.
896
897 2003-05-18  Lluis Sanchez Gual <lluis@ideary.com>
898
899         * XmlQualifiedName.cs : Fixed bug in equality operator.
900
901 2003-05-18  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
902
903         * XmlTextWriter.cs : patch by Jonathan Hogg. Flush() does not close
904           any open attributes or elements. WriteWhitespace() checks state and
905           closes start tag.  Fixed WriteStringInternal() to replace CR/LF chars
906           when it is called inside attribute value.
907         * XmlException.cs : added .NET 1.1 .ctor.
908         * added XmlSecureResolver.cs (only stubbing).
909         * XmlAttribute.cs : set_InnerXml() should remove children.
910         * XmlAttribute.cs,
911           XmlElement.cs,
912           XmlDocumentFragment.cs,
913           XmlDocument.cs : removed XmlTextReader reuse (It was buggy stuff).
914         * XmlNode.cs : RemoveAll() should also remove all attributes.
915         * XmlTextRader.cs : .ctor() for attribute value reader should add
916           quotations at initialization, since it requires quote chars.
917         * XmlWriter.cs : WriteAttributeString() more correct xmlns check.
918
919 2003-05-16  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
920
921         * changed XPathNodeType modifier to internal *protected* override.
922         * XmlAttribute.cs : .ctor() now checks name validity e.g. xmlns.
923         * XmlAttribute.cs, XmlElement.cs : set_Prefix checks NCName validity.
924         * XmlAttributeCollection.cs : removed some incorrect TODO attributes.
925         * XmlDocument.cs ; CreateAttribute(name) now auto-completes xmlns NSURI
926           when the argument is "xmlns".
927         * XmlElement.cs : more compliant IsEmpty support. See also WriteTo().
928         * XmlNamespaceManager.cs : added initial "xml" and "xmlns" namespaces.
929         * XmlNode.cs : ser_InnerXml() throws InvalidOperationException.
930         * XmlNodeReader.cs : LookupNamespace() refactory. Fixed ReadInnerXml()
931           not to set error state for non-started XmlNodeReader.
932         * XmlTextReader.cs : fixed ReadAttributeValue() not to reset state.
933           BaseURI support. Fixed Initialize() to handle Attribute correctly.
934           SetProperty for attribute auto-completes xmlns NSURI.
935           Attribute and whitespace handling became more correct.
936           Don't parse external DTD if XmlResolver is null.
937         * XmlTextWriter.cs : implemented WriteEntityRef().
938           WriteStartAttribute() checks if ns does not equal to that of xmlns.
939         * XmlWriter.cs : trivial refactoring (WriteNode() xmldecl output).
940
941 2003-05-05  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
942
943         * XmlConvert.cs : IsInvalid() Now uses XmlConstructs.IsName(Start).
944           EncodeName() now correctly encodes invalid names.
945           Result string of ToString(DateTime) contains "fffffff".
946
947 2003-04-29  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
948
949         * XmlElement.cs : fixed IsEmpty (removed private field isEmpty).
950         * XmlNodeReader.cs : Fixed AttributeCount, each this[] (indexers),
951           MoveTo*Attribute(),
952           Fixed this[] to work correctly against XmlDeclarations.
953           Fixed ReadInnerXml() and ReadOuterXml() to call Read() correctly.
954           (which may prevent validations etc.)
955         * XmlReader.cs,
956           XmlNodeReader.cs,
957           XmlTextReader.cs : Fixed ReadString() to be compliant with each
958           other.
959         * XmlTextReader.cs : ReadInnerXml() now moves to next node correctly.
960
961 2003-04-27  Pedro Martínez Juliá  <yoros@wanadoo.es>
962
963         * XmlNode.cs: ensure to get a valid Uri in BaseUri when loading the
964         source document from a file.
965
966 2003-04-27  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
967
968         * XmlAttribute.cs : fixed WriteTo() and WriteContentTo() to write
969           content EntityReference correctly.
970         * XmlNodeReader.cs : many fix for EndElement handling (AttributeCount,
971           HasAttributes, indexers, MoveTo*Attribute() and Read() ).
972           Modified Skip() to call Read () explicitly.
973         * XmlTextReader.cs :
974           Fixed ReadInnerXml() which ignored EndElement token in certain cases.
975           Implemented MoveToAttribute (local, ns), and modified GetAttribute()
976           in relation to this change.
977           Attributes for XmlDeclaration are now correctly set.
978         * XmlTextWriter.cs : WriteRaw() is now different from WriteString().
979           Simplified WriteAttributes() for XmlDeclaration.
980
981 2003-04-26  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
982
983         * XmlTextReader.cs : fixed ReadInnerXml(). it was inconsistent with
984           Depth property fix.
985
986 2003-04-25  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
987
988         * XmlDocument.cs : fixed Load() to set baseURI correctly.
989         * XmlReader.cs : patch by Gonzalo. Fixed not to skip XmlDeclaration.
990         * XmlTextReader.cs :
991           fixed Depth. When it's on StartElement, Depth was already incremented.
992           fixed private SaveProperty(), which moved away its saved properties
993           when MoveToElement was called repeatedly.
994         * XmlTextWriter.cs : fixed WriteQualifiedName() to close start tag.
995         * XmlWriter.cs :
996           WriteAttributes() refactory (for XMLDecl).
997           WriteNode() don't Read() when the reader is Initial state, let other
998           invokation to Read(). In case of Element, it should write entire
999           element. In case of Attribute, it shouldn't Read().
1000           WriteStartDocument() should omit standalone decl. when there is no
1001           explicit value.
1002
1003 2003-04-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1004
1005         * XmlReader.cs: reverted last patch. It breaks System.Configuration 
1006         because 1. it considers XmlDeclaration as content and 2. always
1007         returns XmlNodeType.None.
1008         
1009
1010 2003-04-23  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
1011
1012         * Added missing ChangeLog of 4/4/2003.
1013         * XmlTextWriter.cs : patch by Erik. fixed WriteQualifiedName.
1014           (write prefix instead of ns.)
1015         * XmlInputStream.cs : file access mode fix (FileAccess.Read was missing)
1016         * XmlTextReader.cs : modified to call Read() instead of ReadContent().
1017           (It may be required for decorated reader such as XmlValidatingReader.)
1018           Changed Read() error message for mismatch end tag.
1019         * XmlDocument.cs : (ReadNode) friendly message for mismatch EndElement.
1020         * XmlReader.cs : Corrected misinterpreted MoveToContent() method.
1021
1022 2003-04-04  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
1023
1024         * XmlDocument.cs : Load() now closes the given XmlReader.
1025           Don't allow creation of XmlTextReader for Doctype. (workaround.)
1026         * XmlInputStream.cs : It now closes its internal stream explicitly.
1027         * XmlNode.cs : RemoveChild() bugfix for removing LastLinkedChild.
1028         * XmlNodeReader.cs : GetAttribute() bugfix for not-present attribute.
1029         * XmlParserInput.cs : added Close() method.
1030         * XmlReader.cs : MoveToContent() should (1) not Read in case of empty
1031           element, and (2) MoveToElement() in case of attribute.
1032         * XmlTextReader.cs : Close() now actually closes source TextReaders.
1033
1034 2003-03-26  Duncan Mak  <duncan@ximian.com>
1035
1036         * XmlTextWriter.cs (Write): A patch from Atsushi to fix
1037         prematurely ending the write, or something like that. It was
1038         causing us to chop off the end of the document when we're trying
1039         to generate XML Schemas.
1040
1041 2003-03-23  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
1042
1043         * XmlTextReader.cs : implemented ReadString().
1044           fixed ctor(string, XmlNodeType, XmlParserContext) - don't raise
1045           null reference exception when context is null.
1046         * XmlNodeReader.cs : fixed ReadString() - should ignore attributes etc.
1047           fixed Read() - when positioned at EndElement, it didn't progress.
1048           fixed HasAttribute - it didn't return false in all cases.
1049           fixed Name and LocalName - only limited type of nodes return names.
1050           fixed AttributeCount - in some cases it threw null ref exception.
1051
1052 2003-03-22  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
1053
1054         * XmlTextWriter.cs : WriteStartDocument doesn't set hasRoot=true, then
1055           WriteEndDocument without root element now raises an error correctly.
1056         * XmlDocumentNavigator.cs : (MoveToFirstChild) fixed bugzilla #36672.
1057           implemented BaseURI, NameTable, XmlLang, GetAttributes, GetNamespace,
1058           MoveToAttribute.
1059
1060 2003-03-22  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
1061
1062         * XmlElement.cs : RemoveAttribute now don't throws when specified
1063           attribute does not exist.
1064
1065 2003-03-21  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
1066
1067         * XmlNode.cs : add descriptions for some node type error.
1068
1069 2003-03-21  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
1070
1071         * XmlNodeArrayList.cs, XmlNodeListChildren.cs : bugzilla #39920 fix.
1072
1073 2003-03-19  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
1074
1075         * XmlDeclaration.cs : quick fix, not to use regex for set_Value.
1076
1077 2003-03-19  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
1078
1079         * XmlTextReader.cs : Fixed wrong notationdecl SYSTEM id read.
1080         * XmlInputStream.cs : Should allow versionless input stream entity.
1081
1082 2003-03-18  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
1083
1084         * added XmlParserInput.cs for multi xml document sources.
1085         * added DTDObjectModel.cs (maybe temporary).
1086         * XmlTextReader.cs :
1087           + fixed ctor to use XmlStreamReader. Allowed null XmlParserContext.
1088           + Some members such as LineNumber, ReadChar now uses XmlParserInput.
1089           + added support for Namespaces (namespace-ignorant parse available).
1090           + added support for XmlResolver.
1091           + replace SetReaderContext()/SetReaderFragment() with Initialize().
1092           + use NameTable in CreateNameString.
1093           + fixed ReadCData(). Now reads "]]]>" correctly.
1094           + support for DTD parse.
1095           + Read() now throws an error when it reached EOF while Depth > 0.
1096         * XmlAttribute.cs,
1097           XmlDocumentFragment.cs,
1098           XmlElement.cs : fix related to the changes of XmlTextReader.Initialize
1099         * XmlDocument.cs : ReadNode() now reads DocumentType.
1100         * XmlDocumentType.cs : implemented Entities, Notations, WriteTo().
1101         * XmlEntity.cs,
1102           XmlNotation.cs : added override LastLinkedChild (for doctype node).
1103         * XmlNamedNodeMap.cs : Remove() raises an error if target is read only.
1104         * XmlElement.cs : bugfix for node removal of set_InnerXml.
1105         * XmlNode.cs : added insertBeforeIntern() derived from InsertBefore().
1106           (to append child XmlEntity into XmlDocumentType correctly.)
1107         * XmlInputStream.cs : fixed to access file with FileAccess.Read.
1108
1109 2003-03-15  Duncan Mak  <duncan@ximian.com>
1110
1111         * XmlElement.cs (Name): Only append prefix + ':' when prefix is
1112         neither String.Empty nor null. Thanks to Simon Guindon for
1113         reporting the bug and Jackson for fixing this bug with me.
1114
1115 2003-03-15  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
1116
1117         * XmlConstructs.cs : fix "int IsXXX()" to reject negative value.
1118         * XmlDocument.cs : simplify Load(string url) to use XmlTextReader.
1119           fixed ReadNode(), it should call reader.Read() only on Initial state.
1120         * XmlInputStream.cs : Changed namespace. Added XmlStreamReader(stream)
1121           and XmlStreamReader (string). Fixed XmlInputStream(url) not to use
1122           System.Net.WebClient directly.
1123         * XmlParserContext.cs : baseURI never be null.
1124         * XmlTextWriter.cs : use WebName for Encoding instead of HeaderName.
1125         * XmlUrlResolver.cs : namespace change for XmlInputStream.
1126
1127 2003-03-12  Elan Feingold <efeingold@mn.rr.com>
1128
1129         * XmlTextReader.cs: When throwing a ReaderException, show what
1130         character was the culprit
1131
1132 2003-03-05  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
1133
1134         * XmlDocumentFragment.cs, XmlElement.cs :
1135           modified InnerXml (fragment type from Element to DocumentFragment).
1136
1137         * XmlElement.cs : fixed WriteTo() ns check.
1138         * XmlNamespaceManager.cs : MS.NET allows Add() used two or more times.
1139         * XmlNode.cs : fixed ConstructNamespaceManager().
1140
1141         * XmlConstructs.cs : added IsSpace, IsName, IsNameStart, IsNCName,
1142           IsPubid with an int arg.
1143         * XmlReader.cs : changed to use XmlChar.cs (its role is as same as
1144           XmlConstructs.cs).
1145         * XmlTextReader.cs :
1146           improved error messages with line info.
1147           / checking matching start and end tags.
1148           / prevents the apperance of multiple root elements. (patch by Erik)
1149           fixed and refactored ReadInnerXml() and ReadOuterXml()
1150           changed to use XmlChar.cs.
1151
1152         * XmlTextWriter.cs : changed to put element's xmlns at CloseStartTag ()
1153           (It will help c14n implementation.)
1154           / blocks multiple attribute output with element node.
1155
1156 2003-02-28  Alan Tam <Tam@SiuLung.com>
1157
1158         * XmlConvert.cs: fixed the most ToXXX(string) and ToString(XXX)
1159         methods to make them compatible with the XML Schema Spec from W3C
1160         ToString(TimeSpan) is still outstanding
1161
1162 2003-02-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1163
1164         * XmlDocument.cs:
1165         (Load (string)): hack to workaround some issues with Uri.Parse. Once
1166         Parse is fixed, remove the hack.
1167
1168 2003-02-16  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
1169
1170         * XmlQualifiedName.cs : fixed GetHashCode() to avoid null reference
1171         * XmlTextReader.cs : fixed ReadAttributeValue() to handle 
1172                 entity reference, and some refactory.
1173
1174 2003-02-16  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
1175
1176         * XmlUrlResolver.cs : WebClient.Credentials was not implemented yet.
1177
1178 2003-02-16  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
1179
1180         * XmlInputStream.cs : added (also contains internal XmlStreamReader).
1181         * XmlDocument.cs : Load () now can specify URL using XmlUrlResolver,
1182                 and can read non-UTF-8 stream.
1183         * XmlTextReader.cs : related to above stream fix.
1184         * XmlUrlResolver.cs : implemented GetEntity ().
1185
1186 2003-02-03  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1187
1188         * XmlTextWriter.cs: implemented WriteRaw (char[], int, int).
1189
1190 2003-02-02  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
1191
1192         * XmlTextReader.cs : implemented QuoteChar.
1193
1194 2003-01-26  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
1195
1196         * XmlNode.cs : implemented ReplaceChild.
1197           removed DocElem checking at InsertBefore.
1198         * XmlNodeReader.cs : fixed ReadString and Read for correct node info.
1199         * XmlText.cs : implemented CloneNode and SplitText.
1200
1201 2003-01-24  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1202
1203         * XmlCharacterData.cs: added XPathNodeType property.
1204
1205 2003-01-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1206
1207         * XmlTextWriter.cs: throw an exception if WriteEndDocument is
1208         called without a prior call to WriteStartDocument.
1209
1210 2003-01-21  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
1211
1212         * XmlNodeReader.cs : several fix to get more compatible with MS.NET.
1213
1214 2003-01-19  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
1215
1216         * XmlNamespaceManager.cs : fundamental change of LookupPrefix to return
1217                 null when no matching uri.
1218         * XmlElement.cs : removed unnecessary xmlns output.
1219         * XmlNode.cs : GetPrefixOfNamespace fix along with the change above.
1220         * XmlTextWriter.cs : LookupPrefix and WriteStartElementInternal fix 
1221                 along with the change above, and moved timing of 'xmlns' output 
1222                 to CloseStartElement.
1223         * XmlWriter.cs: modified WriteStartAttribute, same as yesterday.
1224
1225 2003-01-18  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
1226
1227         * XmlWriter.cs: modified WriteStartElement (see test for detail).
1228         Added WriteNode.
1229
1230 2003-01-13  Ville Palo <vi64pa@koti.soon.fi>
1231
1232         * XmlDocument.cs: Added CheckName () method to check names validity.
1233         
1234 2003-01-11  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1235
1236         * XmlTextReader.cs:
1237         (ReadOuterXml): use Depth property which return elementDepth, not depth.
1238
1239 2003-01-11  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
1240
1241         * XmlElement.cs : (by ville) XmlElement.set_InnerText event bugfix.
1242         * XmlTextReader.cs : some fix for ReadOuterXml().
1243
1244 2003-01-08  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
1245
1246         * XmlTextReader.cs : bugfix for attributes related to creation of 
1247           XmlAttribute *node*.
1248
1249 2003-01-08  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
1250
1251         * XmlTextReader.cs : bugfix for attribute values which have entity
1252           references.
1253
1254 2002-12-28  Ville Palo <vi64pa@koti.soon.fi>
1255
1256         * XmlDocument.cs: XmlTextWriter.Formatting == Indented when 
1257         calling Save () -methods.
1258         
1259 2002-12-28  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
1260
1261         * XmlNodeReader.cs : primitive reading implementation.
1262
1263 2002-12-28  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
1264
1265         * XmlElement.cs : quick fix for the incomplete patch of #35308 below.
1266
1267 2002-12-28  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
1268
1269         * XmlDocument.cs : removed inconsistent line-feed output.
1270         * XmlElement.cs, XmlTextWriter.cs :
1271                 fixed for bugzilla 35308 (default ns output)
1272         * XmlWhitespace.cs : limited output only when preserving whitespace.
1273
1274 2002-12-24  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
1275
1276         * XmlAttribute.cs, XmlDocument.cs, XmlTextReader.cs:
1277                 Implemented XmlTextReader.ReadAttributeValue().
1278                 Added internal ReadAttributeNodeValue().
1279                 Fixed XmlAttribute.InnerXml to use these methods.
1280         
1281         * XmlDocument.cs, XmlDocumentFragment.cs, XmlElement.cs, XmlNode.cs:
1282                 Implemented XmlDocument.ReadNode() and removed ConstructDOM().
1283                 Other changes are replacing them.
1284
1285 2002-12-24  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
1286
1287         * XmlDocument.cs: patch by Ville (fixed default PreserveWhitespace)
1288
1289 2002-12-21  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
1290
1291         * XmlElement.cs, XmlTextWriter.cs, XmlWriter.cs:
1292                 patch by JD Conley <jconley@winfessor.com>.
1293                 (Fix for xmlns attribute output.)
1294
1295 2002-12-05  Ville Palo <vi64p@koti.soon.fi>
1296
1297         * XmlQualifiedName.cs: Little fix to ToString () -method
1298
1299 2002-12-04  Tim Haynes  <thaynes@openlinksw.com>
1300
1301         * class/System.XML/System.Xml/XmlElement.cs: Made more refined
1302         checks on attributeNode to fix 32262.
1303
1304 2002-12-03  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
1305
1306         * XmlDocument.cs (CreateNavigator(XmlNode)) : reverted
1307         * XmlTextWriter.cs (WriteStartElementInternal):
1308           fixed when default namespace was specified, all descendants
1309           fail to omit the default namespace declarations.
1310         * XmlAttribute.cs,
1311           XmlDocument.cs,
1312           XmlNode.cs (internal XmlLang/XmlSpace) : implemented(defined)
1313         * XmlAttribute.cs,
1314           XmlDocumentFragment.cs,
1315           XmlElement.cs (set_InnerXml): now uses XmlLang/XmlSpace
1316         * XmlElement.cs (set_IsEmpty) : implemented
1317           (WriteTo) : removed my improper indenting (Writer already done)
1318         * XmlNode.cs (BaseURI) : fixed if ParentNode is null, NullPointerEx
1319           (ConstructDOM) : implemented when xmlReader isn't XmlTextReader
1320         ...and renamed XmlDocument.ConventionalParser to ReusableReader ;-)
1321
1322 2002-12-01  Atsushi Enomoto  <ginga@kit.hi-ho.ne.jp>
1323
1324         * XmlNode.cs (RemoveChild):
1325                 bugfixed when XmlNode is Document OwnerDocument is null
1326         * XmlDeclaration.cs (Value):
1327                 bugfixed regular expression pattern.
1328         * XmlDocument.cs (CreateNavigator): bugfixed access modifier.
1329
1330 2002-11-24  Duncan Mak  <duncan@ximian.com>
1331
1332         * XmlImplementation.cs (HasFeature): Fixed a typo. Thanks for
1333         Fabricio Barros Cabral (fx) on #mono for spotting it. This is his
1334         first patch to Mono! ;-)
1335
1336 2002-11-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1337
1338         * XmlNode.cs:
1339         (AppendChild): readded refChild != null condition before throwing
1340         "cannot insert this node in this position" exception. There's probably
1341         a better solution. Fixes #34191.
1342         (RemoveAll): changed following Atsushi instructions.
1343         
1344
1345 2002-11-13  Duncan Mak  <duncan@ximian.com>
1346
1347         * XmlElement.cs (IsEmpty): A temporary check-in to keep gtk-sharp
1348         compiling.
1349
1350 2002-11-14  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
1351
1352         * XmlDocument.cs : unified all constructors, added ConventionalParser,
1353                 implemented CloneNode() and CreateEntityReference(),
1354         * XmlEntityReference.cs : set_Value, WriteContentTo, WriteTo
1355                 set BaseURI to MonoTODO
1356         * XmlNode.cs : implemented PrependChild, modified ConstructDOM,
1357                 bugfix InsertAfter (incorrect prepending) and InsertBefore
1358                 (more than one DocumentElements hadn't caused errors)
1359         * XmlTextReader.cs : unified all constructors,
1360                 added internal SetReaderContext(), SetReaderFragment()
1361                 bugfix (syntax check of PUBLIC / getting internal subset)
1362
1363 2002-11-13  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
1364
1365         XmlAttribute.cs : set_InnerText, set_InnerXml, some check for set_Prefix
1366         XmlAttributeCollection.cs : (indexer) this[localName, namespaceURI]
1367         XmlCharacterData.cs : exchanged Data and Value
1368                 (for processing events and inheritance)
1369         XmlDocumentFragment.cs : set_InnerXml
1370         XmlSignificantWhitespace.cs : set_Value
1371         XmlTextReader.cs : ReadAttributeValue
1372
1373 2002-11-04  Atsushi Enomoto <gigna@kit.hi-ho.ne.jp>
1374
1375         XmlAttribute.cs: fixed missing internal 'OwnerElement''SetOwnerElement'
1376
1377 2002-11-03  Atsushi Enomoto <gigna@kit.hi-ho.ne.jp>
1378
1379         * XmlAttributeCollection.cs : checks owner element.
1380                 implemented CopyTo, InsertAfter, InsertBefore, Prepend,
1381                 Remove, RemoveAt, SetNamedItem.
1382                 removed some logics that sets 'Parent' (that should be null)
1383         * XmlDocument.cs : set_InnerXml, [PreserveWhitespace(incomplete)]
1384         * XmlDocumentFragment.cs : get_InnerXml, WriteContentTo, WriteTo
1385         * XmlElement.cs : implemented WriteTo, set_InnerText.
1386                 Fixed WriteTo() to add xmlns:* attributes when
1387                 writer.LookupPrefix() returned mismatching.
1388         * XmlNamedNodeMap.cs : compare not only name but localname and nsuri.
1389                 Removing different prefixes for the same uri now runs correct.
1390                 added SetNamedItem(XmlNode node, int position_to_insert).
1391         * XmlNode.cs : ConstructDOM (logically) creates XmlEntityReference,
1392                 XmlWhitespace, and XmlSignificantWhitespace
1393
1394 2002-10-31  Atsushi Enomoto <gigna@kit.hi-ho.ne.jp>
1395
1396         * XmlDocument.cs : implemented CreateDocumentFragment()
1397         * XmlElement.cs, XmlLinkedNode.cs :
1398                 moved LastLinkedChild from XmlElement to XmlLinkedNode.
1399         * XmlEntityReference.cs : must throw NotImplementedException.
1400         * XmlNode.cs :
1401               + implemented InsertBefore() and then implemented InsertAfter()
1402                 and modified AppendChild() to call it.
1403               + added logic to check ReadOnly, parent document equivalence,
1404                 and inserting any 'content' before/after DocumentElement.
1405               + implemented Clone() [it is equals to CloneNode() by MS doc.]
1406               + added logic in RemoveChild() to check parent of oldChild.
1407               + fixed ConstructNamespaceManager() to internal only.
1408
1409 2002-10-29  Atsushi Enomoto <gigna@kit.hi-ho.ne.jp>
1410
1411         * XmlAttribute.cs : add internal 'IsDefault' property
1412                             (equals to !Specified)
1413         * XmlImplementation.cs : added 'internalNameTable' property.
1414         * XmlDocument.cs :
1415             + now allows "" for 'standalone' in CreateXmlDeclaration.
1416             + implemented 'Implementation' property and constructor with it.
1417             + added logic for appending name table (but still no use)
1418             + implemented property 'DocumentType'
1419               (but without internalSubset parsing. wait for next update.)
1420         * XmlNode.cs :
1421             + modified AppendChild() and RemoveChild() to support fragment.
1422             + modified AppendChild() to remove newChild from its parent
1423               when newChild is already in the other place.
1424             + modified RemoveChild() to set parentNode null.
1425             + modified ConstructDOM() to create DocumentType,
1426               and fixed access modifier ('internal protected' to 'internal')
1427         * XmlLinkedNode.cs : fixed 'NextSibling' to return null
1428                 when its parent is null.
1429         * XmlDocumentFragment.cs : added internal override 'LastLinkedChild'
1430                 property to enable AppendChild() for this class.
1431         * XmlTextReader.cs : appended private publicId and systemId fields.
1432
1433 2002-10-28  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1434
1435         * XmlTextReader.cs: make it work when the underlying Stream is not
1436         'seekable'.
1437
1438 2002-10-26  Piers Haken <piersh@friskit.com>
1439
1440         * XmlNode.cs: add virtual property XPathNodeType
1441         * XmlAttribute.cs:
1442         * XmlComment.cs:
1443         * XmlDocument.cs:
1444         * XmlElement.cs::
1445         * XmlProcessingInstruction.cs:
1446         * XmlSignificantWhitespace.cs:
1447         * XmlText.cs:
1448         * XmlWhitespace.cs: implement XPathNodeType property
1449         * XmlDocumentNavigator.cs: use XPathNodeType property instead of switch
1450
1451 2002-10-26  Piers Haken <piersh@friskit.com>
1452
1453         * XmlDocumentNavigator.cs: return invalid XPathNodeType (-1) for unknown node types.
1454
1455 2002-10-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1456
1457         * XmlTextReader.cs: don't increment depth for entity references.
1458
1459 2002-10-22  Tim Haynes <thaynes@openlinksw.com>
1460
1461         * - Fixed the duplication of xmlns:xx = yy when serializing the
1462         XML for serialization
1463         
1464         Fixed the unnecessary parsing/serializing when adding assemblies
1465         for serialization 
1466
1467         Avoided setting the XmlNode.InnerXml property
1468         (as it's not implemented) 
1469
1470         Fixed the usage/implementation of
1471         XmlElement.GetElementsByTagName()
1472         
1473 2002-10-21  Duncan Mak  <duncan@ximian.com>
1474
1475         * XmlDocument.cs:
1476         * XmlElement.cs:
1477         * XmlNode.cs:
1478         * XmlTextReader.cs: Implementation for XmlNode.InnerXml from
1479         Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>.
1480
1481 2002-10-18  Duncan Mak  <duncan@ximian.com>
1482
1483         * XmlDocument.cs: Applied a patch by Atsushi Enomoto
1484         <ginga@kit.hi-ho.ne.jp>.
1485
1486 2002-10-12  A.Enomoto <ginga@kit.hi-ho.ne.jp>
1487
1488         * XmlDocument.cs (ImportNode): Implemented
1489
1490 2002-10-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1491
1492         * XmlDocument.cs: one more Load method implemented.
1493         * XmlTextReader.cs: Depth now works.
1494
1495 2002-09-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1496
1497         * XmlConvert.cs: IsInvalid is now internal.
1498         * XmlNamespaceManager.cs: implemented RemoveNamespace
1499         * XmlTextReader.cs: return BaseURI and Encoding from the parser.
1500         * XmlTextWriter.cs: implemented WriteName and WriteNmToken.
1501
1502 2002-09-19  Matt Hunter <mahunter@tconl.com>
1503
1504         * XmlElement.cs: Implementing SetAttributeNode(localName,namespaceURI)
1505         * XmlAttributeCollection.cs: Implemented Append (XmlAttribute) 
1506           
1507 2002-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1508
1509         * XmlConvert.cs: finished implementation.
1510         * XmlTextReader.cs: fixed #30239.
1511         * XmlTextWriter.cs: fixed #30240.
1512
1513 2002-09-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1514
1515         * XmlTextReader.cs: line and position begin with 1.
1516
1517 2002-09-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1518
1519         * XmlException.cs: added a new internal constructor for IXmlLineInfo
1520         and output line and position info in Message.
1521
1522         * XmlReader.cs: implemented missing bits.
1523
1524 2002-09-12      Piers Haken <piersh@friksit.com>
1525
1526         * XmlDocumentNavigator.cs: implement MoveToId()
1527
1528 2002-09-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1529
1530         * XmlTextWriter.cs: fixed bug #29886.
1531
1532 2002-08-26  Ravi Pratap  <ravi@ximian.com>
1533
1534
1535         * XmlAttribute.cs (InnerText): Implement getting this property.
1536
1537         * XmlNode.cs (InnerText): Ensure that we append only values of
1538         text nodes.
1539
1540 2002-08-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1541
1542         * XmlWriter.cs: made ws and namespaceManager protected. mcs has a bug
1543         that allowed compiling this.
1544         [ FIXME: filed bug #29435. mcs should have failed on this ]
1545
1546 2002-08-25  Tim Coleman <tim@timcoleman.com>
1547         * XmlNode.cs:
1548                 Change CreateNavigator to not be virtual.
1549         * XmlElement.cs:
1550                 Add set_Prefix and InnerText accessors.
1551         * XmlEntityReference.cs:
1552                 Add set_Value accessor.
1553         * XmlTextWriter.cs:
1554                 Make objects which should be private private.
1555         * XmlWriter.cs:
1556                 Remove WriteStartElementInternal abstract definition.
1557         * XmlValidatingReader.cs:
1558                 New stubs added.
1559
1560 2002-08-22  Jason Diamond <jason@injektilo.org>
1561
1562         * XmlAttributeCollection.cs, XmlElement.cs: Implementation of RemoveAll
1563         and RemoveAllAttributes courtesy of Matt Hunter <xrkune@tconl.com>.
1564
1565 2002-08-22  Jason Diamond <jason@injektilo.org>
1566
1567         * XmlElement.cs: Correction to previous GetElementsByTagName patch
1568         courtesy of Matt Hunter <xrkune@tconl.com>.
1569
1570 2002-08-22  Jason Diamond <jason@injektilo.org>
1571
1572         * XmlDocument.cs, XmlElement.cs: Added implementation of namepsace
1573         qualified GetElementsByTagName courtesy of Matt Hunter 
1574         <xrkune@tconl.com>.
1575
1576 2002-08-19  Jason Diamond <jason@injektilo.org>
1577
1578         * XmlDocument.cs, XmlElement.cs: Added implementation of 
1579         GetElementsByTagName courtesy of Matt Hunter <xrkune@tconl.com>.
1580
1581 2002-08-16  Jason Diamond <jason@injektilo.org>
1582
1583         * XmlElement.cs: Fixed writing out qualified elements courtesy of
1584         Marcus Bürgel <marcus.buergel@gmx.de>.
1585
1586 2002-08-13  Tim Coleman <tim@timcoleman.com>
1587         * XmlTextWriter.cs:
1588                 Partial implementation of WriteQualifiedName ().
1589
1590 2002-08-07  Kral Ferch <kral_ferch@hotmail.com>
1591         * XmlCharacterData.cs:  Implemented AppendData(), DeleteData(),
1592                 InsertData(), and ReplaceData().  These methods fire the
1593                 NodeChanging and NodeChanged events.
1594                 
1595         * XmlDocument.cs:  Fixed bugs in onNodeChanged() and onNodeChanging().
1596         
1597         * XmlNode.cs:  AppendChild() fires NodeInserting and NodeInserted events.
1598                 RemoveAll() and RemoveChild() fire NodeRemoving and NodeRemoved events.
1599         
1600 2002-08-03  Tim Coleman <tim@timcoleman.com>
1601         * XmlNamespaceManager.cs:
1602                 .Net allows the empty namespace to be redefined
1603                 at a later point, but the current implementation
1604                 did not.  This fixes a hashtable conflict.
1605
1606 2002-07-26  Tim Coleman <tim@timcoleman.com>
1607         * XmlTextWriter.cs:
1608                 When given a textwriter, check to see if it has a
1609                 null encoding. This was being done for other inputs
1610                 than a textwriter.
1611
1612 Wed Jul 24 13:16:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
1613
1614         * XmlTextReader.cs: rough line/column support.
1615
1616 2002-07-23  Duncan Mak  <duncan@ximian.com>
1617
1618         * XmlConvert.cs: Implement the ToDateTime method. ToDateTime
1619         (string, string []) is particularly strange.
1620
1621         * XmlException.cs: Remember to call the base serialization
1622         constructor.
1623
1624         * XmlNodeReader.cs: Keep a new variable to store the Depth. 
1625
1626 2002-07-14  Jason Diamond  <jason@injektilo.org>
1627
1628         * XmlAttribute.cs: Removed ownerElement field since we can reuse 
1629         parentNode field.
1630
1631         * XmlDocumentNavigator.cs: MoveToParent now moves to the OwnerElement
1632         if the current node is an attribute.
1633
1634         * XmlElement.cs: SetAttributeNode now sets the new attribute's
1635         owner element.
1636
1637 2002-07-12  Jason Diamond  <jason@injektilo.org>
1638
1639         * XmlDocument.cs: If null was passed in for prefix or namespaceURI when
1640         creating an element, use String.Empty instead.
1641
1642 2002-07-12      Piers Haken <piersh@friksit.com>
1643
1644         * XmlAttributeCollection.cs: implement some ItemOf indexers
1645         * XmlNamedNodeMap.cs: add internal 'Nodes' accessor for the nodeList field
1646         * XmlNode.cs: SelectNodes: return empty XmlNodeList, not null
1647
1648 2002-07-06  Ajay kumar Dwivedi <adwiv@yahoo.com>
1649
1650
1651 2002-10-26  Piers Haken <piersh@friskit.com>
1652
1653         * XmlDocumentNavigator.cs: return invalid XPathNodeType (-1) for unknown node types.
1654
1655 2002-10-23  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1656
1657         * XmlTextReader.cs: don't increment depth for entity references.
1658
1659 2002-10-22  Tim Haynes <thaynes@openlinksw.com>
1660
1661         * - Fixed the duplication of xmlns:xx = yy when serializing the
1662         XML for serialization
1663         
1664         Fixed the unnecessary parsing/serializing when adding assemblies
1665         for serialization 
1666
1667         Avoided setting the XmlNode.InnerXml property
1668         (as it's not implemented) 
1669
1670         Fixed the usage/implementation of
1671         XmlElement.GetElementsByTagName()
1672         
1673 2002-10-21  Duncan Mak  <duncan@ximian.com>
1674
1675         * XmlDocument.cs:
1676         * XmlElement.cs:
1677         * XmlNode.cs:
1678         * XmlTextReader.cs: Implementation for XmlNode.InnerXml from
1679         Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>.
1680
1681 2002-10-18  Duncan Mak  <duncan@ximian.com>
1682
1683         * XmlDocument.cs: Applied a patch by Atsushi Enomoto
1684         <ginga@kit.hi-ho.ne.jp>.
1685
1686 2002-10-12  A.Enomoto <ginga@kit.hi-ho.ne.jp>
1687
1688         * XmlDocument.cs (ImportNode): Implemented
1689
1690 2002-10-06  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1691
1692         * XmlDocument.cs: one more Load method implemented.
1693         * XmlTextReader.cs: Depth now works.
1694
1695 2002-09-22  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1696
1697         * XmlConvert.cs: IsInvalid is now internal.
1698         * XmlNamespaceManager.cs: implemented RemoveNamespace
1699         * XmlTextReader.cs: return BaseURI and Encoding from the parser.
1700         * XmlTextWriter.cs: implemented WriteName and WriteNmToken.
1701
1702 2002-09-19  Matt Hunter <mahunter@tconl.com>
1703
1704         * XmlElement.cs: Implementing SetAttributeNode(localName,namespaceURI)
1705         * XmlAttributeCollection.cs: Implemented Append (XmlAttribute) 
1706           
1707 2002-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1708
1709         * XmlConvert.cs: finished implementation.
1710         * XmlTextReader.cs: fixed #30239.
1711         * XmlTextWriter.cs: fixed #30240.
1712
1713 2002-09-15  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1714
1715         * XmlTextReader.cs: line and position begin with 1.
1716
1717 2002-09-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1718
1719         * XmlException.cs: added a new internal constructor for IXmlLineInfo
1720         and output line and position info in Message.
1721
1722         * XmlReader.cs: implemented missing bits.
1723
1724 2002-09-12      Piers Haken <piersh@friksit.com>
1725
1726         * XmlDocumentNavigator.cs: implement MoveToId()
1727
1728 2002-09-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1729
1730         * XmlTextWriter.cs: fixed bug #29886.
1731
1732 2002-08-26  Ravi Pratap  <ravi@ximian.com>
1733
1734
1735         * XmlAttribute.cs (InnerText): Implement getting this property.
1736
1737         * XmlNode.cs (InnerText): Ensure that we append only values of
1738         text nodes.
1739
1740 2002-08-26  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1741
1742         * XmlWriter.cs: made ws and namespaceManager protected. mcs has a bug
1743         that allowed compiling this.
1744         [ FIXME: filed bug #29435. mcs should have failed on this ]
1745
1746 2002-08-25  Tim Coleman <tim@timcoleman.com>
1747         * XmlNode.cs:
1748                 Change CreateNavigator to not be virtual.
1749         * XmlElement.cs:
1750                 Add set_Prefix and InnerText accessors.
1751         * XmlEntityReference.cs:
1752                 Add set_Value accessor.
1753         * XmlTextWriter.cs:
1754                 Make objects which should be private private.
1755         * XmlWriter.cs:
1756                 Remove WriteStartElementInternal abstract definition.
1757         * XmlValidatingReader.cs:
1758                 New stubs added.
1759
1760 2002-08-22  Jason Diamond <jason@injektilo.org>
1761
1762         * XmlAttributeCollection.cs, XmlElement.cs: Implementation of RemoveAll
1763         and RemoveAllAttributes courtesy of Matt Hunter <xrkune@tconl.com>.
1764
1765 2002-08-22  Jason Diamond <jason@injektilo.org>
1766
1767         * XmlElement.cs: Correction to previous GetElementsByTagName patch
1768         courtesy of Matt Hunter <xrkune@tconl.com>.
1769
1770 2002-08-22  Jason Diamond <jason@injektilo.org>
1771
1772         * XmlDocument.cs, XmlElement.cs: Added implementation of namepsace
1773         qualified GetElementsByTagName courtesy of Matt Hunter 
1774         <xrkune@tconl.com>.
1775
1776 2002-08-19  Jason Diamond <jason@injektilo.org>
1777
1778         * XmlDocument.cs, XmlElement.cs: Added implementation of 
1779         GetElementsByTagName courtesy of Matt Hunter <xrkune@tconl.com>.
1780
1781 2002-08-16  Jason Diamond <jason@injektilo.org>
1782
1783         * XmlElement.cs: Fixed writing out qualified elements courtesy of
1784         Marcus Bürgel <marcus.buergel@gmx.de>.
1785
1786 2002-08-13  Tim Coleman <tim@timcoleman.com>
1787         * XmlTextWriter.cs:
1788                 Partial implementation of WriteQualifiedName ().
1789
1790 2002-08-07  Kral Ferch <kral_ferch@hotmail.com>
1791         * XmlCharacterData.cs:  Implemented AppendData(), DeleteData(),
1792                 InsertData(), and ReplaceData().  These methods fire the
1793                 NodeChanging and NodeChanged events.
1794                 
1795         * XmlDocument.cs:  Fixed bugs in onNodeChanged() and onNodeChanging().
1796         
1797         * XmlNode.cs:  AppendChild() fires NodeInserting and NodeInserted events.
1798                 RemoveAll() and RemoveChild() fire NodeRemoving and NodeRemoved events.
1799         
1800 2002-08-03  Tim Coleman <tim@timcoleman.com>
1801         * XmlNamespaceManager.cs:
1802                 .Net allows the empty namespace to be redefined
1803                 at a later point, but the current implementation
1804                 did not.  This fixes a hashtable conflict.
1805
1806 2002-07-26  Tim Coleman <tim@timcoleman.com>
1807         * XmlTextWriter.cs:
1808                 When given a textwriter, check to see if it has a
1809                 null encoding. This was being done for other inputs
1810                 than a textwriter.
1811
1812 Wed Jul 24 13:16:19 CEST 2002 Paolo Molaro <lupus@ximian.com>
1813
1814         * XmlTextReader.cs: rough line/column support.
1815
1816 2002-07-23  Duncan Mak  <duncan@ximian.com>
1817
1818         * XmlConvert.cs: Implement the ToDateTime method. ToDateTime
1819         (string, string []) is particularly strange.
1820
1821         * XmlException.cs: Remember to call the base serialization
1822         constructor.
1823
1824         * XmlNodeReader.cs: Keep a new variable to store the Depth. 
1825
1826 2002-07-14  Jason Diamond  <jason@injektilo.org>
1827
1828         * XmlAttribute.cs: Removed ownerElement field since we can reuse 
1829         parentNode field.
1830
1831         * XmlDocumentNavigator.cs: MoveToParent now moves to the OwnerElement
1832         if the current node is an attribute.
1833
1834         * XmlElement.cs: SetAttributeNode now sets the new attribute's
1835         owner element.
1836
1837 2002-07-12  Jason Diamond  <jason@injektilo.org>
1838
1839         * XmlDocument.cs: If null was passed in for prefix or namespaceURI when
1840         creating an element, use String.Empty instead.
1841
1842 2002-07-12      Piers Haken <piersh@friksit.com>
1843
1844         * XmlAttributeCollection.cs: implement some ItemOf indexers
1845         * XmlNamedNodeMap.cs: add internal 'Nodes' accessor for the nodeList field
1846         * XmlNode.cs: SelectNodes: return empty XmlNodeList, not null
1847
1848 2002-07-06  Ajay kumar Dwivedi <adwiv@yahoo.com>
1849
1850         * XmlTextWriter: Fixed Indentation. IndentationOverridden should
1851                 not be set when inside a attribute.
1852
1853 2002-07-06  Ajay kumar Dwivedi <adwiv@yahoo.com>
1854
1855         * XmlTextWriter: In WriteStartElement, if namespace is null and 
1856                 prefix is null|empty do not write out xmlns=""
1857         
1858         * XmlWriter: WriteStartElement calls the virtual method with null
1859                 argument instead of empty string.
1860
1861 2002-07-05  Gonzalo Paniagua Javier <gonzalo@ximian.com>
1862
1863         * XmlTextReader.cs: implemented .ctor (Stream).
1864
1865 2002-06-26  Duncan Mak  <duncan@ximian.com>
1866
1867         * XmlNodeReader.cs: Implementation of most of the properties, and
1868         some of the related methods. 
1869
1870 2002-06-23  Piers Haken <piersh@friskit.com>
1871         
1872         * XmlDocumentNavigator.cs: implement Clone()
1873         * XmlElement.cs: remove bogus unimplemented override of InnerText
1874         * XmlNode.cs: implment SelectNodes/SelectSingleNode
1875         * XmlNodeArrayList.cs: new support class for SelectNodes
1876
1877 2002-06-21  Ajay kumar Dwivedi <adwiv@yahoo.com>
1878         
1879         * XmlQualifiedName: Name and Namespaces are never null. If null is passed
1880                 to the constructor, set them to empty strings.
1881                 Fixed the Operators.
1882         
1883 2002-06-18  Ajay kumar Dwivedi <adwiv@yahoo.com>
1884         
1885         * XmlTextReader.cs: HasLineInfo returns false instead of throwing an
1886         Exception.
1887
1888 2002-06-14  Duncan Mak  <duncan@ximian.com>
1889
1890         * XmlConvert.cs: Added CLSCompliant attributes to methods.
1891         
1892 2002-06-12  Duncan Mak  <duncan@ximian.com>
1893
1894         * XmlCharacterData.cs (Value): Throw an ArgumentException in the
1895         set block if the node is read-only.
1896
1897 2002-06-10  Ajay kumar Dwivedi <adwiv@yahoo.com>
1898         * XmlConstruct.cs : New Internal class with Helper methods for
1899         Checking XmlConstructs
1900         * XmlConvert.cs: Implemented most of the methods
1901
1902 2002-06-08  Duncan Mak  <duncan@ximian.com>     
1903
1904         * XmlDocument.cs (Load):
1905         Added bits to Load (string) for BaseURI support.
1906
1907         * XmlAttribute.cs (BaseURI): 
1908         * XmlDocument.cs (BaseURI): 
1909         * XmlEntity.cs (BaseURI): Implemented.
1910
1911 2002-05-27  Jason Diamond  <jason@injektilo.org>
1912
1913         * XmlDocumentNavigator.cs: Added file to directory.
1914
1915         * XmlNode.cs (CreateNavigator): Implemented.
1916         (InnerText): Implemented.
1917
1918         * XmlDocument.cs (NamespaceURI, Prefix): Return String.Empty instead of
1919         throwing exception.
1920         (Load(XmlReader)): Allow for namespace qualified attributes.
1921
1922         * XmlElement.cs: Implemented GetAttribute(string, string) and both 
1923         GetAttributeNode overloads.
1924         (SetAttributeNode(XmlAttribute)): Implemented.
1925
1926         * XmlNamedNodeMap.cs: Fixed copy/paste bugs in GetNamedItem(string, string)
1927         and RemoveNamedItem(string, string).
1928
1929         * XmlLinkedNode.cs (PreviousSibling): Implemented.
1930
1931         * XmlTextReader.cs: Added code to maintain the order of attributes as 
1932         they're parsed. XML doesn't require this but Microsoft's parser does it and
1933         matching them makes testing easier so now we have it, too.
1934
1935 2002-05-26  Miguel de Icaza  <miguel@ximian.com>
1936
1937         * XmlDocument.cs: Implement the Save methods.
1938
1939 2002-05-08  Mike Kestner  <mkestner@speakeasy.net>
1940
1941         * XmlNamedNodeMap.cs (SetNamedItem): Fixed a copy/paste bug.
1942
1943 2002-04-28  Duncan Mak  <duncan@ximian.com>
1944
1945         * XmlSignificantWhitespace.cs (Value):
1946         * XmlWhitespace.cs (Value): Added MonoTODO to the 'set'
1947         block. Added new private method, IsValidWhitespaceChar, for
1948         checking.
1949
1950 2002-04-16  Duncan Mak  <duncan@ximian.com>
1951
1952         * XmlParserContext.cs (NameTable): Fixed a typo in the set block.
1953
1954 2002-04-12  Duncan Mak  <duncan@ximian.com>
1955
1956         * XmlAttribute.cs (Prefix): Added preliminary code for set block,
1957         added comment on work that needs to be done here. A new MonoTODO item. 
1958
1959         * XmlDocument.cs (ctor): Corrected constructor signature, changed
1960         parameter from 'NameTable' to 'XmlNameTable'.
1961
1962         * XmlDocumentFragment.cs (InnerXml): Added missing set block.
1963
1964         * XmlCaseOrder.cs: Moved to System.Xml.XPath.
1965
1966 2002-04-10  Duncan Mak  <duncan@ximian.com>
1967
1968         * XmlNodeReader.cs: Initial stubs for the class.
1969
1970 2002-04-08  Kral Ferch  <kral_ferch@hotmail.com>
1971
1972         * XmlAttributes.cs: InnerXml getter, WriteContentTo, and WriteTo
1973         implementations.
1974         
1975         * XmlDeclaration.cs: WriteTo implementation.
1976         
1977         * XmlDocument.cs: InnerXml getter implementation.
1978         
1979         * XmlElement.cs: InnerXml getter implementation.
1980
1981         * XmlNode.cs: Removed MonoTODO attrib on OuterXml.
1982         
1983         * XmlSignificantWhitespace.cs: WriteTo implementation.
1984         
1985         * XmlText.cs: WriteContentTo and WriteTo implementation.
1986         
1987         * XmlTextWriter.cs: WriteRaw implementation.
1988         
1989         * XmlWhitespace.cs: WriteContentTo and WriteTo implementations.
1990
1991 2002-04-05  Kral Ferch  <kral_ferch@hotmail.com>
1992
1993         * XmlAttributes.cs: Added reminder MonoTODO to set NamespaceURI
1994         if prefix in constructor is one of the default ones.
1995         
1996         * XmlCharacterData.cs: Returns String.Empty for Value and Data
1997         even when constructed with null.
1998         
1999         * XmlDeclaration.cs: Value doesn't put encoding or standalone
2000         in if they are empty.
2001         
2002         * XmlDocument.cs: Implemented CreateNode methods and this caused
2003         the changes in the other files in this checkin.
2004         
2005         * XmlProcessingInstruction.cs: Returns String.Empty for Value and Data
2006         even when constructed with null.
2007         
2008         * XmlWhitespace.cs: Changed Value 'get' to return Data.
2009
2010 2002-04-01  Kral Ferch  <kral_ferch@hotmail.com>
2011
2012         * XmlTextWriter.cs: Impls for WriteEndDocument and WriteFullEndElement.
2013         
2014 2002-03-31  Kral Ferch  <kral_ferch@hotmail.com>
2015
2016         * XmlTextWriter.cs: Impls for LookupPrefix, WriteBase64,
2017         and WriteCharEntity.
2018         
2019         * XmlWrite.cs:  Fixed bug where attribute namespace decl
2020         was pushing a scope onto the namespace manager when it shouldn't
2021         have been.
2022         
2023 2002-03-31  Kral Ferch  <kral_ferch@hotmail.com>
2024
2025         * XmlTextWriter.cs: Some tweaks for WriteAttibuteString
2026         in different states (no open start element, in WriteState.Content mode).
2027         
2028 2002-03-29  Kral Ferch  <kral_ferch@hotmail.com>
2029
2030         * XmlTextWriter.cs: XmlLang and XmlSpace properties
2031         and WriteWhitespace.
2032         
2033         * XmlTextWriterOpenElement.cs: scope support for XmlLang
2034         and XmlSpace.
2035
2036 2002-03-29  Kral Ferch  <kral_ferch@hotmail.com>
2037
2038         * XmlTextWriter.cs: Working on Attribute methods.
2039         
2040         * XmlWriter.cs: Working on Attribute methods.
2041
2042 2002-03-28  Duncan Mak  <duncan@ximian.com>
2043
2044         * XmlDocument.cs (CreateWhitespace):
2045         (CreateSignificantWhitespace): Removed extraneous call to the ToCharArray
2046         method.
2047
2048         * XmlSignificantWhitespace.cs (Value): Removed MonoTODO attribute.
2049
2050 2002-03-26  Duncan Mak  <duncan@ximian.com>
2051
2052         * XmlDocument.cs (CreateDocumentType): Implemented.
2053
2054         * XmlNode.cs (Value): Implemented.
2055
2056         * XmlProcessingInstruction.cs (InnerText): Implemented. It works just
2057         like XmlCharacterData.
2058
2059         * XmlDeclaration.cs (CloneNode): 
2060         * XmlDocument.cs (CreateXmlDeclaration): Added missing constructor
2061         arguments.
2062
2063         * XmlCharacterData.cs (InnerText): Implemented. Funny that the
2064         docs say it is the "The concatenated values of the node and all
2065         the children of the node.". I wrote some test programs and
2066         couldn't get any of the derived nodes to AppendChild. For now,
2067         InnerText == Data == Value.
2068         (Substring): Fixed typo.
2069
2070         * XmlDeclaration.cs (XmlDeclaration): Fixed the constructor parameter signature.
2071
2072         * XmlImplementation.cs (CreateDocument): Implemented.
2073
2074 2002-03-25  Duncan Mak  <duncan@ximian.com>
2075
2076         * XmlDeclaration.cs: Rewrote the class, fixed formatting, added
2077         missing properties (InnerText, Value).
2078         
2079         * XmlDocument.cs (CreateXmlDeclaration): Implemented.
2080
2081 2002-03-23  Kral Ferch <kral_ferch@hotmail.com>
2082
2083         * XmlTextWriter.cs: Impls for BaseStream and
2084         Namespaces and WriteState.
2085         
2086         * XmlWriter.cs: WriteState and WriteStartElementInternal.
2087
2088 2002-03-23  Kral Ferch <kral_ferch@hotmail.com>
2089
2090         * XmlNodeListChildren.cs: made class internal
2091         instead of public.  Shouldn't be visible outside
2092         of System.Xml.
2093         
2094         * XmlTextWriter.cs: Implementations for Formatting,
2095         IndentChar, Indenting, QuoteChar, WriteStartDocument(standalone).
2096         Suppresses encoding on xml declaration if null stream passed in.
2097         Formats output including suppressing indentation for elements in
2098         mixed content mode.
2099         
2100         * XmlTextWriterOpenElement.cs: Initial checkin.
2101         XmlTextWriter uses stack of these objects to track
2102         state.
2103         
2104 2002-03-22  Mike Kestner  <mkestner@speakeasy.net>
2105
2106         * XmlElement.cs: impl HasAttribute(string name).
2107
2108 2002-03-22  Duncan Mak  <duncan@ximian.com>
2109
2110         * XmlElement.cs: Reformatted.
2111         (CloneNode) Corrected.
2112
2113         * XmlDocument.cs (CreateWhitespace):
2114         (CreateSignificantWhitespace): Implemented.
2115
2116         * XmlAttribute.cs (CloneNode): Changed the child's CloneNode to
2117         true, because Attributes have ChildNodes.
2118
2119 2002-03-21  Kral Ferch <kral_ferch@hotmail.com>
2120
2121         * XmlTextWriter.cs: WriteStartDocument tracks state, writes out
2122         xml declaration along with encoding.  WriteEndElement throws
2123         exception if no WriteStartElement exists.
2124
2125 2002-03-20  Duncan Mak  <duncan@ximian.com>
2126
2127         * XmlEntityReference.cs (CloneNode): Implemented.
2128
2129         * XmlException.cs (Message): Implemented. We need to cache the
2130         message string because SystemException doesn't expose 'message'
2131         from Exception.
2132
2133         * XmlText.cs (Value): Added in the missing Value property.
2134
2135 2002-03-20  Duncan Mak  <duncan@ximian.com>     
2136
2137         * XmlAttribute.cs (CloneNode): Implemented.
2138
2139         * XmlDocumentFragment.cs (CloneNode): Implemented.
2140
2141         * XmlElement.cs (CloneNode): Implemented.
2142
2143 2002-03-19  Duncan Mak  <duncan@ximian.com>
2144
2145         * XmlNotation.cs: Added to CVS.
2146
2147         * XmlAttribute.cs (CloneNode): First crack at the CloneNode method.
2148
2149         * XmlCDataSection.cs (CloneNode): Implemented.
2150
2151         * XmlDocumentFragment.cs: Reformatted and added the missing properties
2152         (InnerXml, OwnerDocument, ParentNode).
2153         (CloneNode): Implemented.
2154
2155         * XmlSignificantWhitespace.cs (CloneNode): Implemented.
2156         (Value) Implemented the 'get' property.
2157
2158         * XmlWhitespace.cs (Module): implemented.
2159
2160 2002-03-19  Jason Diamond <jason@injektilo.org>
2161
2162         * XmlDocument.cs: Fixed typo in Load that was duplicating the LocalName
2163         in the prefix.
2164
2165 2002-03-18  Jason Diamond <jason@injektilo.org>
2166
2167         * XmlTextReader.cs: Don't restore properties after reading last
2168         attribute on an element.
2169
2170         * XmlDocument.cs: Move back to element after reading attributes
2171         so that IsEmptyElement test succeeds.
2172
2173 2002-03-18  Kral Ferch <kral_ferch@hotmail.com>
2174
2175         * XmlNamespaceManager.cs: Implemented LookupPrefix.
2176         
2177         * XmlTextWriter.cs: Implemented namespace and prefix support.
2178
2179 2002-03-18  Kral Ferch <kral_ferch@hotmail.com>
2180
2181         * XmlTextReader.cs: Restores properties after
2182         reading last attribute on an element.
2183         
2184         * XmlNode.cs: AppendChild sets the parent
2185         on the child.
2186
2187 2002-03-17  Kral Ferch  <kral_ferch@hotmail.com>
2188
2189         * XmlCDataSection.cs: Formatting, Implementation for WriteTo.
2190
2191         * XmlComment.cs: Implementations for WriteTo and WriteContentTo.
2192         
2193         * XmlElement.cs: Fixed bug in WriteTo.
2194         
2195         * XmlProcessingInstruction.cs: Formatting.
2196         
2197         * XmlTextWriter.cs: Implementations for Close, WriteCData, WriteComment,
2198         fixes for WriteEndElement, WriteProcessingInstruction.
2199
2200 2002-03-17  Kral Ferch  <kral_ferch@hotmail.com>
2201
2202         * XmlDocument.cs: Implementations for WriteTo() and WriteContentTo(),
2203         had Load() add PIs to the document, moved onXXX methods to alphabetical
2204         order in the file.
2205         
2206         * XmlElement.cs: Implementations for WriteTo() and WriteContentTo().
2207         
2208         * XmlNode.cs: Implementations for InnerXml Get and OuterXml.
2209         
2210         * XmlProcessingInstruction.cs: Implementations for WriteTo() and
2211         WriteContentTo().
2212         
2213         * XmlTextWriter.cs: Implementations for WriteEndElement,
2214         WriteProcessingInstruction, WriteStartElement, and WriteString.
2215         
2216         * XmlWriter.cs: Implemented WriteStartElement() methods.
2217
2218 2002-03-15  Duncan Mak  <duncan@ximian.com>
2219
2220         * XmlEntity.cs: Added to CVS. Need to implement BaseURI and
2221         InnerText once I know what they do.
2222
2223         * XmlDocumentType.cs (XmlDocumentType): Fix the constructor now
2224         that we can properly chain constructors.
2225         (CloneNode): implemented.
2226         (WriteContentTo): Removed MonoTODO attribute as this method has no
2227         effect in this class.
2228
2229         * XmlProcessingInstruction.cs (Value): Added the missing Set
2230         block.
2231         (InnerText): Added in, but not implemented.
2232
2233 2002-03-14  Kral Ferch  <kral_ferch@hotmail.com>
2234
2235         * XmlTextWriter.cs: implemented constructors and 
2236         WriteCData and WriteComment.
2237
2238 2002-03-14  Duncan Mak  <duncan@ximian.com>
2239
2240         * XmlDocument.cs: Moved the NodeChanged EventHandler to its own
2241         file, and updated the callbacks to reflect the change.
2242         (XmlDocument): Added the NameTable constructor.
2243         (NameTable): Also the NameTable property.
2244
2245         * XmlNodeChangedEventHandler.cs: Added, replacing the version that
2246         was in XmlDocument.cs. It has two arguments now (object,
2247         EventArgs) , instead of one (object).
2248
2249 2002-03-14  Kral Ferch  <kral_ferch@hotmail.com>
2250
2251         * XmlWriter.cs: Formatting.
2252         
2253         * XmlTextWriter.cs: Initial checkin.
2254         
2255 2002-03-14  Duncan Mak  <duncan@ximian.com>
2256
2257         * Validation.cs: Removed, replaced by ValidationType.cs.
2258
2259         * ValidationType.cs: Added.
2260
2261 2002-03-13  Duncan Mak  <duncan@ximian.com>
2262
2263         * XmlException.cs: Made it [Serializable], implemented good ol'
2264         GetObjectData, and the serialization constructor.
2265
2266         * XmlNamedNodeMap.cs (SetNamedItem): Check for the Name property.
2267         (SetNamedItem): Reverted (added back in) the patch with the
2268         ReadOnly checks. "Don't doubt yourself, my son... you were right!"
2269
2270         * XmlNamedNodeMap.cs (GetEnumerator): piggyback on the ArrayList implementation.
2271         (GetNamedItem (string, string)): implemented.
2272         (RemoveNamedItem): implemented.
2273         (SetNamedItem): implemented.
2274
2275 2002-03-12  Kral Ferch  <kral_ferch@hotmail.com>
2276
2277         * XmlAttribute.cs: Moved a method from amongst properties down to
2278         it's alphabetical position in the methods section.
2279         
2280         * XmlNode.cs: Passes in 'this' to XmlNodeList constructor instead of
2281         last linked child.  Set XmlNode base class to return false for IsReadOnly().
2282         Implemented GetEnumerator() and RemoveChild().
2283         
2284         * XmlNodeListChildren.cs: Now stores the parent instead of the last child.
2285         This is to support the behavior that the Enumerator doesn't become invalid
2286         when changes to the children occur.  Flushed out rest of implementation for
2287         MoveNext, Current, and Reset.
2288
2289 2002-03-12  Duncan Mak  <duncan@ximian.com>
2290
2291         * XmlCharacterData.cs: Reformatted the properties for better readability.
2292
2293         * XmlLinkedNode.cs: Removed the awful boxy comments.
2294
2295         * XmlNamedNodeMap.cs (Count):
2296         (Item): Implemented. Tests will be coming.
2297
2298         * XmlEntityReference.cs: 
2299         * XmlSignificantWhitespace.cs: Implemented these classes except for
2300         the Clone, WriteContentTo and WriteTo methods. Will have to
2301         investigate into these later.
2302
2303 2002-03-11  Duncan Mak  <duncan@ximian.com>
2304
2305         * IHasXmlNode.cs: Added to CVS.
2306
2307 2002-03-08  Jason Diamond <jason@injektilo.org>
2308
2309         * XmlParserContext.cs: Added missing constructors and missing Encoding 
2310         property.
2311
2312         * XmlTextReader.cs: Start using the XmlParserContext class.
2313
2314 2002-03-08  Jason Diamond <jason@injektilo.org>
2315
2316         * XmlTextReader.cs: Implemented MoveToElement and MoveToFirstAttribute.
2317
2318 2002-03-08  Mike Kestner  <mkestner@speakeasy.net>
2319
2320         * XmlNode.cs (Item): Implemented both indexers.
2321
2322 2002-03-08  Jason Diamond  <jason@injektilo.org>
2323
2324         * DomEncodingType.cs, TreePosition.cs, XPathNodeType.cs, XmlDataType.cs,
2325         XmlExceptionCode.cs, XmlSortOrder.cs, XmlUtil.cs: Removed files.
2326
2327 2002-03-08  Jason Diamond  <jason@injektilo.org>
2328
2329         * XmlAttribute.cs: Attribute nodes are supposed to store their values
2330         as child nodes so updated to reflect that.
2331
2332         * XmlDocument.cs, XmlElement.cs, XmlNode.cs: Moved code that was
2333         duplicated in XmlDocument and XmlElement into XmlNode so that it
2334         wouldn't have to be duplicated in XmlAttribute, too.
2335
2336 2002-03-08  Kral Ferch <kral_ferch@hotmail.com>
2337
2338         * XmlNodeList.cs, XmlDocument.cs, XmlLinkedNode.cs,
2339         XmlNode.cs: Formatting.
2340         
2341         * XmlNodeListChildren.cs: Implementation of XmlNodeList
2342         for XmlNode.ChildNodes property.
2343         
2344         * XmlNodeListAsArrayList.cs: Removed file.  Using different
2345         data structure (circular list) in XmlNode so this file
2346         is no longer valid.
2347         
2348         * XmlDocument.cs, XmlElement.cs: New ChildNodes tests found
2349         bug in setter property of LastLinkedChild so fixed it.
2350         
2351 2002-03-06  Jason Diamond  <jason@injektilo.org>
2352
2353         * XmlInputSource.cs, XmlNames_1_0.cs, XmlParse.cs: Removed files.
2354         We already have a parser in XmlTextReader.
2355
2356         * XmlException.cs: Removed constructor accepting XmlInputSource.
2357
2358 2002-03-06  Kral Ferch <kral_ferch@hotmail.com>
2359
2360         * XmlNode.cs: Rewrote this class from scratch with
2361         MonoToDo attribs and NotImplementedExceptions.  Now defines an
2362         internal LastLinkedNode property to aid the new implementation.
2363         XmlNodes only have ref to owner doc and parent nodes now.
2364         
2365         * XmlLinkedNode.cs: Added NextLinkedSibling internal property
2366         and ref to next sibling to support walking our circular child
2367         node list.
2368         
2369         * XmlDocument.cs: Added ref to last child node and overrides
2370         XmlNode's internal LastLinkedChild property to support walking
2371         our circular child node list.
2372         
2373 2002-03-02  Kral Ferch <kral_ferch@hotmail.com>
2374
2375         * XmlProcessingInstructions.cs: Class was empty.  Implemented
2376         constructor, properties, and CloneNode() method.  Put in
2377         MonoToDo attrib for remaining methods.
2378
2379         * XmlComment.cs: Reformatted and put in MonoToDo attribs.
2380         Got rid of helper methods and fields since they were no
2381         longer needed.
2382
2383         * XmlLinkedNode.cs: Reformatted and put in MonoToDo attribs.
2384
2385         * XmlDocument.cs: Added code to Load(XmlReader) to create XmlComment,
2386         XmlCDataSection, and XmlProcessingInstruction nodes. Implemented
2387         Createxxx() methods for those three node types.
2388
2389 2002-03-02  Jason Diamond <jason@injektilo.org>
2390
2391         * XmlDocument.cs: Implemented the remaining CreateElement and
2392         CreateAttribute methods.
2393
2394         * XmlAttribute.cs: Re-implemented.
2395
2396         * XmlElement.cs: Set owner element on attributes. Reformatted.
2397
2398 2002-03-02  Jason Diamond <jason@injektilo.org>
2399
2400         * XmlTextReader.cs: Implemented MoveToNextAttribute().
2401
2402         * XmlDocument.cs: Reformatted. Adding missing methods and MonoTODO
2403         attributes. Create attribute nodes while loading. Implemented
2404         Load(string) and CreateTextNode().
2405
2406         * XmlCharacterData.cs, XmlText.cs: Re-implemented.
2407
2408         * XmlCDataSection.cs, XmlComment.cs: Call correct constructor in 
2409         XmlCharacterData.
2410
2411         * XmlNamedNodeMap.cs, XmlAttributeCollection.cs: Stubbed out.
2412
2413 2002-03-02  Mike Kestner <mkestner@speakeasy.net>
2414
2415         * XmlAttribute.cs : Using fix.
2416         * XmlDocument.cs (CreateAttribute(String)): Implement.
2417
2418 2002-03-02  Jason Diamond <jason@injektilo.org>
2419
2420         * XmlNamespaceManager.cs: Atomize prefixes and namespaces strings in 
2421         the name table.
2422
2423 2002-02-28  Jason Diamond <jason@injektilo.org>
2424
2425         * XmlDocument.cs, XmlNode.cs: Initial implementation of LoadXml 
2426         courtesy of Kral Ferch <kral.ferch@hotmail.com>.
2427
2428 2002-02-28  Jason Diamond <jason@injektilo.org>
2429
2430         * XmlException.cs, XmlReader.cs, XmlTextReader.cs: Reformatted, 
2431         added missing members and MonoTODO attributes.
2432         
2433         * XmlTextReader.cs: Throw XmlException instead of System.Exception.
2434
2435 2002-02-27  Jason Diamond <jason@injektilo.org>
2436
2437         * XmlElement.cs: Reformatted, added missing members and MonoTODO 
2438         attributes.
2439
2440 2002-02-26  Duncan Mak  <duncan@ximian.com>
2441
2442         * XmlCDataSection.cs: Initial implementation.
2443
2444         * NameTable.cs: Fixed the whole thing. Wrote a NUnit test to test
2445         it out. This should (hopefully) be correct.
2446
2447 2002-02-26  Jason Diamond <jason@injektilo.org>
2448
2449         * XmlTextReader.cs: Apparently Microsoft's implementation treats
2450         namespace declarations as attributes so we do now, too.
2451
2452         * XmlNamespaceManager.cs: HasNamespace fixed so that it only
2453         checks the current scope.
2454
2455 2002-02-26  Duncan Mak  <duncan@ximian.com>
2456
2457         * XmlDocumentType.cs: Added a few hacks here and there to
2458         temporarily fix the "I broke the build issue".
2459
2460 2002-02-25  Jason Diamond <jason@injektilo.org>
2461
2462         * XmlDocument.cs, XmlElement.cs, XmlNode.xs, XmlNodeList.cs,
2463         XmlNodeListAsArrayList.cs: Multiple fixes necessary to get
2464         simple test to pass. The existing code is really shitty so I'll
2465         probably start writing tests and refactoring before much else 
2466         can get done.
2467
2468 2002-02-25  Duncan Mak  <duncan@ximian.com>
2469
2470         * NameTable.cs: Implemented.
2471
2472         * XmlDeclaration.cs: It should inherit from XmlLinkedNode, not XmlNode.
2473
2474 2002-02-24  Duncan Mak  <duncan@ximian.com>
2475         
2476         * XmlNodeOrder.cs: Added to CVS.
2477
2478         * XmlQualifiedName.cs: Fixed a warning from Equals ().
2479
2480         * XmlTokenizedType.cs: Added to CVS.
2481
2482         * XmlUrlResolver.cs: Added to CVS with one TODO task.
2483
2484 2002-02-23  Duncan Mak  <duncan@ximian.com>
2485
2486         * XmlQualifiedName.cs: Fixed ToString () and added the operators
2487         (== and !=).
2488
2489 2002-02-23  Jason Diamond <jason@injektilo.org>
2490
2491         * XmlTextReader.cs: Added support for qualified attributes.
2492
2493 2002-02-23  Jason Diamond <jason@injektilo.org>
2494
2495         * XmlNamespaceManager.cs: Initial implementation.
2496         
2497         * XmlTextReader.cs: Added support for NamespaceURI property on
2498         elements.
2499
2500 2002-02-23  Nick Drochak <ndrochak@gol.com>
2501
2502         * ChangeLog: Add the change log to this directory
2503
2504         * XmlQualifiedName.cs: Fixed compile errors so it would build. Still has
2505         MonoTODO's