У меня есть TCP
сетевой протокол, где информация / данные отправляются как xml documents
. Теперь я хотел бы сопоставить эту информацию с несколькими xsd
файлами. Данные поступают случайным образом, поэтому я хотел бы знать, какая информация поступает, проверяя их по моим xsd files
.
Я уже создал файлы xsd (~ 25), которые должны соответствовать
На втором шаге я хотел бы создать экземпляр customClass
на основе соответствующего файла xsd
.
На первую часть моего вопроса уже был дан ответ на SO. По второму вопросу мне нужна помощь.
1 Как проверить xml для нескольких xsd
private void _LoadSchemaSet()
{
_Logger.Debug("Loading schemata..");
var assembly = Assembly.GetExecutingAssembly();
var specs = assembly.GetManifestResourceNames().Where(r => r.ToLower().StartsWith("myCompany.myCustomer.specs") && r.EndsWith(".xsd"));
foreach (string spec in specs)
{
_Logger.Trace(spec);
_SchemaSet.Add(XmlSchema.Read(assembly.GetManifestResourceStream(spec), _Schema_ValidationEventHandler));
}
}
public bool ValidateXDocument(XDocument document)
{
bool result = true;
document.Validate(_SchemaSet, (sender, args) => { result = false; });
// at this point I would like to get the xsd file which matches
return result;
}
2 Как получить файл xsd, соответствующий файлу xml