Пример #1
0
        public void CreateXsltFileFromXsdEmbeddedSchematronRules(string xsdFileWithEmbeddedSchematronRules, string xsltOuputPath, IIsoPackageFiles isoPackageFiles)
        {
            if (!File.Exists(xsdFileWithEmbeddedSchematronRules))
            {
                throw new FileNotFoundException($"Xsd file with embedded schematron rules was not found ({xsdFileWithEmbeddedSchematronRules}).", xsdFileWithEmbeddedSchematronRules);
            }

            using (var xmlReader = XmlReader.Create(xsdFileWithEmbeddedSchematronRules))
            {
                var source = _documentBuilder.Value.Build(xmlReader);

                var extraktSchFromXsdTransformer = _xsltCompiler.Value.Compile(new Uri(isoPackageFiles.ExtractSchFromXsd)).Load();
                extraktSchFromXsdTransformer.InitialContextNode = source;

                var isoAbstractExpandTransformer = _xsltCompiler.Value.Compile(new Uri(isoPackageFiles.AbstractExpand)).Load();

                var isoSvrlForXsltTransformer = _xsltCompiler.Value.Compile(new Uri(isoPackageFiles.Svrl)).Load();
                isoAbstractExpandTransformer.Destination = isoSvrlForXsltTransformer;

                using (var xmlWriter = XmlWriter.Create(xsltOuputPath, new XmlWriterSettings {
                    Indent = true
                }))
                {
                    isoSvrlForXsltTransformer.Destination = new TextWriterDestination(xmlWriter);
                    extraktSchFromXsdTransformer.Run(isoAbstractExpandTransformer);
                }
            }
        }
Пример #2
0
        public void CreateXsltFileFromSchematronFile(string schFileWithSchematronRules, string xsltOuputPath, IIsoPackageFiles isoPackageFiles)
        {
            if (!File.Exists(schFileWithSchematronRules))
            {
                throw new FileNotFoundException($"Sch file with schematron rules was not found ({schFileWithSchematronRules}).", schFileWithSchematronRules);
            }

            var source = _documentBuilder.Value.Build(XmlReader.Create(schFileWithSchematronRules));

            var isoDsdlIncludeTransformer = _xsltCompiler.Value.Compile(new Uri(isoPackageFiles.DsdlInclude)).Load();

            isoDsdlIncludeTransformer.InitialContextNode = source;

            var isoAbstractExpandTransformer = _xsltCompiler.Value.Compile(new Uri(isoPackageFiles.AbstractExpand)).Load();


            var isoSvrlForXsltTransformer = _xsltCompiler.Value.Compile(new Uri(isoPackageFiles.Svrl)).Load();

            isoAbstractExpandTransformer.Destination = isoSvrlForXsltTransformer;
            isoSvrlForXsltTransformer.Destination    = new TextWriterDestination(XmlWriter.Create(xsltOuputPath, new XmlWriterSettings {
                Indent = true
            }));

            isoDsdlIncludeTransformer.Run(isoAbstractExpandTransformer);
        }