Schematronvalidatie: verschil tussen versies

Uit informatiestandaarden
Naar navigatie springen Naar zoeken springen
 
Regel 2: Regel 2:
  
 
Gebruik:
 
Gebruik:
Wanneer de volgende folderstructuur gebruikt wordt:
+
Wanneer de volgende folderstructuur gebruikt wordt (met gedownloade en uitgepakte Saxon HE in de 'saxon' folder):
 
   - saxon
 
   - saxon
 
     - bin
 
     - bin
Regel 18: Regel 18:
 
     -o:report.xml
 
     -o:report.xml
  
De gebruikte schematron moet de SVRL versie van de Schematron zijn. Voor Nictiz projecten wordt deze meestal meegeleverd. Er staat dan een .xsl versie van ieder .sch bestand, in dezelfde folder of vaak een /svrl folder ernaast. Wanneer er geen SVRL versie is, kan deze gemaakt worden. Instructies en benodigdheden zijn te vinden op [https://github.com/Schematron/schematron Github Schematron].
+
De gebruikte schematron moet de SVRL versie van de Schematron zijn. Voor Nictiz projecten wordt deze meestal meegeleverd. Er staat dan een .xsl versie van ieder .sch bestand, in dezelfde folder of vaak een /svrl folder ernaast. Wanneer er geen SVRL versie is, kan deze gemaakt worden. Instructies en benodigdheden zijn te vinden op [https://github.com/Schematron/schematron Github Schematron]. (SVRL is een 'xxx.sch' Schematron omgezet naar een 'xxx.xsl' versie ervan. Deze laatste zet een XML testbestand om in een SVRL foutrapportage.)
  
 
Dit genereert een report.xml bestand. Een basale HTML versie kan gemaakt worden met de volgende stylesheet:
 
Dit genereert een report.xml bestand. Een basale HTML versie kan gemaakt worden met de volgende stylesheet:

Huidige versie van 19 apr 2017 om 13:51

Op te testen bestanden kan Schematronvalidatie toegepast worden. Hiervoor is een XSL processor nodig. Aanbevolen is Saxon-HE, een krachtige open source applicatie.

Gebruik: Wanneer de volgende folderstructuur gebruikt wordt (met gedownloade en uitgepakte Saxon HE in de 'saxon' folder):

 - saxon
   - bin
 - test
   - testbestand.xml
 - schematron
   - controles.sch
   - controles.xsl

kan schematronvalidatie uitgevoerd worden met het volgende commando (dit voorbeeld onder DOS):

 $ saxon\bin\Transform
   -t 
   -s:test\testbestand.xml 
   -xsl:schematron\controles.xsl 
   -o:report.xml

De gebruikte schematron moet de SVRL versie van de Schematron zijn. Voor Nictiz projecten wordt deze meestal meegeleverd. Er staat dan een .xsl versie van ieder .sch bestand, in dezelfde folder of vaak een /svrl folder ernaast. Wanneer er geen SVRL versie is, kan deze gemaakt worden. Instructies en benodigdheden zijn te vinden op Github Schematron. (SVRL is een 'xxx.sch' Schematron omgezet naar een 'xxx.xsl' versie ervan. Deze laatste zet een XML testbestand om in een SVRL foutrapportage.)

Dit genereert een report.xml bestand. Een basale HTML versie kan gemaakt worden met de volgende stylesheet: svrl2html.xsl:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:svrl="http://purl.oclc.org/dsdl/svrl">
    <xsl:output method="html" indent="yes"/>

    <xsl:template match="/">
        <html xmlns="http://www.w3.org/1999/xhtml">
            <head>
                <title>SVRL report</title>
                <style>
                    body {margin:8px;}
                    a[href] {color:blue;}
                </style>
            </head>
            <body>
                <h1>SVRL report</h1>
                <div>Errors: <xsl:value-of select="count(.//svrl:failed-assert)"/></div>
                <xsl:for-each select=".//svrl:failed-assert">
                    <ul>
                        <li><b>Text: <xsl:value-of select="svrl:text"/></b></li>
                        <li>Test: <xsl:value-of select="@test"/></li>
                        <li>See: <xsl:value-of select="@see"/></li>
                        <li>Location: <xsl:value-of select="@location"/></li>
                    </ul>
                </xsl:for-each>
            </body>
        </html>
    </xsl:template>

    <xsl:template match="@*|node()">
        <xsl:copy>
            <xsl:apply-templates select="@*|node()"/>
        </xsl:copy>
    </xsl:template>
</xsl:stylesheet>

Deze kan uiteraard ook weer met Saxon uitgevoerd worden:

 $ saxon\bin\Transform
   -t 
   -s:report.xml 
   -xsl:svrl2html.xsl 
   -o:report.html