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