我进行了搜索,没有发现任何解决此问题的问题。
我正在尝试根据模式验证各种 XML,它似乎正在验证所有格式良好的 XML,而不仅仅是符合模式的 XML。我已经发布了我正在使用的代码、架构、示例有效 XML 和示例无效 XML。
我已经为此苦苦挣扎了一段时间。我对这件事的大部分内容一无所知。我必须学习如何编写 XSD,编写 XSD,然后学习如何在 C# 中解析 XML。这些都是我以前从未做过的。我使用了许多教程和微软网站来得出以下内容。我认为这应该有效,但事实并非如此。
我究竟做错了什么?
private bool ValidateXmlAgainstSchema(string sourceXml, string schemaUri)
{
bool validated = false;
try
{
// REF:
// This should create a SCHEMA-VALIDATING XMLREADER
// http://msdn.microsoft.com/en-us/library/w5aahf2a(v=vs.110).aspx
XmlReaderSettings xmlSettings = new XmlReaderSettings();
xmlSettings.Schemas.Add("MySchema.xsd", schemaUri);
xmlSettings.ValidationType = ValidationType.Schema;
xmlSettings.ValidationFlags = XmlSchemaValidationFlags.None;
XmlReader xmlReader = XmlReader.Create(new StringReader(sourceXml), xmlSettings);
// parse the input (not sure this is needed)
while (xmlReader.Read()) ;
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(xmlReader); …Run Code Online (Sandbox Code Playgroud)