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