Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAtsushi Eno <atsushieno@gmail.com>2007-09-25 21:35:18 +0400
committerAtsushi Eno <atsushieno@gmail.com>2007-09-25 21:35:18 +0400
commit6959e0c1d3d243a70bc74d0e6095d3fe539e19f7 (patch)
tree6f45adcf5efa18993416566f50d9429c979e4711 /mcs/class/System.XML/System.Xml.Serialization
parent8e05931259ce9328959effacd0122eec209bbe5a (diff)
2007-09-25 Atsushi Enomoto <atsushi@ximian.com>
* XmlSerializerTests.cs : added deserialization test for XmlSchemaProviderAttribute use. * XmlReflectionImporterTests.cs : added test for conclict resolution between defaultNamespace and XmlSchemaProvider() namespace. * XmlSchemaExporterTests.cs : use Infoset() comparison. * XmlTypeMapping.cs : Namespace and XmlTypeNamespace could be different when an explicit namespace is specified (e.g. at XmlReflectionImporter.ctor). * SerializationCodeGenerator.cs, XmlSerializationWriterInterpreter.cs : revert XmlTypeMapping.XmlTypeNamsepace usage. Now with the fix above, original code should work fine. svn path=/trunk/mcs/; revision=86346
Diffstat (limited to 'mcs/class/System.XML/System.Xml.Serialization')
-rw-r--r--mcs/class/System.XML/System.Xml.Serialization/ChangeLog10
-rw-r--r--mcs/class/System.XML/System.Xml.Serialization/SerializationCodeGenerator.cs4
-rw-r--r--mcs/class/System.XML/System.Xml.Serialization/XmlSerializationWriterInterpreter.cs2
-rw-r--r--mcs/class/System.XML/System.Xml.Serialization/XmlTypeMapping.cs2
4 files changed, 14 insertions, 4 deletions
diff --git a/mcs/class/System.XML/System.Xml.Serialization/ChangeLog b/mcs/class/System.XML/System.Xml.Serialization/ChangeLog
index f4f1d7fb87f..65448b3fa31 100644
--- a/mcs/class/System.XML/System.Xml.Serialization/ChangeLog
+++ b/mcs/class/System.XML/System.Xml.Serialization/ChangeLog
@@ -1,5 +1,15 @@
2007-09-25 Atsushi Enomoto <atsushi@ximian.com>
+ * XmlTypeMapping.cs : Namespace and XmlTypeNamespace could be
+ different when an explicit namespace is specified (e.g. at
+ XmlReflectionImporter.ctor).
+ * SerializationCodeGenerator.cs,
+ XmlSerializationWriterInterpreter.cs :
+ revert XmlTypeMapping.XmlTypeNamsepace usage. Now with the fix
+ above, original code should work fine.
+
+2007-09-25 Atsushi Enomoto <atsushi@ximian.com>
+
* XmlTypeMapping.cs, XmlSerializationWriterInterpreter.cs,
SerializationCodeGenerator.cs :
More XmlSchemaProviderAttribute method check. Use QName returned
diff --git a/mcs/class/System.XML/System.Xml.Serialization/SerializationCodeGenerator.cs b/mcs/class/System.XML/System.Xml.Serialization/SerializationCodeGenerator.cs
index 40b577324d9..e5dd7805a1c 100644
--- a/mcs/class/System.XML/System.Xml.Serialization/SerializationCodeGenerator.cs
+++ b/mcs/class/System.XML/System.Xml.Serialization/SerializationCodeGenerator.cs
@@ -666,9 +666,7 @@ namespace System.Xml.Serialization
if (typeMap.TypeData.SchemaType == SchemaTypes.XmlSerializable)
{
- WriteLine (String.Format ("WriteSerializable (ob, {0}, {1}, isNullable);",
- typeMap.XmlType != null ? GetLiteral (typeMap.XmlType) : "element",
- typeMap.XmlTypeNamespace != null ? GetLiteral (typeMap.XmlTypeNamespace) : "namesp"));
+ WriteLine ("WriteSerializable (ob, element, namesp, isNullable);");
GenerateEndHook ();
WriteLineUni ("}");
diff --git a/mcs/class/System.XML/System.Xml.Serialization/XmlSerializationWriterInterpreter.cs b/mcs/class/System.XML/System.Xml.Serialization/XmlSerializationWriterInterpreter.cs
index 29f7a61a53e..bcb918281a5 100644
--- a/mcs/class/System.XML/System.Xml.Serialization/XmlSerializationWriterInterpreter.cs
+++ b/mcs/class/System.XML/System.Xml.Serialization/XmlSerializationWriterInterpreter.cs
@@ -116,7 +116,7 @@ namespace System.Xml.Serialization
if (typeMap.TypeData.SchemaType == SchemaTypes.XmlSerializable)
{
- WriteSerializable ((IXmlSerializable)ob, typeMap.XmlType ?? element, typeMap.XmlTypeNamespace ?? namesp, isNullable);
+ WriteSerializable ((IXmlSerializable)ob, element, namesp, isNullable);
return;
}
diff --git a/mcs/class/System.XML/System.Xml.Serialization/XmlTypeMapping.cs b/mcs/class/System.XML/System.Xml.Serialization/XmlTypeMapping.cs
index bbf222f03de..7d201991bdf 100644
--- a/mcs/class/System.XML/System.Xml.Serialization/XmlTypeMapping.cs
+++ b/mcs/class/System.XML/System.Xml.Serialization/XmlTypeMapping.cs
@@ -232,6 +232,8 @@ namespace System.Xml.Serialization
throw new InvalidOperationException (
String.Format ("Method {0}.{1}() specified by XmlSchemaProviderAttribute has invalid signature: return type must be compatible with System.Xml.XmlQualifiedName.", typeData.Type.Name, method));
+ // defaultNamespace at XmlReflectionImporter takes precedence for Namespace, but not for XsdTypeNamespace.
+ UpdateRoot (new XmlQualifiedName (_schemaTypeName.Name, Namespace ?? _schemaTypeName.Namespace));
XmlTypeNamespace = _schemaTypeName.Namespace;
XmlType = _schemaTypeName.Name;