c # проверить xml против нескольких xsd и получить связанный / соответствующий xsd - PullRequest
0 голосов
/ 08 апреля 2019

У меня есть 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...