Я использую XmlReader
для проверки XML-файла согласно предоставленной схеме.
Для этого я создаю экземпляр XmlReaderSettings
и устанавливаю его ValidationType
как ValidationType.Schema
, а его Schemas
Свойство - как XxmlSchemaSet. Черновик кода похож на
XmlReaderSettings rSettings = new XmlReaderSettings();
XmlSchemaSet schemaSet = new XmlSchemaSet();
schemaSet.Add(null, xsdPath1);
schemaSet.Add(null, xsdPath2);
schemaSet.Add(null, xsdPath3);
rSettings.Schemas.Add(schemaSet);
rSettings.ValidationType = ValidationType.Schema;
XmlReader validatingReader = XmlReader.Create(sr, rSettings);
ср StreamReader
На самом деле это устаревший код, и у меня все еще есть много проблем, которые мне нужно исправить. Я знаю, что schemaSet.Add(null, xsdPath2)
выглядит отвратительно и безобразно, и я собираюсь это исправить.
Что я хочу спросить, так это то, что, поскольку я предоставил три xsd-файла, какой производительности следует ожидать? XSD даны в порядке убывания приоритета. Все эти XML-схемы являются версионными, поэтому я добавил все из них, чтобы иметь запасной механизм.
Я думал о том, что JIT-компилятор будет компилировать только xsd1, который попытается проанализировать XML-файл и, если он потерпит неудачу, перейдет к следующему. Я не хочу, чтобы все три xsd были в памяти.
Здесь я запутался. Какое снижение производительности можно ожидать при указании нескольких файлов схемы?
Ожидается, что я улучшу устаревшую кодовую базу, поэтому производительность всегда на высоте.