Microsoft.Protocols.TestSuites.Common.SchemaValidation.ValidateXml C# (CSharp) Method

ValidateXml() static private method

Validate a piece of Xml fragment.
static private ValidateXml ( ITestSite testSite, bool ignoreSoapFaultSchemaValidationForSoap12 ) : ValidationResult
testSite ITestSite Transfer ITestSite into this class, make this class can use ITestSite's function.
ignoreSoapFaultSchemaValidationForSoap12 bool Indicate that whether ignore schema validation for SOAP fault in SOAP1.2.
return ValidationResult
        internal static ValidationResult ValidateXml(ITestSite testSite, bool ignoreSoapFaultSchemaValidationForSoap12)
        {
            XmlNodeList nodesForSoapFault = SchemaValidation.LastRawResponseXml.GetElementsByTagName("Fault", SoapNamespace);
            SoapProtocolVersion soapVersion = Common.GetConfigurationPropertyValue<SoapProtocolVersion>("SoapVersion", testSite);
            if (ignoreSoapFaultSchemaValidationForSoap12
                && (soapVersion == SoapProtocolVersion.Soap12) && (nodesForSoapFault.Count > 0))
            {
                site = testSite;
                validationResult = ValidationResult.Inconclusive;
                return validationResult;
            }
            else
            {
                return ValidateXml(testSite, rawResponseXml.OuterXml);
            }
        }

Same methods

SchemaValidation::ValidateXml ( ITestSite testSite, string xmlValue ) : ValidationResult
SchemaValidation::ValidateXml ( string xmlValue ) : ValidationResult

Usage Example

Example #1
0
        /// <summary>
        /// Validate the response xml.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">An CustomerEventArgs that contains event data.</param>
        public void ValidateSchema(object sender, CustomerEventArgs e)
        {
            if (!string.IsNullOrEmpty(e.RawRequestXml))
            {
                this.site.Log.Add(LogEntryKind.Debug, "The raw xml request message is:\r\n{0}", e.RawRequestXml);
                XmlDocument requestXml = new XmlDocument();
                requestXml.LoadXml(e.RawRequestXml);
                SchemaValidation.LastRawRequestXml = requestXml.DocumentElement;
            }
            else
            {
                SchemaValidation.LastRawRequestXml = null;
            }

            if (!string.IsNullOrEmpty(e.RawResponseXml))
            {
                this.site.Log.Add(LogEntryKind.Debug, "The raw xml response message is:\r\n{0}", e.RawResponseXml);

                MemoryStream ms        = new MemoryStream(System.Text.ASCIIEncoding.ASCII.GetBytes(e.RawResponseXml));
                XmlReader    xmlReader = XmlReader.Create(ms);
                e.ValidationXmlReaderOut = xmlReader;

                XmlDocument responseDoc = new XmlDocument();
                responseDoc.LoadXml(e.RawResponseXml);
                SchemaValidation.LastRawResponseXml = responseDoc.DocumentElement;

                if (this.performSchemaValidation)
                {
                    SchemaValidation.ValidateXml(this.site, this.ignoreSoapFaultSchemaValidationForSoap12);

                    if (this.throwException &&
                        ((ValidationResult.Error == SchemaValidation.ValidationResult) ||
                         (ValidationResult.Warning == SchemaValidation.ValidationResult)))
                    {
                        throw new XmlSchemaValidationException(SchemaValidation.GenerateValidationResult());
                    }
                }
            }
            else
            {
                SchemaValidation.LastRawResponseXml = null;
            }
        }