Проверка XML Schematron в C # с использованием файла XSL - PullRequest
0 голосов
/ 09 января 2019

Мне нужно выполнить проверку Schematron для файлов XML. Я много гуглил, и самое близкое, к чему я пришел, это использовать пакет Schematron , как описано здесь :

    public static bool SchemaTronValidation(string xml, string xsl)
    {
        //Create schema and validator
        var xslStream = new MemoryStream(Encoding.UTF8.GetBytes(xsl ?? ""));

        Schema schematronSchema = new Schema();
        schematronSchema.Load(xslStream);

        Validator validator = new Validator();
        validator.AddSchema(schematronSchema);

        //Validate
        var xmlStream = new MemoryStream(Encoding.UTF8.GetBytes(xml ?? ""));
        var res = validator.Validate(xmlStream); //fails here

        return true;
    }

При тестировании этого кода с действительными файлами XML и XSL происходит сбой при вызове Validate (xmlStream) для валидатора. Это говорит, что Операция не разрешена, и я не уверен почему. Кто-нибудь знает больше о том, как проверить файлы Schematron в C#? Я сбит с толку, что, похоже, не так уж много поддержки такого рода проверки.

Пример в документации Microsoft использует XSD, а не файлы XSL для схемы. Может ли это быть причиной того, что она не работает?

...