FileGenerator.MagickScript.XsdGenerator.AddParameterElements C# (CSharp) Method

AddParameterElements() private method

private AddParameterElements ( System.Xml.Linq.XElement complexType, ParameterInfo parameters, string requiredParameters ) : void
complexType System.Xml.Linq.XElement
parameters System.Reflection.ParameterInfo
requiredParameters string
return void
    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);
    }