XML-Schema / XML-Schema 1.1 / Schemavalidierung mit XSLT 3.0
![]() |
![]() |
➪ Schemavalidierung mit XSLT 3.0: Einen leistungsfähigen (schema-aware) XSL-Prozessor vorausgesetzt, können Sie die Schemavalidierung auch mit XSLT 3.0 durchführen.
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:err="http://www.w3.org/2005/xqt-errors"
exclude-result-prefixes="xs err"
version="3.0">
<xsl:output method="xml" indent="yes"/>
<xsl:import-schema
schema-location="myxsd_11.xsd"
use-when="system-property('xsl:is-schema-aware') eq 'yes'" />
<xsl:template match="/">
<ergebnis>
<xsl:for-each
select="collection('irgendeinverzeichnis/?select=*.xml;recurse=no')">
<xsl:variable name="vfilename" select="base-uri()" />
<datei filename="{$vfilename}">
<xsl:try>
<xsl:variable name="vtmp">
<xsl:copy-of select="." validation="strict"/>
</xsl:variable>
<xsl:value-of
select="if (count($vtmp/descendant::*) > 0)
then ('alles ok')
else ('Fehler')"/>
<xsl:catch errors="*">
<FEHLER>
<xsl:value-of
select="concat('FEHLER: ', $vfilename, ' : ', $err:description)"/>
</FEHLER>
</xsl:catch>
</xsl:try>
</datei>
</xsl:for-each>
</ergebnis>
</xsl:template>
</xsl:stylesheet>
wg / 31. Dezember 2019
Fragen? Anmerkungen? Tipps?
Bitte nehmen Sie Kontakt zu mir auf.
V.i.S.d.P.: Wilfried Grupe * Klus 6 * 37643 Negenborn
☎ 0151. 750 360 61 * eMail: info10@wilfried-grupe.de