如何根据定义服务应符合的 xsd 架构文件验证从 WCF 服务返回的数据

发布于 2024-10-01 14:46:24 字数 145 浏览 1 评论 0原文

我有一些客户提供的 XSD 文件和 WSDL。我已经建立了一个WCF服务。我想表明该服务符合所提供的架构。如何根据这些架构验证我的 WCF 服务?如果有帮助的话,我有 SoapUI 和 Altova XML Spy。执行此操作的标准方法是什么?我没有使用模式优先方法来构建它。

I have some XSD files and a WSDL provided by the customer. I have built a WCF service. I would like to show that the service is compliant with the provided schemas. How can I validate my WCF service against those schemas? I have SoapUI and Altova XML Spy if that helps. What is the standard way to do this? I did not build this with the schema first approach.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

束缚m 2024-10-08 14:46:24

使用它来传递 XML 和 XSD。这适用于任何 XML 和 Sxhema,而不是特定于 Web 服务:

    private static void ValidateSchema(string xmlName, string schemaName)
    {

        try
        {
            ValidationEventHandler validationHandler = new ValidationEventHandler(ValidationCallBack);
            XmlTextReader schemaReader = new XmlTextReader( schemaName);
            XmlSchema schema =XmlSchema.Read(schemaReader, validationHandler);

            XmlTextReader docReader = new XmlTextReader (xmlName);
            XmlValidatingReader vr = new XmlValidatingReader( docReader); 
            vr.Schemas.Add (schema);  
            vr.ValidationType = ValidationType.Schema;
            vr.ValidationEventHandler += new ValidationEventHandler( ValidationCallBack);

            try 
            {
                while (vr.Read())
                {
                ;   //Console.Write(" {0} = \"{1}\";", vr.Name, vr.Value);
                }
            }

            catch 
            {
                //Console.WriteLine("Validation error!");

            }
        }


        catch(Exception ex)
        {
            Console.WriteLine(ex); 
        }

    }

    private static void ValidationCallBack(object sender, ValidationEventArgs e) 
    {
        Console.WriteLine("Validation Error: {0}", e.Message);
        Console.WriteLine("-------------------------------------------");
    }       

}

Use this to pass XML and XSD. This applies to any XML and Sxhema and not specific to web services:

    private static void ValidateSchema(string xmlName, string schemaName)
    {

        try
        {
            ValidationEventHandler validationHandler = new ValidationEventHandler(ValidationCallBack);
            XmlTextReader schemaReader = new XmlTextReader( schemaName);
            XmlSchema schema =XmlSchema.Read(schemaReader, validationHandler);

            XmlTextReader docReader = new XmlTextReader (xmlName);
            XmlValidatingReader vr = new XmlValidatingReader( docReader); 
            vr.Schemas.Add (schema);  
            vr.ValidationType = ValidationType.Schema;
            vr.ValidationEventHandler += new ValidationEventHandler( ValidationCallBack);

            try 
            {
                while (vr.Read())
                {
                ;   //Console.Write(" {0} = \"{1}\";", vr.Name, vr.Value);
                }
            }

            catch 
            {
                //Console.WriteLine("Validation error!");

            }
        }


        catch(Exception ex)
        {
            Console.WriteLine(ex); 
        }

    }

    private static void ValidationCallBack(object sender, ValidationEventArgs e) 
    {
        Console.WriteLine("Validation Error: {0}", e.Message);
        Console.WriteLine("-------------------------------------------");
    }       

}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文