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