コード例 #1
0
        private static IEnumerable <IEditorScript> GetScripts(OperationBinding opBinding, XmlSchemaSet schemas)
        {
            var binding   = opBinding.Binding;
            var service   = binding.ServiceDescription;
            var operation = service.PortTypes[binding.Type.Name].Operations.OfType <Operation>()
                            .FirstOrDefault(o => o.Name == opBinding.Name);
            var elem = service.Messages[operation.Messages.Input.Message.Name].Parts[0].Element;
            //var schemaElem = service.Types.Schemas
            //  .SelectMany(s => s.Elements.Values.OfType<XmlSchemaElement>())
            //  .FirstOrDefault(e => e.Name == elem.Name);

            var settings = new XmlWriterSettings()
            {
                OmitXmlDeclaration = true,
                Indent             = true,
                IndentChars        = "  "
            };

            using (var writer = new StringWriter())
                using (var xml = XmlTextWriter.Create(writer, settings))
                {
                    var generator = new Microsoft.Xml.XMLGen.XmlSampleGenerator(schemas, elem);

                    xml.WriteStartElement("soapenv", "Envelope", "http://schemas.xmlsoap.org/soap/envelope/");
                    xml.WriteAttributeString("xmlns", "soap", null, elem.Namespace);
                    xml.WriteStartElement("soapenv", "Header", "http://schemas.xmlsoap.org/soap/envelope/");
                    xml.WriteEndElement();
                    xml.WriteStartElement("soapenv", "Body", "http://schemas.xmlsoap.org/soap/envelope/");

                    generator.WriteXml(xml);

                    xml.WriteEndElement();
                    xml.WriteEndElement();

                    xml.Flush();
                    writer.Flush();
                    return(Enumerable.Repeat <IEditorScript>(new EditorScript()
                    {
                        Name = "Sample Request",
                        Script = writer.ToString(),
                        Action = opBinding.Name
                    }, 1));
                }
        }
コード例 #2
0
    private static IEnumerable<IEditorScript> GetScripts(OperationBinding opBinding, XmlSchemaSet schemas)
    {
      var binding = opBinding.Binding;
      var service = binding.ServiceDescription;
      var operation = service.PortTypes[binding.Type.Name].Operations.OfType<Operation>()
        .FirstOrDefault(o => o.Name == opBinding.Name);
      var elem = service.Messages[operation.Messages.Input.Message.Name].Parts[0].Element;
      //var schemaElem = service.Types.Schemas
      //  .SelectMany(s => s.Elements.Values.OfType<XmlSchemaElement>())
      //  .FirstOrDefault(e => e.Name == elem.Name);

      var settings = new XmlWriterSettings()
      {
        OmitXmlDeclaration = true,
        Indent = true,
        IndentChars = "  "
      };

      using (var writer = new StringWriter())
      using (var xml = XmlTextWriter.Create(writer, settings))
      {
        var generator = new Microsoft.Xml.XMLGen.XmlSampleGenerator(schemas, elem);

        xml.WriteStartElement("soapenv", "Envelope", "http://schemas.xmlsoap.org/soap/envelope/");
        xml.WriteAttributeString("xmlns", "soap", null, elem.Namespace);
        xml.WriteStartElement("soapenv", "Header", "http://schemas.xmlsoap.org/soap/envelope/");
        xml.WriteEndElement();
        xml.WriteStartElement("soapenv", "Body", "http://schemas.xmlsoap.org/soap/envelope/");

        generator.WriteXml(xml);

        xml.WriteEndElement();
        xml.WriteEndElement();

        xml.Flush();
        writer.Flush();
        return Enumerable.Repeat<IEditorScript>(new EditorScript()
        {
          Name = "Sample Request",
          Script = writer.ToString(),
          Action = opBinding.Name
        }, 1);
      }
    }