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