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