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