private void AddParameterElements(XElement complexType, ParameterInfo[] parameters, string[] requiredParameters)
{
XElement sequence = new XElement(_Namespace + "sequence");
foreach (var parameter in from parameter in parameters
let typeName = MagickScriptTypes.GetXsdElementType(parameter)
where typeName != null
orderby parameter.Name
select new
{
Name = parameter.Name,
TypeName = typeName,
IsRequired = requiredParameters.Contains(parameter.Name)
})
{
XElement element = new XElement(_Namespace + "element",
new XAttribute("name", parameter.Name));
if (!parameter.IsRequired)
element.Add(new XAttribute("minOccurs", "0"));
element.Add(new XAttribute("type", parameter.TypeName));
sequence.Add(element);
}
if (sequence.HasElements)
complexType.Add(sequence);
}