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