* SoapReflectionImporter.cs, XmlMembersMapping.cs, XmlReflectionImporter.cs,
authorLluis Sanchez <lluis@novell.com>
Mon, 8 Dec 2003 14:32:53 +0000 (14:32 -0000)
committerLluis Sanchez <lluis@novell.com>
Mon, 8 Dec 2003 14:32:53 +0000 (14:32 -0000)
  XmlSchemaImporter.cs, XmlTypeMapElementInfo.cs, XmlTypeMapping.cs:
  When using rpc format on a web service, members don't need to have any
  specific namespace. Added a flag for turning namespace check on/off.

svn path=/trunk/mcs/; revision=20868

mcs/class/System.XML/System.Xml.Serialization/ChangeLog
mcs/class/System.XML/System.Xml.Serialization/SoapReflectionImporter.cs
mcs/class/System.XML/System.Xml.Serialization/XmlMembersMapping.cs
mcs/class/System.XML/System.Xml.Serialization/XmlReflectionImporter.cs
mcs/class/System.XML/System.Xml.Serialization/XmlSchemaImporter.cs
mcs/class/System.XML/System.Xml.Serialization/XmlTypeMapElementInfo.cs
mcs/class/System.XML/System.Xml.Serialization/XmlTypeMapping.cs

index 99e5f28e9b4106d74f5dc45f41aacb965bf72456..d65d89b782336544aaef4c307b35bbe01a4fb684 100755 (executable)
@@ -1,3 +1,10 @@
+2003-12-08  Lluis Sanchez Gual <lluis@ximian.com>
+
+       * SoapReflectionImporter.cs, XmlMembersMapping.cs, XmlReflectionImporter.cs,
+         XmlSchemaImporter.cs, XmlTypeMapElementInfo.cs, XmlTypeMapping.cs:
+         When using rpc format on a web service, members don't need to have any
+         specific namespace. Added a flag for turning namespace check on/off.
+
 2003-11-27  Lluis Sanchez Gual <lluis@ximian.com>
 
        * XmlSerializationReader.cs: Generate identifiers for arrays user a counter.
index 9a7bdb9579e1eedc46174f2ec3ad0efe9caacf39..f7d9861dba78b1444a65c769544321218f2b9efd 100644 (file)
@@ -66,7 +66,7 @@ namespace System.Xml.Serialization {
                                XmlTypeMapMember mapMem = CreateMapMember (members[n], ns);
                                mapping[n] = new XmlMemberMapping (members[n].MemberName, ns, mapMem, true);
                        }
-                       XmlMembersMapping mps = new XmlMembersMapping (elementName, ns, hasWrapperElement, mapping);
+                       XmlMembersMapping mps = new XmlMembersMapping (elementName, ns, hasWrapperElement, writeAccessors, mapping);
                        mps.RelatedMaps = relatedMaps;
                        mps.Format = SerializationFormat.Encoded;
                        return mps;
