Правильная проверка документов XML с помощью XSD

Как разработчик с большим опытом использования и производства XML, я 'никогда раньше не взаимодействовал со схемами. Впервые это происходит на самом деле для меня.

натыкаюсь наособенность" что я считаю больше ошибки, которая хорошо документирована.

При использовании XDocument.Validate () кажется, что в некоторых случаях документ будет действительным, если он нене соответствует указанной схеме. Мне кажется, что это, скорее всего, недостаток в моем понимании взаимосвязи между XSD, пространствами имен XML и ожидаемыми процессами проверки.

Поэтому я передаю вам мой образец XML, мой образец XSD и мой код проверки.

XML - это НАМЕРЕННО неверный документ.



  
    
    
    
    
    
    
  
  
    
    
    
    
    
    
  
  
    
    
    
    
    
    
  

XSD раньше проверял это. (Опять же, это намеренно НЕПРАВИЛЬНЫЙ документ для вышеуказанного XML)



  
    
  

  
    
      
      
      
      
    
  


  
    
      
    
    
  

  
    
      
        
      
    
  

И наконец код проверки.

    private static void ValidateDocument(XDocument doc)
    {
        XmlSchemaSet schemas = new XmlSchemaSet();
        schemas.Add(null, XmlReader.Create(new StreamReader(XmlSchemaProvider.GetSchemaStream("Encounters.xsd"))));

        doc.Validate(schemas, (o, e) =>
        {
            //This is never hit!
            Console.WriteLine("{0}", e.Message);
            Assert.False(e.Severity == XmlSeverityType.Error);
        });
    }

Мне было интересно, если кто-то может объяснить, что я делаю неправильно. Я чувствуюЯ делаю некоторые неверные предположения о том, как это ДОЛЖНО работать. Мне кажется, что использование одного xsd против совершенно не связанного XML-документа было бы недопустимым.

Ответы на вопрос(1)

Ваш ответ на вопрос