//===========================================================================================
        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 = _GraphicsMagickNET.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);
            }
        }