Using XSDs with includes

前端 未结 4 2067
抹茶落季
抹茶落季 2020-12-29 06:51

Here is an XSD:




        
4条回答
  •  既然无缘
    2020-12-29 07:39

    Here is the method I wrote to handle xsd validation. Hope this helps some one.

            /// 
            /// Ensure all xsd imported xsd documented are in same folder as master xsd
            /// 
            public XsdXmlValidatorResult Validate(string xmlPath, string xsdPath, string xsdNameSpace)
            {
                var result = new XsdXmlValidatorResult();
                var readerSettings = new XmlReaderSettings {ValidationType = ValidationType.Schema};
                readerSettings.ValidationFlags |= XmlSchemaValidationFlags.ProcessInlineSchema; 
                readerSettings.ValidationFlags |= XmlSchemaValidationFlags.ProcessSchemaLocation;
                readerSettings.Schemas.Add(null, xsdPath);
    
                readerSettings.ValidationEventHandler += (sender, args) =>
                    {
                        switch (args.Severity)
                        {
                            case XmlSeverityType.Warning:
                                result.Warnings.Add(args.Message);
                                break;
                            case XmlSeverityType.Error:
                                result.IsValid = false;
                                result.Warnings.Add(args.Message);
                                break;
                        }
                    };
    
                var reader = XmlReader.Create(xmlPath, readerSettings);
    
                while (reader.Read()) { }
    
                return result;
            }
    

提交回复
热议问题