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