do not output xml declaration while serializing XmlDocument
[mono.git] / mcs / class / System.XML / System.Xml.Serialization / ChangeLog
1 2007-07-29  Konstantin Triger <kostat@mainsoft.com>
2
3         * XmlSerializationWriter.cs: do not output xml declaration while
4                 serializing XmlDocument.
5
6 2007-07-26  Atsushi Enomoto  <atsushi@ximian.com>
7
8         * XmlSerializationWriterInterpreter.cs : looks like XmlNode[]
9           serialization is a complicated mess. bug #81539.
10
11 2007-07-23  Vladimir Krasnov  <vladimirk@mainsoft.com>
12
13         * XmlTypeMapping.cs: fixed XmlSerializableMapping ctor, corrected when
14         qualified name is empty
15         * XmlSchemaExporter.cs: fixed SetSchemaXmlSerializableType when schema
16         provider method returns null schema
17
18 2007-06-30  Gert Driesen  <drieseng@users.sourceforge.net>
19
20         * CodeIdentifier.cs: Default ctor is public on 1.0 profile too.
21         * CodeIdentifiers.cs: Ctor taking bool is 2.0 only.
22
23 2007-06-27  Konstantin Triger <kostat@mainsoft.com>
24
25         * XmlTypeMapping.cs, XmlSchemaExporter.cs: add partial support for
26                 XmlSchemaProviderAttribute.
27
28 2007-05-27  Konstantin Triger <kostat@mainsoft.com>
29
30         * TypeTranslator.cs:
31                 1. Fix the construction of TypeData for nullable types: it should not
32                         be primitive since the primitive were loaded in static ctor.
33                 2. Rename primitiveNullableTypes -> nullableTypes to reflect 
34                         correctly the field purpose.
35                 3. Unify synchronization with synchronized hashtable.
36
37 2007-05-24  Konstantin Triger <kostat@mainsoft.com>
38
39         * TypeTranslator.cs: fix typo: set IsNullable flag for primitiveNullableTypes.
40
41 2007-05-14  Adar Wesley <adarw@mainsoft.com>
42
43         * XmlSchemaExporter.cs: added missing overload for method ExportAnyType.
44
45         * XmlSchemas.cs: added missing methods Add, AddReference, Contains,
46         GetSchemas.
47
48         * XmlSerializationReader.cs: added missing method AddReaderCount.
49
50         * XmlSerializationWriter.cs: added missing overload WriteStartElement.
51
52         * XmlSerializer.cs: added missing overload Serialize.
53
54 2007-04-25  Atsushi Enomoto  <atsushi@ximian.com>
55
56         * XmlCustomFormatter.cs : fix GenerateToXmlString() as well.
57
58 2007-04-25  Atsushi Enomoto  <atsushi@ximian.com>
59
60         * XmlCustomFormatter.cs :
61           in 2.0, use F instead of f for dateTime formatting.
62
63 2007-04-25  Atsushi Enomoto  <atsushi@ximian.com>
64
65         * XmlSchemas.cs : 1.1-only duplicate check does not seem to be
66           required. This is also a workaround for 1.x ws proxy generation.
67
68 2007-04-24  Atsushi Enomoto  <atsushi@ximian.com>
69
70         * XmlCustomFormatter.cs : ditto for reader method generation.
71         * SerializationCodeGenerator.cs : for generic nullable values it
72           needs to store ReadNullableString() result to a temporary variable.
73
74 2007-04-23  Atsushi Enomoto  <atsushi@ximian.com>
75
76         * TypeData.cs, XmlCustomFormatter.cs : generic nullable values did
77           not fit with non-nullable formatting. Fixed #80759 regression.
78
79 2007-04-20  Atsushi Enomoto  <atsushi@ximian.com>
80
81         * XmlTypeMapping.cs, ReflectionHelper.cs,
82           XmlSerializationReaderInterpreter.cs, SerializationCodeGenerator.cs:
83           support instantiation by private constructor.
84
85 2007-04-19  Konstantin Triger <kostat@mainsoft.com>
86
87         * XmlSchemaExporter.cs: do not export twice simple types.
88
89 2007-04-10  Atsushi Enomoto  <atsushi@ximian.com>
90
91         * TypeData.cs : forgot NET_2_0.
92
93 2007-04-10  Atsushi Enomoto  <atsushi@ximian.com>
94
95         * TypeData.cs : in get_ListItemTypeData(), check generic ICollection
96           as well as non-generic one. Fixed bug #81341. Though the type check
97           looks like an aggregation of bugfix hacks and there should be some
98           kind of sane refactoring, to throw best-suited errors.
99
100 2007-02-28  Atsushi Enomoto  <atsushi@ximian.com>
101
102         * SerializationCodeGenerator.cs : fix wrong name comparison:
103           Name->LocalName. Add hacky TARGET_JVM support (hope it is harmless).
104
105 2007-02-20  Atsushi Enomoto  <atsushi@ximian.com>
106
107         * SerializationCodeGenerator.cs,
108           XmlSerializationReaderInterpreter.cs :
109           Handle attributes on non-empty elements as well. Fixed bug #80131.
110
111 2007-02-20  Atsushi Enomoto  <atsushi@ximian.com>
112
113         * SerializationCodeGenerator.cs,
114           XmlSerializationReaderInterpreter.cs :
115           Handle empty root element.
116           Read out attribute parameters. To do that, split attribute
117           reader part from ReadMembers(), as it isn't invoked when the
118           element is empty.
119
120 2007-02-19  Atsushi Enomoto  <atsushi@ximian.com>
121
122         * XmlTypeMapElementInfo.cs : set nullable if the type is Nullable<T>.
123
124 2007-02-19  Atsushi Enomoto  <atsushi@ximian.com>
125
126         * XmlReflectionImporter.cs : CanBeNull() should return true when the
127           argument is generic nullable value type.
128
129 2007-02-19  Atsushi Enomoto  <atsushi@ximian.com>
130
131         * TypeData.cs, MapCodeGenerator.cs, XmlMemberMapping.cs,
132           TypeTranslator.cs : removed IsGenericNullable and added
133           set_IsNullable so that it could be simpler.
134
135 2007-02-19  Atsushi Enomoto  <atsushi@ximian.com>
136
137         * SerializationCodeGenerator.cs, XmlMappingAccess.cs,
138           SerializationCodeGeneratorConfiguration.cs : replaced HookDir with
139           XmlMappingAccess.
140
141 2007-02-19  Atsushi Enomoto  <atsushi@ximian.com>
142
143         * SerializationCodeGenerator.cs : hooks won't work unless they are
144           set. For WriteStartElement() it could simply embed the names.
145
146 2007-02-14  Atsushi Enomoto  <atsushi@ximian.com>
147
148         * XmlTypeMapMember.cs : don't use readonly [Foo]Specified property
149           as nil-condition member. Fixed bug #80759.
150
151 2007-02-07  Atsushi Enomoto  <atsushi@ximian.com>
152
153         * SoapReflectionImporter.cs : for primitive types, set predefined
154           namespaces, regardless of the actual specification.
155
156 2007-02-07  Atsushi Enomoto  <atsushi@ximian.com>
157
158         * XmlSerializationWriter.cs : WriteTypedPrimitive() does not support
159           XmlNode arrays.
160         * XmlSerializationWriterInterpreter.cs,
161           SerializationCodeGenerator.cs : so they have to be handled here.
162
163 2007-02-07  Atsushi Enomoto  <atsushi@ximian.com>
164
165         * XmlSerializationWriter.cs : WriteTypedPrimitive() infers the type
166           when the name is null (almost no need to do this, but it is easier
167           to remove NotWorking from extraneous tests and let them hush than
168           removing them).
169
170 2007-02-07  Atsushi Enomoto  <atsushi@ximian.com>
171
172         * XmlSerializationWriter.cs : callbacks could be kept null.
173
174 2007-01-19  Atsushi Enomoto  <atsushi@ximian.com>
175
176         * XmlMemberMapping.cs : uhoh, there is a nasty trick to output
177           Nullable info.
178
179 2007-01-18  Atsushi Enomoto  <atsushi@ximian.com>
180
181         * TypeData.cs : added get_IsGenericNullable.
182         * MapCodeGenerator.cs : in GetDomType(), return Nullable<T> when
183           the TypeData.IsGenericNullable.
184           Use GetDomType() instead of CodeTypeReference.ctor() to not lose
185           Nullable<T> info.
186         * XmlSchemaImporter.cs : added isNullable argument to GetTypeData()
187           so that it won't XmlSchemaElement.IsNillable.
188         * TypeTranslator.cs :
189           Fixed wrong TypeData modification against non-nullable stuff.
190           Added another GetTypeData() that takes isNullableRuntimeType so
191           that it won't miss XmlSchemaElement.IsNillable.
192           Added another GetPrimitiveTypeData() that takes nullable.
193
194 2007-01-15  Atsushi Enomoto  <atsushi@ximian.com>
195
196         * TypeData.cs : reject generic type definitions.
197         * TypeTranslator.cs : Make generic type names in XML compatible with
198           .net: foo_x0060_1 -> fooOfString.
199
200 2006-12-04  Atsushi Enomoto  <atsushi@ximian.com>
201
202         * SerializationCodeGenerator.cs, XmlCustomFormatter.cs :
203           GenerateToXmlString() needed hexBinary support as well. Since
204           XmlConvert.[To|From]BinHexString() are internal, use reflection.
205           Really fixed bug #79989 and #79990 for generated serializers.
206
207 2006-12-03  Gert Driesen  <drieseng@users.sourceforge.net>
208
209         * XmlSchemaExporter.cs: Emit xml name of enum-based default values.
210         Set XmlSchemaAttribute.Use to Required if no default value is defined,
211         and member is not an optional value type. Element should have minOccurs
212         1 if value type member has default value. Output flag enum type as
213         xsd list with restriction.
214         * XmlReflectionImporter.cs: Removed special casing of enums. Instead
215         of passing namespace of XmlAttribute to ImportTypeMapping, use the
216         default namespace for importing the member type.
217
218 2006-12-02  Gert Driesen  <drieseng@users.sourceforge.net>
219
220         * SerializationCodeGenerator.cs: Initialize out parameters if they
221         are value types. Fixed bug #79988.
222         * XmlSerializationReaderInterpreter.cs: Same.
223
224 2006-12-01  Atsushi Enomoto  <atsushi@ximian.com>
225
226         * XmlReflectionImporter.cs : implemented several missing check and 
227           support for XmlArrayAttribute. Fixed bug #78042.
228
229 2006-11-22  Atsushi Enomoto  <atsushi@ximian.com>
230
231         * XmlCustomFormatter.cs : handle hexBinary type. Fixed bug #79989
232           and #79990.
233
234 2006-11-22  Atsushi Enomoto  <atsushi@ximian.com>
235
236         Fixed bug #78611.
237         * TypeData.cs, TypeTranslator.cs: improved TypeData to actually store
238           "nullable" information. Introduced new primitiveNullableTypes pool
239           whose TypeData has 'true' for new IsNullable property. This
240           property is also used for non-primitive types.
241         * XmlReflectionImporter.cs : there, use TypeData.IsNullable instead
242           of IsValueType, to handle nullable types.
243
244 2006-11-20  Atsushi Enomoto  <atsushi@ximian.com>
245
246         * TypeTranslator.cs : Hari knew better way to do it.
247
248 2006-11-20  Atsushi Enomoto  <atsushi@ximian.com>
249
250         * TypeTranslator.cs : #if NET_2_0 for generic thingy.
251
252 2006-11-20  Atsushi Enomoto  <atsushi@ximian.com>
253
254         * TypeTranslator.cs : (GetTypeData) when the argument type is
255           Nullable<T>, use T instead. At run time (on both interpreter and
256           generated code) it is converted to T. Fixed bug #79803.
257
258 2006-11-17  Atsushi Enomoto  <atsushi@ximian.com>
259
260         * SerializationCodeGenerator.cs, TypeData.cs :
261           Now we differentiate TypeName, FullTypeName C# type names. It is
262           to create valid C# sources especially for generic types.
263           Fixed bug #79657.
264
265 2006-11-17  Atsushi Enomoto  <atsushi@ximian.com>
266
267         * XmlSerializationReader.cs : (ReadReferencedElement)
268           Sometimes there are array types in WSDL, which are not reflected
269           in client proxies. In SOAP messages, they are marked
270           soap-env:arrayType, so use it (this could coexist with xsi:type,
271           which indicates the type in WSDL). Fixed bug #79057.
272
273 2006-11-15  Atsushi Enomoto  <atsushi@ximian.com>
274
275         * XmlSerializationReader.cs : implement ToByteArray[Base64|Hex]().
276           removed extra ReadSerializable().
277         * XmlTypeMapping.cs : added XsdTypeName and XsdTypeNamespace.
278
279 2006-11-14  Atsushi Enomoto  <atsushi@ximian.com>
280
281         * SerializationCodeGenerator.cs,
282           SerializationCodeGeneratorConfiguration.cs :
283           make "XmlSerializerContract" and "BaseXmlSerializer" customizible.
284           (or it is impossible to use genxs more than twice in an assembly.)
285
286 2006-11-10  Atsushi Enomoto  <atsushi@ximian.com>
287
288         Fixed bug #77117.
289         * XmlReflectionImporter.cs : Compute nullable correctly. Elements are
290           nillable when its type is a reference type.
291         * XmlSchemaExporter.cs :
292           Set XmlTypeMapElementInfo.IsNullable from XmlTypeMapping.
293           Set XmlSchemaElement.IsNillable from XmlTypeMapElementInfo.
294
295 2006-11-09  Atsushi Enomoto  <atsushi@ximian.com>
296
297         * XmlSchemaImporter.cs : top-level element might also have no type
298           name specification, so just compare ElementType with anyType.
299
300 2006-11-09  Atsushi Enomoto  <atsushi@ximian.com>
301
302         * XmlSchemaImporter.cs : attributes might overlap by extending
303           base content models. Since invalid content models are rejected by
304           Compile(), simply ignore duplicating attributes. Note that it is
305           basically hack, which should not skip derived ones but use them (but
306           it is mostly harmless since the result is very unlikely to differ).
307
308 2006-11-08  Atsushi Enomoto  <atsushi@ximian.com>
309
310         * XmlSchemaImporter.cs : when top-level element is xs:anyType, all
311           complexTypes must be also imported.
312
313 2006-11-08  Atsushi Enomoto  <atsushi@ximian.com>
314
315         * XmlSchemaImporter.cs : ImportTypeMapping() raises exception when
316           the argument name is not bound to any elements.
317
318 2006-11-07  Atsushi Enomoto  <atsushi@ximian.com>
319
320         * XmlCustomFormatter.cs : consider null base64 byte array value.
321           Fixed bug #79805.
322
323 2006-11-02  Atsushi Enomoto  <atsushi@ximian.com>
324
325         * CodeIdentifier.cs : in 2.0 profile, .ctor() is exposed to
326           explicitly say Obsolete instantiation.
327         * CodeIdentifiers.cs : implemented case-insensitive mode.
328         * XmlSerializerAssemblyAttribute.cs : added missing .ctor().
329         * SoapIncludeAttribute.cs, XmlIncludeAttribute.cs :
330           in 2.0 profile it could also be applied to an interface.
331         * SoapReflectionImporter.cs,
332           XmlReflectionImporter.cs,
333           XmlMappingAccess.cs :
334           added missing ImportMembersMapping overload and moved actual
335           implementation to most lengthy-arglist one. To make it possible,
336           XmlMappingAccess is included in 1.x as internal enum.
337
338 2006-11-02  Atsushi Enomoto  <atsushi@ximian.com>
339
340         * XmlSchemaImporter.cs : initialize extensions from configuration.
341
342 2006-11-01  Atsushi Enomoto  <atsushi@ximian.com>
343
344         * SchemaImporterExtension.cs,
345           SchemaImporterExtensionCollection.cs : moved to S.X.S.Advanced.
346
347 2006-11-01  Atsushi Enomoto  <atsushi@ximian.com>
348
349         * XmlSerializationGeneratedCode.cs : removed InternalSyncObject.
350         * SerializationCodeGenerator.cs : since IXmlSerializerImplementation
351           became a class, it needs explicit "override".
352           Since InternalSyncObject is gone, it needs another lock target.
353         * IXmlSerializerImplementation.cs : removed.
354         * XmlSerializerImplementation.cs : added.
355         * XmlSerializer.cs : removed extra GenerateSerializer() overloads.
356           IXmlSerializerImplementation -> XmlSerializerImplementation.
357         * XmlSchemas.cs : removed Schemas. hacked Compile().
358           Now it implements IEnumerable<XmlSchema>.
359         * XmlSchemaEnumerator.cs : added missing type.
360
361 2006-11-01  Atsushi Enomoto  <atsushi@ximian.com>
362
363         * XmlAttributeEventArgs.cs : added ExpectedAttributes. Note that it
364           is not considered in XmlSerializationReader yet.
365         * XmlElementEventArgs.cs : added ExpectedElements. Note that it
366           is not considered in XmlSerializationReader yet.
367         * XmlSerializationReader.cs : added some overloads for 
368           UnknownElement()/-Attribute()/-Node().
369
370 2006-11-01  Atsushi Enomoto  <atsushi@ximian.com>
371
372         * CodeGenerationOptions.cs : [XmlEnum], [XmlIgnore] and
373           [Serializable].
374         * XmlSerializationCollectionFixupCallback.cs,
375           XmlNodeEventHandler.cs,
376           XmlSerializationReadCallback.cs,
377           UnreferencedObjectEventHandler.cs,
378           XmlSerializationWriteCallback.cs,
379           XmlAttributeEventHandler.cs,
380           XmlElementEventHandler.cs,
381           XmlSerializationFixupCallback.cs :
382           exclude [Serializable] in NET_2_0.
383         * XmlSerializerNamespaces.cs : removed beta-only AddInternal().
384         * XmlSerializerVersionAttribute.cs : removed [Obsolete].
385         * XmlMappingAccess.cs : it is [Flags].
386         * SchemaImporter.cs : implement Extensions.
387         * XmlAnyElementAttribute.cs,
388           XmlArrayAttribute.cs : added Order.
389           Note that it is not considered in XmlSerializer yet.
390
391 2006-10-25  Ankit Jain  <jankit@novell.com>
392
393         * SerializationCodeGenerator.cs (GenerateContract): Handle
394         'generateAsInternal' config option.
395
396 2006-10-10  Gert Driesen  <drieseng@users.sourceforge.net>
397
398         * XmlSerializer.cs: Output namespace declarations in same order as
399         MS.
400
401 2006-10-08  Gert Driesen  <drieseng@users.sourceforge.net>
402
403         * XmlSerializer.cs: Corrected exception message when deserialization
404         fails.
405         * SerializationCodeGenerator.cs: Added support for flag enums.
406         * XmlReflectionImporter.cs: Use InvalidOperationException wrapper for
407         all exceptions that occur while reflecting member. Validate default
408         values to match MS.
409         * SoapReflectionImporter.cs: Revert small part of previous patch as
410         XmlSerializer expects enum value.
411
412 2006-10-01  Gert Driesen  <drieseng@users.sourceforge.net>
413
414         * SoapReflectionImporter.cs: To match MS.NET, let exceptions that are
415         thrown during creation of map member bubble up. Only allow
416         SoapAttribute on primitive types and enums. Obtain default value for
417         attribute members.
418
419 2006-09-20  Vladimir Krasnov  <vladimirk@mainsoft.com>
420
421         * XmlTypeAttribute.cs: added property AnonymousType for 2.0
422
423 2006-09-12  Lluis Sanchez Gual  <lluis@novell.com> 
424
425         * System.Xml.Serialization/XmlSchemaImporter.cs: Added null check.
426
427 2006-09-11  Andrew Skiba <andrews@mainsoft.com>
428
429         * XmlSchemaImporter.cs,XmlMemberMapping.cs,SchemaImporter.cs: ifdef
430         TARGET_JVM
431
432 2006-09-05  Lluis Sanchez Gual  <lluis@novell.com> 
433
434         * XmlSchemaImporter.cs: In MS.NET 2.0, simple type arrays are mapped
435         to strings. Make sure maps returned by ImportClassSimpleType are always
436         simple type maps. All this fixes bug #77585.
437
438 2006-09-05  Lluis Sanchez Gual  <lluis@novell.com>
439
440         * XmlSchemaImporter.cs: Always import simple type unions
441           as string (like MS.NET does). Fixes bug #79234.
442
443 2006-08-25  Kornél Pál  <kornelpal@gmail.com>
444
445         * MapCodeGenerator.cs: Use assembly file version constants.
446
447 2006-07-24  Atsushi Enomoto  <atsushi@ximian.com>
448
449         * XmlMappingAccess.cs : new type in 2.0 RTM.
450         * XmlCodeExporter.cs, SoapCodeExporter.cs,
451           MapCodeGenerator.cs,
452           XmlSchemaImporter.cs, SoapSchemaImporter.cs, SchemaImporter.cs,
453           SchemaImporterExtension.cs, SchemaImporterExtensionCollection.cs,
454           XmlMemberMapping.cs, XmlSerializationReader.cs :
455           several 2.0 API fixes from betas to RTM.
456
457 2006-06-07  Lluis Sanchez Gual  <lluis@novell.com>
458
459         * XmlTypeMapMember.cs: Added GlobalIndex property.
460         * XmlTypeMapping.cs: When adding a member, initialize its GlobalIndex
461           property.
462         * SerializationCodeGenerator.cs:
463         * XmlSerializationWriterInterpreter.cs:
464         * XmlSerializationReaderInterpreter.cs: Use GlobalIndex instead of
465           Index to get/set the values from the input array, since some Index
466           values are shared between attribute and element members. Fixes
467           bug #78562.
468
469 2006-05-30  Atsushi Enomoto  <atsushi@ximian.com>
470
471         * SerializationCodeGenerator.cs,
472           XmlSerializerReaderInterpreter.cs : handle CDATA section as text
473           node. Fixed bug #78536.
474
475 2006-05-15  Gert Driesen  <drieseng@users.sourceforge.net>
476
477         * XmlCodeExporter.cs: Added bool argument to GenerateClass and 
478         GenerateEnum methods that specifies whether we're dealing with a type
479         for a top-level element. In GenerateClass, do not always add Namespace
480         argument for XmlRootAttribute if isTopLevel is false, and do not
481         emit XmlRootAttribute if isTopLevel is false and no arguments have been
482         added.
483         * SoapCodeExporter.cs: Added bool argument to GenerateClass and
484         GenerateEnum methods.
485         * MapCodeGenerator.cs: Added bool argument to GenerateClass and 
486         GenerateEnum methods.
487
488 2006-05-03  Lluis Sanchez Gual  <lluis@novell.com>
489
490         * SerializationCodeGenerator.cs: Allow generating serializer for
491           reading an XmlElement or XmlDocument as root element.
492           Properly generate jagged array creation.
493
494 2006-04-28  Atsushi Enomoto  <atsushi@ximian.com>
495
496         * XmlSerializationWriter.cs : fix cosmetic typo (bug #78228).
497
498 2006-04-26  Gert Driesen  <drieseng@users.sourceforge.net>
499
500         * SerializationCodeGenerator.cs: For flag enums, we should split on all
501         whitespace chars instead of only on blanks.
502         * XmlTypeMapping.cs: Same. Added ToEnum method for converting from
503         constant name(s) to integral enum value.
504
505 2006-04-26  Gert Driesen  <drieseng@users.sourceforge.net>
506
507         * SoapAttributes.cs: The DefaultValueAttribute.Value should be returned
508         as SoapDefaultValue instead of the attribute itself. Fixes bug #78205.
509
510 2006-04-24  Gert Driesen  <drieseng@users.sourceforge.net>
511
512         * XmlSchemaExporter.cs: Introduce XmlSchemaObjectContainer class to
513         allow XML Schema items to be added to its parent in the same order
514         as MS.NET (schema elements before complex types, ...). 
515
516 2006-04-20  Gert Driesen  <drieseng@users.sourceforge.net>
517
518         * XmlCodeExporter.cs: On 2.0 profile, CodeGenerationOptions defaults to
519         GenerateProperties. Use full type name for XML serialization attributes
520         instead of shortcut (without Attribute suffix). Always add Namespace
521         argument for XmlRootAttribute on classes. Added IsNullable argument for
522         XmlRootRootAttribute on classes. For attribute members, only output
523         Form argument for XmlSchemaForm.Qualified. Use MapCodeGenerator base
524         ctor that takes CodeGenerationOptions.
525         * SoapCodeExporter.cs: Use MapCodeGenerator base ctor that takes
526         CodeGenerationOptions.
527         * MapCodeGenerator.cs: Added CodeGenerationOptions to ctor. On 2.0
528         profile, emit GeneratedCodeAttribute, SerializableAttribute, 
529         DebuggerStepThroughAttribute and DesignerCategoryAttribute for classes.
530         To match MS.NET, emit attribute members before element members.
531         * XmlReflectionImporter.cs: Enums are never nullable.
532         * XmlSchemaImporter.cs: Set IsNullable on map using value of
533         XmlSchemaElement.IsNillable. Added LocateElement overload that takes
534         XmlSchemaElement.
535
536 2006-04-15  Gert Driesen  <drieseng@users.sourceforge.net>
537
538         * XmlSchemaImporter.cs: Make sure we pass TypeData for primitive types
539         to XmlReflectionImporter and SoapReflectionImporter to keep from
540         always ending up with the XSD type that directly maps to the CLR type.
541         * XmlReflectionImporter.cs: Added overloads taking TypeData instead of
542         Type. This improves performance by avoiding the use of 
543         TypeTranslator.GetTypeData for types imported from a schema and fixes
544         bug #77907.
545         * SoapReflectionImporter.cs: Same.
546
547 2006-04-11  Lluis Sanchez Gual  <lluis@novell.com>
548
549         * XmlSchemas.cs: In 1.1, don't allow adding two schemas
550         with the same namespaces. This is allowed in 2.0. Fixed
551         the Find() method to cope with this case. Based on a patch
552         by David Jung.
553
554 2006-03-22  Gert Driesen  <drieseng@users.sourceforge.net>
555
556         * XmlReflectionImporter.cs: Throw NotSupportException instead of
557         InvalidOperationException (IOE) if void is specified as type in
558         ImportTypeMapping. To match MS.NET, surround importing of type in 
559         try/catch block, and wrap any IOE in another IOE adding information 
560         on the type that was being reflected. In CreateTypeMapping, surround
561         creating of map member in try/catch block, and wrap any IOE in another
562         IOE adding information on the member that was being reflected. 
563         Modified exception message for missing enumeration value to match
564         MS.NET. In ImportTextElementInfo, throw IOE if Type is set in 
565         XmlTextAttribute, and it differs from type of reflected member when
566         schema type of member is primitive or enum. Fixed bug #77591.
567
568 2006-03-10  Gert Driesen  <drieseng@users.sourceforge.net>
569
570         * XmlSchemaExporter.cs: Import namespace of schema generated for
571         non-xsd primitive. Do not set zero-length TargetNamespace to avoid
572         emitting empty targetNamespace attribute in generated schema.
573         * XmlReflectionImporter.cs: Use WSDL types namespace for non-xsd
574         primitives.
575
576 2006-03-10  Gert Driesen  <drieseng@users.sourceforge.net>
577
578         * XmlTypeMapping.cs: EnumMapMember now also stores value for enums.
579         Modified EnumMapping.GetXmlName to use XmlCustomFormatter to support
580         serialization of integral value to enum constant name, and made sure
581         the exceptions we throw match those of MSFT. In EnumMapping.GetEnumName
582         throw InvalidOperationException if no matching enum constant exists.
583         In EnumMap ctor, initialize arrays holding XML names, enum names and
584         enum values.
585         * XmlSerializationReaderInterpreter.cs: Pass full type name to
586         EnumMapping.GetEnumName for construction of exception message.
587         * XmlSerializer.cs: In Deserialize, wrap InvalidOperationException
588         and InvalidCastException in another InvalidOperationException to match
589         MSFT. In Serialize, wrap InvalidOperationException, InvalidCastException
590         and the inner exception for a TargetInvocationException in an
591         InvalidOperationException to match MSFT.
592         * SerializationCodeGenerator.cs: In GenerateGetXmlEnumValue, use
593         XmlCustomFormatter.FromEnum in order to also support serialization
594         integral value to enum constant name. In 2.0 profile, throw
595         InvalidOperationException if numeric value cannot be serialized into
596         an enum constant value. In GenerateSingleEnumValue, no longer attempt
597         to parse unknown constant value but instead report it as
598         InvalidOperationException. Use string.Length instead of "" comparison
599         to check whether a string is empty. Fixed compiler warnings in 
600         generated code (possible empty statement).
601         * XmlSerializationWriterInterpreter.cs: Pass full type name to 
602         EnumMap.GetXmlName.
603         * XmlSchemaImporter.cs: Pass full type name to EnumMap.GetEnumName
604         to allow it to be used in exception messages.
605         * XmlReflectionImporter.cs: Use FieldInfo instead of MemberInfo for
606         enum fields. Use IsDefined instead of GetCustomAttributes for checking
607         if a certain attribute is defined. Use integral value of enum constant
608         in EnumMapMember ctor.
609         * SoapReflectionImporter.cs: Use FieldInfo instead of MemberInfo for
610         enum fields. Use IsDefined instead of GetCustomAttributes for checking
611         if a certain attribute is defined. Use integral value of enum constant
612         in EnumMapMember ctor.
613
614 2006-03-07  Lluis Sanchez Gual  <lluis@novell.com>
615
616         * XmlReflectionImporter.cs: Ignore the element namespace if
617           the schema form is set to Unqualified. Fixes bug #75019.
618
619 2006-02-22  Gert Driesen  <drieseng@users.sourceforge.net>
620
621         * SerializationCodeGenerator.cs: Omit return statement in ReadObject
622         method if GenerateReadListElement returns null. Fixes bug #77588.
623
624 2006-02-21  Lluis Sanchez Gual  <lluis@novell.com> 
625
626         * XmlSerializer.cs: Fix the previous fix.
627         
628 2006-02-21  Lluis Sanchez Gual  <lluis@novell.com>
629
630         * XmlSerializer.cs: Added option to avoid falling back to the
631         interpreted serializer if the code generator fails. To be used
632         in the test suite.
633
634 2006-02-16  Gert Driesen  <drieseng@users.sourceforge.net>
635
636         * TypeData.cs: Fixed the following issues when dealing with Array
637         SchemaType:
638         - if a type implements IDictionary, throw a NotSupportedException
639         - if a type implements ICollection, then an Add method must exist
640           which takes a single argument of a type to which the listitem type 
641           is assignable (meaning a base type or an interface that it 
642           implements). If such a method does not exist, then throw an
643           InvalidOperationException.
644         - if a type implements IEnumerable, then the listitem type is 
645           determined by the type of the Current property of the (IEnumerator)
646           type returned by the GetEnumerator() method or the private 
647           implementation of IEnumerable.GetEnumerator(). If there's no 
648           public Current property on the IEnumerator, then System.Object 
649           is assumed as listitem type. Similar as for types implementing
650           ICollection, an Add method must exist which takes a single argument 
651           of a type to which the listitem type is assignable (meaning a base
652           type or an interface that it implements). If such a method does not
653           exist, then throw an InvalidOperationException.
654
655 2006-02-16  Lluis Sanchez Gual  <lluis@novell.com>
656
657         * XmlSchemaImporter.cs: Support importing complex types with
658           simple content based on enums. Fixes bug #76848.
659
660 2006-02-11  Gert Driesen  <drieseng@users.sourceforge.net>
661
662         * SoapAttributeAttribute.cs: Set eol-style to CRLF.
663         * SoapElementAttribute.cs: Same.
664         * SoapEnumAttribute.cs: Same.
665         * SoapIncludeAttribute.cs: Same.
666         * SoapSchemaMember.cs: Same.
667         * SoapTypeAttribute.cs: Same.
668         * XmlArrayAttribute.cs: Same.
669         * XmlAttributeAttribute.cs: Same.
670         * XmlChoiceIdentifierAttribute.cs: Same.
671         * XmlElementAttribute.cs: Same.
672         * XmlEnumAttribute.cs: Same.
673         * XmlRootAttribute.cs: Same.
674         * XmlSchemaImporter.cs: Same.
675         * XmlTextAttribute.cs: Same.
676         * XmlTypeAttribute.cs: Same.
677         * XmlTypeMapping.cs: Same.
678         * SoapAttributeOverrides.cs: Fixed line endings. Set eol-style to CRLF.
679         * CodeIdentifiers.cs: Same.
680         * SoapCodeExporter.cs: Same.
681         * SoapAttributes.cs: Same.
682         * SoapIgnoreAttribute.cs: Same.
683         * SoapSchemaImporter.cs: Same.
684         * TypeMember.cs: Same.
685         * UnreferencedObjectEventArgs.cs: Same.
686         * XmlAnyAttributeAttribute.cs: Same.
687         * XmlAnyElementAttributes.cs: Same.
688         * XmlArrayItemAttributes.cs: Same.
689         * XmlAttributeEventArgs.cs: Same.
690         * XmlCodeExporter.cs: Same.
691         * XmlElementAttributes.cs: Same.
692         * XmlElementEventArgs.cs: Same.
693         * XmlIgnoreAttribute.cs: Same.
694         * XmlNamespaceDeclarationsAttribute.cs: Same.
695         * XmlNodeEventArgs.cs: Same.
696         * XmlReflectionMember.cs: Same.
697         * XmlSchemas.cs: Same.
698         * XmlSerializerNamespaces.cs: Same.
699         * XmlTypeMapMemberElement.cs: Set eol-style to native.
700
701 2006-02-10  Gert Driesen  <drieseng@users.sourceforge.net>
702
703         * CodeExporter.cs: Set eol-style to native.
704         * CodeGenerationOptions.cs: Same.
705         * CodeIdentifier.cs: Same.
706         * ImportContext.cs: Same.
707         * IXmlSerializable.cs: Same.
708         * IXmlSerializerImplementation.cs: Same.
709         * IXmlTextParser.cs: Same.
710         * MapCodeGenerator.cs: Same.
711         * ReflectionHelper.cs: Same. Fixed line endings.
712         * SchemaImporter.cs: Same.
713         * SchemaImporterExtensionCollection.cs: Same.
714         * SchemaImporterExtension.cs: Same.
715         * SchemaTypes.cs: Same.
716         * SerializationCodeGeneratorConfiguration.cs: Same.
717         * SerializationCodeGenerator.cs: Same.
718         * SerializationSource.cs: Same.
719         * SoapReflectionImporter.cs: Same.
720         * SoapSchemaExporter.cs: Same.
721         * TypeData.cs: Same.
722         * TypeTranslator.cs: Same.
723         * UnreferencedObjectEventHandler.cs: Same.
724         * XmlAnyElementAttribute.cs: Same.
725         * XmlArrayItemAttribute.cs: Same.
726         * XmlAttributeEventHandler.cs: Same.
727         * XmlAttributeOverrides.cs: Same.
728         * XmlAttributes.cs: Same.
729         * XmlDeserializationEvents.cs: Same.
730         * XmlElementEventHandler.cs: Same.
731         * XmlIncludeAttribute.cs: Same.
732         * XmlMapping.cs: Same.
733         * XmlMemberMapping.cs: Same.
734         * XmlMembersMapping.cs: Same.
735         * XmlNodeEventHandler.cs: Same.
736         * XmlReflectionImporter.cs: Same.
737         * XmlSchemaExporter.cs: Same.
738         * XmlSchemaProviderAttribute.cs: Same.
739         * XmlSerializationCollectionFixupCallback.cs: Same.
740         * XmlSerialiationFixupCallback.cs: Same.
741         * XmlSerializationGeneratedCode.cs: Same.
742         * XmlSerializationReadCallback.cs: Same.
743         * XmlSerializationReader.cs: Same.
744         * XmlSerializationReaderInterpreter.cs: Same.
745         * XmlSerializationWriteCallback.cs: Same.
746         * XmlSerializationWriterInterpreter.cs: Same.
747         * XmlSerializerAssemblyAttribute.cs: Same.
748         * XmlSerializer.cs: Same.
749         * XmlSerializerFactory.cs: Same.
750         * XmlSerializerVersionAttribute.cs: Same.
751         * XmlTypeMapElementInfo.cs: Same.
752         * XmlTypeMapMemberAttribute.cs: Same.
753         * XmlTypeMapMember.cs: Same.
754         * XmlTypeMapMemberNamespaces.cs: Same.
755
756 2006-02-09  Gert Driesen  <drieseng@users.sourceforge.net>
757
758         * XmlTypeMapping.cs: Modified GetRealTypeMap to return current map
759         if map represents enum. Fixes bug #77501.
760
761 2006-02-09  Gert Driesen  <drieseng@users.sourceforge.net>
762
763         * XmlSerializationWriter.cs: Implemented 2.0 version of FromEnum, and
764         CreateInvalidEnumValueException. Set eol-style to native.
765         * XmlCustomerFormatter.cs: Added FromEnum overload that takes name of
766         enum for which string value must be created. Set eol-style to native.
767         Modified FromEnum to behave more like MSFT's implementation:
768         - treat value as bit field.
769         - no longer return empty string if the value matches an id for which there's no corresponding
770         name.
771         - if one of the ids has value 0 and there's a match for the enum value
772         (with a zero length XML name) or the enum value is 0, then return the 
773         corresponding XML for the id with value 0.
774         - in 2.0 profile, throw InvalidOperationException if no match is found
775         for (part of) the enum value.
776         Modifies ToEnum to match the MSFT implementation (as described in
777         .NET 2.0 SDK):
778         - Expect hashtable containing enum names as key, and corresponding
779         integral numbers as value.
780         - Do not report exception for whitespace-only value.
781         - Support space (MS docs are not clear about this) delimited list 
782         of names.
783         - typeName is only used to construct exception message.
784
785 2006-02-09  Lluis Sanchez Gual  <lluis@novell.com>
786
787         * System.Xml.Serialization/XmlTypeMapMemberElement.cs: When
788         looking for the correct element definition for a member,
789         based on the value type, take into account subypes of the
790         declared types. Fixes bug #77447.
791
792 2006-02-07  Konstantin Triger <kostat@mainsoft.com>
793
794         * XmlReflectionImporter.cs: remove local name encoding for enums.
795
796 2006-01-08  Gert Driesen  <drieseng@users.sourceforge.net>
797
798         * XmlSchemaImporter.cs: Fixed line endings (to CRLF).
799
800 2006-01-07  Gert Driesen  <drieseng@users.sourceforge.net>
801
802         * XmlTypeMapping.cs: Fixed line endings.
803         * TypeTranslator.cs: Fixed line endings.
804
805 2005-12-07  Lluis Sanchez Gual  <lluis@novell.com>
806
807         * XmlSerializationReaderInterpreter.cs: When deserializing a "flat"
808         collection, don't create a new collection if the property already has a 
809         collection instance.
810         * SerializationCodeGenerator.cs: same as above. Also return an empty
811         string for flag enum default values.
812
813 2005-12-06  Konstantin Triger  <kostat@mainsoft.com>
814
815         * TypeTranslator.cs: TARGET_JVM: save additional types per AppDomain.
816
817 2005-12-05  Lluis Sanchez Gual  <lluis@novell.com>
818
819         * XmlSerializationReaderInterpreter.cs:
820         * SerializationCodeGenerator.cs: When deserializing a collection,
821         don't create a new collection if the property already has a 
822         collection instance. This does not apply to arrays. Changed how nullabe
823         array properties are set. Setting IsNullable=false to the property means
824         that it won't be set if the read array is null (so, if the property
825         already has a value, it will be kept).
826         Another change is that can't never be null (only arrays can).
827
828 2005-12-01  Lluis Sanchez Gual  <lluis@novell.com>
829
830         * TypeTranslator.cs: In GetTypeData, if an xmlType is specified for
831         a cli array type, consider it refering to the type of array elements.
832         This fixes bug #76860. Also added some locking.
833
834 2005-11-27   Konstantin Triger <kostat@mainsoft.com>
835
836         * TypeData.cs, XmlSchemaExporter.cs, TypeTranslator.cs: correctly
837                 export non-xsd primitive types.
838
839 2005-11-24  Vladimir Krasnov  <vladimirk@mainsoft.com>
840         
841         * XmlTypeMapping.cs: fixed GetXmlName method, added difference
842         of value serialization of flags and non-flags enums
843
844 2005-11-23  Konstantin Triger <kostat@mainsoft.com>
845
846         * XmlSchemaExporter.cs: do not import empty namespaces.
847
848 2005-11-17  Vladimir Krasnov  <vladimirk@mainsoft.com>
849         
850         * XmlSerializationReaderInterpreter.cs: fixed ReadEnumElement 
851         method, ReadEndElement should check XmlNodeType.
852         * XmlTypeMapping.cs: fixed GetXmlName method, it should not
853         write zero as default enum value.
854
855 2005-11-16  Vladimir Krasnov  <vladimirk@mainsoft.com>
856         
857         * XmlReflectionImporter.cs: fixed field order returned by 
858         reflection in method GetReflectionMembers. TARGET_JVM only.
859
860 2005-11-07  Lluis Sanchez Gual  <lluis@novell.com>
861
862         * XmlSchemaImporter.cs: Added support for restrictions with
863         embedded simple type definitions. 
864
865 2005-11-04  Atsushi Enomoto  <atsushi@ximian.com>
866
867         * XmlElementAttribute.cs : gimme Order; it fixes 100 or more
868           sys.xml.schema corcompare diffs.
869
870 2005-10-17  Lluis Sanchez Gual  <lluis@novell.com>
871
872         * SerializationCodeGenerator.cs: 
873         * XmlSerializationWriterInterpreter.cs: Arrays of XmlNode don't
874         need to be all XmlElments. Fix by Atsushi for bug #76288.
875
876 2005-09-26  Lluis Sanchez Gual  <lluis@novell.com>
877
878         * XmlTypeMapping.cs: Added ChoiceMember to ListMap.
879         In ListMap.FindElement, take into account the ChoiceMember
880         if set.
881         * SerializationCodeGenerator.cs:
882         * XmlSerializationReaderInterpreter.cs: For lists with a choice
883         member, fill the member with the corresponding enum values.
884         * XmlReflectionImporter.cs: Properly reflect the choice member
885         when applied to a list.
886         * XmlSerializationWriterInterpreter.cs: Track class changes.
887         * XmlTypeMapMemberElement.cs: Added ChoiceTypeData property.
888         All this fixes bug #76203.
889
890 2005-09-21  Lluis Sanchez Gual  <lluis@novell.com>
891
892         * SoapReflectionImporter.cs: Check the correct defaults
893         for attributes.
894
895 2005-09-21  Lluis Sanchez Gual  <lluis@novell.com>  
896
897         * SerializationSource.cs: Fix nullref.
898         * XmlReflectionImporter.cs: When registering a type using
899         IncludeType(), make sure it is added as a subtype and the
900         map for typeof(object) if it has already been imported.
901         Fixes bug #76049.
902
903 2005-09-21  Lluis Sanchez Gual  <lluis@novell.com> 
904
905         * XmlSerializationWriter.cs: Also internally serialize
906         arrays of object (see previous change).
907
908 2005-09-21  Lluis Sanchez Gual  <lluis@novell.com>
909
910         * XmlSerializationWriter.cs: Properly serialize arrays
911         of primitive types when not explicitely specified in
912         a container class. Based on a patch by Konstantin Triger.
913         Fixes bug #75986. 
914
915 2005-08-24  Lluis Sanchez Gual  <lluis@novell.com>
916
917         * TypeData.cs: Reset the hasPublicConstructor flag when the
918         type is an interface.
919         * XmlSerializationWriterInterpreter.cs: Get the Count property
920         from the object type instead of the property type (it didn't
921         work for IList). 
922         * ReflectionHelper.cs: In CheckSerializableType, don't trow
923         if the type is a collection interface. All this fixes
924         bug #75855.
925
926 2005-08-06  Lluis Sanchez Gual  <lluis@novell.com>
927
928         * XmlTypeMapping.cs: Added null check.
929
930 2005-08-05  Lluis Sanchez Gual  <lluis@novell.com>
931
932         * XmlTypeMapping.cs: Added ListMembers property that returns
933         members which are collections.
934         * SerializationCodeGenerator.cs:
935         * XmlSerializationReaderInterpreter.cs: Initialize collection
936         members to an empty collection by default. Fixes bug #75662.
937
938 2005-08-01  Gert Driesen  <drieseng@users.sourceforge.net>
939
940         * XmlMapping.cs: API compatibility fixes. Ctor is not protected
941         in .NET 1.1. SetKey is not obsolete in .NET 2.0 Beta 2.
942
943 2005-07-31  Gert Driesen  <drieseng@users.sourceforge.net>
944
945         * SoapAttributeAttribute.cs: Return zero-length string if 
946         AttributeName or DataType are null.
947         * SoapEnumAttribute.cs: Return zero-length string if Name is null.
948         * SoapIncludeAttribute.cs: Avoid using property in ctor.
949         * SoapSchemaMember.cs: Return zero-length string if MemberName is
950         null. MemberType should be XmlQualifiedName.Empty by default.
951         * SoapTypeAttribute.cs: Return zero-length string if TypeName is
952         null. Avoid using property in ctor.
953         * XmlArrayAttribute.cs: Return zero-length string if ElementName is
954         null. Avoid using property in ctor.
955         * XmlArrayItemAttribute.cs: IsNullable must be false by default.
956         Return zero-length string if DataType or ElementName are null. Avoid
957         using property in ctor.
958         * SoapElementAttribute.cs: Return zero-length string when DataType
959         or ElementName are null. Avoid using property in ctor.
960         * XmlAnyElementAttribute.cs: Return zero-length string when Name is
961         null. Avoid using property in ctor.
962         * XmlAttributeAttribute.cs: Avoid using property in ctor. Return
963         zero-length string if AttributeName or DataType are null.
964         * XmlChoiceIdentifierAttribute.cs: Return zero-length string when
965         MemberName is null.
966         * XmlElementAttribute.cs: Return zero-length string when DataType or
967         ElementName are null. Avoid using property in ctor.
968         * XmlEnumAttribute.cs: Avoid using property in ctor.
969         * XmlIncludeAttribute.cs: Avoid using property in ctor.
970         * XmlReflectionImporter.cs: AttributeName, ElementName and DataType
971         can no longer be null. Use check for zero-length string to determine
972         whether they are set. Corrected exception message when DataType is
973         set for complex type.
974         * XmlRootAttribute.cs: Return zero-length string if DataType or
975         ElementName are null. Avoid using property in ctor.
976         * XmlTextAttribute.cs: Return zero-length string if DataType is null.
977         * XmlTypeAttribute.cs: Return zero-length string if TypeName is null.
978
979 2005-07-14  Lluis Sanchez Gual  <lluis@novell.com>
980
981         * SerializationCodeGenerator.cs: In the generated serializer always
982         use the Object equality operator when comparing objects to serialize
983         to null, since those objects may have the equality operator
984         overloaded. This fixes bug #75543.
985
986 2005-07-01  Lluis Sanchez Gual  <lluis@novell.com>
987
988         * XmlCustomFormatter.cs: Properly read/write duration values.
989
990 2005-06-28  Lluis Sanchez Gual  <lluis@novell.com>
991
992         * XmlSerializer.cs: Fix race between XmlSerializer and the
993         serializer generator.
994
995 2005-06-14  Lluis Sanchez Gual  <lluis@novell.com>
996
997         * XmlTypeMapElementInfo.cs: Added new DataTypeName property for
998         getting the real xml type name of a member.
999         * XmlSerializationWriterInterpreter.cs: Use that new property
1000         to get the type name of primitive types. This should fix bug #75180.
1001
1002 2005-06-07  Lluis Sanchez Gual  <lluis@novell.com>
1003
1004         * SerializationCodeGenerator.cs: When reading members by order,
1005         call a MoveToContext after each member read. In the fixup method
1006         don't cast returned values if it is reading an object array.
1007         
1008         * XmlSchemaImporter.cs: In ImportDerivedTypeMapping, if the type
1009         being imported is a primitive type, create a wrapper class that
1010         inherits from the provided one. This fixes bug #68809.
1011         
1012         * XmlSerializationReader.cs: Properly report unreferenced objects.
1013         Created an overload of ReadTypedPrimitive that reports elements of
1014         unknown type. Implemented Referenced(). 
1015
1016 2005-05-30  Lluis Sanchez Gual  <lluis@novell.com>
1017
1018         * XmlReflectionImporter.cs: Don't ignore type namespaces explicitely
1019         set to the default namespace. This fixes bug #73035.
1020
1021 2005-05-12  Lluis Sanchez Gual  <lluis@novell.com>
1022
1023         * SoapReflectionImporter.cs: In ImportTypeMap, make sure that all
1024         types indirectly imported by this method use the same namespace. 
1025
1026 2005-05-09  Atsushi Enomoto  <atsushi@ximian.com>
1027
1028         * TypeTableEntry.cs : removed obsolete code.
1029
1030 2005-04-26  Lluis Sanchez Gual  <lluis@novell.com>
1031
1032         * XmlReflectionImporter.cs, SoapReflectionImporter.cs: ignore array
1033         properties which are read only. Fixes bug #74723.
1034
1035 2005-04-14  Lluis Sanchez Gual  <lluis@novell.com>
1036
1037         * XmlReflectionImporter.cs:
1038         * SoapReflectionImporter.cs:
1039         * TypeTranslator.cs: Encode local names withXmlConvert.EncodeLocalName
1040         where needed. Based on a patch by Konstantin Triger. 
1041
1042 2005-04-12  Lluis Sanchez Gual  <lluis@novell.com>
1043
1044         * XmlTypeMapping.cs: Added new XmlSerializableMapping class.
1045         * XmlSchemaExporter.cs: When exporting an IXmlSerializable type,
1046         export the schema that it defines. In ImportNamespace, removed
1047         check for default namespace, since it may be included from a non
1048         default namespace.
1049         * XmlReflectionImporter.cs: Create a special map for IXmlSerializable
1050         types. All this based on a patch by Konstantin Triger.
1051         
1052         * SerializationCodeGenerator.cs:
1053         * XmlMapping.cs:
1054         * XmlSerializationReaderInterpreter.cs:
1055         * SoapCodeExporter.cs:
1056         * XmlTypeMapMemberAttribute.cs:
1057         * XmlSerializationReader.cs:
1058         * XmlCodeExporter.cs: Fixed some warnings.
1059
1060 2005-04-10  Andrew Skiba  <andrews@mainsoft.com>
1061
1062         * XmlSerializer.cs: fixed a typo - wrong TARGET_JVM condition.
1063
1064 2005-04-03  Andrew Skiba  <andrews@mainsoft.com>
1065
1066         * XmlSerializer.cs: added TARGET_JVM that does not support on-the-fly
1067         code generation.
1068
1069 2005-03-30  Lluis Sanchez Gual  <lluis@novell.com>
1070
1071         * SerializationCodeGenerator.cs: 
1072         * XmlSerializationReaderInterpreter.cs: If the element being read is
1073         bound to a choice member, set the corresponding value.
1074         * XmlTypeMapMember.cs: Added helper SetValue method.
1075         * XmlTypeMapElementInfo.cs: Changed the type of ChoiceValue to Object,
1076         since now stores the enum value.
1077         * XmlReflectionImporter.cs: Properly import choice values.
1078         * XmlTypeMapMemberElement.cs: Added setter for the choice.
1079
1080 2005-03-29  Lluis Sanchez Gual  <lluis@novell.com>
1081
1082         * XmlReflectionImporter.cs: Added support for subclasses of XmlNode.
1083         This fixes bug #73901 and should fix #70384.
1084         * XmlSerializationReader.cs: When reading an object element, return
1085         an Object instance if the element has no children. This fixes bug #73974.
1086         * XmlSerializationWriter.cs: Support writing XmlNode[] as a primitive
1087         type (it is written as an element with those nodes as children). 
1088
1089 2005-03-08  Lluis Sanchez Gual <lluis@novell.com>
1090
1091         * XmlSchemaImporter.cs: Support importing schemas that define
1092         extra types in the standard xml schema namespace. When using encoded
1093         format, support the primitive types defined by the SOAP encoding
1094         namespace.
1095
1096 2005-03-04  Lluis Sanchez Gual <lluis@novell.com>
1097
1098         * ReflectionHelper.cs: Avoid endless loop.
1099         * XmlSchemas.cs: Added null check. Patches from MainSoft.
1100
1101 2005-02-07  Lluis Sanchez Gual  <lluis@novell.com>
1102
1103         * XmlSerializationReader.cs: After reading an href element, skip the
1104         whole element (it may not be an empty element). This fixes bug #72265.
1105
1106 2005-01-25  Lluis Sanchez Gual  <lluis@novell.com>
1107
1108         * XmlSchemaImporter.cs: When importing a default value of type enum,
1109         translate it from the schema value to the clr value.
1110
1111 2005-01-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1112
1113         * XmlSerializer.cs: only print the results if there's an error
1114         compiling.
1115
1116 2005-01-18 Gonzalo Paniagua Javier <gonzalo@ximian.com>
1117
1118         * SerializationCodeGenerator.cs: don't use _config if it has not been
1119         assigned.
1120
1121 2005-01-18  Lluis Sanchez Gual  <lluis@novell.com>
1122
1123         * XmlReflectionImporter.cs: Don't check the property type if it has
1124         an [XmlIgnore] attribute. This fixes bug #71332.
1125
1126 2005-01-14  Atsushi Enomoto  <atsushi@ximian.com>
1127
1128         * SerializationCodeGenerator.cs,
1129           XmlSerializationWriterInterpreter.cs : exchanged attribute
1130           serialization orders (XmlAnyAttribute <-> XmlNamespaceDeclarations).
1131           xmlns attributes in XmlAnyAttribute are not written.
1132
1133 2005-01-12  Atsushi Enomoto  <atsushi@ximian.com>
1134
1135         * SerializationCodeGeneratorConfiguration.cs,
1136           SerializationCodeGenerator.cs : Added some generation configuration:
1137                 <generateAsInternal>
1138                         write custom reader/writer as internal classes.
1139                 <noreader>, <nowriter>
1140                         They make generation of reader and/or writer optional.
1141         * XmlSerializerNamespaces.cs :
1142           Now it uses ListDictionary instead of Hashtable.
1143         * XmlSerializationWriter.cs : entries in XmlSerializerNamespaces are
1144           written unless there is already the same prefix-ns mapping.
1145
1146 2005-01-12  Lluis Sanchez Gual  <lluis@novell.com>
1147
1148         * XmlTypeMapElementInfo.cs: Added new IndexOfElement method.
1149         * XmlSchemaImporter.cs: When importing a base type of a complex type,
1150         make sure that the base class is always imported as a class and not
1151         as an array. If it has been imported as array, import it again.
1152         This fixes bug #70839. Other minor fixes as well.
1153         * XmlSerializationWriter.cs: Fixed warning.
1154
1155 2004-12-09  Lluis Sanchez Gual  <lluis@novell.com>
1156
1157         * SerializationCodeGenerator.cs: Yet another generation fix.
1158
1159 2004-12-09  Lluis Sanchez Gual <lluis@novell.com>
1160
1161         * SerializationCodeGenerator.cs: Fixed generation of enum literals.
1162
1163 2004-12-09  Lluis Sanchez Gual  <lluis@novell.com>
1164
1165         * XmlReflectionMember.cs: Added DeclaringType member.
1166         * XmlReflectionImporter.cs: When importing fields that belong to a
1167         base class, use the xml namespace of the base map for the member.
1168         This fixes bug #70309.
1169
1170 2004-11-30  Lluis Sanchez Gual  <lluis@novell.com>
1171
1172         * XmlCodeExporter.cs, XmlSerializer.cs, XmlSchemaImporter.cs: Fixed some
1173         compilation warnings.
1174
1175 2004-11-24  Lluis Sanchez Gual  <lluis@novell.com>
1176
1177         * SerializationSource.cs: Made SerializationSource abstract, and
1178         renamed Equals to BaseEquals to avoid missing GetHashCode warning
1179         (it does not really make sense in this case).
1180         * XmlSchemaExporter.cs, SerializationCodeGenerator.cs,
1181         XmlReflectionImporter.cs, XmlSerializationWriterInterpreter.cs,
1182         XmlSerializationReader.cs: Fixed warnings.
1183
1184 2004-10-19  Atsushi Enomoto  <atsushi@ximian.com>
1185
1186         * XmlSerializationWriter.cs : When namespace is an empty string,
1187           XmlTextWriter.LookupPrefix() will raise an error. Just skip it in
1188           such case.
1189
1190 2004-10-01  Lluis Sanchez Gual  <lluis@novell.com>
1191
1192         * MapCodeGenerator.cs: When the Object type is exported, export all
1193           derived maps. This was done in IncludeMetadata, but this method is
1194           not called by the xsd tool.
1195         * XmlCodeExporter.cs: In AddMappingMetadata, only generate the root
1196           attribute for primitive types and arrays.
1197         * XmlSchemaImporter.cs: Only export all object-derived maps if the
1198           Object type is explicitly referenced by an element.
1199         * XmlSerializationWriter.cs: Minor fix.
1200
1201 2004-09-28  Lluis Sanchez Gual  <lluis@novell.com>
1202
1203         * CodeIdentifier.cs: MakeValid now returns "Item" for an empty string.
1204           This fixes bug #66877.
1205
1206 2004-09-21  Lluis Sanchez Gual  <lluis@novell.com>
1207
1208         * SerializationCodeGenerator.cs, XmlSerializationReaderInterpreter.cs:
1209           when reading a primitive value in encoded format using
1210           ReadReferencingElement, provide the type name and namespace
1211           since the xsi type may not be present in the xml element. This
1212           fixes bug #65929.
1213
1214 2004-09-15  Lluis Sanchez Gual  <lluis@novell.com>
1215
1216         * MapCodeGenerator.cs: Moved generation of XmlInclude attributes from
1217           ExportDerivedTypes to the new ExportDerivedTypeAttributes method.
1218         * XmlReflectionImporter.cs: In ImportClassMapping, moved the call to
1219           ImportIncludedTypes to the end, to make sure that the current map has all
1220           needed data before derived maps are constructed.
1221         * XmlSchemaExporter.cs: Generate the base class of simple types that are
1222           not primitive types. Set the correct value for IsMixed in extended types.
1223         * XmlSchemaImporter.cs: In ImportSimpleContent, take into account that
1224           the base class of a simple type doesn't need to be a xsd type.
1225           All those patches fix bug #65654.
1226
1227 2004-09-03  Lluis Sanchez Gual  <lluis@novell.com>
1228
1229         * XmlSerializer.cs: When the XmlReader is created by XmlSerializer, use
1230           Normalization==true by default.
1231
1232 2004-09-02  Lluis Sanchez Gual  <lluis@novell.com>
1233
1234         * ReflectionHelper.cs, SoapReflectionImporter.cs, XmlReflectionImporter.cs: 
1235           In CheckSerializableType, add the option of ignoring types with private
1236           constructors. Some kind of lists can be deserialized
1237           even if the constructor is private. See bug #61464.
1238         * SerializationCodeGenerator.cs, XmlSerializationReaderInterpreter.cs:
1239           Before creating a list, check that it has a public constructor.
1240         * TypeData.cs: Added HasPublicConstructor property.
1241
1242 2004-09-01  Lluis Sanchez Gual  <lluis@novell.com>
1243
1244         * SerializationCodeGenerator.cs: Generate correct "HasValue" check for
1245           value list serialization.
1246         * XmlSchemaImporter.cs: Added some null checks.
1247
1248 2004-08-25  Lluis Sanchez Gual  <lluis@novell.com>
1249
1250         * SerializationCodeGenerator.cs, XmlSerializationReaderInterpreter.cs: 
1251           When deserializing an encoded method response, assign to the return value
1252           the first element of the message, whatever it is. The return type doesn't
1253           need to be Object, it seems to be true for all return types.
1254           
1255 2004-07-26  Lluis Sanchez Gual  <lluis@ximian.com>
1256
1257         * MapCodeGenerator.cs: CreateFieldMember now adds the field to the class,
1258           no need to add it after the call.
1259         * SoapSchemaImporter.cs: Implemented 2.0 constructors.
1260
1261 2004-07-23  Lluis Sanchez Gual  <lluis@novell.com>
1262
1263         * CodeGenerationOptions.cs: Made the class internal for the 1.1 profile.
1264         * ImportContext.cs: Implemented.
1265         * MapCodeGenerator.cs, SoapCodeExporter.cs, XmlCodeExporter.cs: Added new
1266           options for 2.0. Implemented support for generating properties instead of
1267           fields.
1268         * XmlSchemaImporter.cs: Added support for sharing types.
1269
1270 2004-07-15  Lluis Sanchez Gual  <lluis@novell.com>
1271
1272         * TypeTranslator.cs, XmlCustomFormatter.cs: Added support for base64. This
1273           xsd type is not part of the last schema specification, but the google api
1274           uses it and ms.net accepts it.
1275
1276 2004-07-12  Lluis Sanchez Gual  <lluis@ximian.com>
1277
1278         * ReflectionHelper.cs: Fixed bug when registering a map as exported.
1279           Thanks to Juan C. Olivares.
1280
1281 2004-07-10  Lluis Sanchez Gual  <lluis@ximian.com>
1282
1283         * CodeExporter.cs: Added private constructor.
1284         * CodeGenerationOptions.cs: Set the correct enum values.
1285         * CodeIdentifier.cs: Added private constructor.
1286         * SchemaImporter.cs: Added internal constructor.
1287         * XmlMapping.cs, XmlSerializer.cs: 2.0 api fix.
1288         * XmlMemberMapping.cs, XmlSchemaImporter.cs, XmlSerializationWriter.cs: Added 2.0 stubs.
1289         * XmlSchemaProviderAttribute.cs, XmlSerializerAssemblyAttribute.cs,
1290           XmlSerializerVersionAttribute.cs: Set correct attribute usage.
1291         * XmlSerializationReader.cs: Added missing setter for DecodeName.
1292
1293 2004-07-08  Lluis Sanchez Gual  <lluis@ximian.com>
1294
1295         * XmlSerializer.cs: Fix fix.
1296
1297 2004-07-08  Lluis Sanchez Gual  <lluis@ximian.com>
1298
1299         * IXmlSerializerImplementation.cs: Compile as internal in NET_1_1.
1300         * ReflectionHelper.cs: New method for generating map keys.
1301         * SerializationCodeGenerator.cs: Added support for generating the serializer
1302           contract class, needed for 2.0.
1303         * SerializationSource.cs: Use Type[] instead of ArrayList for storing
1304           extra types.
1305         * SoapReflectionImporter.cs, XmlReflectionImporter.cs: Assign extra types 
1306           as Type[]. Added check that makes sure that enums being serialized are
1307           public.
1308         * XmlMapping.cs: Added internal GetKey method.
1309         * XmlSerializer.cs: Added support for IXmlSerializerImplementation.
1310           Added first bits to support loading of serializers from pre-generated
1311           assemblies.
1312         * XmlSerializerFactory.cs: Mostly implemeted.
1313
1314 2004-07-02  Lluis Sanchez Gual  <lluis@ximian.com>
1315
1316         * CodeIdentifier.cs: Removed constructor for NET_2_0.
1317         * SoapCodeExporter.cs, SoapSchemaImporter.cs, XmlCodeExporter.cs, 
1318           XmlMapping.cs, XmlMemberMapping.cs, XmlReflectionImporter.cs,
1319           XmlSchemaExporter.cs, XmlSchemaImporter.cs, XmlSchemas.cs,
1320           XmlSerializationReader.cs, XmlSerializationWriter.cs, XmlSerializer.cs,
1321           XmlSerializerNamespaces.cs: Added 2.0 stubs.
1322         * XmlMembersMapping.cs, XmlTypeMapping.cs: 2.0 fixage.
1323         * IXmlTextParser.cs, CodeExporter.cs, CodeGenerationOptions.cs,
1324           ImportContext.cs, SchemaImporter.cs, SchemaImporterExtension.cs,
1325           SchemaImporterExtensionCollection.cs, XmlDeserializationEvents.cs,
1326           XmlSchemaProviderAttribute.cs, XmlSerializationGeneratedCode.cs,
1327           XmlSerializerAssemblyAttribute.cs, XmlSerializerFactory.cs,
1328           XmlSerializerVersionAttribute.cs: New files. More 2.0 stubs.
1329
1330 2004-07-02  Lluis Sanchez Gual  <lluis@ximian.com>
1331
1332         * SerializationCodeGenerator.cs: Generate check that the object being 
1333           serialized has a known type. Little cast fix.
1334         * XmlCustomFormatter.cs: Little fix in Single conversion.
1335
1336 2004-07-01  Lluis Sanchez Gual  <lluis@ximian.com>
1337
1338         * TypeData.cs: In the constructor, set the correct xml type name if the
1339           type is an array (for example, instead of StringCollection, use
1340           ArrayOfString).
1341
1342 2004-06-22  Lluis Sanchez Gual  <lluis@ximian.com>
1343
1344         * ReflectionHelper.cs: Correctly detect private types.
1345         * XmlCodeExporter.cs: Implemented missing method.
1346         * XmlSchemaImporter.cs: Allow import of root primitive types.
1347
1348 2004-06-18  Atsushi Enomoto  <atsushi@ximian.com>
1349
1350         * CodeIdentifier.cs, CodeIdentifiers.cs, MapCodeGenerator.cs,
1351           SerializationCodeGenerator.cs, SerializationSource.cs,
1352           TypeTranslator.cs, XmlAttributeOverrides.cs, XmlCustomFormatter.cs,
1353           XmlSerializationReader.cs, XmlSerializationWriter.cs,
1354           XmlSerializer.cs, XmlTypeMapMemberElement.cs, XmlTypeMapping.cs
1355           : Globalization fixes.
1356             In XmlCustomFormatter.GenerateToXmlString() time was not
1357             generated correctly.
1358             Replaced all CRLF XmlAttributeOverrides.cs into LF.
1359
1360 2004-06-13  Gert Driesen <drieseng@users.sourceforge.net>
1361
1362         * XmlSerializationWriter.cs: changed signature of protected method
1363         FromByteArrayBase64 to match MS.NET
1364
1365 2004-06-10  Lluis Sanchez Gual <lluis@ximian.com>
1366
1367         * MapCodeGenerator.cs, SoapCodeExporter.cs: Generate the same XmlInclude
1368           attributes that MS.NET generates.
1369         * SerializationCodeGenerator.cs: Avoid duplicate generation of maps in the
1370           same reader/writer.
1371         * XmlCodeExporter.cs: Added support for ignore flag in maps and members.
1372         * XmlReflectionImporter.cs: Changed GetReflectionMembers to match
1373           MS.NET member ordering. Patch by David Taylor.
1374         * XmlSchemaImporter.cs: When generating a choice member, set the ignore
1375           flag. The generated enum must also not be included in the schema.
1376         * XmlTypeMapMember.cs: Added ignore flag.
1377         * XmlTypeMapping.cs: The AttributeMembers property now returns the 
1378           attributes in the correct order.
1379
1380 2004-06-03  Gert Driesen <drieseng@users.sourceforge.net>
1381
1382         * XmlSerializationReader.cs: added missing protected members
1383         to fix API compatibility with MS.NET
1384         * XmlSerializationWriter.cs: added missing protected members
1385         to fix API compatibility with MS.NET
1386
1387 2004-06-02  Lluis Sanchez Gual <lluis@ximian.com>
1388
1389         * XmlSerializationReader.cs: Support schamea instance namespaces other than
1390           the 2001 one when reading the xsi type.
1391         * MapCodeGenerator.cs: Take into account that the root namespace and element
1392           name may have changed from one export to another of the same type. In
1393           this case the class attributes need to be regenerated.
1394         * SoapCodeExporter.cs, XmlCodeExporter.cs: Take the enum name from XmlType,
1395           not ElementName. Idem for namespace.
1396         * XmlReflectionImporter.cs: Set nullable property of XmlTypeMapping.
1397         * XmlRootAttribute.cs: Default value for nullable is true.
1398         * XmlSchemaImporter.cs: The root name for a class may change in some
1399           scenarios (for example, when the type is initially exported as part of
1400           another type and later exported as a root type).
1401         * XmlSerializationReader.cs: In GetXsiType(), if the type attribute is not
1402           found using the standard namespace, try getting the type using
1403           the 2000/10 and 1999 namespaces.
1404         * XmlTypeMapping.cs: Added IsNullable property. Updated SetRoot method ;-)
1405
1406 2004-05-26  Lluis Sanchez Gual <lluis@ximian.com>
1407
1408         * SerializationCodeGenerator.cs, XmlSerializationReaderInterpreter.cs:
1409           In encoded format, primitive types can be null. Read them using
1410           ReadReferencingElement, that already checks for the null tag.
1411
1412 2004-05-25  Lluis Sanchez Gual <lluis@ximian.com>
1413
1414         * XmlSerializationReader.cs: Check for empty element when reading an array
1415           element. This fixes bug #59003. Thanks Atsushi!
1416
1417 2004-05-07  Lluis Sanchez Gual <lluis@ximian.com>
1418
1419         * XmlSerializationWriter.cs: Implemented some missing methods.
1420           In .NET 1.0, encoded null elements use the attribute null="1", while in
1421           1.1 the attribute is nil="true".
1422         * XmlTypeMapping.cs: Little fix for nested classes.
1423
1424 2004-05-07  Lluis Sanchez Gual <lluis@ximian.com>
1425
1426         * XmlReflectionImporter.cs: Don't reset the internal tables at every
1427           ImportMembersMapping call. This fixes bug #58112. The problem is that
1428           it imported two different arrays (only different in the array item
1429           namespace) with the same name. Not sure what was this Reset needed for,
1430           everyting seems to work without it.
1431
1432 2004-05-05  Lluis Sanchez Gual <lluis@ximian.com>
1433
1434         * SerializationCodeGenerator.cs, XmlSerializationReaderInterpreter.cs: 
1435           When deserializing an encoded method response, if the return type of the
1436           method is Object, assign to it the first element of the message, whatever
1437           it is.
1438         * XmlSerializationReader.cs: 
1439         * SoapReflectionImporter.cs, XmlReflectionImporter.cs: Set IsReturnValue of
1440           the imported member.
1441         * TypeTranslator.cs: Added method to safely get a primitive TypeData.
1442         * XmlSerializationReader.cs: Don't throw an exception when the CLR type for
1443           a given xsi type is not found. Just read it as primitive type.
1444         * XmlTypeMapMember.cs: Added IsReturnValue property.
1445         * XmlTypeMapping.cs: Added ReturnMember property.
1446         * XmlSerializer.cs: Reference System.Data when compiling the serializer.
1447
1448 2004-05-05  Lluis Sanchez Gual <lluis@ximian.com>
1449
1450         * SerializationCodeGenerator.cs, XmlSerializationReaderInterpreter.cs: 
1451           When reading an object using the typeof(object) map, an emty xsi:type 
1452           means that it has to read the contents into an XmlNode[].
1453         * TypeData.cs: Return the correct full name for inner classes.
1454         * XmlSchemaImporter.cs: Improved detection of types that represent 
1455           "anyType", and must be mapped to XmlElement, XmlNode or Object.
1456         * XmlSerializationReader.cs: In GetXsiType(), find the type attribute using
1457           the correct namespace.
1458           In ReadTypedPrimitive(), read the element as XmlNode[] if the type is
1459           not known.
1460
1461 2004-05-05  Atsushi Enomoto  <atsushi@ximian.com>
1462
1463         * XmlSerializationWriter.cs : It do not have to handle schema
1464           namespace as special one.
1465
1466 2004-05-03  Lluis Sanchez Gual <lluis@ximian.com>
1467
1468         * XmlSerializationReaderInterpreter.cs: Removed the check for null 
1469           AttributeMembers collection. Even if there are no attribute members,
1470           attributes need to be read.
1471
1472 2004-05-03  Lluis Sanchez Gual <lluis@ximian.com>
1473
1474         * XmlSerializationReader.cs: In ReadSerializable(), take into account that
1475           the IXmlSerializable object may not read all the EndElement it read.
1476           This fixes bug #57413.
1477
1478 2004-05-03  Lluis Sanchez Gual <lluis@ximian.com>
1479
1480         * XmlSerializer.cs: Enable serializer generation by default.
1481
1482 2004-04-20  Lluis Sanchez Gual <lluis@ximian.com>
1483
1484         * TypeTranslator.cs: Mapped again anyUri, but now it is mapped to String.
1485         * XmlSchemaImporter.cs: If a map was initially imported as a class, but it
1486           turns out that it is an array, import it again as array. This fixes
1487           bug #57133.
1488
1489 2004-04-15  Lluis Sanchez Gual <lluis@ximian.com>
1490
1491         * XmlSchemaExporter.cs: When checking if a map has been exported or not,
1492           don't use type name for array types, since we can have different classes 
1493           that represent the same array type (for example StringCollection and 
1494           string[]).
1495
1496 2004-04-14  Lluis Sanchez Gual <lluis@ximian.com>
1497
1498         * TypeTranslator.cs, XmlCustomFormatter.cs: Removed map from Uri to anyUri,
1499           not present in MS.NET.
1500         * XmlSerializationWriter.cs: Improved error message.
1501
1502 2004-03-30  Lluis Sanchez Gual <lluis@ximian.com>
1503
1504         * SerializationCodeGenerator.cs, XmlReflectionImporter.cs, 
1505           XmlSerializationReader.cs, XmlSerializationReaderInterpreter.cs:
1506           Support deserialization of members of type XmlDocument. This fixes #56169.
1507
1508 2004-03-25  Lluis Sanchez Gual <lluis@ximian.com>
1509
1510         * SerializationCodeGenerator.cs: Generate an integer for unknown enum values.
1511           Use a special method to generate default values, since default enum values
1512           will come as integers, so a special cast is needed.
1513         * XmlSerializationReaderInterpreter.cs,
1514         * SerializationSource.cs, SoapAttributeAttribute.cs, SoapAttributeOverrides.cs,
1515           SoapAttributes.cs, SoapElementAttribute.cs, SoapEnumAttribute.cs, 
1516           SoapTypeAttribute.cs, XmlAnyElementAttribute.cs, XmlAnyElementAttributes.cs,
1517           XmlArrayAttribute.cs, XmlArrayItemAttribute.cs, XmlArrayItemAttributes.cs, 
1518           XmlAttributeAttribute.cs, XmlAttributeOverrides.cs, XmlAttributes.cs,
1519           XmlChoiceIdentifierAttribute.cs, XmlElementAttribute.cs, XmlElementAttributes.cs,
1520           XmlEnumAttribute.cs, XmlReflectionMember.cs, XmlRootAttribute.cs,
1521           XmlTextAttribute.cs, XmlTypeAttribute.cs: Had to change the implementation
1522           of SerializationSource. It can't keep and use the XmlAttributeOverride
1523           instances as key values, since those instances can be modified after the
1524           xml map has been generated. Now, SerializationSource generates a unique 
1525           string hash from XmlAttributeOverride and uses it for comparisons.
1526
1527 2004-03-24  Lluis Sanchez Gual <lluis@ximian.com>
1528
1529         * SerializationCodeGenerator.cs: Several fixes: generate valid names for 
1530           WriteRoot_ and ReadRoot_ methods. Cast result of ReadTypedPrimitive to
1531           the adequate type. Set the default value of members that do have a default
1532           value. Other minor fixes.
1533         * SoapReflectionImporter.cs, XmlReflectionImporter.cs: All maps must derive
1534           from typeof(object) map, even those that have another base class.
1535         * XmlCustomFormatter.cs: Fixed generation of conversion from char to string.
1536           It must serialize the char as number, not as character.
1537         * XmlSerializationReaderInterpreter.cs: Set the default value of members 
1538           that do have a default value.
1539         * XmlTypeMapping.cs: Added property MembersWithDefault, which returns a list
1540           of members that have a default value.
1541
1542 2004-03-15  Lluis Sanchez Gual  <lluis@ximian.com>
1543
1544         * XmlSchemaImporter.cs: Import IXmlSerializable types as DataSet, like in MS.NET.
1545           This fixes bug #55547.
1546
1547 2004-03-13  David Sheldon <dave-mono@earth.li>
1548
1549   * XmlSerializationWriter.cs: Implement WriteElementStringRaw with a
1550    byte [].
1551
1552 2004-03-13  David Sheldon <dave-mono@earth.li>
1553  
1554   * XmlTextAttribute.cs: Initialise dataType with zero-length string. 
1555    fixes test case that tests for this directly.
1556   * TypeTranslator.cs: Check for new zero-length dataType so we don't reject
1557    it. Treat it as null.
1558    
1559 2004-03-12  Lluis Sanchez Gual  <lluis@ximian.com>
1560
1561         * CodeIdentifier.cs: Limit the length of identifiers.
1562         * MapCodeGenerator.cs: Do not generate base class if it is an XmlNode.
1563           Generate types using GetDomType, so if the type is an array, it creates
1564           the correct combination of types.
1565         * SerializationCodeGenerator.cs, XmlTypeMapping.cs: When trying to parse
1566           an enum, if the string is empty and the enum has [Flags], then return 0
1567           as value. This fixes bug #55509.
1568         * XmlSchemaImporter.cs: Added check for redefines of attribute groups. They
1569           are not supported. Another check: a simple type cannot be enum if it does
1570           not have any enum facet.
1571           And another fix: use string as default type for attribtues.
1572         * XmlSchemas.cs: Fixed search for schema elements. An schema may import 
1573           other schemas. An imported schema would not be in the table, but its
1574           elements (although from another namespace) would be in the schema that 
1575           imported it. So, we need know to check for every schema in the table.
1576         * XmlSerializer.cs: Added environment variable to help debugging code 
1577           generator output.
1578
1579 2004-02-27  Lluis Sanchez Gual  <lluis@ximian.com>
1580
1581         * MapCodeGenerator.cs: Added IncludeMetadata property, which returns a list
1582           of XmlInclude attributes needed for the service class.
1583           IsMapExported: Removed check for object type, since it can now be exported.
1584           SetMapExported: Use the type name as key, since different importers may
1585           be used to create a map for the same type.
1586           GenerateClassInclude: Updated signature.
1587         * SoapCodeExporter.cs: Moved management of IncludeMetadata to MapCodeGenerator.
1588           GenerateClassInclude(): Updated signature.
1589         * SoapReflectionImporter.cs: Support SoapIncludeAttribute in array members.
1590           Implemented IncludeTypes.
1591         * XmlCodeExporter.cs: Moved management of IncludeMetadata to MapCodeGenerator.
1592           GenerateClassInclude(): Updated signature.
1593         * XmlMemberMapping.cs: Added missing property.
1594         * XmlReflectionImporter.cs: GetReflectionMembers must be private.
1595           Implemented IncludeTypes().
1596         * XmlSchemaExporter.cs: Added support for exporting typeof(object).
1597         * XmlSchemaImporter.cs: Changed the implementation of ImportDerivedTypeMapping.
1598           Now, it does a regular import and then assign the required base class to
1599           the imported map. In this way it is possible to assign a base type for a 
1600           map that was previously imported without a base type.
1601         * XmlTypeMapping.cs: Added internal method SetRoot().
1602
1603 2004-02-24  Lluis Sanchez Gual  <lluis@ximian.com>
1604
1605         * SerializationCodeGenerator.cs: Added support for generation of readers
1606           and writers for several maps in a single class. Added support for
1607           XmlMemberMapping. Fixed generation of serializers that use encoded format.
1608         * SoapAttributeAttribute.cs, SoapAttributeOverrides.cs, SoapAttributes.cs,
1609           SoapElementAttribute.cs, SoapEnumAttribute.cs, SoapTypeAttribute.cs, 
1610           XmlAnyElementAttribute.cs, XmlAnyElementAttributes.cs, XmlArrayAttribute.cs,
1611           XmlArrayItemAttribute.cs, XmlArrayItemAttributes.cs, XmlAttributeAttribute.cs,
1612           XmlAttributeOverrides.cs, XmlChoiceIdentifierAttribute.cs, XmlRootAttribute.cs,
1613           XmlElementAttribute.cs, XmlElementAttributes.cs, XmlEnumAttribute.cs,
1614           XmlReflectionMember.cs, XmlTextAttribute.cs, XmlTypeAttribute.cs:
1615           Added InternalEquals method.
1616         * XmlAttributes.cs: Removed a lot of unused code. Added InternalEquals method.
1617         * SoapReflectionImporter.cs: Set SerializationSource to generated maps.
1618         * XmlCustomFormatter.cs: Fixed little bug.
1619         * XmlMapping.cs: Added Source property. This a global identifier of the map.
1620         * XmlReflectionImporter.cs: Set SerializationSource to generated maps.
1621         * XmlSchemaImporter.cs: Set the correct value for IsNillable when importing
1622           mapping members.
1623         * XmlSerializationReaderInterpreter.cs, XmlSerializationWriter.cs: Minor fixes.
1624         * XmlSerializationWriterInterpreter.cs: WriteObject and WriteEnum were not
1625           correctly used.
1626         * XmlSerializer.cs: Added support for generation of serializers.
1627
1628 2004-02-18  Atsushi Enomoto  <atsushi@ximian.com>
1629
1630         * SerializationCodeGenerator.cs,
1631           SerializationCodeGeneratorConfiguration.cs:
1632           Added <namespaceImports> feature ("using XXX;" generation) support.
1633
1634 2004-02-17  Lluis Sanchez Gual  <lluis@ximian.com>
1635
1636         * XmlSerializationWriter.cs: When writing the root element, use a prefix
1637           if the namespace of the element is defined in the list of namespaces
1638           provided to the XmlSerializer. This fixes bug #54427.
1639
1640 2004-02-16  Lluis Sanchez Gual  <lluis@ximian.com>
1641
1642         * MapCodeGenerator.cs: Modified some methods to make them easier to reuse.
1643           Those are basically methods to add custom attributes to element and
1644           attribute members.
1645         * SoapCodeExporter.cs: Track changes in MapCodeGenerator.
1646         * XmlCodeExporter.cs: Better support for custom attribute generation for
1647           method parameters.
1648         * XmlCustomFormatter.cs: Added null check.
1649         * XmlSchemaImporter.cs: do not set IsOptionalValueType property to 
1650           attributes that are required.
1651         * XmlSerializationReaderInterpreter.cs: Method parameters may be serialized
1652           as attributes.
1653
1654 2004-02-11  Lluis Sanchez Gual  <lluis@ximian.com>
1655
1656         * MapCodeGenerator.cs: Changed some methods to make them easier to reuse.
1657         * TypeTranslator.cs: NMTOKENS, ENTITIES and IDREFS must be mapped to
1658           string, not string[].
1659         * XmlCodeExporter.cs: AddMappingMetadata(): improved attribute generation
1660           for array parameters. In general, improved generation of schema Form 
1661           property.
1662         * XmlMemberMapping.cs: Added Form property.
1663         * XmlReflectionImporter.cs: Types that inherit from other types cannot be
1664           simple types. Added a check for this.
1665         * XmlSchemaExporter.cs: several fixes: better generation of IsMixed and
1666           Form. The key used to determine if a map has been already generated must
1667           include the XmlType, since there can be two xml types with the same CLR
1668           type and namespace (for example, they may differ in the Form property).
1669         * XmlSchemaImporter.cs: When getting the TypeData for a schema element,
1670           also return the corresponding map. There can be two maps that have the
1671           same TypeData, so given a TypeData is not always possible to get the
1672           correct corresponding map (for example two arrays that only differ in the
1673           Form of the item).
1674         * XmlTypeMapping.cs: Added method to set if a map can represent a simple
1675           type or not.
1676
1677 2004-02-04  Lluis Sanchez Gual  <lluis@ximian.com>
1678
1679         * TypeTranslator.cs, XmlCustomFormatter.cs: Added support for the
1680           normalizedString schema type.
1681
1682 2004-02-04  Lluis Sanchez Gual  <lluis@ximian.com>
1683
1684         * XmlReflectionImporter.cs: Get the class members using the right order.
1685         * XmlSerializationWriterInterpreter.cs: Removed unneeded code.
1686           A member with the Any attribute can also contain text. Support this.
1687         * XmlTypeMapMemberElement.cs: Added CanBeText property.
1688
1689 2004-01-27  Lluis Sanchez Gual  <lluis@ximian.com>
1690
1691         * XmlSchemaImporter.cs: Redefinition of types are not supported. Added a
1692           check.
1693
1694 2004-01-27  Lluis Sanchez Gual  <lluis@ximian.com>
1695
1696         * MapCodeGenerator.cs: Added helper method for generating an attribute
1697           parameter of type enum.
1698         * XmlAttributeAttribute.cs: little fix.
1699         * XmlCodeExporter.cs: Support XmlAnyAttribute when generating attributes
1700           for method parameters.
1701         * XmlMemberMapping.cs: Improved support for members of type "any".
1702         * XmlReflectionImporter.cs: Improved assignment of the attribute form.
1703           If the namespace is explicitly specified, then the form should be
1704           qualified. Also fixed issues with the namespace assigned to attributes.
1705           This should fix bug #53384.
1706         * XmlSchemaExporter.cs: ExportMembersMapping(): improved support for
1707           methods that return values of type "any". Changed the methods
1708           AddSchemaArrayElement and AddSchemaElement, so instead of adding the
1709           element, return it, and the caller must add it to the collection.
1710           Other fixes in attribute generation.
1711         * XmlSchemaImporter.cs: ImportAnyType(): if a type name is provided,
1712           generate the AnyType mapping from the type described in the schema.
1713           Small fixes regarding IsMixed property of complex types (it means that
1714           the type can contain text, so the XmlTextAttribute must be generated).
1715         * XmlSerializationReaderInterpreter.cs: Reading of members by-order must
1716           be only used in the bare+encoded format.
1717
1718 2004-01-24  Lluis Sanchez Gual  <lluis@ximian.com>
1719
1720         * SoapReflectionImporter.cs: Types included with SoapInclude don't need
1721           to be derived types of the one that has the attribute.
1722         * XmlReflectionImporter.cs: Recursively register the derived maps of a given
1723           map to the parent map. This fixes #53246.
1724         * XmlSerializationWriter.cs: Some fixes regarding empty namespaces.
1725
1726 2004-01-22  Lluis Sanchez Gual  <lluis@ximian.com>
1727
1728         * XmlSerializationReaderInterpreter.cs: When deserializing an XmlElement,
1729           do not check the root element name, since it can be any name. This fixes
1730           bug #53201.
1731
1732 2004-01-20  Lluis Sanchez Gual  <lluis@ximian.com>
1733
1734         * XmlReflectionImporter.cs: Throw exception if a value type member has the
1735           IsNullable=true flag. This fixes bug #52906.
1736
1737 2004-01-20  Lluis Sanchez Gual  <lluis@ximian.com>
1738
1739         * MapCodeGenerator.cs, XmlSchemaImporter.cs: Attributes are allways optional,
1740           so a 'specified' member has always to be generated.
1741         * TypeData.cs: Fixed check for value type.
1742
1743 2004-01-20  Lluis Sanchez Gual  <lluis@ximian.com>
1744
1745         * XmlSerializationReaderInterpreter.cs, XmlSerializationWriterInterpreter.cs,
1746           XmlTypeMapMember.cs, MapCodeGenerator.cs, SoapCodeExporter.cs, TypeData.cs,
1747           XmlCodeExporter.cs, XmlReflectionImporter.cs, XmlSchemaExporter.cs,
1748           XmlSchemaImporter.cs, XmlSerializationReaderInterpreter.cs,
1749           XmlSerializationWriterInterpreter.cs, XmlTypeMapMember.cs:
1750           Added support for value specifiers members. This fixes bug #53024.
1751
1752 2004-01-20  Lluis Sanchez Gual  <lluis@ximian.com>
1753
1754         * XmlSchemaExporter.cs: Don't create referenced element if it has already
1755           been created (two types could be referencing the same schema element).
1756
1757 2004-01-19  Lluis Sanchez Gual  <lluis@ximian.com>
1758
1759         * XmlReflectionImporter.cs: Read IsNullable flag from XmlArrayAttribute.
1760         * XmlSerializationWriterInterpreter.cs: Interpret IsNullable flag for
1761           arrays. This fixes bug #53018.
1762
1763 2004-01-14  Lluis Sanchez Gual  <lluis@ximian.com>
1764
1765         * MapCodeGenerator.cs: Use type namespace instead of root namespace as
1766           default namespace for members.
1767         * XmlCodeExporter.cs: Fixed generation of XmlRootAttribute.
1768         * XmlReflectionImporter.cs: Fixed the assignment of root and type 
1769           namespaces.
1770         * XmlSchemaExporter.cs: Use type namespace instead of root namespace as
1771           default namespace for members. In AddSchemaElement, if the element is
1772           a root element never use a "ref" attribute.
1773         * XmlSchemaImporter.cs: Fixed issue when importing root elements.
1774
1775 2004-01-13  Lluis Sanchez Gual  <lluis@ximian.com>
1776
1777         * XmlReflectionImporter.cs, XmlSerializationWriterInterpreter.cs
1778         XmlTypeMapping.cs: more namespace fixes.
1779
1780 2004-01-13  Lluis Sanchez Gual  <lluis@ximian.com>
1781
1782         * XmlReflectionImporter.cs: type namespace must never be used as root
1783           namespace. This fixes bug #52772.
1784
1785 2004-01-08  Nick Drochak <ndrochak@ieee.org>
1786
1787         * XmlSchemaImporter.cs: Removed unused variable.
1788
1789 2004-01-07  Lluis Sanchez Gual  <lluis@ximian.com>
1790
1791         * XmlReflectionImporter.cs: Ignore Namespace property when applying
1792           the [XmlType] attribute to an enum. This fixes bug #52607.
1793
1794 2003-12-19  Lluis Sanchez Gual  <lluis@ximian.com>
1795
1796         * SerializationCodeGenerator.cs, XmlReflectionImporter.cs: Added internal
1797         option that allow serialization of private types.
1798         
1799 2003-12-18 Eran Domb <erand@mainsoft.com>
1800         
1801         * TypeTranslator.cs : Change primtive types map.
1802
1803 2003-12-18 Eran Domb <erand@mainsoft.com>
1804         
1805         * XmlReflectionImporter.cs (ImportListMapping): Adding the included types of the list as a derived
1806         classes of object.
1807
1808 2003-12-15  Lluis Sanchez Gual <lluis@ximian.com>
1809
1810         * XmlSchemaExporter.cs: AddSchemaElement, use XmlTypeMapElementInfo.IsPrimitive
1811           to check if a type is primitive, instead of Type.IsPrimitive, since CLR
1812           primitive types are not the same as XML primitive types. Patch proposed
1813           by Mordechai Taitelman. This fixes bug #52228.
1814         * XmlSerializationWriter.cs: Fixes in WriteNullTagEncoded and WriteNullTagLiteral.
1815
1816 2003-12-15  Lluis Sanchez Gual <lluis@ximian.com>
1817         
1818         * XmlReflectionImporter.cs: Little fix.
1819         
1820 2003-12-15  Lluis Sanchez Gual <lluis@ximian.com>
1821         
1822         * XmlReflectionImporter.cs: Type specified with XmlIncludeAttribute don't
1823           need to be derived types of the includer. This fixes bug #52152.
1824           Added null check for Name property of XmlEnumAttribute. This fixes
1825           bug #52155.
1826         * XmlSerializationReader.cs: Fixed some error messages.
1827         * XmlSerializationReaderInterpreter.cs: Check that the root element has
1828           the correct local name and namespace. This fixes bug #52038.
1829           Throw exception if enum value can't be parsed.
1830         * XmlTypeMapping.cs: Don't try to parse numeric enum values. This fixes
1831           bug #52041.
1832         
1833 2003-12-12  Lluis Sanchez Gual <lluis@ximian.com>
1834         
1835         * MapCodeGenerator.cs: Added support for [Flags] enum.
1836         * XmlCodeExporter.cs: Do not add XmlElement attributes if the member is Any.
1837         * XmlSchemaImporter.cs: Implemented ImportAnyType(). Improved import of
1838           encoded array type. Added support for enums with [Flags].
1839           In encoded format, unqualified types are schema types by default.
1840         
1841 2003-12-11  Lluis Sanchez Gual <lluis@ximian.com>
1842         
1843         * XmlCodeExporter.cs: Little fix.
1844         * XmlSchemaExporter.cs: In rpc format, make sure that parameters with the
1845           same name have the same type.
1846         * XmlSchemaImporter.cs: Support xml:lang.
1847         * XmlSerializationReader.cs, XmlSerializationWriterInterpreter.cs: 
1848           fixed wrong namespace for the arrayType attribute.
1849
1850 2003-12-08  Lluis Sanchez Gual <lluis@ximian.com>
1851
1852         * SoapReflectionImporter.cs, XmlMembersMapping.cs, XmlReflectionImporter.cs,
1853           XmlSchemaImporter.cs, XmlTypeMapElementInfo.cs, XmlTypeMapping.cs:
1854           When using rpc format on a web service, members don't need to have any
1855           specific namespace. Added a flag for turning namespace check on/off.
1856
1857 2003-11-27  Lluis Sanchez Gual <lluis@ximian.com>
1858
1859         * XmlSerializationReader.cs: Generate identifiers for arrays user a counter.
1860           delayedListFixups.Count cannot be used because elementes from
1861           delayedListFixups are deleted sometimes.
1862         
1863 2003-11-27  Lluis Sanchez Gual <lluis@ximian.com>
1864
1865         * XmlReflectionImporter.cs: Indexer properties must not be serialized.
1866           This fixes bug #51060.
1867
1868 2003-11-24  Lluis Sanchez Gual <lluis@ximian.com>
1869
1870         * XmlSerializationWriterInterpreter.cs: Applied patch by Eran Domb: 
1871           If type is Enum the code use type.GetElememtType() instead of 
1872           Enum.GetUnderlyingType().
1873
1874 2003-11-12  Lluis Sanchez Gual <lluis@ximian.com>
1875
1876         * XmlSerializationReader.cs, XmlSerializationWriter.cs, XmlSerializer.cs:
1877           Removed several TODOs already done.
1878
1879 2003-11-03  Lluis Sanchez Gual <lluis@ximian.com>
1880
1881         * XmlCustomFormatter.cs: Added support for anyUri type. This fixes
1882           bug #50041.
1883
1884 2003-10-20  Lluis Sanchez Gual <lluis@ximian.com>
1885
1886         * ReflectionHelper.cs: In CheckSerializableType() check that the type
1887           is public.
1888         * XmlSerializationWriter.cs: Added check for circular references.
1889           This fixes bug #49879.
1890
1891 2003-10-20  Lluis Sanchez Gual <lluis@ximian.com>
1892
1893         * ReflectionHelper.cs: Added check in CheckSerializableType(). Interfaces
1894           can't be serialized. This fixes bug #49878.
1895         * TypeData.cs: In ListItemType check that the collection has a valid
1896           Add method and report an error if not.
1897         * XmlReflectionImporter.cs: Added CheckSerializableType check call when
1898           reflecting a collection.
1899
1900 2003-10-18  Lluis Sanchez Gual <lluis@ximian.com>
1901
1902         * SoapReflectionImporter.cs: Support element references for enum values in
1903           encoding format. This fixes bug #49568.
1904         * XmlSerializationReaderInterpreter.cs: In encoded format, do not check
1905           the name and namespace of the wrapper element. MS.NET doesn't do it.
1906           This fixes bug #49729.
1907
1908 2003-10-15  Lluis Sanchez Gual <lluis@ximian.com>
1909
1910         * MapCodeGenerator.cs: Made MapCodeGenerator internal.
1911
1912 2003-10-15  Lluis Sanchez Gual <lluis@ximian.com>
1913
1914         * MapCodeGenerator.cs: New file. Moved here all code that is common
1915           between XmlCodeExporter and SoapCodeExporter.
1916         * SoapCodeExporter.cs: Implemented.
1917         * XmlCodeExporter.cs: Moved common code to MapCodeGenerator.
1918         * XmlSerializationReaderInterpreter.cs: Fixed problem when reading
1919           encoded bare parameter list.
1920         * XmlTypeMapping.cs: Added method for getting member element by index.
1921
1922 2003-10-14  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
1923
1924         * XmlSchemas.cs : Implemented IsDataSet().
1925
1926 2003-10-13  Lluis Sanchez Gual <lluis@ximian.com>
1927
1928         * SoapCodeExporter.cs: Initial implementation of AddMappingMetadata().
1929         * SoapReflectionImporter.cs, XmlReflectionImporter.cs, XmlSchemaImporter.cs: 
1930           in ImportMembersMapping, set pass the namespace to each XmlMemberMapping.
1931         * SoapSchemaExporter.cs: Some fixes in ExportMembersMapping.
1932         * XmlMemberMapping.cs: Fixed constructor. Now it takes the default namespace
1933           and whether it uses encoded or literal format.
1934         * XmlSchemaExporter.cs: Little fixes.
1935
1936 2003-10-10  Lluis Sanchez Gual <lluis@ximian.com>
1937
1938         * XmlSerializationReader.cs. Fixed bug #49510. An array element doesn't
1939           need to be of type SOAP-ENC:Array, it can be a restriction of it.
1940
1941 2003-10-10  Lluis Sanchez Gual <lluis@ximian.com>
1942
1943         * SoapReflectionImporter.cs, XmlReflectionImporter.cs: Fixed bug #49476.
1944           Read only properties are only serialized if the type is an array.
1945
1946 2003-10-09  Lluis Sanchez Gual <lluis@ximian.com>
1947
1948         * SoapReflectionImporter.cs, XmlReflectionImporter.cs, 
1949           SoapReflectionImporter.cs: Fixed bug #94694. Check for public constructor
1950           is not needed for value types.
1951
1952 2003-10-08  Lluis Sanchez Gual <lluis@ximian.com>
1953
1954         * XmlSerializer.cs, XmlSerializationWriter.cs: Fixed bug #49353
1955           (XmlSerializer.Serialize() handles namespace parameter incorrectly)
1956
1957 2003-10-05  Lluis Sanchez Gual <lluis@ximian.com>
1958
1959         * XmlReflectionImporter.cs, SoapReflectionImporter.cs: Fixed bug #49349
1960
1961 2003-10-04  Lluis Sanchez Gual <lluis@ximian.com>
1962
1963         * XmlSchemaExporter.cs: Keep track of elements being exported.
1964         * XmlSchemas.cs: Removed unneeded catch.
1965
1966 2003-10-01  Lluis Sanchez Gual <lluis@ximian.com>
1967
1968         * SerializationCodeGenerator.cs, XmlSerializationReaderInterpreter.cs: 
1969           Fixed handling of members with XmlTextAttribute that are arrays.
1970         * TypeData.cs: IsComplexType now returns true for XmlNode.
1971         * XmlSerializer.cs: Added check for null mapping in FromMappings.
1972         * XmlTypeMapping.cs: Added helper method FindTextElement.
1973
1974 2003-09-28  Lluis Sanchez Gual <lluis@ximian.com>
1975         
1976         * SoapReflectionImporter.cs, XmlReflectionImporter.cs, XmlSchemaExporter.cs:
1977           Added support for IncludeInSchema flag.
1978         * SoapSchemaImporter.cs: Implemented ImportDerivedTypeMapping method.
1979         * XmlCodeExporter.cs: Implemented AddMappingMetadata and AddMappingMetadata
1980           methods. Added support for IncludeInSchema flag.
1981         * XmlSchemaImporter.cs: Implemented ImportDerivedTypeMapping method.
1982           Added support for IncludeInSchema flag.
1983         * XmlTypeAttribute.cs: Set includeInSchema to true by default.
1984         * XmlTypeMapping.cs: Added IncludeInSchema property.
1985         
1986 2003-09-25  Lluis Sanchez Gual <lluis@ximian.com>
1987         
1988         * SoapIncludeAttribute.cs: Added AllowMultiple option. This fixes bug #48877.
1989
1990 2003-09-14  Lluis Sanchez Gual <lluis@ximian.com>
1991
1992         * XmlCustomFormatter.cs: added support for additional string types in
1993           GenerateToXmlString().
1994         * XmlSchemaExporter.cs: Fixed generation of XmlMembersMapping using 
1995           encoded format.
1996
1997 2003-09-11  Lluis Sanchez Gual <lluis@ximian.com>
1998
1999         * SoapSchemaImporter.cs: implemented.
2000         * XmlReflectionImporter.cs: Changed nullable default for array items to true.
2001         * XmlSchemaExporter.cs: Some fixes in the generation of encoded format schema.
2002         * XmlSchemaImporter.cs: more support for encoded format.
2003
2004 2003-09-04  Lluis Sanchez Gual <lluis@ximian.com>
2005
2006         * SerializationCodeGenerator.cs: Minor fixes.
2007         * SoapReflectionImporter.cs: More fixes.
2008         * SoapSchemaExporter.cs: implemented.
2009         * SoapSchemaImporter.cs: Initial implementation.
2010         * TypeTranslator.cs: new methods for dealing with encoded arrays: GetArrayName
2011           and ParseArrayType
2012         * XmlCodeExporter.cs: Fix. When exporting a map, export all derived maps.
2013         * XmlMemberMapping.cs: Minor fixes.
2014         * XmlMembersMapping.cs: added some convenient constructors.
2015         * XmlSchemaExporter.cs: Added support for encoded format.
2016         * XmlSchemaImporter.cs: Added support for encoded format. 
2017         * XmlSerializationReader.cs: changed some string literals by constants.
2018           Implemented ParseWsdlArrayType.
2019         * XmlSerializationReaderInterpreter.cs: Read typeArray attribute when serializing
2020           custom attributes.
2021         * XmlSerializationWriter.cs: Implemented WriteXmlAttribute.
2022         * XmlSerializationWriterInterpreter.cs: Use WriteXmlAttribute instead of
2023           WriteAttribute to write custom attributes.
2024         * XmlSerializer.cs: added some namespace constants.
2025         * XmlTypeMapping.cs: added GetSchemaArrayName method.
2026
2027 2003-09-01  Lluis Sanchez Gual <lluis@ximian.com>
2028
2029         * XmlSchemaImporter.cs: Implemented ImportMembersMapping.
2030         * XmlTypeMapMemberElement.cs: Little fix.
2031         * XmlTypeMapping.cs: Added AllElementInfos property in ClassMap.
2032         * XmlCustomFormatter.cs: Added GenerateToXmlString and GenerateFromXmlString
2033           methods.
2034         * SerializationCodeGenerator.cs, SerializationCodeGeneratorConfiguration.cs:
2035           Added.
2036
2037 2003-08-29  Lluis Sanchez Gual <lluis@ximian.com>
2038
2039         * SoapReflectionImporter.cs: Fixed construcion of XmlMemberMapping.
2040         * XmlMemberMapping.cs: Changed constructor.
2041         * XmlReflectionImporter.cs: Fixed construcion of XmlMemberMapping.
2042         * XmlSchemaImporter.cs: Implemented ImportMembersMapping().
2043         * XmlSerializationReaderInterpreter.cs: Added some helper methods. Changed visibility.
2044         * XmlSerializationWriterInterpreter.cs: Changed visibility.
2045
2046 2003-08-28  Lluis Sanchez Gual <lluis@ximian.com>
2047
2048         * XmlSerializer.cs: Fix in Deserialize() method.
2049
2050 2003-08-28  Lluis Sanchez Gual <lluis@ximian.com>
2051
2052         * XmlReflectionImporter.cs: Fill RelatedMaps property of the generated map.
2053         * XmlSchemas.cs: Find method: make sure the returned object belongs to
2054           the requested type.
2055         * XmlSerializationReader.cs: Removed unneded virtual ReadObject method.
2056           Add null checks for eventSource.
2057         * XmlSerializationReaderInterpreter.cs: ReadObject is not virtual any more.
2058         * XmlSerializationWriter.cs: In Initialize method, initialize the provided
2059           namespece declarations. Virtual method WriteObject not needed any more.
2060           In WriteStartElement, write the provided namespaces.
2061         * XmlSerializationWriterInterpreter.cs: Write object is not virtual any more.
2062           Added GetTypeMap method, that returns the map for a given type. Added some
2063           virtual methods, so writer behavior can be extended at several places by
2064           derived classes.
2065         * XmlSerializer.cs: Changed behavior to match what MS.NET does. The virtual 
2066           methods CreateReader and CreateWriter are not called unless no type or 
2067           type mapping was provided in the constructor.
2068
2069 2003-08-12  Lluis Sanchez Gual <lluis@ximian.com>
2070
2071         * XmlSchemaImporter.cs: ImportTypeMapping doesn't need to check if the
2072           schema type it is importing is a class or an array. It will always
2073           be a class.
2074
2075 2003-08-12  Lluis Sanchez Gual <lluis@ximian.com>
2076
2077         * XmlSerializationWriterInterpreter.cs: any element members can be serialized
2078           as text nodes. Support it.
2079
2080 2003-08-05  Lluis Sanchez Gual <lluis@ximian.com>
2081
2082         * CodeIdentifier.cs: Fixed MakeValid method.
2083         * TypeTranslator.cs: Added support for more primitive types. Added
2084           GetDefaultPrimitiveTypeData, which returns the type data to which a clr type
2085           maps by default.
2086         * XmlCodeExporter.cs: Generate XmlRoot attribute only if root element name and ns
2087           are different from the type ns and name.
2088           Generate class and field comments.
2089           Fixed default attribute generation. In elements with ref attribute, it has to be
2090           generated in the referred attribute.
2091         * XmlReflectionImporter.cs: Added check: simple type extensions can't add new elements.
2092           Added suport for text nodes in members of type "any".
2093         * XmlSchemaExporter.cs: Several fixes. Fixed generation of complex types with simple
2094           content.
2095         * XmlSchemaImporter.cs: Several fixes. The importer now collects documentation info.
2096         * XmlSerializationWriter.cs: WriteNamespaceDeclarations(): do not declare namespaces
2097           that have already been declared.
2098           WriteStartElement(): elements from schema namespace are always written with ns prefix.
2099         * XmlTypeMapMember.cs: Added documentation property.
2100         * XmlTypeMapping.cs: Added documentation property. Added property to check if a class map
2101           represents a simple type.
2102
2103 2003-08-05  Lluis Sanchez Gual <lluis@ximian.com>
2104
2105         * XmlSchemaImporter.cs: Implemented ImportTypeMapping and all needed parsing
2106           stuff.
2107         * SoapReflectionImporter.cs: Set the type namespace parameter when creating a map.
2108         * TypeData.cs: Added property that returns a TypeData that represents an array of
2109           the given TypeData.
2110         * TypeTranslator.cs: Added GetArrayName() method.
2111           Added TypeDatas for missing primitive types.
2112         * XmlCodeExporter.cs: Implemented ExportMembersMapping. Fixed generation of
2113           XmlRootAttribute. Added the namespace to all attributes being generated.
2114           Other fixes in the generation of code.
2115         * XmlReflectionImporter: store the namespace of the type in the maps.
2116         * XmlSchemaExporter.cs: Several fixes. Only set the "mixed" attribute if the
2117           class can generate text. Do not export inherited attributes of a class.
2118           Use the new root namespace stored in the map when generating the root element.
2119         * XmlSerializationWriter: Always write a prefix when writing a qname, even if the
2120           namespace is the default namespace.
2121         * XmlSerializationWriterInterpreter.cs: fixed missing "else".
2122         * XmlTypeMapElementInfo.cs: In DataTypeNamespace property, return the type
2123           namespace instead of the map namespace (which can be different if the type
2124           has a XmlRoot element).
2125         * XmlTypeMapMember.cs: Set the default value of the DefaultValue property
2126           to System.DBNull.Value.
2127         * XmlTypeMapMemberElement.cs: ElementInfo property: In the getter Create
2128           the collection if it has not yet been created.
2129         * XmlTypeMapping.cs: Added property XmlTypeNamespace which stores the namespace
2130           of the type. It may be different from the namespace of the map if the type
2131           has a XmlRoot element. Also added IsSimpleType property.
2132           In ClassMap, added AllMembers property.
2133         
2134 2003-07-30  Lluis Sanchez Gual <lluis@ximian.com>
2135
2136         * TypeData.cs: Added new constructor and variables to allow the creation of
2137           a TypeData without a Type. Added ListItemTypeData property.
2138         * XmlTypeMapping.cs: Added property for checking if a ListMap represents an
2139           array of arrays. Added also a property to get the nested array map.
2140         * XmlCodeExporter.cs: First implementation of code exporter.
2141
2142 2003-07-22  Lluis Sanchez Gual <lluis@ximian.com>
2143
2144         * TypeTranslator.cs: Added new primitive types: NMTOKEN and NCName.
2145         * XmlSerializationWriterInterpreter.cs: Write XmlAttributes with the prefix
2146           they have.
2147
2148 2003-07-15  Lluis Sanchez Gual <lluis@ximian.com>
2149
2150         * SoapReflectionImporter.cs, XmlReflectionImporter.cs: Avoid generating two
2151           maps with the same name and namespace. To avoid this, maps must be registered
2152           using the real map namespace, not the default namespace (the namespace can
2153           change if the type has a XmlType or SoapType attribute).
2154         * XmlArrayItemAttribute.cs: Set IsNullable to true by default.
2155         * XmlSchemaExporter.cs: Implemented method ExportMembersMapping.
2156           Other small fixes.
2157         * XmlSerializationWriterInterpreter.cs: GetStringValue: return null if the value
2158           is null.
2159
2160 2003-07-14  Lluis Sanchez Gual <lluis@ximian.com>
2161
2162         * SoapReflectionImporter.cs: Set the BaseMap property of map. Small fix.
2163         * TypeData.cs: IsComplexType now returns true for IXmlSerializable types.
2164         * XmlAttributes.cs: Fixed bug when reading the value of DefaultValueAttribute.
2165         * XmlReflectionImporter.cs: Set the BaseMap property of map. Several small fixes.
2166         * XmlSchemaExporter.cs: Implemented.
2167         * XmlSchemas.cs: Support schemas with TargetNamespace set to null.
2168         * XmlSerializationWriter.cs: FromXmlQualifiedName (): return null if the qname is null.
2169           GetNamespacePrefix (): no need to add xmlns attribute if namespace is null.
2170         * XmlSerializationWriterInterpreter.cs: Fixed management of default values.
2171           GetStringValue() returns null if the value is null, instead of empty string.
2172           (attributes with null values are not written).
2173         * XmlTypeMapElementInfo.cs: added IsTextElement and IsUnnamedAnyElement properties.
2174         * XmlTypeMapMemberAttribute.cs: added DataTypeNamespace and removed DataType.
2175           DataType value can is now in TypeData.
2176         * XmlTypeMapMemberElement.cs: Small fix.
2177         * XmlTypeMapping.cs: Added FindMember method and BaseMap property.
2178
2179 2003-07-14  Andreas Nahr <ClassDevelopment@A-SoftTech.com>
2180
2181         * AssemblyInfo.cs: Removed
2182
2183 2003-07-9  Lluis Sanchez Gual <lluis@ximian.com>
2184
2185         * XmlSerializationWriter.cs: WriteStartElement(): Do not write xsd and xsi 
2186           namespace declarations if they have already been defined.
2187
2188 2003-07-2  Lluis Sanchez Gual <lluis@ximian.com>
2189
2190         * XmlSerializationReaderInterpreter.cs: Use the parameter type when getting the Add method
2191           for adding elements to a list.
2192
2193 2003-06-31  Lluis Sanchez Gual <lluis@ximian.com>
2194
2195         * SoapReflectionImporter.cs, XmlReflectionImporter.cs: Fixed so XmlIncludeAttribute and 
2196           SoapIncludeAttribute are now transitive (if class A includes class B, and B includes C, then 
2197           A includes C).
2198
2199 2003-06-30  Lluis Sanchez Gual <lluis@ximian.com>
2200
2201         * SoapReflectionImporter.cs, XmlReflectionImporter.cs, XmlTypeMapping.cs: 
2202           Added support for serialization of enums with the Flags attribute.
2203
2204 2003-06-30  Lluis Sanchez Gual <lluis@ximian.com>
2205
2206         * SoapReflectionImporter.cs: Fix support for DataType in class members.
2207         * TypeData.cs: Don't use "Index" name to get indexer property. Indexer properties
2208           can have other names.
2209         * TypeTranslator.cs, XmlCustomFormatter.cs: Added support for "time" and "data" xml types.
2210         * XmlReflectionImporter.cs, XmlTypeMapElementInfo.cs, XmlSerializationReader.cs,
2211           XmlSerializationWriter.cs, XmlTypeMapElementInfo.cs, XmlTypeMapping.cs: 
2212           Fix support for DataType in class members.
2213         * XmlSerializationReaderInterpreter.cs, XmlSerializationWriterInterpreter.cs: 
2214           Added support for array of primitive types in attributes.
2215
2216 2003-06-28  Lluis Sanchez Gual <lluis@ximian.com>
2217
2218         * TypeData.cs: Type of item of ICollections is now taken from the Item(int) property. Add() can
2219           be overlodaded, so it is not good for this.
2220         * XmlSerializationWriterInterpreter.cs: Fix ambiguity bug when getting Item property of a collection.
2221
2222 2003-06-24  Lluis Sanchez Gual <lluis@ximian.com>
2223
2224         * XmlTypeMapElementInfo.cs: no need to compare nesting level in Equals.
2225         * XmlReflectionImporter.cs: Changed nullable default. Assign member's namespace to an
2226           array if the namespace is not specified in XmlArrayItemAttribute.
2227
2228 2003-06-17  Lluis Sanchez Gual <lluis@ximian.com>
2229
2230         * XmlReflectionImporter.cs: Reset internal tables for each ImportMembersMapping call.
2231         * XmlSerializationReader.cs: GetXsiType(): use current reader.namespaceUri if namespace
2232           is not specified in the xsi attribute.
2233         * XmlSerializationReaderInterpreter.cs: Fixed bug when reading an empty array from an empty element.
2234         * XmlSerializationWriterInterpreter.cs: Added null value check when writting an array.
2235         
2236 2003-06-16  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
2237
2238         * XmlSerializationReader.cs : Synchronous fix with 
2239           XmlElement.GetAttribute(name, ns) fix for GetNullAttr().
2240         * added XmlTypeMapMemberNamespace.cs.
2241         * XmlReflectionImporter,
2242           XmlSerializationReaderInterpreter.cs,
2243           XmlSerializationWriterInterpreter.cs,
2244           XmlTypeMapping.cs : support for XmlNamespaceDeclarationAttribute.
2245
2246 2003-06-16  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
2247
2248         * XmlSerializationWriter.cs : some QName handling fix.
2249
2250 2003-06-13  Lluis Sanchez Gual <lluis@ximian.com>
2251
2252         * XmlSerializationReader.cs: Fixed error message.
2253         * XmlSerializationReaderInterpreter.cs: Fixed bug when reading XmlQualifiedNames as attributes
2254           Thanks to Atsushi!
2255         * XmlSerializationWriter.cs: Null check in FromXmlQualifiedName.
2256
2257 2003-06-13  Lluis Sanchez Gual <lluis@ximian.com>
2258
2259         * XmlSerializationReader.cs: Fixed implementation of ReadElementQualifiedName() and ReadTypedPrimitive().
2260         * XmlSerializationReaderInterpreter.cs: Improved serialization of XmlQualifiedNames.
2261         * XmlSerializationWriter.cs: implemented methods for reading XmlQualifiedNames.
2262         * XmlSerializationWriterInterpreter.cs: Improved deserialization of XmlQualifiedNames.
2263
2264 2003-06-13  Lluis Sanchez Gual <lluis@ximian.com>
2265
2266         * SchemaTypes.cs: Changed DataSet type for a more generic XmlSerializable.
2267         * SoapReflectionImporter.cs: tiny fix.
2268         * XmlReflectionImporter.cs, TypeData.cs, XmlSerializationWriterInterpreter.cs,
2269           XmlSerializationReaderInterpreter.cs: Added support for IXmlSerializable.
2270         * XmlSerializationReader.cs: Fixed implementation of ReadSerializable().
2271         * XmlSerializationWriter.cs: implemented WriteSerializable ().
2272
2273 2003-06-12  Lluis Sanchez Gual <lluis@ximian.com>
2274
2275         * XmlAnyElementAttribute.cs, XmlArrayItemAttribute.cs: Added AllowMultiple flag.
2276         * XmlReflectionImporter.cs, XmlSerializationWriterInterpreter.cs,
2277           XmlSerializationReaderInterpreter.cs, XmlTypeMapElementInfo.cs,
2278           XmlTypeMapMemberElement.cs, XmlTypeMapping.cs: Added support for XmlTextAttribute.
2279         * XmlSerializationWriter.cs: small fix.
2280
2281 2003-06-11  Lluis Sanchez Gual <lluis@ximian.com>
2282
2283         * XmlReflectionImporter.cs: Added support for XmlIgnoreAttribute in enum members.
2284           Added support for DefaultValueAttribute.
2285         * XmlSerializationWriterInterpreter.cs: Added support for DefaultValueAttribute. Fixed bug when writting
2286           the value of an enum.
2287         * XmlTypeMapMember.cs: Added DefaultValue attribute.
2288         * XmlTypeMapping.cs: EnumMap.GetXmlName and GetXmlValue, so they can now deal with
2289           integer values.
2290
2291 2003-06-11  Lluis Sanchez Gual <lluis@ximian.com>
2292
2293         * XmlSerializationReader.cs: Minor fix.
2294
2295 2003-06-11  Lluis Sanchez Gual <lluis@ximian.com>
2296
2297         * XmlSerializationReader.cs, XmlSerializationReaderInterpreter.cs: Minor fixes.
2298
2299 2003-06-10  Lluis Sanchez Gual <lluis@ximian.com>
2300
2301         * SoapReflectionImporter.cs: Added check: some overrides cannot be applied to primitive types.
2302         * XmlAttributes.cs: Default value of XmlDefaultValue changed to System.DBNull.Value
2303         * XmlCustomFormatter.cs: small fixes.
2304         * XmlReflectionImporter.cs: Added check: some overrides cannot be applied to primitive types.
2305         * XmlSerializationWriter.cs: Implemented TopLevelElement().
2306           WriteNamespaceDeclarations(): Fixed (the hashtable contains XmlQualifiedNames, not strings).
2307           WriteXsiType(): It is not necessary to add the namespace declaration, this will now be done by XmlWriter.
2308         * XmlSerializationWriterInterpreter.cs: Call TopLevelElement() when writing classes or arrays as
2309           root elements.
2310
2311 2003-06-05  Lluis Sanchez Gual <lluis@ximian.com>
2312
2313         * SoapReflectionImporter.cs: implemented.
2314         * TypeTranslator.cs: added IsPrimitive() method
2315         * TypeMapping.cs: Added RelatedMaps property that returns all maps directly or indirectly
2316           used by that one. Also added Format property, that can be literal or encoded.
2317         * XmlReflectionImporter.cs: little fixes. Moved some methods to ReflectionHelper.
2318         * XmlReflectionMember.cs: added constructor that accepts SoapAttributes
2319         * XmlSerializationReader.cs: implemented many methods needed to support encoded format.
2320         * XmlSerializationReaderInterpreter.cs: added support for encoded format.
2321         * XmlSerializationWriter.cs: added support for encoded format.
2322         * XmlSerializationWriterInterpreter.cs: added support for encoded format.
2323         * XmlTypeMapElementInfo.cs: added some properties needed to support encoded format
2324         * XmlTypeMapMemberAttribute.cs: added MappedType property (enum values can be attributes, 
2325           and a map is needed for them).
2326         * XmlTypeMapMemberElement.cs: small fixes.
2327         * XmlTypeMapping.cs: added some properties and methods needed to support encoded format
2328         * ReflectionHelper.cs: added. Has some methods shared by the reflection importers.
2329
2330 2003-06-01  Miguel de Icaza  <miguel@ximian.com>
2331
2332         * XmlSerializationReader.cs (UnknownAttribute, UnknownNode,
2333         UnknownElement): Add line number information.
2334
2335 2003-05-29  Lluis Sanchez Gual <lluis@ximian.com>
2336
2337         * TypeData.cs, TypeTranslator.cs: Renamed some properties.
2338         * XmlCustomFormatter.cs: Fixed bug in serialization of chars. Support for byte[].
2339         * XmlMapping.cs: Added internal property.
2340         * XmlMemberMapping.cs, XmlMembersMapping.cs: Implemented.
2341         * XmlReflectionImporter.cs: Implemented importing of XmlMembersMapping. Several fixes.
2342         * XmlReflectionMember.cs: XmlAttributes are now created by default
2343         * XmlSerializationReader.cs, XmlSerializationWriter.cs: Several fixes.
2344         * XmlSerializationReaderInterpreter.cs, XmlSerializationWriterInterpreter.cs, XmlSerializer.cs: 
2345           Implemented support for XmlMembersMapping.
2346         * XmlTypeMapping.cs: Property ObjectMap moved to XmlMapping.
2347
2348 2003-05-28  Lluis Sanchez Gual <lluis@ximian.com>
2349
2350         * TypeData.cs, TypeTranslator.cs: Added support for enums. Added method for translating
2351           from xml type to clr type.
2352         * XmlCustomFormatter.cs: Fixed bug in serialization of chars. Support for byte[].
2353         * XmlReflectionMember.cs: Added default constructor.
2354         * XmlSerializationReader.cs: Implemented ReadTypedPrimitive(), ToByteArrayBase64().
2355         * XmlSerializationWriter.cs: Several fixes.
2356         * XmlSerializationReaderInterpreter.cs, XmlReflectionImporter.cs, XmlSerializationWriterInterpreter.cs
2357           XmlTypeMapMember.cs, XmlTypeMapMemberElement.cs, XmlTypeMapping.cs:
2358           Added support for enums. Added support for XmlElement and XmlNode.
2359           Support for XmlAnyAttributeAttribute and XmlAnyElementAttribute. Many fixes.
2360
2361 2003-05-26  Lluis Sanchez Gual <lluis@ximian.com>
2362
2363         * TypeData.cs, TypeTranslator.cs: Implemented some methods.
2364         * XmlCustomFormatter.cs: Added formatting methods.
2365         * XmlReflectionImporter.cs, XmlSerializer.cs: New implementation.
2366         * XmlReflectionMember.cs: Added new constructor.
2367         * XmlSerializationReader.cs, XmlSerializationWriter.cs: Implemented some methods.
2368         * XmlSerializationWriterInterpreter.cs, XmlSerializationReaderInterpreter.cs
2369           XmlTypeMapElementInfo.cs, XmlTypeMapMember.cs, XmlTypeMapMemberAttribute.cs
2370           XmlTypeMapMemberElement.cs, XmlTypeMapping.cs: Added
2371
2372 2003-05-10  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
2373
2374         * Added TypeTableEntry.cs.
2375         * TypeTranslator.cs : changed for non-static use.
2376         * XmlAttributes.cs : XmlType attribute support for GetAttributeName() 
2377           and GetElementName(). Bugfix so that if any XmlElementAttribute 
2378           exists after non-typed XmlElementAttribute then it might be ignored.
2379           Added GetElementIsNullable().
2380         * XmlSerializer.cs :
2381           Introduced TypeTablePool and TypeTableEntry and erased ambiguous 
2382           Object memberObj[4].
2383           Deserialize() now uses XmlReader.Depth to check its depth.
2384           Serialize() for non-XmlReader arguments now always write xmldecl.
2385           SerializeBuiltin() now explicitly requires Type to support xsi:nil,
2386           and handles XmlQualifiedName.
2387           Separated SerializeType () from Serialize().
2388           Separated WriteCollectionElementMember(), IsFieldTypeSerializable(),
2389           IsPropertyTypeSerializable() from SerializeMembers().
2390           SerializeMembers() is now capable of null value and actual type,
2391           which should be included by XmlIncludeAttribute and so on.
2392           Renamed SerializeArray() to SerializeArrayContent(), and added
2393           SerializeCollectionContent().
2394           SerializeMembers() now requries XmlSerializerNamespaces (not used yet).
2395           FillTypeTable() is now aware of XmlInclude attributes.
2396           FillEnum() should not have different type table content from others.
2397
2398 2003-05-09  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
2399
2400         * XmlSerializer.cs : this time, only replaced spaces with tabs.
2401
2402 2003-05-05  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
2403
2404         * ChangeLog : Added missing ChangeLog of 2003-04-25.
2405         * XmlCustomFormatter.cs : Fixed FromXmlNmTokens() to contain 
2406           separators. Added experimental method ToEnum().
2407         * XmlSerializationReader.cs : unconfirmed implementation of
2408           ReadSerializable() and ToEnum().
2409         * XmlSerializationWriter.cs : fixed WriteAttribute() so that if value 
2410           is null then no output will be written.
2411           Fixed WriteStartElement(), WriteElement*() and WriteEmptyTag() 
2412           to use custom formatted name.
2413
2414 2003-05-02  Miguel de Icaza  <miguel@ximian.com>
2415
2416         * XmlReflectionImporter.cs: one of theImportTypeMapping mappings
2417         had a void return value.
2418
2419 2003-04-26  Miguel de Icaza  <miguel@ximian.com>
2420
2421         * XmlIncludeAttribute.cs: Make XmlIncludeAttribute have the
2422         `AllowMultiple' flags.  
2423
2424 2003-04-25  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
2425
2426         * TypeTranslator.cs : patch by Erik LeBel. Array consideration.
2427         * XmlReflectionImporter.cs : patch by Erik LeBel. 
2428           Now uses XmlRootAttribute to determine element name.
2429
2430 2003-03-17  Miguel de Icaza  <miguel@ximian.com>
2431
2432         * XmlSerializer.cs: Do not use Bubblesort, use ArrayList.Sort.
2433         Kill Bublesort.
2434
2435 2003-03-22  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
2436
2437         * XmlSerializer.cs : patch by Sean Cier. Serialize() other than 
2438           XmlWriter argument should call WriteEndDocument.
2439
2440 2003-03-19  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
2441
2442         * XmlSerializer.cs : Serialize() don't write xmldecl when WriteState is
2443           not WriteState.Start, and never call WriteEndDocument().
2444
2445 2003-03-12  Elan Feingold <efeingold@mn.rr.com>
2446
2447         * XmlCustomFormatter.cs: Correct signature, Implement
2448         ToByteArrayBase64 
2449
2450         * XmlSerializationWriter.cs: Fix prototype.
2451
2452         * XmlSerializer.cs: Implements Deserialize().
2453
2454 2003-02-16  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
2455
2456         * XmlSerializer.cs : serializing now works for interface member.
2457
2458 2003-01-26  Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
2459
2460         * XmlSerializer.cs : some fix handling xml node object more correct.
2461
2462 2003-01-16  Ajay kumar Dwivedi <adwiv@yahoo.com>
2463         * XmlSerializer.cs: Array serialization for 1D arrays works
2464         * TypeTranslator: Added for translations`
2465
2466 2002-09-19  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2467
2468         * XmlCustomFormatter.cs: finished.
2469         * XmlSerializationReader.cs: implemented some more methods.
2470
2471 2002-09-18  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2472
2473         * XmlSerializationReader.cs: implemented a few methods.
2474
2475         * XmlAnyElementAttribute.cs:
2476         * XmlArrayAttribute.cs:
2477         * XmlChoiceIdentifierAttribute.cs:
2478         * XmlElementAttribute.cs:
2479         * XmlMemberMapping.cs:
2480         * XmlMembersMapping.cs: class status based fixes.
2481
2482 2002-09-13  Gonzalo Paniagua Javier <gonzalo@ximian.com>
2483
2484         * CodeIdentifiers.cs:
2485         * XmlSchemaExporter.cs:
2486         * XmlSchemaImporter.cs:
2487         * XmlSchemas.cs:
2488         * XmlSerializationWriteCallback.cs:
2489         * XmlSerializationWriter.cs:
2490         * XmlSerializer.cs:
2491         * XmlSerializerNamespaces.cs: some class status based fixed and
2492         implemented a couple of methods.
2493
2494         * SoapSchemaExporter.cs: stubbed out.
2495
2496 2002-08-24  Tim Coleman <tim@timcoleman.com>
2497         * SoapCodeExporter.cs:
2498                 Fix return value of ExportTypeMapping.
2499         * XmlCustomFormatter.cs:
2500                 Change methods to be internal instead of public.
2501         * XmlSerializationWriter.cs:
2502                 Modify GetPrimitiveTypeName to build on linux.
2503                 Modify GetQualifiedName to return an incrementing prefix
2504                 instead of the same one all the time (still need to manage
2505                 conflicts)
2506                 Modify WriteElementString to only do special stuff is XsiType
2507                 is not defined.
2508                 Modify WriteTypedPrimitive to use FromXmlQualifiedName if it's
2509                 an XmlQualifiedName.
2510
2511 2002-08-22  Tim Coleman <tim@timcoleman.com>
2512         * XmlSerializationReader.cs:
2513                 Some implementation
2514         * XmlSerializationWriter.cs:
2515                 More implementation
2516         * XmlCustomFormatter.cs:
2517                 Implemented this class.
2518
2519 2002-08-20  Tim Coleman <tim@timcoleman.com>
2520         * XmlSerializationWriter.cs:
2521                 Some implementation.
2522
2523 2002-08-19  Tim Coleman <tim@timcoleman.com>
2524         * XmlSerializer.cs:
2525                 New stubs added.
2526         * XmlSerializationWriter.cs:
2527                 New stubs added.
2528
2529 2002-08-14  Tim Coleman <tim@timcoleman.com>
2530         * XmlSerializer.cs:
2531                 More reformatting of source code so I can
2532                 better understand what it does.
2533
2534 2002-08-06  Tim Coleman <tim@timcoleman.com>
2535         * XmlSerializer.cs:
2536                 Some reformatting of code for readability.
2537                 Modify to correctly serialize ICollection objects
2538                 such as the BindingCollection of a ServiceDescription
2539                 for example.
2540
2541 2002-08-03  Tim Coleman <tim@timcoleman.com>
2542         * XmlSerializer.cs: 
2543                 Changed Implements() to check based on name rather
2544                 than FullName.  FullName was never working correctly.
2545
2546 2002-07-26  Tim Coleman <tim@timcoleman.com>
2547         * XmlSerializer.cs:
2548                 The constructor now looks for an XmlRootAttribute attribute
2549                 if one is not passed in.  Various changes to make it emit
2550                 proper XML, such as handling an element without a namespace
2551                 prefix, and using WriteEndDocument where it should be.
2552
2553 2002-07-24  Tim Coleman <tim@timcoleman.com>
2554         * CodeIdentifier.cs:
2555         * IXmlSerializable.cs:
2556         * XmlSerializationCollectionFixupCallback.cs:
2557         * XmlSerializationFixupCallback.cs:
2558         * XmlSerializationReadCallback.cs:
2559         * XmlSerializationReader.cs:
2560         * XmlSerializationWriteCallback.cs:
2561                 Add new classes.
2562         * XmlSchemas.cs
2563         * CodeIdentifiers.cs:
2564                 Implement some of these classes
2565         * XmlCodeExporter.cs:
2566                 Fix return type of a function
2567
2568 2002-07-24  Tim Coleman <tim@timcoleman.com>
2569         * SoapReflectionImporter.cs:
2570                 New class added to build
2571                 System.Web.Services.Description.ServiceDescription.cs
2572
2573 2002-07-22  Tim Coleman <tim@timcoleman.com>
2574         * CodeIdentifiers.cs:
2575         * SoapCodeExporter.cs:
2576         * SoapSchemaExporter.cs:
2577         * XmlCodeExporter.cs:
2578         * XmlMemberMapping.cs:
2579         * XmlMembersMapping.cs:
2580         * XmlReflectionImporter.cs:
2581         * XmlReflectionMember.cs:
2582         * XmlSchemaExporter.cs:
2583         * XmlSchemaImporter.cs:
2584         * XmlSchemas.cs: 
2585                 New stubbs added to aid in the linux build of
2586                 System.Web.Services.
2587
2588 2002-07-05  Ajay kumar Dwivedi <adwiv@yahoo.com>
2589         
2590         * XmlSeriailizer: Serialize method can serialize XmlSchema perfectly.
2591
2592         * XmlSerializerNamespaces: Reverted to use of a single Hashtable.
2593
2594 2002-07-02  Ajay kumar Dwivedi <adwiv@yahoo.com>
2595         
2596         * XmlSeriailizer: Updated Serialize() method.
2597
2598 2002-06-27 Ajay kumar Dwivedi <adwiv@yahoo.com>
2599         * XmlSerializer: Serialize() method Partially Implemented.
2600
2601 2002-06-20 Ajay kumar Dwivedi <adwiv@yahoo.com>
2602
2603         * Soap & XmlOverrides: Implemented using TypeMember as key with
2604           suggestions from Rafael.