/// <summary> /// Varre o documento wsdl e monta os data types especificados no mesmo /// </summary> /// <param name="xmlDoc">o documento wsdl</param> /// <param name="xmlns">XmlNamespaceManager</param> /// <returns>a lista de data types</returns> private void MountComplexType(XmlSchemaComplexType complexType) //XmlDocument xmlDoc, XmlNamespaceManager xmlns) { string typeName = ""; ArrayList parameters = new ArrayList(); bool isArray = false; HWSListType listType = null; DataType dataType = null; typeName = complexType.Name; //// tipos ainda nao suportados if (complexType.Particle == null || !typeof(XmlSchemaGroupBase).IsAssignableFrom(complexType.Particle.GetType())) { try { XmlSchemaComplexContentRestriction restriction = complexType.ContentModel.Content as XmlSchemaComplexContentRestriction; XmlSchemaAttribute att = (XmlSchemaAttribute)restriction.Attributes[0]; if (att.RefName.Name == "arrayType") { XmlSchemaAnnotated annotatedSchema = (XmlSchemaAnnotated)att; Parameter param = new Parameter(); param.Name = MakeArrayElementName(att.UnhandledAttributes[0].Value); try { param.HWSType = ConvertType(param.Name); } catch { param.HWSType = new HWSPreType(param.Name); } parameters.Add(param); listType = new HWSListType(typeName, (Parameter)parameters[0]); ListTypes.Add(listType); } } catch (Exception ex) { throw new TypeNotSupportedException(typeName); } } else { XmlSchemaGroupBase atts = (XmlSchemaGroupBase)complexType.Particle; foreach (XmlSchemaElement att in atts.Items) { Parameter param = new Parameter(); param.Name = att.Name; try { param.HWSType = ConvertType(att.SchemaTypeName.Name); } catch { param.HWSType = new HWSPreType(att.SchemaTypeName.Name); } if (att.MaxOccursString != null && att.MaxOccursString.Equals("unbounded")) { isArray = true; } parameters.Add(param); } if (isArray) { listType = new HWSListType(typeName, (Parameter)parameters[0]); ListTypes.Add(listType); } else { dataType = new DataType(typeName, parameters); DataTypes.Add(dataType); } } }
public PersonListOption(XmlElement el) : base(el) { if (el.GetAttribute("mode").ToLower().Equals("and")) { _mode |= Modes.AND; } else if (el.GetAttribute("mode").ToLower().Equals("or")) { _mode |= Modes.OR; } if (el.GetAttribute("PersonOrganization") != "") { _mode |= Modes.PersonOrganization; } if (el.GetAttribute("PersonPhysical") != "") { _mode |= Modes.PersonPhysical; } if (el.GetAttribute("PersonBank") != "") { _mode |= Modes.PersonBank; } if (el.GetAttribute("PersonCheck") != "") { _mode |= Modes.PersonCheck; } if (el.GetAttribute("PersonUncheck") != "") { _mode |= Modes.PersonUncheck; } //страна регистрации if (el.GetAttribute("PersonArea") != "") { _mode |= Modes.PersonArea; iDArea = Convert.ToInt32(el.GetAttribute("PersonArea")); nameArea = Convert.ToString(el.GetAttribute("PersonAreaName")); } //ќграничени¤ по типам лиц if (el.GetAttribute("PersonThemes") != "") { _mode |= Modes.PersonThemes; if (el.GetAttribute("PersonThemes") != "-1") { string strTypes = el.GetAttribute("PersonThemes"); string[] types = strTypes.Split(';'); for (int n = 0; n < types.Length; n += 2) { ListTypes.Add(types[n], types[n + 1]); } if (el.GetAttribute("PersonSubThemes") != "") { _mode |= Modes.PersonSubThemes; } } } //ќтветственные сотрудники if (el.GetAttribute("PersonUsers") != "") { _mode |= Modes.PersonUsers; string strUsers = el.GetAttribute("PersonUsers"); string[] users = strUsers.Split(';'); for (int n = 0; n < users.Length; n += 2) { ListUsers.Add(users[n], users[n + 1]); } } //организационно правова¤ форма if (el.GetAttribute("PersonOPForma") != "") { _mode |= Modes.PersonOPForma; iDOPForm = Convert.ToInt32(el.GetAttribute("PersonOPForma")); nameOPForm = Convert.ToString(el.GetAttribute("PersonOPFormaName")); } //бизнес проекты if (el.GetAttribute("PersonAnyBusinessProject") != "") { _mode |= Modes.PersonAnyBusinessProject; } else if (el.GetAttribute("PersonBusinessProject") != "") { _mode |= Modes.PersonBusinessProject; iDBusinessProject = Convert.ToInt32(el.GetAttribute("PersonBusinessProject")); nameBusinessProject = Convert.ToString(el.GetAttribute("PersonBusinessProjectName")); if (el.GetAttribute("PersonSubBusinessProject") != "") { _mode |= Modes.PersonSubBusinessProject; } } else if (el.GetAttribute("PersonNullBusinessProject") != "") { _mode |= Modes.PersonNullBusinessProject; } }