index 478bc938aea5253dd35655359655d3aa018da211..34f357249646a6493e5c511b59e69c6d9c239f31 100644 (file)
@@ -22,15 +22,15 @@ namespace System.Xml.Serialization {
                {
                }
 
-               internal XmlMembersMapping (XmlMemberMapping[] mapping): this ("", null, false, mapping)
+               internal XmlMembersMapping (XmlMemberMapping[] mapping): this ("", null, false, false, mapping)
                {
                }
 
-               internal XmlMembersMapping (string elementName, string ns, XmlMemberMapping[] mapping): this (elementName, ns, true, mapping)
+               internal XmlMembersMapping (string elementName, string ns, XmlMemberMapping[] mapping): this (elementName, ns, true, false, mapping)
                {
                }
 
-               internal XmlMembersMapping (string elementName, string ns, bool hasWrapperElement, XmlMemberMapping[] mapping)
+               internal XmlMembersMapping (string elementName, string ns, bool hasWrapperElement, bool writeAccessors, XmlMemberMapping[] mapping)
                {
                        _elementName = elementName;
                        _namespace = ns;
@@ -38,6 +38,7 @@ namespace System.Xml.Serialization {
                        _mapping = mapping;
 
                        ClassMap map = new ClassMap ();
+                       map.IgnoreMemberNamespace = writeAccessors;
                        foreach (XmlMemberMapping mm in mapping)
                                map.AddMember (mm.TypeMapMember);
                        ObjectMap = map;
index b10e5abc4d8d6b169b6cc336631026212eb8ee34..7e91bee0bd2511c297d4974be97f0d9fdd473d09 100644 (file)
@@ -79,7 +79,7 @@ namespace System.Xml.Serialization {
                                XmlTypeMapMember mapMem = CreateMapMember (members[n], ns);
                                mapping[n] = new XmlMemberMapping (members[n].MemberName, ns, mapMem, false);
                        }
-                       XmlMembersMapping mps = new XmlMembersMapping (elementName, ns, hasWrapperElement, mapping);
+                       XmlMembersMapping mps = new XmlMembersMapping (elementName, ns, hasWrapperElement, false, mapping);
                        mps.RelatedMaps = relatedMaps;
                        mps.Format = SerializationFormat.Literal;
                        return mps;
index c6cb4937699b478720bc1f58731211894bfa873f..d6f2fabc87a39f3f4435583ba07d03e304805a59 100644 (file)
@@ -166,7 +166,7 @@ namespace System.Xml.Serialization {
                                mapping[n] = ImportMemberMapping (members[n].MemberName, members[n].MemberType.Namespace, td);\r
                        }\r
                        BuildPendingMaps ();\r
-                       return new XmlMembersMapping (name, ns, hasWrapperElement, mapping);\r
+                       return new XmlMembersMapping (name, ns, hasWrapperElement, false, mapping);\r
                }\r
                \r
                public XmlMembersMapping ImportEncodedMembersMapping (string name, string ns, SoapSchemaMember member)\r
index 9405a28860ada16d55170f6196466d7f7896d562..bb79cf90b2cfd1206b06f8746f9b3b199803e68f 100644 (file)
@@ -28,7 +28,7 @@ namespace System.Xml.Serialization
                XmlTypeMapping _mappedType;
                TypeData _type;
                bool _wrappedElement = true;
-
+               
                public XmlTypeMapElementInfo (XmlTypeMapMember member, TypeData type)
                {
                        _member = member;
index 8671fb080f34cba0f942f1534acc63258e693bd3..b0bf24f2209116bd6b7a7076b8e2bc14f40db74b 100644 (file)
@@ -143,6 +143,7 @@ namespace System.Xml.Serialization
                XmlTypeMapMemberAnyAttribute _defaultAnyAttribute;\r
                XmlTypeMapMemberNamespaces _namespaceDeclarations;\r
                XmlTypeMapMember _xmlTextCollector;\r
+               bool _ignoreMemberNamespace;\r
 \r
                public void AddMember (XmlTypeMapMember member)\r
                {\r
@@ -151,7 +152,7 @@ namespace System.Xml.Serialization
                        {\r
                                XmlTypeMapMemberAttribute atm = (XmlTypeMapMemberAttribute)member;\r
                                if (_attributeMembers == null) _attributeMembers = new Hashtable();\r
-                               string key = atm.AttributeName + "/" + atm.Namespace;\r
+                               string key = BuildKey (atm.AttributeName, atm.Namespace);\r
                                if (_attributeMembers.ContainsKey (key))\r
                                        throw new InvalidOperationException ("The XML attribute named '" + atm.AttributeName + "' from namespace '" + atm.Namespace + "' already present in the current scope. Use XML attributes to specify another XML name or namespace for the attribute.");\r
                                _attributeMembers.Add (key, member);\r
@@ -195,7 +196,7 @@ namespace System.Xml.Serialization
                        ICollection elemsInfo = ((XmlTypeMapMemberElement)member).ElementInfo;\r
                        foreach (XmlTypeMapElementInfo elem in elemsInfo)\r
                        {\r
-                               string key = elem.ElementName+"/"+elem.Namespace;\r
+                               string key = BuildKey (elem.ElementName, elem.Namespace);\r
                                if (_elements.ContainsKey (key)) \r
                                        throw new InvalidOperationException ("The XML element named '" + elem.ElementName + "' from namespace '" + elem.Namespace + "' already present in the current scope. Use XML attributes to specify another XML name or namespace for the element.");\r
                                _elements.Add (key, elem);\r
@@ -212,13 +213,13 @@ namespace System.Xml.Serialization
                public XmlTypeMapMemberAttribute GetAttribute (string name, string ns)\r
                {\r
                        if (_attributeMembers == null) return null;\r
-                       return (XmlTypeMapMemberAttribute)_attributeMembers[name + "/" + ns];\r
+                       return (XmlTypeMapMemberAttribute)_attributeMembers [BuildKey(name,ns)];\r
                }\r
 \r
                public XmlTypeMapElementInfo GetElement (string name, string ns)\r
                {\r
                        if (_elements == null) return null;\r
-                       return (XmlTypeMapElementInfo)_elements[name + "/" + ns];\r
+                       return (XmlTypeMapElementInfo)_elements [BuildKey(name,ns)];\r
                }\r
                \r
                public XmlTypeMapElementInfo GetElement (int index)\r
@@ -240,11 +241,23 @@ namespace System.Xml.Serialization
                        return _elementsByIndex [index];\r
                }\r
                \r
+               private string BuildKey (string name, string ns)\r
+               {\r
+                       if (_ignoreMemberNamespace) return name;\r
+                       else return name + " / " + ns;\r
+               }\r
+               \r
                public ICollection AllElementInfos\r
                {\r
                        get { return _elements.Values; }\r
                }\r
                \r
+               \r
+               public bool IgnoreMemberNamespace\r
+               {\r
+                       get { return _ignoreMemberNamespace; }\r
+                       set { _ignoreMemberNamespace = value; }\r
+               }\r
 \r
                public XmlTypeMapMember FindMember (string name)\r
                {\r