public XmlMembersMapping ImportMembersMapping(string elementName, string ns, XmlReflectionMember[] members, bool hasWrapperElement, bool rpc, bool openModel, XmlMappingAccess access)
{
ElementAccessor element = new ElementAccessor();
element.Name = elementName == null || elementName.Length == 0 ? elementName : XmlConvert.EncodeLocalName(elementName);
element.Namespace = ns;
MembersMapping membersMapping = ImportMembersMapping(members, ns, hasWrapperElement, rpc, openModel, new RecursionLimiter());
element.Mapping = membersMapping;
element.Form = XmlSchemaForm.Qualified; // elements within soap:body are always qualified
if (!rpc)
{
if (hasWrapperElement)
element = (ElementAccessor)ReconcileAccessor(element, _elements);
else
{
foreach (MemberMapping mapping in membersMapping.Members)
{
if (mapping.Elements != null && mapping.Elements.Length > 0)
{
mapping.Elements[0] = (ElementAccessor)ReconcileAccessor(mapping.Elements[0], _elements);
}
}
}
}
XmlMembersMapping xmlMapping = new XmlMembersMapping(_typeScope, element, access);
xmlMapping.GenerateSerializer = true;
return xmlMapping;
}