Ejemplo n.º 1
0
        /// <summary>
        /// Register restriction in this type
        /// </summary>
        /// <param name="c">The content to register</param>
        protected void RegisterRestriction(System.Xml.Schema.XmlSchemaParticle c)
        {
            if (c == null)
            {
                return;
            }

            // Restriction means we need to override some elements
            if (c is System.Xml.Schema.XmlSchemaSequence)
            {
                RegisterSequence(c as System.Xml.Schema.XmlSchemaSequence);
            }
            else if (c is System.Xml.Schema.XmlSchemaChoice)
            {
                RegisterChoice(c as System.Xml.Schema.XmlSchemaChoice);
            }
            else if (c is System.Xml.Schema.XmlSchemaAll)
            {
                RegisterAll(c as System.Xml.Schema.XmlSchemaAll);
            }
            else if (c is System.Xml.Schema.XmlSchemaGroupRef) // TODO: Xml Group References!!!
            {
                ;
            }
        }
Ejemplo n.º 2
0
            /// <summary>
            /// Walk the schema definition to find the parameters of the given message.
            /// </summary>
            /// <param name="serviceDescription">
            /// <param name="messagePartName">
            /// <returns></returns>
            private static Parameter[] GetParameters(ServiceDescription serviceDescription, string messagePartName)
            {
                List <Parameter> parameters = new List <Parameter>();

                Types types = serviceDescription.Types;

                System.Xml.Schema.XmlSchema xmlSchema = types.Schemas[0];

                foreach (object item in xmlSchema.Items)
                {
                    if (item is System.Xml.Schema.XmlSchemaElement schemaElement && schemaElement.Name == messagePartName)
                    {
                        System.Xml.Schema.XmlSchemaType schemaType = schemaElement.SchemaType;
                        if (schemaType is System.Xml.Schema.XmlSchemaComplexType complexType)
                        {
                            System.Xml.Schema.XmlSchemaParticle particle = complexType.Particle;
                            if (particle is System.Xml.Schema.XmlSchemaSequence sequence)
                            {
                                foreach (System.Xml.Schema.XmlSchemaElement childElement in sequence.Items)
                                {
                                    string parameterName = childElement.Name;
                                    string parameterType = childElement.SchemaTypeName.Name;
                                    parameters.Add(new Parameter(parameterName, parameterType));
                                }
                            }
                        }
                    }
                }
                return(parameters.ToArray());
            }
Ejemplo n.º 3
0
        /// <summary>
        /// Register content in this type
        /// </summary>
        /// <param name="c">The content to register</param>
        protected void RegisterContent(System.Xml.Schema.XmlSchemaParticle c)
        {
            if (c == null)
            {
                return;
            }

            if (c is System.Xml.Schema.XmlSchemaSequence)
            {
                RegisterSequence(c as System.Xml.Schema.XmlSchemaSequence);
            }
            else if (c is System.Xml.Schema.XmlSchemaChoice)
            {
                RegisterChoice(c as System.Xml.Schema.XmlSchemaChoice);
            }
            else if (c is System.Xml.Schema.XmlSchemaAll)
            {
                RegisterAll(c as System.Xml.Schema.XmlSchemaAll);
            }
            else if (c is System.Xml.Schema.XmlSchemaGroupRef) // TODO: Xml Group References!!!
            {
                ;
            }
        }