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