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