Проверка экземпляра XDocument по его собственной ссылке на схему - PullRequest
1 голос
/ 09 сентября 2010

Я использую метод расширения XDocument.Validate для проверки моего экземпляра. В любом случае можно ли привязать экземпляр XML к своей собственной ссылке на схему? Это кажется чем-то, что было бы довольно неявным. К сожалению, простая загрузка экземпляра в XDocument, похоже, не выполняет эту проверку неявно.

1 Ответ

1 голос
/ 09 сентября 2010

Если вы хотите проверить при загрузке, попробуйте использовать:

Метод XDocument.Load (XmlReader, LoadOptions)

с проверкой XMLReader .

Например, что-то вроде этого:

XmlReader reader;
XmlReaderSettings settings = new XmlReaderSettings();
settings.ValidationType = ValidationType.Schema;
settings.ValidationFlags = XmlSchemaValidationFlags.ReportValidationWarnings |
    XmlSchemaValidationFlags.ProcessSchemaLocation;

ValidationEventHandler validator = delegate(object sender,
ValidationEventArgs e)
{
    Console.WriteLine("{0}: {1}", e.Severity, e.Message);
};
settings.ValidationEventHandler += validator;
settings.CloseInput = true;
StringReader sr = new StringReader(inputXml);
reader = XmlReader.Create(sr, settings);
...