Разница в проверке схемы между BizTalk IDE и XmlReader - PullRequest
1 голос
/ 08 мая 2009

Я пытаюсь пройти модульные тесты для приложения BizTalk, над которым я работаю, следуя примеру в блоге Майкла Стивенсона и, похоже, что-то получается

Затем я получил сообщение об ошибке, которое отследил до «недопустимого» XML-файла теста, который я использовал, но это проходило мою проверку на соответствие модульному тесту схемы ...
- причина неправильного пространства имен

Моя загадка - почему XmlReader считает XML действительным по сравнению со схемой, но если я использую опцию BizTalk IDE «Validate Instance», я получаю ошибки ...
... ошибка BEC2004: не удалось проверить экземпляр для схемы FromFrontOffice.xsd, файл: ...

XmlSchema schema = XmlSchema.Read(schemaStream, null);
XmlReaderSettings xmlReaderSettings = new XmlReaderSettings();
xmlReaderSettings.Schemas.Add(schema);
xmlReaderSettings.ValidationType = ValidationType.Schema;
xmlReaderSettings.ValidationEventHandler += ValidationEventHandler;
XmlReader xmlReader = XmlReader.Create(xmlStream, xmlReaderSettings);
while (xmlReader.Read())

private void ValidationEventHandler(object sender, ValidationEventArgs args)
{
  if (args.Exception == null) return;
  _IsValid = false;
}

1 Ответ

2 голосов
/ 08 мая 2009

Думаю, я уже разобрался ... трюк, кажется, использует ValidationFlags

xmlReaderSettings.ValidationFlags =
    XmlSchemaValidationFlags.ReportValidationWarnings |
    XmlSchemaValidationFlags.ProcessIdentityConstraints |
    XmlSchemaValidationFlags.ProcessInlineSchema |
    XmlSchemaValidationFlags.ProcessSchemaLocation;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...