diff --git a/README.md b/README.md
index 47a7f961ee7e81c2bddea97f0137bd7dec0c7e46..1299ff88f052d6558d1aca6ff6f2a48837e4e911 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# iJw 3.0.3
+# iJw 3.1.0
 
 Deze repository bevat de XSLT's voor gebruik binnen de iJw.
 
diff --git a/xslt-validatie/common/2_0/basis.xsl b/xslt-validatie/common/2_0/basis.xsl
index ef2e5323edde02507166daf6e2af20a381e53a39..3b3c375dd3728de680522e3907b7ba30e2db0517 100644
--- a/xslt-validatie/common/2_0/basis.xsl
+++ b/xslt-validatie/common/2_0/basis.xsl
@@ -1085,6 +1085,26 @@
         </xsl:if>
     </xsl:template>
 
+    <!-- Check if pThis is in the same month as pOther; dates must be formatted
+        as YYYY-MM-DD -->
+    <xsl:template name="checksamemonth">
+        <xsl:param name="pThis" select="."/>
+        <xsl:param name="pOther" select="."/>
+        <xsl:param name="pExtra"
+                   select="emptyNodeSet"/> <!-- Selecting a not existing node so the default value'll be an empty node-set -->
+        <xsl:param name="pRule">
+            FAIL
+        </xsl:param>
+
+        <xsl:if test="not($pThis) or not($pOther) or substring(translate($pOther/text(), '-', ''), 5, 2) != substring(translate($pThis/text(), '-', ''), 5, 2)">
+            <xsl:call-template name="addError">
+                <xsl:with-param name="pRule" select="$pRule"/>
+                <xsl:with-param name="pElements"
+                                select="$pThis | $pOther | $pExtra"/>
+            </xsl:call-template>
+        </xsl:if>
+    </xsl:template>
+
     <!-- Checks if the number of years between pDate1 and pDate2 is not more
         than pYears -->
     <xsl:template name="checkYearsBetween">
@@ -1742,7 +1762,7 @@
     </xsl:template>
 
     <xsl:variable name="xsltVersion">
-        2.2.8
+        2.4.3
     </xsl:variable>
 
     <xsl:template match="*|@*|text()" mode="check"/>
diff --git a/xslt-validatie/jw/3_0/JW303.xsl b/xslt-validatie/jw/3_0/JW303.xsl
deleted file mode 100644
index c7c1728cd05cd6a18fbbb7c0e7a52632aeefdde2..0000000000000000000000000000000000000000
--- a/xslt-validatie/jw/3_0/JW303.xsl
+++ /dev/null
@@ -1,75 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:vr="http://www.istandaarden.nl/validatie/1_1/rapport/schema">
-	<!-- iJw 3.0 JW303 (2021-01-25) -->
-
-	<xsl:import href="common/basis.xsl" />
-	<xsl:include href="condities/CD007.xsl" />
-	<xsl:include href="condities/CD025.xsl" />
-	<xsl:include href="condities/CD055.xsl" />
-	<xsl:include href="condities/CD056.xsl" />
-	<xsl:include href="condities/CD058.xsl" />
-	<xsl:include href="condities/CD059.xsl" />
-	<xsl:include href="condities/CD060.xsl" />
-	<xsl:include href="condities/CD062.xsl" />
-	<xsl:include href="constraints/CS002.xsl" />
-	<xsl:include href="constraints/CS023.xsl" />
-	<xsl:include href="constraints/CS050.xsl" />
-	<xsl:include href="constraints/CS089.xsl" />
-	<xsl:include href="constraints/CS103.xsl" />
-	<xsl:include href="constraints/CS108.xsl" />
-	<xsl:include href="constraints/CS323.xsl" />
-	<xsl:include href="constraints/CS325.xsl" />
-	<xsl:include href="constraints/CS327.xsl" />
-	<xsl:include href="constraints/CS328.xsl" />
-	<xsl:include href="constraints/CS331.xsl" />
-	<xsl:include href="rules/TR002.xsl" />
-	<xsl:include href="rules/TR097.xsl" />
-	<xsl:include href="rules/TR101.xsl" />
-	<xsl:include href="rules/TR312.xsl" />
-	<xsl:include href="rules/TR313.xsl" />
-	<xsl:include href="rules/TR314.xsl" />
-	<xsl:include href="rules/TR315.xsl" />
-	<xsl:include href="rules/TR316.xsl" />
-	<xsl:include href="rules/TR317.xsl" />
-	<xsl:include href="rules/TR319.xsl" />
-
-	<xsl:template match="*" mode="check" priority="0">
-		<xsl:apply-templates select="." mode="CD007"/>
-		<xsl:apply-templates select="." mode="CD025"/>
-		<xsl:apply-templates select="." mode="CD055"/>
-		<xsl:apply-templates select="." mode="CD056"/>
-		<xsl:apply-templates select="." mode="CD058"/>
-		<xsl:apply-templates select="." mode="CD059"/>
-		<xsl:apply-templates select="." mode="CD060"/>
-		<xsl:apply-templates select="." mode="CD062"/>
-		<xsl:apply-templates select="." mode="CS002"/>
-		<xsl:apply-templates select="." mode="CS023"/>
-		<xsl:apply-templates select="." mode="CS050"/>
-		<xsl:apply-templates select="." mode="CS089"/>
-		<xsl:apply-templates select="." mode="CS103"/>
-		<xsl:apply-templates select="." mode="CS108"/>
-		<xsl:apply-templates select="." mode="CS323"/>
-		<xsl:apply-templates select="." mode="CS325"/>
-		<xsl:apply-templates select="." mode="CS327"/>
-		<xsl:apply-templates select="." mode="CS328"/>
-		<xsl:apply-templates select="." mode="CS331"/>
-		<xsl:apply-templates select="." mode="TR002"/>
-		<xsl:apply-templates select="." mode="TR097"/>
-		<xsl:apply-templates select="." mode="TR101"/>
-		<xsl:apply-templates select="." mode="TR312"/>
-		<xsl:apply-templates select="." mode="TR313"/>
-		<xsl:apply-templates select="." mode="TR314"/>
-		<xsl:apply-templates select="." mode="TR315"/>
-		<xsl:apply-templates select="." mode="TR316"/>
-		<xsl:apply-templates select="." mode="TR317"/>
-		<xsl:apply-templates select="." mode="TR319"/>
-	</xsl:template>
-
-	<xsl:variable name="versionInfo">
-		<vr:XSLTHeader>
-			<vr:Standaard>ijw</vr:Standaard>
-			<vr:StandaardRelease>3.0</vr:StandaardRelease>
-			<vr:XSLTVersie>2.2.8</vr:XSLTVersie>
-		</vr:XSLTHeader>
-	</xsl:variable>
-</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_0/JW304.xsl b/xslt-validatie/jw/3_0/JW304.xsl
deleted file mode 100644
index 6c607d7d1a108f1a136c33c73e1ee70887964667..0000000000000000000000000000000000000000
--- a/xslt-validatie/jw/3_0/JW304.xsl
+++ /dev/null
@@ -1,69 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:vr="http://www.istandaarden.nl/validatie/1_1/rapport/schema">
-	<!-- iJw 3.0 JW304 (2021-01-25) -->
-
-	<xsl:import href="common/basis.xsl" />
-	<xsl:include href="condities/CD005.xsl" />
-	<xsl:include href="condities/CD007.xsl" />
-	<xsl:include href="condities/CD025.xsl" />
-	<xsl:include href="condities/CD055.xsl" />
-	<xsl:include href="condities/CD056.xsl" />
-	<xsl:include href="condities/CD058.xsl" />
-	<xsl:include href="condities/CD059.xsl" />
-	<xsl:include href="condities/CD060.xsl" />
-	<xsl:include href="condities/CD062.xsl" />
-	<xsl:include href="constraints/CS002.xsl" />
-	<xsl:include href="constraints/CS023.xsl" />
-	<xsl:include href="constraints/CS050.xsl" />
-	<xsl:include href="constraints/CS089.xsl" />
-	<xsl:include href="constraints/CS103.xsl" />
-	<xsl:include href="constraints/CS108.xsl" />
-	<xsl:include href="constraints/CS323.xsl" />
-	<xsl:include href="constraints/CS324.xsl" />
-	<xsl:include href="constraints/CS325.xsl" />
-	<xsl:include href="constraints/CS327.xsl" />
-	<xsl:include href="constraints/CS328.xsl" />
-	<xsl:include href="constraints/CS331.xsl" />
-	<xsl:include href="rules/TR002.xsl" />
-	<xsl:include href="rules/TR097.xsl" />
-	<xsl:include href="rules/TR101.xsl" />
-	<xsl:include href="rules/TR317.xsl" />
-	<xsl:include href="rules/TR320.xsl" />
-
-	<xsl:template match="*" mode="check" priority="0">
-		<xsl:apply-templates select="." mode="CD005"/>
-		<xsl:apply-templates select="." mode="CD007"/>
-		<xsl:apply-templates select="." mode="CD025"/>
-		<xsl:apply-templates select="." mode="CD055"/>
-		<xsl:apply-templates select="." mode="CD056"/>
-		<xsl:apply-templates select="." mode="CD058"/>
-		<xsl:apply-templates select="." mode="CD059"/>
-		<xsl:apply-templates select="." mode="CD060"/>
-		<xsl:apply-templates select="." mode="CD062"/>
-		<xsl:apply-templates select="." mode="CS002"/>
-		<xsl:apply-templates select="." mode="CS023"/>
-		<xsl:apply-templates select="." mode="CS050"/>
-		<xsl:apply-templates select="." mode="CS089"/>
-		<xsl:apply-templates select="." mode="CS103"/>
-		<xsl:apply-templates select="." mode="CS108"/>
-		<xsl:apply-templates select="." mode="CS323"/>
-		<xsl:apply-templates select="." mode="CS324"/>
-		<xsl:apply-templates select="." mode="CS325"/>
-		<xsl:apply-templates select="." mode="CS327"/>
-		<xsl:apply-templates select="." mode="CS328"/>
-		<xsl:apply-templates select="." mode="CS331"/>
-		<xsl:apply-templates select="." mode="TR002"/>
-		<xsl:apply-templates select="." mode="TR097"/>
-		<xsl:apply-templates select="." mode="TR101"/>
-		<xsl:apply-templates select="." mode="TR317"/>
-		<xsl:apply-templates select="." mode="TR320"/>
-	</xsl:template>
-
-	<xsl:variable name="versionInfo">
-		<vr:XSLTHeader>
-			<vr:Standaard>ijw</vr:Standaard>
-			<vr:StandaardRelease>3.0</vr:StandaardRelease>
-			<vr:XSLTVersie>2.2.8</vr:XSLTVersie>
-		</vr:XSLTHeader>
-	</xsl:variable>
-</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_0/JW319.xsl b/xslt-validatie/jw/3_0/JW319.xsl
deleted file mode 100644
index 2603335ef8503a9cf31fd9145a60c78e2e7ab203..0000000000000000000000000000000000000000
--- a/xslt-validatie/jw/3_0/JW319.xsl
+++ /dev/null
@@ -1,33 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:vr="http://www.istandaarden.nl/validatie/1_1/rapport/schema">
-	<!-- iJw 3.0 JW319 (2021-01-25) -->
-
-	<xsl:import href="common/basis.xsl" />
-	<xsl:include href="condities/CD085.xsl" />
-	<xsl:include href="condities/CD086.xsl" />
-	<xsl:include href="condities/CD088.xsl" />
-	<xsl:include href="constraints/CS002.xsl" />
-	<xsl:include href="constraints/CS323.xsl" />
-	<xsl:include href="rules/TR002.xsl" />
-	<xsl:include href="rules/TR097.xsl" />
-	<xsl:include href="rules/TR101.xsl" />
-
-	<xsl:template match="*" mode="check" priority="0">
-		<xsl:apply-templates select="." mode="CD085"/>
-		<xsl:apply-templates select="." mode="CD086"/>
-		<xsl:apply-templates select="." mode="CD088"/>
-		<xsl:apply-templates select="." mode="CS002"/>
-		<xsl:apply-templates select="." mode="CS323"/>
-		<xsl:apply-templates select="." mode="TR002"/>
-		<xsl:apply-templates select="." mode="TR097"/>
-		<xsl:apply-templates select="." mode="TR101"/>
-	</xsl:template>
-
-	<xsl:variable name="versionInfo">
-		<vr:XSLTHeader>
-			<vr:Standaard>ijw</vr:Standaard>
-			<vr:StandaardRelease>3.0</vr:StandaardRelease>
-			<vr:XSLTVersie>2.2.8</vr:XSLTVersie>
-		</vr:XSLTHeader>
-	</xsl:variable>
-</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_0/all_merged.xsl b/xslt-validatie/jw/3_0/all_merged.xsl
deleted file mode 100644
index 32a5a4b24c5f05e289986db4aa7c8a506ac26325..0000000000000000000000000000000000000000
--- a/xslt-validatie/jw/3_0/all_merged.xsl
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?><stylesheet xmlns="http://www.w3.org/1999/XSL/Transform" xmlns:n0="http://www.istandaarden.nl/ijw/3_0/jw319/schema" xmlns:n1="http://www.istandaarden.nl/ijw/3_0/jw307/schema" xmlns:n2="http://www.istandaarden.nl/ijw/3_0/jw317/schema" xmlns:n3="http://www.istandaarden.nl/ijw/3_0/jw305/schema" xmlns:n4="http://www.istandaarden.nl/ijw/3_0/jw304/schema" xmlns:n5="http://www.istandaarden.nl/ijw/3_0/jw315/schema" xmlns:n6="http://www.istandaarden.nl/ijw/3_0/jw303/schema" xmlns:n7="http://www.istandaarden.nl/ijw/3_0/jw325/schema" xmlns:n8="http://www.istandaarden.nl/ijw/3_0/jw301/schema" xmlns:n9="http://www.istandaarden.nl/ijw/3_0/jw323/schema" xmlns:na="http://www.istandaarden.nl/validatie/1_1/rapport/schema" xmlns:nb="http://www.istandaarden.nl/ijw/3_0/basisschema/schema" xmlns:nc="http://www.istandaarden.nl/validatie/1_1/rapport/schema" exclude-result-prefixes="na nb n4 n1 n3 n5 n6 n8 n7 n9 n2 n0" version="1.0"><output encoding="UTF-8" indent="yes" method="xml" version="1.0"/><template name="printXPath"><param name="pElement" select="."/><if test="$pElement/ancestor::*"><call-template name="printXPath"><with-param name="pElement" select="$pElement/.."/></call-template><text>/</text></if><value-of select="local-name($pElement)"/><if test="($pElement/preceding-sibling::*|$pElement/following-sibling::*)[local-name()=local-name($pElement)]"><value-of select="concat('[',count($pElement/preceding-sibling::*[local-name()=local-name($pElement)])+1,']')"/></if></template><template name="evaluateXPath"><param name="pPath" select="."/><param name="pContext" select="/"/><choose><when test="string-length($pPath) &gt; 0"><variable name="v0" select="substring($pPath,2)"/><variable name="v1"><choose><when test="not(contains($v0,'/'))"><value-of select="$v0"/></when><otherwise><value-of select="substring-before($v0,'/')"/></otherwise></choose></variable><variable name="v2"><choose><when test="not(contains($v1,'['))">1</when><otherwise><value-of select="substring-after(substring-before($v1,']'),'[')"/></otherwise></choose></variable><variable name="v3"><choose><when test="not(contains($v1,'['))"><value-of select="$v1"/></when><otherwise><value-of select="substring-before($v1,'[')"/></otherwise></choose></variable><call-template name="evaluateXPath"><with-param name="pPath" select="substring-after($pPath,$v1)"/><with-param name="pContext" select="$pContext/*[local-name()=$v3 and count(preceding-sibling::*[local-name()=$v3])=$v2 - 1]"/></call-template></when><otherwise><value-of select="normalize-space($pContext/text())"/></otherwise></choose></template><template name="addError"><param name="pRule">FOUT</param><param name="pElements" select="."/><param name="pCode" select="nonExistingNode"/><param name="pDetails" select="''"/><na:Fout><na:Code><value-of select="normalize-space($pRule)"/></na:Code><if test="$pCode"><na:Retourcode><value-of select="$pCode"/></na:Retourcode></if><for-each select="$pElements"><na:Locatie><text>/</text><call-template name="printXPath"><with-param name="pElement" select="."/></call-template></na:Locatie></for-each><choose><when test="$pDetails!=''"><na:Details><value-of select="$pDetails"/></na:Details></when><otherwise><variable name="v0"><apply-templates mode="getDetails" select="."><with-param name="pRule" select="normalize-space($pRule)"/></apply-templates></variable><if test="$v0!=''"><na:Details><value-of select="$v0"/></na:Details></if></otherwise></choose></na:Fout></template><template match="*" mode="getDetails" priority="0"><param name="pRule">FOUT</param></template><template name="checkGemeenteCode"><param name="pThis" select="."/><param name="pExtra" select="emptyNodeSet"/><param name="pRule">FAIL</param><variable name="v0"><apply-templates mode="validGemeente" select="."><with-param name="pGemeenteCode" select="1*normalize-space($pThis/text())"/></apply-templates></variable><if test="$v0!='true'"><call-template name="addError"><with-param name="pRule" select="$pRule"/><with-param name="pElements" select="$pThis|$pExtra"/></call-template></if></template><template match="*" mode="validGemeente" priority="0"><param name="pGemeenteCode" select="."/><value-of select="true()"/></template><template match="*" mode="validAGBCode" priority="0"><param name="pAGBCode" select="."/><param name="pFrom"/><param name="pTo" select="0"/><value-of select="true()"/></template><template match="*" mode="validZorginstelling" priority="0"><param name="pInstelling"/><param name="pOntvanger"/><value-of select="true()"/></template><template name="check11proef"><param name="pElement" select="."/><param name="pRule">FOUT</param><variable name="v0" select="floor(number($pElement/text()) div 1) mod 10"/><variable name="v1" select="floor(number($pElement/text()) div 10) mod 10"/><variable name="v2" select="floor(number($pElement/text()) div 100) mod 10"/><variable name="v3" select="floor(number($pElement/text()) div 1000) mod 10"/><variable name="v4" select="floor(number($pElement/text()) div 10000) mod 10"/><variable name="v5" select="floor(number($pElement/text()) div 100000) mod 10"/><variable name="v6" select="floor(number($pElement/text()) div 1000000) mod 10"/><variable name="v7" select="floor(number($pElement/text()) div 10000000) mod 10"/><variable name="v8" select="floor(number($pElement/text()) div 100000000) mod 10"/><if test="((9*$v8+8*$v7+7*$v6+6*$v5+5*$v4+4*$v3+3*$v2+2*$v1 - 1*$v0) mod 11)!=0"><call-template name="addError"><with-param name="pRule" select="$pRule"/><with-param name="pElements" select="$pElement"/></call-template></if></template><template name="split"><param name="pElement" select="."/><param name="pValue"/><choose><when test="string-length(normalize-space($pValue)) &gt; 0"><variable name="v0" select="normalize-space(substring-before(concat($pValue,','),','))"/><choose><when test="normalize-space($pElement/text())=$v0"><value-of select="true()"/></when><otherwise><call-template name="split"><with-param name="pElement" select="$pElement"/><with-param name="pValue" select="substring-after($pValue,',')"/></call-template></otherwise></choose></when><otherwise><value-of select="false()"/></otherwise></choose></template><template name="callrecursive"><param name="pT"/><param name="pValues"/><param name="pText"/><param name="pPattern"/><choose><when test="string-length($pT)=1 and string-length(translate($pT,$pValues,''))=0"><call-template name="patternmatch"><with-param name="pText" select="$pText"/><with-param name="pPattern" select="$pPattern"/></call-template></when><otherwise><value-of select="false()"/></otherwise></choose></template><template name="patternmatch"><param name="pText"/><param name="pPattern"/><choose><when test="(string-length($pText)=0 and string-length($pPattern)!=0) or (string-length($pText)!=0 and string-length($pPattern)=0)"><value-of select="false()"/></when><when test="string-length($pText)=0"><value-of select="true()"/></when><otherwise><variable name="v0" select="substring($pText,1,1)"/><variable name="v1" select="substring($pPattern,1,1)"/><variable name="v2" select="substring($pText,2)"/><variable name="v3" select="substring($pPattern,2)"/><choose><when test="$v1='.'"><call-template name="patternmatch"><with-param name="pText" select="$v2"/><with-param name="pPattern" select="$v3"/></call-template></when><when test="$v1='\' and string-length($v3)!=0"><call-template name="callrecursive"><with-param name="pT" select="$v0"/><with-param name="pValues" select="substring($v3,1,1)"/><with-param name="pText" select="$v2"/><with-param name="pPattern" select="substring($v3,2)"/></call-template></when><when test="$v1='1'"><call-template name="callrecursive"><with-param name="pT" select="$v0"/><with-param name="pValues">123456789</with-param><with-param name="pText" select="$v2"/><with-param name="pPattern" select="$v3"/></call-template></when><when test="$v1='0'"><call-template name="callrecursive"><with-param name="pT" select="$v0"/><with-param name="pValues">0123456789</with-param><with-param name="pText" select="$v2"/><with-param name="pPattern" select="$v3"/></call-template></when><when test="$v1='a'"><call-template name="callrecursive"><with-param name="pT" select="$v0"/><with-param name="pValues">abcdefghijklmnopqrstuvwxyz</with-param><with-param name="pText" select="$v2"/><with-param name="pPattern" select="$v3"/></call-template></when><when test="$v1='A'"><call-template name="callrecursive"><with-param name="pT" select="$v0"/><with-param name="pValues">ABCDEFGHIJKLMNOPQRSTUVWXYZ</with-param><with-param name="pText" select="$v2"/><with-param name="pPattern" select="$v3"/></call-template></when><when test="$v1='z' or $v1='Z'"><call-template name="callrecursive"><with-param name="pT" select="$v0"/><with-param name="pValues">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</with-param><with-param name="pText" select="$v2"/><with-param name="pPattern" select="$v3"/></call-template></when><when test="$v0=$v1"><call-template name="patternmatch"><with-param name="pText" select="$v2"/><with-param name="pPattern" select="$v3"/></call-template></when><otherwise><value-of select="false()"/></otherwise></choose></otherwise></choose></template><template name="testpattern"><param name="pElement" select="."/><param name="pPattern" select="''"/><variable name="v0" select="$pElement/text()"/><call-template name="patternmatch"><with-param name="pText" select="$v0"/><with-param name="pPattern" select="$pPattern"/></call-template></template><template name="testvalue"><param name="pElement" select="."/><param name="pValues" select="''"/><choose><when test="normalize-space($pValues)=''"><choose><when test="not($pElement/.)"><value-of select="true()"/></when><when test="normalize-space($pElement/text())=''"><value-of select="true()"/></when><otherwise><value-of select="false()"/></otherwise></choose></when><when test="normalize-space($pValues)='*'"><choose><when test="normalize-space($pElement/text())!=''"><value-of select="true()"/></when><otherwise><value-of select="false()"/></otherwise></choose></when><when test="normalize-space($pValues)='#'"><choose><when test="$pElement/."><value-of select="true()"/></when><otherwise><value-of select="false()"/></otherwise></choose></when><when test="string-length(normalize-space($pValues)) &gt; 1 and substring(normalize-space($pValues),1,1)='#'"><call-template name="testpattern"><with-param name="pElement" select="$pElement"/><with-param name="pPattern" select="substring(normalize-space($pValues),2)"/></call-template></when><when test="string-length(normalize-space($pValues)) &gt; 1 and substring(normalize-space($pValues),1,1)='!'"><variable name="v0"><call-template name="testvalue"><with-param name="pElement" select="$pElement"/><with-param name="pValues" select="substring(normalize-space($pValues),2)"/></call-template></variable><choose><when test="$v0='true'"><value-of select="false()"/></when><otherwise><value-of select="true()"/></otherwise></choose></when><otherwise><call-template name="split"><with-param name="pElement" select="$pElement"/><with-param name="pValue" select="$pValues"/></call-template></otherwise></choose></template><template name="checkRelation"><param name="pThis" select="."/><param name="pOther"/><param name="pRelation"/><param name="pExtra" select="node()"/><param name="pRule">FAIL</param><choose><when test="normalize-space($pRelation)='equals'"><call-template name="checkRelation"><with-param name="pThis" select="$pOther"/><with-param name="pOther" select="$pThis"/><with-param name="pRelation">equalsGt</with-param><with-param name="pExtra" select="$pExtra"/><with-param name="pRule" select="$pRule"/></call-template><call-template name="checkRelation"><with-param name="pThis" select="$pOther"/><with-param name="pOther" select="$pThis"/><with-param name="pRelation">equalsLt</with-param><with-param name="pExtra" select="$pExtra"/><with-param name="pRule" select="$pRule"/></call-template></when><when test="normalize-space($pRelation)='equalsGt' and $pThis &lt; $pOther"><call-template name="addError"><with-param name="pRule" select="$pRule"/><with-param name="pElements" select="$pThis|$pOther|$pExtra"/></call-template></when><when test="normalize-space($pRelation)='equalsLt'"><call-template name="checkRelation"><with-param name="pThis" select="$pOther"/><with-param name="pOther" select="$pThis"/><with-param name="pRelation">equalsGt</with-param><with-param name="pExtra" select="$pExtra"/><with-param name="pRule" select="$pRule"/></call-template></when></choose></template><template name="adjustDate"><param name="pDate"/><param name="pOverflow">carry</param><variable name="v0" select="$pDate mod 100"/><variable name="v1" select="floor($pDate div 100) mod 100"/><variable name="v2" select="floor($pDate div 10000) mod 10000"/><variable name="v3"><choose><when test="$v0 &gt; 30 and ($v1=4 or $v1=6 or $v1=9 or $v1=11)"><choose><when test="$pOverflow='carry'"><value-of select="$pDate - 30+100"/></when><when test="$pOverflow='truncate'"><value-of select="$pDate - $v0+30"/></when></choose></when><when test="$v0 &gt; 31 and ($v1=1 or $v1=3 or $v1=5 or $v1=7 or $v1=8 or $v1=10 or $v1=12)"><choose><when test="$pOverflow='carry'"><value-of select="$pDate - 31+100"/></when><when test="$pOverflow='truncate'"><value-of select="$pDate - $v0+31"/></when></choose></when><when test="$v0 &gt; 29 and $v1=2 and ($v2 mod 4)=0"><choose><when test="$pOverflow='carry'"><value-of select="$pDate - 29+100"/></when><when test="$pOverflow='truncate'"><value-of select="$pDate - $v0+29"/></when></choose></when><when test="$v0 &gt; 28 and $v1=2 and ($v2 mod 4)!=0"><choose><when test="$pOverflow='carry'"><value-of select="$pDate - 28+100"/></when><when test="$pOverflow='truncate'"><value-of select="$pDate - $v0+28"/></when></choose></when><otherwise><value-of select="0+$pDate"/></otherwise></choose></variable><variable name="v4"><choose><when test="floor($v3 div 100) mod 100 &gt; 12"><value-of select="$v3 - 1200+10000"/></when><otherwise><value-of select="0+$v3"/></otherwise></choose></variable><choose><when test="$v4=$pDate"><value-of select="0+$pDate"/></when><otherwise><call-template name="adjustDate"><with-param name="pDate" select="$v4"/><with-param name="pOverflow" select="$pOverflow"/></call-template></otherwise></choose></template><template name="addDate"><param name="pDate"/><param name="pExtra"/><param name="pOverflow">carry</param><if test="normalize-space($pDate)!=''"><call-template name="adjustDate"><with-param name="pDate" select="translate($pDate,'-','')+$pExtra"/><with-param name="pOverflow" select="$pOverflow"/></call-template></if></template><template name="addMonths"><param name="pDate"/><param name="pExtra"/><param name="pOverflow">carry</param><choose><when test="$pExtra &lt; 0"><call-template name="addMonths"><with-param name="pDate" select="translate($pDate,'-','') - 10000"/><with-param name="pExtra" select="$pExtra+12"/><with-param name="pOverflow" select="$pOverflow"/></call-template></when><when test="$pExtra &gt; 12"><call-template name="addMonths"><with-param name="pDate" select="translate($pDate,'-','')+10000"/><with-param name="pExtra" select="$pExtra - 12"/><with-param name="pOverflow" select="$pOverflow"/></call-template></when><otherwise><call-template name="adjustDate"><with-param name="pDate" select="translate($pDate,'-','')+100*$pExtra"/><with-param name="pOverflow" select="$pOverflow"/></call-template></otherwise></choose></template><template name="checkDateRelation"><param name="pSource" select="."/><param name="pThis" select="$pSource/text()"/><param name="pDate">2018-01-01</param><param name="pRelation"/><param name="pExtra" select="emptyNodeSet"/><param name="pRule">FAIL</param><choose><when test="not($pSource)"><call-template name="addError"><with-param name="pRule" select="$pRule"/><with-param name="pElements" select="$pSource"/></call-template></when><when test="$pRelation='equals'"><call-template name="checkDateRelation"><with-param name="pThis" select="$pDate"/><with-param name="pDate" select="$pThis"/><with-param name="pRelation">equalsGt</with-param><with-param name="pExtra" select="$pExtra"/><with-param name="pRule" select="$pRule"/></call-template><call-template name="checkDateRelation"><with-param name="pThis" select="$pDate"/><with-param name="pDate" select="$pThis"/><with-param name="pRelation">equalsLt</with-param><with-param name="pExtra" select="$pExtra"/><with-param name="pRule" select="$pRule"/></call-template></when><when test="$pRelation='equalsGt' and translate($pThis,'-','') &lt; translate($pDate,'-','')"><call-template name="addError"><with-param name="pRule" select="$pRule"/><with-param name="pElements" select="$pSource|$pExtra"/></call-template></when><when test="$pRelation='equalsLt'"><call-template name="checkDateRelation"><with-param name="pThis" select="$pDate"/><with-param name="pDate" select="$pThis"/><with-param name="pRelation">equalsGt</with-param><with-param name="pExtra" select="$pExtra"/><with-param name="pRule" select="$pRule"/></call-template></when><when test="$pRelation='daysAfter'"><variable name="v0"><call-template name="addDate"><with-param name="pDate" select="$pDate"/><with-param name="pExtra" select="$pExtra"/></call-template></variable><if test="1*translate($pThis,'-','') &lt;= 1*$v0"><call-template name="addError"><with-param name="pRule" select="$pRule"/><with-param name="pElements" select="$pSource|$pDate"/></call-template></if></when><when test="$pRelation='monthsBefore'"><variable name="v0"><call-template name="addMonths"><with-param name="pDate" select="$pDate"/><with-param name="pExtra" select="$pExtra"/><with-param name="pOverflow">truncate</with-param></call-template></variable><if test="1*translate($pThis,'-','') &gt; 1*$v0"><call-template name="addError"><with-param name="pRule" select="$pRule"/><with-param name="pElements" select="$pSource|$pDate"/></call-template></if></when><when test="$pRelation='monthsAfter'"><variable name="v0"><call-template name="addMonths"><with-param name="pDate" select="$pDate"/><with-param name="pExtra" select="$pExtra"/><with-param name="pOverflow">truncate</with-param></call-template></variable><if test="1*translate($pThis,'-','') &lt; 1*$v0"><call-template name="addError"><with-param name="pRule" select="$pRule"/><with-param name="pElements" select="$pSource|$pDate"/></call-template></if></when></choose></template><template name="checkempty"><param name="pThis" select="."/><param name="pOther" select="."/><param name="pExtra" select="emptyNodeSet"/><param name="pRule">FAIL</param><variable name="v0"><call-template name="testvalue"><with-param name="pElement" select="$pThis"/></call-template></variable><variable name="v1"><call-template name="testvalue"><with-param name="pElement" select="$pOther"/></call-template></variable><if test="$v0='false' and $v1='true'"><call-template name="addError"><with-param name="pRule" select="$pRule"/><with-param name="pElements" select="$pThis|$pOther|$pExtra"/></call-template></if></template><template name="checkafter"><param name="pThis" select="."/><param name="pOther" select="."/><param name="pExtra" select="emptyNodeSet"/><param name="pRule">FAIL</param><if test="not($pThis) or not($pOther) or translate($pOther/text(),'-','') &gt; translate(substring($pThis/text(),1,10),'-','')"><call-template name="addError"><with-param name="pRule" select="$pRule"/><with-param name="pElements" select="$pThis|$pOther|$pExtra"/></call-template></if></template><template name="checkafterstrict"><param name="pThis" select="."/><param name="pOther" select="."/><param name="pExtra" select="emptyNodeSet"/><param name="pRule">FAIL</param><if test="not($pThis) or not($pOther) or translate($pOther/text(),'-','') &gt;= translate($pThis/text(),'-','')"><call-template name="addError"><with-param name="pRule" select="$pRule"/><with-param name="pElements" select="$pThis|$pOther|$pExtra"/></call-template></if></template><template name="checkYearsBetween"><param name="pDate1"/><param name="pDate2"/><param name="pYears"/><param name="pExtra" select="emptyNodeSet"/><param name="pRule">ERROR</param><variable name="v0" select="number(translate(substring($pDate1,1,10),'-',''))"/><variable name="v1" select="number(translate($pDate2,'-',''))"/><variable name="v2" select="number($pYears)*10000"/><if test="($v1+$v2) &lt; $v0"><call-template name="addError"><with-param name="pRule" select="$pRule"/><with-param name="pElements" select="$pDate1|$pDate2|$pExtra"/></call-template></if></template><template name="isPeriodOverlay"><param name="pThis"/><param name="pOther"/><choose><when test="$pThis/*[substring(local-name(),string-length(local-name()) - 8)='Einddatum'] and $pOther/*[substring(local-name(),string-length(local-name()) - 8)='Einddatum']"><choose><when test="translate($pThis/*[substring(local-name(),string-length(local-name()) - 8)='Einddatum'],'-','') &gt;= translate($pOther/*[substring(local-name(),string-length(local-name()) - 11)='Ingangsdatum'],'-','') and translate($pThis/*[substring(local-name(),string-length(local-name()) - 8)='Einddatum'],'-','') &lt;= translate($pOther/*[substring(local-name(),string-length(local-name()) - 8)='Einddatum'],'-','') or translate($pOther/*[substring(local-name(),string-length(local-name()) - 8)='Einddatum'],'-','') &gt;= translate($pThis/*[substring(local-name(),string-length(local-name()) - 11)='Ingangsdatum'],'-','') and translate($pOther/*[substring(local-name(),string-length(local-name()) - 8)='Einddatum'],'-','') &lt;= translate($pThis/*[substring(local-name(),string-length(local-name()) - 8)='Einddatum'],'-','')"><value-of select="true()"/></when><otherwise><value-of select="false()"/></otherwise></choose></when><when test="$pThis/*[substring(local-name(),string-length(local-name()) - 8)='Einddatum'] and not($pOther/*[substring(local-name(),string-length(local-name()) - 8)='Einddatum'])"><choose><when test="translate($pThis/*[substring(local-name(),string-length(local-name()) - 8)='Einddatum'],'-','') &gt;= translate($pOther/*[substring(local-name(),string-length(local-name()) - 11)='Ingangsdatum'],'-','') and translate($pThis/*[substring(local-name(),string-length(local-name()) - 8)='Einddatum'],'-','') &lt;= '99999999' or '99999999' &gt;= translate($pThis/*[substring(local-name(),string-length(local-name()) - 11)='Ingangsdatum'],'-','') and '99999999' &lt;= translate($pThis/*[substring(local-name(),string-length(local-name()) - 8)='Einddatum'],'-','')"><value-of select="true()"/></when><otherwise><value-of select="false()"/></otherwise></choose></when><when test="$pOther/*[substring(local-name(),string-length(local-name()) - 8)='Einddatum'] and not($pThis/*[substring(local-name(),string-length(local-name()) - 8)='Einddatum'])"><choose><when test="'99999999' &gt;= translate($pOther/*[substring(local-name(),string-length(local-name()) - 11)='Ingangsdatum'],'-','') and '99999999' &lt;= translate($pOther/*[substring(local-name(),string-length(local-name()) - 8)='Einddatum'],'-','') or translate($pOther/*[substring(local-name(),string-length(local-name()) - 8)='Einddatum'],'-','') &gt;= translate($pThis/*[substring(local-name(),string-length(local-name()) - 11)='Ingangsdatum'],'-','') and translate($pOther/*[substring(local-name(),string-length(local-name()) - 8)='Einddatum'],'-','') &lt;= '99999999'"><value-of select="true()"/></when><otherwise><value-of select="false()"/></otherwise></choose></when><otherwise><value-of select="true()"/></otherwise></choose></template><template name="checkvalue"><param name="pThis" select="."/><param name="pValues" select="''"/><param name="pExtra" select="emptyNodeSet"/><param name="pCode" select="nonExistingNode"/><param name="pRule">FAIL</param><variable name="v0"><call-template name="testvalue"><with-param name="pElement" select="$pThis"/><with-param name="pValues" select="$pValues"/></call-template></variable><if test="$v0='false'"><call-template name="addError"><with-param name="pRule" select="$pRule"/><with-param name="pElements" select="$pThis|$pExtra"/><with-param name="pCode" select="$pCode"/></call-template></if></template><template name="checknvalue"><param name="pThis" select="."/><param name="pValues" select="''"/><param name="pExtra" select="emptyNodeSet"/><param name="pRule">FAIL</param><variable name="v0"><call-template name="testvalue"><with-param name="pElement" select="$pThis"/><with-param name="pValues" select="$pValues"/></call-template></variable><if test="$v0='true'"><call-template name="addError"><with-param name="pRule" select="$pRule"/><with-param name="pElements" select="$pThis|$pExtra"/></call-template></if></template><template name="checkimplication"><param name="pThis" select="."/><param name="pValue1" select="''"/><param name="pOther" select="."/><param name="pValue2" select="''"/><param name="pExtra" select="emptyNodeSet"/><param name="pRule">FAIL</param><variable name="v0"><call-template name="testvalue"><with-param name="pElement" select="$pThis"/><with-param name="pValues" select="$pValue1"/></call-template></variable><variable name="v1"><call-template name="testvalue"><with-param name="pElement" select="$pOther"/><with-param name="pValues" select="$pValue2"/></call-template></variable><if test="$v0='true' and $v1='false'"><call-template name="addError"><with-param name="pRule" select="$pRule"/><with-param name="pElements" select="$pThis|$pOther|$pExtra"/></call-template></if></template><template name="checksame"><param name="pThis" select="."/><param name="pValue1" select="''"/><param name="pOther" select="."/><param name="pValue2" select="''"/><param name="pExtra" select="emptyNodeSet"/><param name="pRule">FAIL</param><variable name="v0"><call-template name="testvalue"><with-param name="pElement" select="$pThis"/><with-param name="pValues" select="$pValue1"/></call-template></variable><variable name="v1"><call-template name="testvalue"><with-param name="pElement" select="$pOther"/><with-param name="pValues" select="$pValue2"/></call-template></variable><if test="$v0!=$v1"><call-template name="addError"><with-param name="pRule" select="$pRule"/><with-param name="pElements" select="$pThis|$pOther|$pExtra"/></call-template></if></template><template name="checkSingleCorrect"><param name="pThis" select="."/><param name="pValue1" select="''"/><param name="pOther" select="."/><param name="pValue2" select="''"/><param name="pExtra" select="emptyNodeSet"/><param name="pRule">FAIL</param><variable name="v0"><call-template name="testvalue"><with-param name="pElement" select="$pThis"/><with-param name="pValues" select="$pValue1"/></call-template></variable><variable name="v1"><call-template name="testvalue"><with-param name="pElement" select="$pOther"/><with-param name="pValues" select="$pValue2"/></call-template></variable><if test="$v0='false' and $v1='false'"><call-template name="addError"><with-param name="pRule" select="$pRule"/><with-param name="pElements" select="$pThis|$pOther|$pExtra"/></call-template></if></template><template name="transformKeys"><param name="pElement" select="."/><param name="pKeys"/><for-each select="$pElement"><variable name="v0"><call-template name="evaluateXPath"><with-param name="pContext" select="current()"/><with-param name="pPath"><value-of select="substring-before(normalize-space($pKeys),',')"/></with-param></call-template></variable><text disable-output-escaping="yes">&lt;</text><value-of select="$v0"/><text disable-output-escaping="yes">&gt;</text><if test="contains($pKeys,',') and substring-after(normalize-space($pKeys),',')"><call-template name="transformKeys"><with-param name="pElement" select="current()"/><with-param name="pKeys" select="substring-after(normalize-space($pKeys),',')"/></call-template></if></for-each></template><template name="checkDuplicateKeys"><param name="pElement" select="."/><param name="pKeys"/><param name="pExtra" select="emptyNodeSet"/><param name="pRule">FAIL</param><for-each select="$pElement"><variable name="v0"><call-template name="transformKeys"><with-param name="pElement" select="current()"/><with-param name="pKeys" select="$pKeys"/></call-template></variable><variable name="v1" select="position()"/><for-each select="$pElement[position() &gt; $v1]"><variable name="v2"><call-template name="transformKeys"><with-param name="pElement" select="current()"/><with-param name="pKeys" select="$pKeys"/></call-template></variable><if test="$v0=$v2 and $v0!='' and $v2!=''"><call-template name="addError"><with-param name="pRule" select="$pRule"/><with-param name="pElements" select="$pElement[position()=$v1]|current()|$pExtra"/></call-template></if></for-each></for-each></template><template name="formatNumberInternal"><param name="pValue"/><if test="$pValue &gt; 0"><call-template name="formatNumberInternal"><with-param name="pValue" select="floor(number($pValue) div 10)"/></call-template><value-of select="number($pValue) mod 10"/></if></template><template name="formatNumber"><param name="pValue"/><choose><when test="number($pValue) &lt; 0">-<call-template name="formatNumberInternal"><with-param name="pValue" select="0 - number($pValue)"/></call-template></when><when test="number($pValue)=0">0</when><otherwise><call-template name="formatNumberInternal"><with-param name="pValue" select="number($pValue)"/></call-template></otherwise></choose></template><template match="*[local-name()='Afzender']" mode="header" priority="10"/><template match="*[local-name()='Ontvanger']" mode="header" priority="10"/><template match="*[local-name()='BerichtCode']" mode="header" priority="10"><na:BerichtCode><value-of select="text()"/></na:BerichtCode></template><template match="*[local-name()='BerichtType']" mode="header" priority="10"><na:BerichtCode><value-of select="text()"/></na:BerichtCode></template><template match="*[local-name()='BerichtVersie']" mode="header" priority="10"><na:BerichtVersie><value-of select="text()"/></na:BerichtVersie></template><template match="*[local-name()='BerichtSubversie']" mode="header" priority="10"><na:BerichtSubversie><value-of select="text()"/></na:BerichtSubversie></template><template match="*[local-name()='Identificatie'] | *[local-name()='DeclarantFactuurNummer']" mode="header" priority="10"><na:Identificatie><value-of select="normalize-space(text())"/></na:Identificatie></template><template match="*[local-name()='Dagtekening'] | *[local-name()='FactuurDagtekening']" mode="header" priority="10"><na:Dagtekening><value-of select="substring(text(),1,10)"/></na:Dagtekening></template><template match="*[local-name()='BerichtIdentificatie'] | *[local-name()='DeclaratieFactuurIdentificatie']" mode="header" priority="10"><na:BerichtIdentificatie><apply-templates mode="header" select="*"/></na:BerichtIdentificatie></template><template match="*[local-name()='DeclaratieIdentificatie']" mode="header" priority="10"/><variable name="v0">2.2.8</variable><template match="*|@*|text()" mode="check"/><template match="*|@*|text()" mode="header"><apply-templates mode="header" select="*"/></template><template match="*|@*|text()" mode="traverse"><apply-templates mode="traverse" select="*"/><apply-templates mode="check" select="."/></template><template match="*[local-name() = 'Bericht']"><na:Rapport><na:Header><apply-templates mode="header" select="//*[local-name()='Header']/*"/><choose><when test="contains($v0,'-SNAPSHOT')"><na:XSLTVersie>0.0.0</na:XSLTVersie></when><otherwise><na:XSLTVersie><value-of select="normalize-space($v0)"/></na:XSLTVersie></otherwise></choose></na:Header><na:Fouten><apply-templates mode="traverse" select="*"/></na:Fouten></na:Rapport></template><template match="*" mode="getDetails" priority="100"><param name="pRule">FOUT</param><choose><when test="$pRule='CD005'">Als Postcode gevuld is, dan verplicht vullen, anders leeg laten.</when><when test="$pRule='CD007'">Als Communicatie / Vorm de waarde 1 (tolk taal) heeft, dan verplicht vullen, anders leeglaten.</when><when test="$pRule='CD009'">Alleen als Soort adres de waarde 04 (tijdelijk adres) heeft, is vullen toegestaan.</when><when test="$pRule='CD025'">Als Adres / LandCode de waarde NL (Nederland) heeft, dan verplicht vullen.</when><when test="$pRule='CD034'">Als Soort adres de waarde 1 (BRP-adres) of 3 (verblijfadres) heeft, dan verplicht vullen.</when><when test="$pRule='CD041'">Indien Code in Product gevuld is, verplicht vullen.</when><when test="$pRule='CD043'">Indien Beschikkingnummer gevuld is, verplicht vullen, anders leeg laten.</when><when test="$pRule='CD055'">Verplicht vullen indien BtwVrijstellingIndicatie de waarde 2 (Geen btw-vrijstelling) bevat.</when><when test="$pRule='CD056'">Niet vullen indien BtwVrijstellingIndicatie de waarde 1 (Btw-vrijstelling) bevat.</when><when test="$pRule='CD058'">Verplicht vullen indien BetalingAanID de waarde 01 (= servicebureau) heeft.</when><when test="$pRule='CD059'">Verplicht vullen indien BerichtCode de waarde 448 of 450 (= Factuur Wmo-ondersteuning of Jw-ondersteuning) bevat.</when><when test="$pRule='CD060'">Verplicht vullen indien DebetCredit bij het ingediende bedrag de waarde C (credit) heeft, anders leeg laten.</when><when test="$pRule='CD062'">Niet vullen indien Eenheid is 83 (Euro’s).</when><when test="$pRule='CD066'">Als type verwijzer gelijk is aan 02, 03, 04 of 05 en ZorgverlenerCode is gevuld, dan is Naamverwijzer leeg.</when><when test="$pRule='CD067'">Als type verwijzer gelijk is aan 02, 03, 04 of 05 en ZorgverlenerCode is leeg, dan is Naamverwijzer gevuld.</when><when test="$pRule='CD068'">Als type verwijzer ongelijk is aan 02, 03, 04 of 05, dan is ZorgverlenerCode leeg.</when><when test="$pRule='CD075'">Verplicht vullen indien Budget gevuld is</when><when test="$pRule='CD076'">Verplicht vullen indien Frequentie waarde 2 (per week) of 6 (totaal binnen geldigheid toewijzing) heeft.</when><when test="$pRule='CD077'">Indien Budget gevuld is, dan leeg laten</when><when test="$pRule='CD078'">Indien Omvang gevuld is, dan leeg laten</when><when test="$pRule='CD079'">Indien Budget leeg is, dan verplicht vullen</when><when test="$pRule='CD080'">Indien Code in Product leeg is en Einddatum van het ToegewezenProduct groter dan 31-12-2020 of leeg is, dan leeg laten</when><when test="$pRule='CD081'">Indien eenheid de waarde 14, 16, 83 of 84 heeft en Einddatum van het ToegewezenProduct groter dan 31-12-2020 of leeg is, dan Frequentie vullen met de waarde 2 , 4 of 6</when><when test="$pRule='CD085'">Als VerzoekAntwoord de waarde 1 (Verzoek afgewezen) heeft, dan vullen</when><when test="$pRule='CD086'">Als VerzoekAntwoord de waarde 2 (Aanvraag in onderzoek) heeft, dan leeg laten</when><when test="$pRule='CD087'">Als eenheid ongelijk is aan 83 (euro's) dan verplicht vullen, anders leeg laten.</when><when test="$pRule='CD088'">Als RedenAfwijzingVerzoek ongelijk is aan 8 (Woonplaatsbeginsel), dan leeg laten.</when><when test="$pRule='CS002'">De waarde moet voldoen aan de 11-proef.</when><when test="$pRule='CS003'">Indien van toepassing vullen met een waarde die groter is dan, of gelijk is aan de Begindatum (of Ingangsdatum) van de aangeduide periode.</when><when test="$pRule='CS004'">Aaneengesloten vullen (zonder punten of spaties).</when><when test="$pRule='CS005'">Aaneengesloten vullen met cijfers.</when><when test="$pRule='CS015'">BerichtSubversie vullen met 0.</when><when test="$pRule='CS023'">Vullen met een bestaande datum die niet groter is dan de Dagtekening van het bericht.</when><when test="$pRule='CS025'">BerichtVersie vullen met 3.</when><when test="$pRule='CS050'">Als Partnernaam gevuld is, dan NaamGebruik vullen met waarde 1, 2, 3 of 4. Anders waarde 1 of 6 vullen.</when><when test="$pRule='CS058'">1 (eerste aanlevering) of 3 (verwijderen aanlevering) vullen.</when><when test="$pRule='CS064'">Vullen met een bestaande datum die niet in de toekomst ligt.</when><when test="$pRule='CS089'">Als LandCode de waarde NL (Nederland) heeft, dan moet het formaat overeenkomen met dat van een Nederlandse postcode.</when><when test="$pRule='CS100'">Datum is groter dan of gelijk aan 01-01-2021</when><when test="$pRule='CS102'">Datum is groter dan de dagtekening van het bericht.</when><when test="$pRule='CS103'">De gehele periode ligt voor 01-01-2021.</when><when test="$pRule='CS104'">3 (per 4 weken) en 5 (per jaar) niet vullen indien de Einddatum van het ToegewezenProduct leeg is of groter is dan 31-12-2020.</when><when test="$pRule='CS108'">Vullen met een waarde die groter is dan, of gelijk is aan de Begindatum van de aangeduide periode én die niet groter is dan de Dagtekening van het bericht.</when><when test="$pRule='CS126'">Vullen met BerichtCode volgens de specificatie</when><when test="$pRule='CS128'">Vullen met een versienummer bestaande uit drie gehele getallen, gescheiden met punten.</when><when test="$pRule='CS300'">Vullen met een bestaande gemeentecode uit het overzicht van CBS.</when><when test="$pRule='CS318'">NaamGebruik 6 (Niet-natuurlijk persoon) niet vullen.</when><when test="$pRule='CS319'">Aaneengesloten vullen met cijfers en/of letters</when><when test="$pRule='CS320'">Vullen met een geldig btw-nummer</when><when test="$pRule='CS321'">Vullen met een geldige AGB-code van een servicebureau ( zie https://www.agbcode.nl)</when><when test="$pRule='CS322'">Vullen met een percentage kleiner dan 100.</when><when test="$pRule='CS323'">Bedrag vullen met een waarde kleiner dan of gelijk aan Bedrag in BerekendBedrag</when><when test="$pRule='CS324'">Vullen met een waarde die groter is dan, of gelijk is aan de DagtekeningFactuur.</when><when test="$pRule='CS325'">Indien (Totaal)Bedrag de waarde 0 heeft, dan DebetCredit vullen met D (Debet).</when><when test="$pRule='CS327'">DebetCredit vullen met een waarde die gelijk is aan DebetCredit in DeclaratieFactuurBedrag.</when><when test="$pRule='CS328'">Begindatum vullen met een datum die groter dan of gelijk is aan 2015-01-01.</when><when test="$pRule='CS329'">ProductCode vullen met met een code die, volgens de gehanteerde productcodelijst, past bij de ProductCategorie.</when><when test="$pRule='CS330'">21 (Week) en 81 (Benodigde tijdsduur of tijdsonafhankelijk) niet vullen.</when><when test="$pRule='CS331'">21 (Week) en 81 (Benodigde tijdsduur of tijdsonafhankelijk) niet vullen indien de ProductPeriode Begindatum op of na de implementatiedatum van release 2.3 ligt.</when><when test="$pRule='TR002'">Geboortedatum mag niet meer dan 120 jaar voor de Dagtekening liggen, tenzij Geboortedatum onbekend is.</when><when test="$pRule='TR006'">De berichtklasse Contact moet een berichtelement Telefoon, en/of de combinatie Huis en Postcode bevatten.</when><when test="$pRule='TR018'">Einddatum moet groter dan of gelijk zijn aan Begindatum.</when><when test="$pRule='TR019'">Bij een output- of inspanningsgerichte werkwijze moet de melding van de start of de stop van de ondersteuning gerelateerd zijn aan een toewijzing op basis van het toewijzingnummer</when><when test="$pRule='TR056'">Identificatie moet per berichtsoort uniek zijn voor de verzendende partij.</when><when test="$pRule='TR061'">Bij een Client moet minimaal één Adres voorkomen waarvan Soort de waarde '01' (BRP-adres), '02' (Correspondentie-adres) of '03' (Verblijfadres) heeft.</when><when test="$pRule='TR063'">Indien StatusAanlevering de waarde 3 (aanlevering verwijderen) bevat, dan moet voor de betreffende Client een eerdere aanlevering met dezelfde logische sleutel verstuurd zijn.</when><when test="$pRule='TR069'">De sleutelelementen uit het startbericht moeten in het stopbericht, waarin wordt aangegeven dat de betreffende levering (tijdelijk) beeindigd wordt, ongewijzigd worden overgenomen.</when><when test="$pRule='TR071'">StatusAanlevering mag niet de waarde '3' bevatten als er voor de betreffende melding start zorg al een stop zorg is verstuurd.</when><when test="$pRule='TR074'">Indien StatusAanlevering de waarde '1' bevat, dan moet de sleutel van de betreffende aanlevering niet alleen uniek zijn binnen het bericht zelf, maar ook in combinatie met alle reeds ontvangen berichten.</when><when test="$pRule='TR097'">Voor Geboortedatum geldt dat DatumGebruik en Datum met elkaar in overeenstemming moeten zijn.</when><when test="$pRule='TR101'">Binnen een bericht zijn dubbele regels niet toegestaan.</when><when test="$pRule='TR300'">Indien de toewijzing wordt gestuurd naar aanleiding van het honoreren van een verzoek om toewijzing bericht, moet ReferentieAanbieder worden overgenomen van het betreffende verzoek om toewijzing bericht (315).</when><when test="$pRule='TR302'">Een product mag alleen vaker in een toewijzing voorkomen indien de zorgperiodes elkaar niet overlappen</when><when test="$pRule='TR303'">Iedere prestatie in een declaratie- of factuurbericht is gerelateerd aan een toegewezen product op basis van het toewijzingnummer.</when><when test="$pRule='TR304'">Bsn moet overeenkomen met Bsn van een Client.</when><when test="$pRule='TR305'">ProductCategorie in de Prestatie moet gelijk zijn aan ProductCategorie in het ToegewezenProduct.</when><when test="$pRule='TR306'">ProductCode in de Prestatie moet gelijk zijn aan ProductCode in het ToegewezenProduct, indien deze opgenomen is.</when><when test="$pRule='TR307'">Begindatum in de Prestatie moet groter dan of gelijk zijn aan Ingangsdatum in het ToegewezenProduct.</when><when test="$pRule='TR308'">Einddatum in de Prestatie moet kleiner dan of gelijk zijn aan Einddatum in het ToegewezenProduct, indien die gevuld is.</when><when test="$pRule='TR309'">Eenheid in de Prestatie moet passen bij Eenheid in het ToegewezenProduct.</when><when test="$pRule='TR311'">De indiener van het declaratie- of factuurbericht is de aanbieder of de administratieve eenheid die namens de aanbieder declareert of factureert.</when><when test="$pRule='TR312'">De waarde van TotaalBedrag in DeclaratieFactuurTotaalBedrag moet gelijk zijn aan de SOM van de waarden van Bedrag in DeclaratieFactuurBedrag, rekening houdend met  indicatie debet/credit.</when><when test="$pRule='TR313'">De waarde van TotaalBedrag in BtwTotaalBedrag moet gelijk zijn aan de SOM van de waarden van Bedrag in BtwBedrag, rekening houdend met  indicatie debet/credit.</when><when test="$pRule='TR314'">ReferentieNummer van de Prestatie moet uniek zijn voor de aanbieder binnen het wettelijk domein waarop de Prestatie betrekking heeft, zowel binnen één bericht als berichtoverstijgend.</when><when test="$pRule='TR315'">VorigReferentieNummer van de Prestatie moet uniek zijn in het bericht.</when><when test="$pRule='TR316'">Debetregels mogen niet in hetzelfde bericht gecrediteerd worden.</when><when test="$pRule='TR317'">Indien gevuld moet BerekendBedrag gelijk zijn aan GeleverdVolume vermenigvuldigd met ProductTarief.</when><when test="$pRule='TR318'">Indien iedere DeclaratiePeriode zorg is geleverd, moet DeclaratiePeriode BeginDatum van de volgende declaratie-/factuurperiode precies één dag na de DeclaratiePeriode EindDatum van de voorgaande declaratie-/factuurperiode liggen.</when><when test="$pRule='TR319'">Een declaratie- of factuurbericht bevat alleen prestaties waarvan de ProductPeriode valt binnen de huidige, of een voorgaande declaratie- of factuurperiode.</when><when test="$pRule='TR320'">Alle deels toegekende en/of afgewezen prestaties dienen meegestuurd te worden in het retourbericht op een declaratie/factuur.</when><when test="$pRule='TR321'">Indien in het ToegewezenProduct een Omvang is meegegeven, moet GeleverdVolume in de Prestatie passen binnen Volume in het ToegewezenProduct.</when><when test="$pRule='TR322'">Indien in het ToegewezenProduct een Omvang is meegegeven, moet de som van GeleverdVolume in alle ingediende Prestaties die betrekking hebben op dat ToegewezenProduct passen binnen de toegewezen Omvang.</when><when test="$pRule='TR323'">Een credit Prestatie moet gerelateerd zijn aan een eerder verzonden debet Prestatie op basis van sleutelvelden.</when><when test="$pRule='TR324'">Factuurnummer moet uniek zijn voor de verzendende partij.</when><when test="$pRule='TR326'">Een Startbericht mag pas verstuurd worden als er géén actueel Startbericht bij ToegewezenProduct is.</when><when test="$pRule='TR332'">Ieder ToegewezenProduct binnen één gemeente heeft een uniek nummer per wettelijk domein.</when><when test="$pRule='TR333'">DeclaratieNummer van de Declaratie moet uniek zijn voor de aanbieder binnen het wettelijk domein waarop de Declaratie betrekking heeft.</when><when test="$pRule='TR335'">Einddatum mag niet meer dan 5 jaar voor DeclaratieDagtekening liggen.</when><when test="$pRule='TR337'">De DeclaratieIdentificatie dient overeen te komen met de BerichtIdentificatie van een eerder ontvangen Declaratiebericht.</when><when test="$pRule='TR338'">Iedere Prestatie in een declaratiebericht is gerelateerd aan een ToegewezenProduct op basis van het toewijzingnummer.</when><when test="$pRule='TR339'">ProductCategorie in Prestatie moet gelijk zijn aan ProductCategorie in het ToegewezenProduct indien deze opgenomen is.</when><when test="$pRule='TR340'">ProductCode in Prestatie moet gelijk zijn aan ProductCode in het ToegewezenProduct, indien deze opgenomen is.</when><when test="$pRule='TR341'">Eenheid in Prestatie moet passen bij Eenheid in het ToegewezenProduct.</when><when test="$pRule='TR342'">Alle afgewezen Prestaties dienen meegestuurd te worden in het declaratie-antwoordbericht op een declaratie.</when><when test="$pRule='TR345'">Indien Eenheid de waarde 83 (euro's) heeft, moet IngediendBedrag gelijk zijn aan GeleverdVolume.</when><when test="$pRule='TR346'">Indien Eenheid ongelijk is aan waarde 83 (Euro's), moet IngediendBedrag gelijk zijn aan GeleverdVolume vermenigvuldigd met (het onafgeronde) ProductTarief.</when><when test="$pRule='TR347'">ReferentieAanbieder is uniek voor de aanbieder binnen het wettelijk domein</when><when test="$pRule='TR349'">Het verzoek om wijziging bericht bevat alle actuele ToegewezenProducten van de client</when><when test="$pRule='TR350'">Ieder OngewijzigdProduct in een verzoek om wijziging bericht is gerelateerd aan een actueel toegewezen product op basis van het ToewijzingNummer.</when><when test="$pRule='TR351'">Ieder TeWijzigenProduct in een verzoek om wijziging is gerelateerd aan een actueel ToegewezenProduct op basis van ToewijzingNummer.</when><when test="$pRule='TR352'">Bij een verzoek om wijziging komt minstens 1 OngewijzigdProduct of TeWijzigenProduct voor.</when><when test="$pRule='TR353'">Bij een verzoek komt minstens 1 TeWijzigenProduct of NieuwProduct voor.</when><when test="$pRule='TR355'">ReferentieAanbieder in het antwoordbericht komt voor in een eerder verzoek om toewijzing of verzoek om wijziging</when><when test="$pRule='TR357'">Als GewensteIngangsdatum kleiner dan of gelijk is aan de dagtekening, dan is GewensteIngangsdatum gelijk aan ingangsdatum van het originele ToegewezenProduct.</when><when test="$pRule='TR358'">De waarde van TotaalBedrag in TotaalIngediendBedrag  moet gelijk zijn aan de SOM van de waarden van Bedrag in Ingediendbedrag in alle onderliggende Prestaties, rekening houdend met indicatie debet/credit.</when><when test="$pRule='TR359'">Als een antwoordbericht wordt verstuurd, mag er niet al eerder een toewijzingsbericht gestuurd zijn met dezelfde ReferentieAanbieder</when><when test="$pRule='TR360'">Een antwoordbericht met in VerzoekAntwoord de waarde 2 (Aanvraag in onderzoek), mag alleen gestuurd worden indien er nog geen antwoordbericht is met deze ReferentieAanbieder</when><when test="$pRule='TR361'">Een product mag alleen vaker in verzoek om wijziging voorkomen als de zorgperiodes elkaar niet overlappen</when><when test="$pRule='TR362'">Als een toewijzingsbericht niet wordt gestuurd naar aanleiding van het honoreren van een verzoek om toewijzing of een verzoek om wijziging dan wordt ReferentieAanbieder leeg gelaten.</when><when test="$pRule='TR363'">Als een toewijzingsbericht wordt gestuurd als honorering van een verzoek om wijziging, wordt ReferentieAanbieder overgenomen</when><when test="$pRule='TR364'">ReferentieAanbieder in een ToegewezenProduct komt voor in een eerder verzoek om toewijzing of verzoek om wijziging</when><when test="$pRule='TR365'">Als er al een antwoordbericht is met dezelfde ReferentieAanbieder dan moet VerzoekAntwoord daar de waarde 2 (Aanvraag in onderzoek) hebben.</when><when test="$pRule='TR366'">Iedere Prestatie in een declaratieantwoord is gerelateerd aan een declaratiebericht op basis van ProductReferentie.</when><when test="$pRule='TR367'">Waarde moet overeenkomen met waarde uit het declaratiebericht dat gerelateerd is op basis van ProductReferentie</when><when test="$pRule='TR368'">De periode is exact gelijk aan 1 hele kalendermaand</when><when test="$pRule='TR369'">Indien in het ToegewezenProduct een Budget is meegegeven, moet de som van GeleverdVolume in alle ingediende Prestaties die betrekking hebben op dat ToegewezenProduct passen binnen het toegewezen Budget.</when><when test="$pRule='TR371'">Waarde moet overeenkomen met waarde van XsdVersie uit het declaratiebericht dat gerelateerd is op basis van DeclaratieIdentificatie.</when><when test="$pRule='TR373'">Indien in een TeWijzigenProduct het Budget of het totaal over toewijzingsperiode wordt gewijzigd, dient GewensteIngangsdatum gelijk te zijn aan de actuele toewijzing</when><when test="$pRule='TR374'">Een verzoek mag alleen worden verstuurd als er geen onderhanden verzoek is voor de betreffende client van dezelfde aanbieder.</when><when test="$pRule='TR375'">Indien Product in de toewijzing met ToewijzingNummer leeg is en Einddatum groter dan 31-12-2020 of leeg is, dan leeg laten.</when><when test="$pRule='TR376'">Het DeclaratieNummer dient overeen te komen met het DeclaratieNummer van een eerder ontvangen Declaratie.</when></choose></template><template match="*" mode="CD005"/><template match="nb:Postcode" mode="CD005"><if test="not (ancestor-or-self::n4:Bericht)"><call-template name="checkempty"><with-param name="pOther" select="../nb:LandCode"/><with-param name="pRule">CD005</with-param></call-template></if></template><template match="nb:LandCode" mode="CD005"><if test="not (ancestor-or-self::n4:Bericht)"><call-template name="checkempty"><with-param name="pOther" select="../nb:Postcode"/><with-param name="pRule">CD005</with-param></call-template></if></template><template match="*" mode="CD007"/><template match="*[nb:Taal | nb:Vorm]" mode="check"><if test="not (ancestor-or-self::n4:Bericht)"><call-template name="checksame"><with-param name="pThis" select="nb:Taal"/><with-param name="pValue1">*</with-param><with-param name="pOther" select="nb:Vorm"/><with-param name="pValue2">1</with-param><with-param name="pRule">CD007</with-param></call-template></if></template><template match="*" mode="CD009"/><template match="n8:Contact/n8:Periode" mode="CD009"><call-template name="checkimplication"><with-param name="pValue1">#</with-param><with-param name="pOther" select="../n8:Soort"/><with-param name="pValue2">04</with-param><with-param name="pRule">CD009</with-param></call-template></template><template match="*" mode="CD025"/><template match="nb:LandCode" mode="CD025"><if test="not (ancestor-or-self::n4:Bericht)"><call-template name="checkimplication"><with-param name="pValue1">NL</with-param><with-param name="pOther" select="../nb:Huis/nb:Huisnummer"/><with-param name="pValue2">*</with-param><with-param name="pRule">CD025</with-param></call-template></if></template><template match="*" mode="CD034"/><template match="n8:Contact" mode="CD034"><call-template name="checkimplication"><with-param name="pThis" select="n8:Soort"/><with-param name="pValue1">01,03</with-param><with-param name="pOther" select="n8:Adres/nb:Postcode"/><with-param name="pValue2">*</with-param><with-param name="pRule">CD034</with-param></call-template></template><template match="*" mode="CD041"/><template match="n8:ToegewezenProduct" mode="CD041"><call-template name="checkimplication"><with-param name="pThis" select="n8:Product/nb:Code"/><with-param name="pValue1">*</with-param><with-param name="pOther" select="n8:Omvang"/><with-param name="pValue2">#</with-param><with-param name="pRule">CD041</with-param></call-template></template><template match="n5:AangevraagdProduct" mode="CD041"><call-template name="checkimplication"><with-param name="pThis" select="n5:Product/nb:Code"/><with-param name="pValue1">*</with-param><with-param name="pOther" select="n5:Omvang"/><with-param name="pValue2">#</with-param><with-param name="pRule">CD041</with-param></call-template></template><template match="*" mode="CD043"/><template match="n5:AangevraagdProduct" mode="CD043"><call-template name="checksame"><with-param name="pThis" select="n5:BeschikkingNummer"/><with-param name="pValue1">*</with-param><with-param name="pOther" select="n5:BeschikkingIngangsdatum"/><with-param name="pValue2">*</with-param><with-param name="pRule">CD043</with-param></call-template></template><template match="*" mode="CD055"/><template match="n6:IngediendeBedragPrestatie" mode="CD055"><if test="normalize-space(nb:BtwVrijstellingIndicatie/text())='2'"><call-template name="checkvalue"><with-param name="pThis" select="nb:BtwPercentage"/><with-param name="pValues">*</with-param><with-param name="pRule">CD055</with-param><with-param name="pExtra" select="nb:BtwVrijstellingIndicatie"/></call-template><call-template name="checkvalue"><with-param name="pThis" select="nb:BtwBedrag/nb:Bedrag"/><with-param name="pValues">*</with-param><with-param name="pRule">CD055</with-param><with-param name="pExtra" select="nb:BtwVrijstellingIndicatie"/></call-template><call-template name="checkvalue"><with-param name="pThis" select="ancestor-or-self::n6:Bericht/n6:Header//nb:BtwIDNummer"/><with-param name="pValues">*</with-param><with-param name="pRule">CD055</with-param><with-param name="pExtra" select="nb:BtwVrijstellingIndicatie"/></call-template><call-template name="checkvalue"><with-param name="pThis" select="ancestor-or-self::n6:Bericht/n6:Header//nb:BtwTotaalBedrag/nb:TotaalBedrag"/><with-param name="pValues">*</with-param><with-param name="pRule">CD055</with-param><with-param name="pExtra" select="nb:BtwVrijstellingIndicatie"/></call-template></if></template><template match="n4:IngediendeBedragPrestatie" mode="CD055"><if test="normalize-space(nb:BtwVrijstellingIndicatie/text())='2'"><call-template name="checkvalue"><with-param name="pThis" select="nb:BtwPercentage"/><with-param name="pValues">*</with-param><with-param name="pRule">CD055</with-param><with-param name="pExtra" select="nb:BtwVrijstellingIndicatie"/></call-template><call-template name="checkvalue"><with-param name="pThis" select="nb:BtwBedrag/nb:Bedrag"/><with-param name="pValues">*</with-param><with-param name="pRule">CD055</with-param><with-param name="pExtra" select="nb:BtwVrijstellingIndicatie"/></call-template><call-template name="checkvalue"><with-param name="pThis" select="ancestor-or-self::n4:Bericht/n4:Header//nb:BtwIDNummer"/><with-param name="pValues">*</with-param><with-param name="pRule">CD055</with-param><with-param name="pExtra" select="nb:BtwVrijstellingIndicatie"/></call-template></if></template><template match="*" mode="CD056"/><template match="n6:IngediendeBedragPrestatie" mode="CD056"><if test="normalize-space(nb:BtwVrijstellingIndicatie/text())='1'"><call-template name="checkempty"><with-param name="pThis" select="nb:BtwPercentage"/><with-param name="pRule">CD056</with-param></call-template><call-template name="checkempty"><with-param name="pThis" select="nb:BtwBedrag/nb:Bedrag"/><with-param name="pRule">CD056</with-param></call-template></if></template><template match="n4:IngediendeBedragPrestatie" mode="CD056"><if test="normalize-space(nb:BtwVrijstellingIndicatie/text())='1'"><call-template name="checkempty"><with-param name="pThis" select="nb:BtwPercentage"/><with-param name="pRule">CD056</with-param></call-template><call-template name="checkempty"><with-param name="pThis" select="nb:BtwBedrag/nb:Bedrag"/><with-param name="pRule">CD056</with-param></call-template></if></template><template match="*" mode="CD058"/><template match="n6:BetalingAanID" mode="CD058"><call-template name="checkimplication"><with-param name="pValue1">01</with-param><with-param name="pOther" select="../n6:Servicebureau"/><with-param name="pValue2">*</with-param><with-param name="pRule">CD058</with-param></call-template></template><template match="n4:BetalingAanID" mode="CD058"><call-template name="checkimplication"><with-param name="pValue1">01</with-param><with-param name="pOther" select="../n4:Servicebureau"/><with-param name="pValue2">*</with-param><with-param name="pRule">CD058</with-param></call-template></template><template match="*" mode="CD059"/><template match="n6:Prestatie" mode="CD059"><call-template name="checkimplication"><with-param name="pThis" select="ancestor-or-self::n6:Bericht/n6:Header/n6:BerichtCode"/><with-param name="pValue1">448, 450</with-param><with-param name="pOther" select="n6:IngediendeBedragPrestatie/nb:BtwVrijstellingIndicatie"/><with-param name="pValue2">*</with-param><with-param name="pRule">CD059</with-param></call-template></template><template match="n4:Prestatie" mode="CD059"><call-template name="checkimplication"><with-param name="pThis" select="ancestor-or-self::n4:Bericht/n4:Header/n4:BerichtCode"/><with-param name="pValue1">449, 451</with-param><with-param name="pOther" select="n4:IngediendeBedragPrestatie/nb:BtwVrijstellingIndicatie"/><with-param name="pValue2">*</with-param><with-param name="pRule">CD059</with-param></call-template></template><template match="*" mode="CD060"/><template match="n6:Prestatie" mode="CD060"><call-template name="checksame"><with-param name="pThis" select="n6:IngediendeBedragPrestatie/nb:DeclaratieFactuurBedrag/nb:DebetCredit"/><with-param name="pValue1">C</with-param><with-param name="pOther" select="n6:ProductReferentie/nb:VorigReferentieNummer"/><with-param name="pValue2">*</with-param><with-param name="pRule">CD060</with-param></call-template></template><template match="n4:Prestatie" mode="CD060"><call-template name="checksame"><with-param name="pThis" select="n4:IngediendeBedragPrestatie/nb:DeclaratieFactuurBedrag/nb:DebetCredit"/><with-param name="pValue1">C</with-param><with-param name="pOther" select="n4:ProductReferentie/nb:VorigReferentieNummer"/><with-param name="pValue2">*</with-param><with-param name="pRule">CD060</with-param></call-template></template><template match="n9:Prestatie" mode="CD060"><call-template name="checksame"><with-param name="pThis" select="n9:IngediendBedrag/nb:DebetCredit"/><with-param name="pValue1">C</with-param><with-param name="pOther" select="n9:ProductReferentie/nb:VorigReferentieNummer"/><with-param name="pValue2">*</with-param><with-param name="pRule">CD060</with-param></call-template></template><template match="n7:Prestatie" mode="CD060"><call-template name="checksame"><with-param name="pThis" select="n7:IngediendBedrag/nb:DebetCredit"/><with-param name="pValue1">C</with-param><with-param name="pOther" select="n7:ProductReferentie/nb:VorigReferentieNummer"/><with-param name="pValue2">*</with-param><with-param name="pRule">CD060</with-param></call-template></template><template match="*" mode="CD062"/><template match="n6:IngediendeBedragPrestatie | n4:IngediendeBedragPrestatie" mode="CD062"><call-template name="checkimplication"><with-param name="pThis" select="nb:Eenheid"/><with-param name="pValue1">83</with-param><with-param name="pOther" select="nb:ProductTarief"/><with-param name="pValue2"/><with-param name="pRule">CD062</with-param></call-template></template><template match="*" mode="CD066"/><template match="n5:Verwijzer" mode="CD066"><variable name="v1"><call-template name="testvalue"><with-param name="pElement" select="nb:Type"/><with-param name="pValues">02,03,04,05</with-param></call-template></variable><choose><when test="$v1='true'"><call-template name="checkimplication"><with-param name="pThis" select="nb:ZorgverlenerCode"/><with-param name="pValue1">*</with-param><with-param name="pOther" select="nb:Naam"/><with-param name="pValue2"/><with-param name="pExtra" select="nb:Type"/><with-param name="pRule">CD066</with-param></call-template></when></choose></template><template match="*" mode="CD067"/><template match="n5:Verwijzer" mode="CD067"><variable name="v1"><call-template name="testvalue"><with-param name="pElement" select="nb:Type"/><with-param name="pValues">02,03,04,05</with-param></call-template></variable><choose><when test="$v1='true'"><call-template name="checkimplication"><with-param name="pThis" select="nb:ZorgverlenerCode"/><with-param name="pValue1"/><with-param name="pOther" select="nb:Naam"/><with-param name="pValue2">*</with-param><with-param name="pExtra" select="nb:Type"/><with-param name="pRule">CD067</with-param></call-template></when></choose></template><template match="*" mode="CD068"/><template match="n5:Verwijzer" mode="CD068"><call-template name="checkimplication"><with-param name="pThis" select="nb:Type"/><with-param name="pValue1">!02,03,04,05</with-param><with-param name="pOther" select="nb:ZorgverlenerCode"/><with-param name="pValue2"/><with-param name="pRule">CD068</with-param></call-template></template><template match="*" mode="CD075"/><template match="n8:ToegewezenProduct//n8:Budget" mode="CD075"><call-template name="checkimplication"><with-param name="pValue1">*</with-param><with-param name="pOther" select="ancestor-or-self::n8:ToegewezenProduct/n8:Einddatum"/><with-param name="pValue2">*</with-param><with-param name="pRule">CD075</with-param></call-template></template><template match="n2:TeWijzigenProduct//n2:Budget" mode="CD075"><call-template name="checkimplication"><with-param name="pValue1">*</with-param><with-param name="pOther" select="ancestor-or-self::n2:TeWijzigenProduct/n2:Einddatum"/><with-param name="pValue2">*</with-param><with-param name="pRule">CD075</with-param></call-template></template><template match="n2:NieuwProduct//n2:Budget" mode="CD075"><call-template name="checkimplication"><with-param name="pValue1">*</with-param><with-param name="pOther" select="ancestor-or-self::n2:NieuwProduct/n2:Einddatum"/><with-param name="pValue2">*</with-param><with-param name="pRule">CD075</with-param></call-template></template><template match="*" mode="CD076"/><template match="n8:ToegewezenProduct//nb:Frequentie" mode="CD076"><call-template name="checkimplication"><with-param name="pValue1">2,6</with-param><with-param name="pOther" select="ancestor-or-self::n8:ToegewezenProduct/n8:Einddatum"/><with-param name="pValue2">*</with-param><with-param name="pRule">CD076</with-param></call-template></template><template match="n5:AangevraagdProduct//nb:Frequentie" mode="CD076"><call-template name="checkimplication"><with-param name="pValue1">2,6</with-param><with-param name="pOther" select="ancestor-or-self::n5:AangevraagdProduct/n5:ToewijzingEinddatum"/><with-param name="pValue2">*</with-param><with-param name="pRule">CD076</with-param></call-template></template><template match="n2:TeWijzigenProduct//nb:Frequentie" mode="CD076"><call-template name="checkimplication"><with-param name="pValue1">2,6</with-param><with-param name="pOther" select="ancestor-or-self::n2:TeWijzigenProduct/n2:Einddatum"/><with-param name="pValue2">*</with-param><with-param name="pRule">CD076</with-param></call-template></template><template match="n2:NieuwProduct//nb:Frequentie" mode="CD076"><call-template name="checkimplication"><with-param name="pValue1">2,6</with-param><with-param name="pOther" select="ancestor-or-self::n2:NieuwProduct/n2:Einddatum"/><with-param name="pValue2">*</with-param><with-param name="pRule">CD076</with-param></call-template></template><template match="*" mode="CD077"/><template match="n8:ToegewezenProduct//n8:Budget" mode="CD077"><call-template name="checkimplication"><with-param name="pValue1">*</with-param><with-param name="pOther" select="ancestor-or-self::n8:ToegewezenProduct/n8:Omvang"/><with-param name="pValue2">!#</with-param><with-param name="pRule">CD077</with-param></call-template></template><template match="n2:TeWijzigenProduct//n2:Budget" mode="CD077"><call-template name="checkimplication"><with-param name="pValue1">*</with-param><with-param name="pOther" select="ancestor-or-self::n2:TeWijzigenProduct/n2:Omvang"/><with-param name="pValue2">!#</with-param><with-param name="pRule">CD077</with-param></call-template></template><template match="n2:NieuwProduct//n2:Budget" mode="CD077"><call-template name="checkimplication"><with-param name="pValue1">*</with-param><with-param name="pOther" select="ancestor-or-self::n2:NieuwProduct/n2:Omvang"/><with-param name="pValue2">!#</with-param><with-param name="pRule">CD077</with-param></call-template></template><template match="*" mode="CD078"/><template match="n8:ToegewezenProduct//n8:Omvang" mode="CD078"><call-template name="checkimplication"><with-param name="pValue1">#</with-param><with-param name="pOther" select="ancestor-or-self::n8:ToegewezenProduct/n8:Budget"/><with-param name="pValue2"/><with-param name="pRule">CD078</with-param></call-template></template><template match="n2:TeWijzigenProduct//n2:Omvang" mode="CD078"><call-template name="checkimplication"><with-param name="pValue1">#</with-param><with-param name="pOther" select="ancestor-or-self::n2:TeWijzigenProduct/n2:Budget"/><with-param name="pValue2"/><with-param name="pRule">CD078</with-param></call-template></template><template match="n2:NieuwProduct//n2:Omvang" mode="CD078"><call-template name="checkimplication"><with-param name="pValue1">#</with-param><with-param name="pOther" select="ancestor-or-self::n2:NieuwProduct/n2:Budget"/><with-param name="pValue2"/><with-param name="pRule">CD078</with-param></call-template></template><template match="*" mode="CD079"/><template match="n8:ToegewezenProduct" mode="CD079"><call-template name="checkimplication"><with-param name="pThis" select="n8:Budget"/><with-param name="pValue1"/><with-param name="pOther" select="n8:Product"/><with-param name="pValue2">#</with-param><with-param name="pExtra" select="."/><with-param name="pRule">CD079</with-param></call-template></template><template match="n2:NieuwProduct" mode="CD079"><call-template name="checkimplication"><with-param name="pThis" select="n2:Budget"/><with-param name="pValue1"/><with-param name="pOther" select="n2:Product"/><with-param name="pValue2">#</with-param><with-param name="pExtra" select="."/><with-param name="pRule">CD079</with-param></call-template></template><template match="*" mode="CD080"/><template match="n8:ToegewezenProduct//n8:Omvang" mode="CD080"><if test="not(ancestor-or-self::n8:ToegewezenProduct/n8:Einddatum) or number(translate(ancestor-or-self::n8:ToegewezenProduct/n8:Einddatum/text(),'-','')) &gt; 20201231"><call-template name="checkimplication"><with-param name="pValue1">#</with-param><with-param name="pOther" select="ancestor-or-self::n8:ToegewezenProduct/n8:Product/nb:Code"/><with-param name="pValue2">*</with-param><with-param name="pRule">CD080</with-param><with-param name="pExtra" select="ancestor-or-self::n8:ToegewezenProduct/n8:Einddatum"/></call-template></if></template><template match="n5:AangevraagdProduct//n5:Omvang" mode="CD080"><if test="not(ancestor-or-self::n5:AangevraagdProduct/n5:ToewijzingEinddatum) or number(translate(ancestor-or-self::n5:AangevraagdProduct/n5:ToewijzingEinddatum/text(),'-','')) &gt; 20201231"><call-template name="checkimplication"><with-param name="pValue1">#</with-param><with-param name="pOther" select="ancestor-or-self::n5:AangevraagdProduct/n5:Product/nb:Code"/><with-param name="pValue2">*</with-param><with-param name="pRule">CD080</with-param><with-param name="pExtra" select="ancestor-or-self::n5:AangevraagdProduct/n5:ToewijzingEinddatum"/></call-template></if></template><template match="n2:NieuwProduct//n2:Omvang" mode="CD080"><if test="not(ancestor-or-self::n2:NieuwProduct/n2:Einddatum) or number(translate(ancestor-or-self::n2:NieuwProduct/n2:Einddatum/text(),'-','')) &gt; 20201231"><call-template name="checkimplication"><with-param name="pValue1">#</with-param><with-param name="pOther" select="ancestor-or-self::n2:NieuwProduct/n2:Product/nb:Code"/><with-param name="pValue2">*</with-param><with-param name="pRule">CD080</with-param><with-param name="pExtra" select="ancestor-or-self::n2:NieuwProduct/n2:Einddatum"/></call-template></if></template><template match="*" mode="CD081"/><template match="n8:ToegewezenProduct//n8:Omvang/nb:Eenheid" mode="CD081"><if test="not(ancestor-or-self::n8:ToegewezenProduct/n8:Einddatum) or number(translate(ancestor-or-self::n8:ToegewezenProduct/n8:Einddatum/text(),'-','')) &gt; 20201231"><call-template name="checkimplication"><with-param name="pValue1">14,16,83,84</with-param><with-param name="pOther" select="../nb:Frequentie"/><with-param name="pValue2">2,4,6</with-param><with-param name="pRule">CD081</with-param><with-param name="pExtra" select="ancestor-or-self::n8:ToegewezenProduct/n8:Einddatum"/></call-template></if></template><template match="n5:AangevraagdProduct//n5:Omvang/nb:Eenheid" mode="CD081"><if test="not(ancestor-or-self::n5:AangevraagdProduct/n5:ToewijzingEinddatum) or number(translate(ancestor-or-self::n5:AangevraagdProduct/n5:ToewijzingEinddatum/text(),'-','')) &gt; 20201231"><call-template name="checkimplication"><with-param name="pValue1">14,16,83,84</with-param><with-param name="pOther" select="../nb:Frequentie"/><with-param name="pValue2">2,4,6</with-param><with-param name="pRule">CD081</with-param><with-param name="pExtra" select="ancestor-or-self::n5:AangevraagdProduct/n5:ToewijzingEinddatum"/></call-template></if></template><template match="n2:TeWijzigenProduct//n2:Omvang/nb:Eenheid" mode="CD081"><if test="not(ancestor-or-self::n2:TeWijzigenProduct/n2:Einddatum) or number(translate(ancestor-or-self::n2:TeWijzigenProduct/n2:Einddatum/text(),'-','')) &gt; 20201231"><call-template name="checkimplication"><with-param name="pValue1">14,16,83,84</with-param><with-param name="pOther" select="../nb:Frequentie"/><with-param name="pValue2">2,4,6</with-param><with-param name="pRule">CD081</with-param><with-param name="pExtra" select="ancestor-or-self::n2:TeWijzigenProduct/n2:Einddatum"/></call-template></if></template><template match="n2:NieuwProduct//n2:Omvang/nb:Eenheid" mode="CD081"><if test="not(ancestor-or-self::n2:NieuwProduct/n2:Einddatum) or number(translate(ancestor-or-self::n2:NieuwProduct/n2:Einddatum/text(),'-','')) &gt; 20201231"><call-template name="checkimplication"><with-param name="pValue1">14,16,83,84</with-param><with-param name="pOther" select="../nb:Frequentie"/><with-param name="pValue2">2,4,6</with-param><with-param name="pRule">CD081</with-param><with-param name="pExtra" select="ancestor-or-self::n2:NieuwProduct/n2:Einddatum"/></call-template></if></template><template match="*" mode="CD085"/><template match="n0:VerzoekAntwoord" mode="CD085"><call-template name="checkimplication"><with-param name="pValue1">1</with-param><with-param name="pOther" select="../n0:RedenAfwijzingVerzoek"/><with-param name="pValue2">*</with-param><with-param name="pRule">CD085</with-param></call-template></template><template match="*" mode="CD086"/><template match="n0:VerzoekAntwoord" mode="CD086"><call-template name="checkimplication"><with-param name="pValue1">2</with-param><with-param name="pOther" select="../n0:RedenAfwijzingVerzoek"/><with-param name="pValue2"/><with-param name="pRule">CD086</with-param></call-template></template><template match="*" mode="CD087"/><template match="n9:Eenheid" mode="CD087"><call-template name="checksame"><with-param name="pValue1">!83</with-param><with-param name="pOther" select="../n9:ProductTarief"/><with-param name="pValue2">*</with-param><with-param name="pRule">CD087</with-param></call-template></template><template match="*" mode="CD088"/><template match="n0:RedenAfwijzingVerzoek" mode="CD088"><call-template name="checkimplication"><with-param name="pValue1">!8</with-param><with-param name="pOther" select="../n0:Woonplaatsbeginsel"/><with-param name="pValue2">!#</with-param><with-param name="pRule">CD088</with-param></call-template></template><template match="*" mode="CS002"/><template match="*[local-name() = 'Bsn']" mode="CS002"><call-template name="check11proef"><with-param name="pRule">CS002</with-param></call-template></template><template match="*" mode="CS003"/><template match="n8:Beschikking/n8:Einddatum" mode="CS003"><call-template name="checkafter"><with-param name="pOther" select="../n8:Ingangsdatum"/><with-param name="pRule">CS003</with-param></call-template></template><template match="n8:ToegewezenProduct/n8:Einddatum" mode="CS003"><call-template name="checkafter"><with-param name="pOther" select="../n8:Ingangsdatum"/><with-param name="pRule">CS003</with-param></call-template></template><template match="n8:Contact/n8:Periode/nb:Einddatum" mode="CS003"><call-template name="checkafter"><with-param name="pOther" select="../nb:Begindatum"/><with-param name="pRule">CS003</with-param></call-template></template><template match="n5:AangevraagdProduct/n5:ToewijzingEinddatum" mode="CS003"><call-template name="checkafter"><with-param name="pOther" select="../n5:ToewijzingIngangsdatum"/><with-param name="pRule">CS003</with-param></call-template></template><template match="n2:TeWijzigenProduct/n2:Einddatum" mode="CS003"><call-template name="checkafter"><with-param name="pOther" select="../n2:GewensteIngangsdatum"/><with-param name="pRule">CS003</with-param></call-template></template><template match="n2:NieuwProduct/n2:Einddatum" mode="CS003"><call-template name="checkafter"><with-param name="pOther" select="../n2:GewensteIngangsdatum"/><with-param name="pRule">CS003</with-param></call-template></template><template match="*" mode="CS023"/><template match="n8:Beschikking/n8:Afgiftedatum" mode="CS023"><call-template name="cs023"/></template><template match="n8:Client/n8:Geboortedatum/nb:Datum" mode="CS023"><call-template name="cs023"/></template><template match="n8:Relatie/n8:Geboortedatum/nb:Datum" mode="CS023"><call-template name="cs023"/></template><template match="n8:ToegewezenProduct/n8:Toewijzingsdatum" mode="CS023"><call-template name="cs023"/></template><template match="nb:DeclaratiePeriode/nb:Begindatum" mode="CS023"><call-template name="cs023declaratie"/></template><template match="n6:Client/n6:Geboortedatum/nb:Datum" mode="CS023"><call-template name="cs023declaratie"/></template><template match="n6:Prestatie/n6:ProductPeriode/nb:Begindatum" mode="CS023"><call-template name="cs023declaratie"/></template><template match="n4:Client/n4:Geboortedatum/nb:Datum" mode="CS023"><call-template name="cs023declaratie"/></template><template match="n4:Prestatie/n4:ProductPeriode/nb:Begindatum" mode="CS023"><call-template name="cs023declaratie"/></template><template match="n3:Client/n3:Geboortedatum/nb:Datum" mode="CS023"><call-template name="cs023"/></template><template match="n3:StartProduct/n3:Begindatum" mode="CS023"><call-template name="cs023"/></template><template match="n1:Client/n1:Geboortedatum/nb:Datum" mode="CS023"><call-template name="cs023"/></template><template match="n1:StopProduct/n1:Einddatum" mode="CS023"><call-template name="cs023"/></template><template match="n5:Client/n5:Geboortedatum/nb:Datum" mode="CS023"><call-template name="cs023"/></template><template match="n9:DeclaratiePeriode/nb:Begindatum" mode="CS023"><call-template name="cs023"/></template><template match="n9:ProductPeriode/nb:Begindatum" mode="CS023"><call-template name="cs023"/></template><template match="n7:ProductPeriode/nb:Begindatum" mode="CS023"><call-template name="cs023"/></template><template name="cs023"><param name="pThis" select="."/><call-template name="checkafter"><with-param name="pThis" select="ancestor-or-self::*[local-name()='Bericht']/*[local-name()='Header']/*[local-name()='BerichtIdentificatie']/*[local-name()='Dagtekening']"/><with-param name="pOther" select="$pThis"/><with-param name="pRule">CS023</with-param></call-template></template><template name="cs023declaratie"><param name="pThis" select="."/><call-template name="checkafter"><with-param name="pThis" select="ancestor-or-self::*[local-name()='Bericht']/*[local-name()='Header']/*[local-name()='DeclaratieFactuurIdentificatie']/*[local-name()='FactuurDagtekening']"/><with-param name="pOther" select="$pThis"/><with-param name="pRule">CS023</with-param></call-template></template><template match="*" mode="CS050"/><template match="nb:NaamGebruik" mode="CS050"><if test="not (ancestor-or-self::n4:Bericht)"><call-template name="checkimplication"><with-param name="pThis" select="../nb:Partnernaam"/><with-param name="pValue1">#</with-param><with-param name="pOther" select="."/><with-param name="pValue2">1,2,3,4</with-param><with-param name="pRule">CS050</with-param></call-template><call-template name="checkimplication"><with-param name="pThis" select="../nb:Partnernaam"/><with-param name="pValue1">!#</with-param><with-param name="pOther" select="."/><with-param name="pValue2">1,6</with-param><with-param name="pRule">CS050</with-param></call-template></if></template><template match="*" mode="CS058"/><template match="n3:StartProduct/n3:StatusAanlevering" mode="CS058"><call-template name="checkvalue"><with-param name="pValues">1,3</with-param><with-param name="pRule">CS058</with-param></call-template></template><template match="n1:StopProduct/n1:StatusAanlevering" mode="CS058"><call-template name="checkvalue"><with-param name="pValues">1,3</with-param><with-param name="pRule">CS058</with-param></call-template></template><template match="*" mode="CS089"/><template match="nb:LandCode" mode="CS089"><if test="not (ancestor-or-self::n4:Bericht)"><call-template name="checkimplication"><with-param name="pValue1">NL</with-param><with-param name="pOther" select="../nb:Postcode"/><with-param name="pValue2">#1000ZZ</with-param><with-param name="pRule">CS089</with-param></call-template></if></template><template match="*" mode="CS100"/><template match="n9:ProductPeriode/nb:Begindatum" mode="CS100"><if test="translate(text(),'-','') &lt; 20210101"><call-template name="addError"><with-param name="pRule">CS100</with-param></call-template></if></template><template match="n9:DeclaratiePeriode/nb:Begindatum" mode="CS100"><if test="translate(text(),'-','') &lt; 20210101"><call-template name="addError"><with-param name="pRule">CS100</with-param></call-template></if></template><template match="*" mode="CS102"/><template match="n2:NieuwProduct/n2:GewensteIngangsdatum" mode="CS102"><call-template name="checkafterstrict"><with-param name="pOther" select="ancestor-or-self::*[local-name()='Bericht']/*[local-name()='Header']/*[local-name()='BerichtIdentificatie']/*[local-name()='Dagtekening']"/><with-param name="pRule">CS102</with-param></call-template></template><template match="*" mode="CS103"/><template match="n6:DeclaratieFactuurIdentificatie/nb:DeclaratiePeriode" mode="CS103"><if test="translate(nb:Einddatum/text(),'-','') &gt;= 20210101"><call-template name="addError"><with-param name="pRule">CS103</with-param></call-template></if></template><template match="n6:ProductPeriode" mode="CS103"><if test="translate(nb:Einddatum/text(),'-','') &gt;= 20210101"><call-template name="addError"><with-param name="pRule">CS103</with-param></call-template></if></template><template match="n4:ProductPeriode" mode="CS103"><if test="translate(nb:Einddatum/text(),'-','') &gt;= 20210101"><call-template name="addError"><with-param name="pRule">CS103</with-param></call-template></if></template><template match="*" mode="CS104"/><template match="n8:ToegewezenProduct//n8:Omvang/nb:Frequentie" mode="CS104"><if test="not(ancestor-or-self::n8:ToegewezenProduct/n8:Einddatum) or number(translate(ancestor-or-self::n8:ToegewezenProduct/n8:Einddatum/text(),'-','')) &gt; 20201231"><call-template name="checkvalue"><with-param name="pValues">!3,5</with-param><with-param name="pExtra" select="ancestor-or-self::n8:ToegewezenProduct/n8:Einddatum"/><with-param name="pRule">CS104</with-param></call-template></if></template><template match="n5:AangevraagdProduct//n5:Omvang/nb:Frequentie" mode="CS104"><if test="not(ancestor-or-self::n5:AangevraagdProduct/n5:ToewijzingEinddatum) or number(translate(ancestor-or-self::n5:AangevraagdProduct/n5:ToewijzingEinddatum/text(),'-','')) &gt; 20201231"><call-template name="checkvalue"><with-param name="pValues">!3,5</with-param><with-param name="pExtra" select="ancestor-or-self::n5:AangevraagdProduct/n5:ToewijzingEinddatum"/><with-param name="pRule">CS104</with-param></call-template></if></template><template match="n2:TeWijzigenProduct//n2:Omvang/nb:Frequentie" mode="CS104"><if test="not(ancestor-or-self::n2:TeWijzigenProduct/n2:Einddatum) or number(translate(ancestor-or-self::n2:TeWijzigenProduct/n2:Einddatum/text(),'-','')) &gt; 20201231"><call-template name="checkvalue"><with-param name="pValues">!3,5</with-param><with-param name="pExtra" select="ancestor-or-self::n2:TeWijzigenProduct/n2:Einddatum"/><with-param name="pRule">CS104</with-param></call-template></if></template><template match="n2:NieuwProduct//n2:Omvang/nb:Frequentie" mode="CS104"><if test="not(ancestor-or-self::n2:NieuwProduct/n2:Einddatum) or number(translate(ancestor-or-self::n2:NieuwProduct/n2:Einddatum/text(),'-','')) &gt; 20201231"><call-template name="checkvalue"><with-param name="pValues">!3,5</with-param><with-param name="pExtra" select="ancestor-or-self::n2:NieuwProduct/n2:Einddatum"/><with-param name="pRule">CS104</with-param></call-template></if></template><template match="*" mode="CS108"/><template match="n6:DeclaratieFactuurIdentificatie/nb:DeclaratiePeriode" mode="CS108"><call-template name="cs108"/></template><template match="n6:ProductPeriode" mode="CS108"><call-template name="cs108"/></template><template match="n4:DeclaratieFactuurIdentificatie/nb:DeclaratiePeriode" mode="CS108"><call-template name="cs108"/></template><template match="n4:ProductPeriode" mode="CS108"><call-template name="cs108"/></template><template match="n9:DeclaratiePeriode" mode="CS108"><call-template name="cs108"/></template><template match="n9:ProductPeriode" mode="CS108"><call-template name="cs108"/></template><template match="n7:ProductPeriode" mode="CS108"><call-template name="cs108"/></template><template name="cs108"><call-template name="checkafter"><with-param name="pThis" select="nb:Einddatum"/><with-param name="pOther" select="nb:Begindatum"/><with-param name="pRule">CS108</with-param></call-template><call-template name="checkafter"><with-param name="pThis" select="ancestor-or-self::*[local-name()='Bericht']/*[local-name()='Header']/*[local-name()='DeclaratieFactuurIdentificatie']/*[local-name()='FactuurDagtekening']|ancestor-or-self::*[local-name()='Bericht']/*[local-name()='Header']/*[local-name()='BerichtIdentificatie']/*[local-name()='Dagtekening']"/><with-param name="pOther" select="nb:Einddatum"/><with-param name="pRule">CS108</with-param></call-template></template><template match="*" mode="CS300"/><template match="n8:Afzender" mode="CS300"><call-template name="checkGemeenteCode"><with-param name="pRule">CS300</with-param></call-template></template><template match="n6:Gemeente" mode="CS300"><call-template name="checkGemeenteCode"><with-param name="pRule">CS300</with-param></call-template></template><template match="n4:Gemeente" mode="CS300"><call-template name="checkGemeenteCode"><with-param name="pRule">CS300</with-param></call-template></template><template match="n3:Ontvanger" mode="CS300"><call-template name="checkGemeenteCode"><with-param name="pRule">CS300</with-param></call-template></template><template match="n1:Ontvanger" mode="CS300"><call-template name="checkGemeenteCode"><with-param name="pRule">CS300</with-param></call-template></template><template match="n5:Ontvanger" mode="CS300"><call-template name="checkGemeenteCode"><with-param name="pRule">CS300</with-param></call-template></template><template match="n2:Ontvanger" mode="CS300"><call-template name="checkGemeenteCode"><with-param name="pRule">CS300</with-param></call-template></template><template match="n0:Afzender" mode="CS300"><call-template name="checkGemeenteCode"><with-param name="pRule">CS300</with-param></call-template></template><template match="n0:Gemeente" mode="CS300"><call-template name="checkGemeenteCode"><with-param name="pRule">CS300</with-param></call-template></template><template match="n9:Ontvanger" mode="CS300"><call-template name="checkGemeenteCode"><with-param name="pRule">CS300</with-param></call-template></template><template match="n7:Afzender" mode="CS300"><call-template name="checkGemeenteCode"><with-param name="pRule">CS300</with-param></call-template></template><template match="*" mode="CS318"/><template match="n8:Client/n8:Naam/nb:NaamGebruik" mode="CS318"><call-template name="checknvalue"><with-param name="pValues">6</with-param><with-param name="pRule">CS318</with-param></call-template></template><template match="*" mode="CS323"/><template match="nb:DeclaratieFactuurBedrag/nb:Bedrag" mode="CS323"><call-template name="checkRelation"><with-param name="pOther" select="../../nb:BerekendBedrag/nb:Bedrag"/><with-param name="pRelation">equalsLt</with-param><with-param name="pRule">CS323</with-param></call-template></template><template match="*" mode="CS324"/><template match="n4:DeclaratieFactuurIdentificatie/nb:FactuurDagtekening" mode="CS324"><call-template name="checkafter"><with-param name="pThis" select="../../n4:RetourHeader/nb:RetourDagtekening"/><with-param name="pRule">CS324</with-param></call-template></template><template match="*" mode="CS325"/><template match="*[local-name() = 'DeclaratieFactuurTotaalBedrag']" mode="CS325"><call-template name="cs325"><with-param name="bedrag" select="nb:TotaalBedrag"/></call-template></template><template match="*[local-name() = 'BtwTotaalBedrag']" mode="CS325"><call-template name="cs325"><with-param name="bedrag" select="nb:TotaalBedrag"/></call-template></template><template match="*[local-name() = 'BerekendBedrag']" mode="CS325"><call-template name="cs325"><with-param name="bedrag" select="nb:Bedrag"/></call-template></template><template match="*[local-name() = 'BtwBedrag']" mode="CS325"><call-template name="cs325"><with-param name="bedrag" select="nb:Bedrag"/></call-template></template><template match="*[local-name() = 'DeclaratieFactuurBedrag']" mode="CS325"><call-template name="cs325"><with-param name="bedrag" select="nb:Bedrag"/></call-template></template><template match="*[local-name() = 'IngediendTotaalBedrag']" mode="CS325"><call-template name="cs325"><with-param name="bedrag" select="nb:TotaalBedrag"/></call-template></template><template match="*[local-name() = 'ToegekendTotaalBedrag']" mode="CS325"><call-template name="cs325"><with-param name="bedrag" select="nb:TotaalBedrag"/></call-template></template><template match="*[local-name() = 'GemeenteBerekendBedrag']" mode="CS325"><call-template name="cs325"><with-param name="bedrag" select="nb:Bedrag"/></call-template></template><template match="*[local-name() = 'ToegekendBedrag']" mode="CS325"><call-template name="cs325"><with-param name="bedrag" select="nb:Bedrag"/></call-template></template><template match="*[local-name() = 'TotaalIngediendBedrag']" mode="CS325"><call-template name="cs325"><with-param name="bedrag" select="nb:TotaalBedrag"/></call-template></template><template match="*[local-name() = 'IngediendBedrag']" mode="CS325"><call-template name="cs325"><with-param name="bedrag" select="nb:Bedrag"/></call-template></template><template match="*[local-name() = 'TotaalToegekendBedrag']" mode="CS325"><call-template name="cs325"><with-param name="bedrag" select="nb:TotaalBedrag"/></call-template></template><template name="cs325"><param name="bedrag"/><param name="debetCredit" select="./nb:DebetCredit"/><if test="$bedrag=0 and (normalize-space($debetCredit)='c' or normalize-space($debetCredit)='C')"><call-template name="addError"><with-param name="pElements" select="$bedrag|$debetCredit"/><with-param name="pRule">CS325</with-param></call-template></if></template><template match="*" mode="CS327"/><template match="n6:IngediendeBedragPrestatie/nb:BerekendBedrag" mode="CS327"><call-template name="cs327"/></template><template match="n6:IngediendeBedragPrestatie/nb:BtwBedrag" mode="CS327"><call-template name="cs327"/></template><template match="n4:IngediendeBedragPrestatie/nb:BerekendBedrag" mode="CS327"><call-template name="cs327"/></template><template match="n4:IngediendeBedragPrestatie/nb:BtwBedrag" mode="CS327"><call-template name="cs327"/></template><template name="cs327"><if test="not(normalize-space(nb:DebetCredit/text())=normalize-space(../nb:DeclaratieFactuurBedrag/nb:DebetCredit/text()))"><call-template name="addError"><with-param name="pRule">CS327</with-param><with-param name="pElements" select="nb:DebetCredit|../nb:DeclaratieFactuurBedrag/nb:DebetCredit"/></call-template></if></template><template match="*" mode="CS328"/><template match="n6:ProductPeriode/nb:Begindatum" mode="CS328"><if test="translate(text(),'-','') &lt; 20150101"><call-template name="addError"><with-param name="pRule">CS328</with-param></call-template></if></template><template match="n4:ProductPeriode/nb:Begindatum" mode="CS328"><if test="translate(text(),'-','') &lt; 20150101"><call-template name="addError"><with-param name="pRule">CS328</with-param></call-template></if></template><template match="*" mode="CS330"/><template match="n8:Omvang/nb:Eenheid" mode="CS330"><call-template name="checknvalue"><with-param name="pValues">21,81</with-param><with-param name="pRule">CS330</with-param></call-template></template><template match="n5:Omvang/nb:Eenheid" mode="CS330"><call-template name="checknvalue"><with-param name="pValues">21,81</with-param><with-param name="pRule">CS330</with-param></call-template></template><template match="n2:TeWijzigenProduct/n2:Omvang/nb:Eenheid | n2:NieuwProduct/n2:Omvang/nb:Eenheid" mode="CS330"><call-template name="checknvalue"><with-param name="pValues">21,81</with-param><with-param name="pRule">CS330</with-param></call-template></template><template match="n9:Prestatie/n9:Eenheid" mode="CS330"><call-template name="checknvalue"><with-param name="pValues">21,81</with-param><with-param name="pRule">CS330</with-param></call-template></template><template match="*" mode="CS331"/><template match="n6:IngediendeBedragPrestatie/nb:Eenheid" mode="CS331"><if test="translate(../../n6:ProductPeriode/nb:Begindatum/text(),'-','') &gt;= 20190401"><call-template name="checknvalue"><with-param name="pValues">21,81</with-param><with-param name="pRule">CS331</with-param></call-template></if></template><template match="n4:IngediendeBedragPrestatie/nb:Eenheid" mode="CS331"><if test="translate(../../n4:ProductPeriode/nb:Begindatum/text(),'-','') &gt;= 20190401"><call-template name="checknvalue"><with-param name="pValues">21,81</with-param><with-param name="pRule">CS331</with-param></call-template></if></template><template match="*" mode="TR002"/><template match="*[local-name() = 'Geboortedatum']/nb:Datum" mode="TR002"><if test="not(../nb:DatumGebruik/text()='3' and text()='1900-01-01')"><variable name="v1" select="ancestor-or-self::*[local-name()='Bericht']/*[local-name()='Header']"/><call-template name="checkYearsBetween"><with-param name="pDate1" select="$v1/*[local-name()='BerichtIdentificatie']/*[local-name()='Dagtekening']|$v1/*[local-name()='DeclaratieFactuurIdentificatie']/*[local-name()='FactuurDagtekening']"/><with-param name="pDate2" select="."/><with-param name="pYears">120</with-param><with-param name="pRule">TR002</with-param></call-template></if></template><template match="*" mode="TR006"/><template match="n8:Contact" mode="TR006"><call-template name="checkSingleCorrect"><with-param name="pThis" select="n8:Telefoon"/><with-param name="pValue1">#</with-param><with-param name="pOther" select="n8:Adres/nb:Huis"/><with-param name="pValue2">#</with-param><with-param name="pExtra" select="."/><with-param name="pRule">TR006</with-param></call-template><call-template name="checkSingleCorrect"><with-param name="pThis" select="n8:Telefoon"/><with-param name="pValue1">#</with-param><with-param name="pOther" select="n8:Adres/nb:Postcode"/><with-param name="pValue2">#</with-param><with-param name="pExtra" select="."/><with-param name="pRule">TR006</with-param></call-template></template><template match="*" mode="TR018"/><template match="n1:StopProduct/n1:Einddatum" mode="TR018"><call-template name="checkafter"><with-param name="pOther" select="../n1:Begindatum"/><with-param name="pRule">TR018</with-param></call-template></template><template match="*" mode="TR061"/><template match="n8:Client/n8:Contactgegevens" mode="TR061"><if test="not(./n8:Contact/n8:Soort[text()='01' or text()='02' or text()='03'])"><call-template name="addError"><with-param name="pElements" select="n8:Contact"/><with-param name="pRule">TR061</with-param></call-template></if></template><template match="*" mode="TR097"/><template match="*[nb:Datum and nb:DatumGebruik]" mode="TR097"><choose><when test="nb:DatumGebruik='3' and nb:Datum!='1900-01-01'"><call-template name="addError"><with-param name="pElements" select="nb:Datum|nb:DatumGebruik"/><with-param name="pRule">TR097</with-param></call-template></when><when test="nb:DatumGebruik='2' and substring-after(nb:Datum,'-')!='01-01'"><call-template name="addError"><with-param name="pElements" select="nb:Datum|nb:DatumGebruik"/><with-param name="pRule">TR097</with-param></call-template></when><when test="nb:DatumGebruik='1' and substring-after(substring-after(nb:Datum,'-'),'-')!='01'"><call-template name="addError"><with-param name="pElements" select="nb:Datum|nb:DatumGebruik"/><with-param name="pRule">TR097</with-param></call-template></when></choose></template><template match="*" mode="TR101simple"/><template match="*" mode="TR101generic"/><template match="*" mode="TR101"><apply-templates mode="TR101simple" select="*"/><apply-templates mode="TR101generic" select="*"/></template><template match="n8:Client" mode="TR101simple"><variable name="v1" select="*[local-name()='Bsn']/text()"/><variable name="v2" select="."/><for-each select="preceding-sibling::n8:Client[*[local-name()='Bsn']/text()=$v1]"><call-template name="addError"><with-param name="pElements" select=".|$v2"/><with-param name="pRule">TR101</with-param></call-template></for-each></template><template match="n8:Contact" mode="TR101simple"><variable name="v1" select="*[local-name()='Soort']/text()"/><variable name="v2" select="."/><for-each select="preceding-sibling::n8:Contact[*[local-name()='Soort']/text()=$v1]"><call-template name="addError"><with-param name="pElements" select=".|$v2"/><with-param name="pRule">TR101</with-param></call-template></for-each></template><template match="*[n8:Relatie]" mode="TR101generic"><call-template name="checkDuplicateKeys"><with-param name="pElement" select="n8:Relatie"/><with-param name="pKeys">/Contact/Soort,/Nummer,</with-param><with-param name="pRule">TR101</with-param></call-template></template><template match="n8:ToegewezenProduct" mode="TR101simple"><variable name="v1" select="*[local-name()='ToewijzingNummer']/text()"/><variable name="v2" select="."/><for-each select="preceding-sibling::n8:ToegewezenProduct[*[local-name()='ToewijzingNummer']/text()=$v1]"><call-template name="addError"><with-param name="pElements" select=".|$v2"/><with-param name="pRule">TR101</with-param></call-template></for-each></template><template match="n6:Client" mode="TR101simple"><variable name="v1" select="*[local-name()='Bsn']/text()"/><variable name="v2" select="."/><for-each select="preceding-sibling::n6:Client[*[local-name()='Bsn']/text()=$v1]"><call-template name="addError"><with-param name="pElements" select=".|$v2"/><with-param name="pRule">TR101</with-param></call-template></for-each></template><template match="*[n6:Prestatie]" mode="TR101generic"><call-template name="checkDuplicateKeys"><with-param name="pElement" select="n6:Prestatie"/><with-param name="pKeys">/ProductCategorie,/ProductCode,/ProductReferentie/ReferentieNummer,/ProductReferentie/VorigReferentieNummer,</with-param><with-param name="pRule">TR101</with-param></call-template></template><template match="n4:Client" mode="TR101simple"><variable name="v1" select="*[local-name()='Bsn']/text()"/><variable name="v2" select="."/><for-each select="preceding-sibling::n4:Client[*[local-name()='Bsn']/text()=$v1]"><call-template name="addError"><with-param name="pElements" select=".|$v2"/><with-param name="pRule">TR101</with-param></call-template></for-each></template><template match="*[n4:Prestatie]" mode="TR101generic"><call-template name="checkDuplicateKeys"><with-param name="pElement" select="n4:Prestatie"/><with-param name="pKeys">/ProductCategorie,/ProductCode,/ProductReferentie/ReferentieNummer,/ProductReferentie/VorigReferentieNummer,</with-param><with-param name="pRule">TR101</with-param></call-template></template><template match="n3:Client" mode="TR101simple"><variable name="v1" select="*[local-name()='Bsn']/text()"/><variable name="v2" select="."/><for-each select="preceding-sibling::n3:Client[*[local-name()='Bsn']/text()=$v1]"><call-template name="addError"><with-param name="pElements" select=".|$v2"/><with-param name="pRule">TR101</with-param></call-template></for-each></template><template match="*[n3:StartProduct]" mode="TR101generic"><call-template name="checkDuplicateKeys"><with-param name="pElement" select="n3:StartProduct"/><with-param name="pKeys">/Begindatum,/Product/Categorie,/Product/Code,/ToewijzingNummer,</with-param><with-param name="pRule">TR101</with-param></call-template></template><template match="n1:Client" mode="TR101simple"><variable name="v1" select="*[local-name()='Bsn']/text()"/><variable name="v2" select="."/><for-each select="preceding-sibling::n1:Client[*[local-name()='Bsn']/text()=$v1]"><call-template name="addError"><with-param name="pElements" select=".|$v2"/><with-param name="pRule">TR101</with-param></call-template></for-each></template><template match="*[n1:StopProduct]" mode="TR101generic"><call-template name="checkDuplicateKeys"><with-param name="pElement" select="n1:StopProduct"/><with-param name="pKeys">/Begindatum,/Einddatum,/Product/Categorie,/Product/Code,/ToewijzingNummer,</with-param><with-param name="pRule">TR101</with-param></call-template></template><template match="*[n5:AangevraagdProduct]" mode="TR101generic"><call-template name="checkDuplicateKeys"><with-param name="pElement" select="n5:AangevraagdProduct"/><with-param name="pKeys">/Product/Categorie,/Product/Code,/ToewijzingIngangsdatum,</with-param><with-param name="pRule">TR101</with-param></call-template></template><template match="n5:Client" mode="TR101simple"><variable name="v1" select="*[local-name()='Bsn']/text()"/><variable name="v2" select="."/><for-each select="preceding-sibling::n5:Client[*[local-name()='Bsn']/text()=$v1]"><call-template name="addError"><with-param name="pElements" select=".|$v2"/><with-param name="pRule">TR101</with-param></call-template></for-each></template><template match="n2:Client" mode="TR101simple"><variable name="v1" select="*[local-name()='Bsn']/text()"/><variable name="v2" select="."/><for-each select="preceding-sibling::n2:Client[*[local-name()='Bsn']/text()=$v1]"><call-template name="addError"><with-param name="pElements" select=".|$v2"/><with-param name="pRule">TR101</with-param></call-template></for-each></template><template match="*[n2:NieuwProduct]" mode="TR101generic"><call-template name="checkDuplicateKeys"><with-param name="pElement" select="n2:NieuwProduct"/><with-param name="pKeys">/GewensteIngangsdatum,/Product/Categorie,/Product/Code,</with-param><with-param name="pRule">TR101</with-param></call-template></template><template match="n2:OngewijzigdProduct" mode="TR101simple"><variable name="v1" select="*[local-name()='ToewijzingNummer']/text()"/><variable name="v2" select="."/><for-each select="preceding-sibling::n2:OngewijzigdProduct[*[local-name()='ToewijzingNummer']/text()=$v1]"><call-template name="addError"><with-param name="pElements" select=".|$v2"/><with-param name="pRule">TR101</with-param></call-template></for-each></template><template match="n2:TeWijzigenProduct" mode="TR101simple"><variable name="v1" select="*[local-name()='ToewijzingNummer']/text()"/><variable name="v2" select="."/><for-each select="preceding-sibling::n2:TeWijzigenProduct[*[local-name()='ToewijzingNummer']/text()=$v1]"><call-template name="addError"><with-param name="pElements" select=".|$v2"/><with-param name="pRule">TR101</with-param></call-template></for-each></template><template match="n2:Verzoek" mode="TR101simple"><variable name="v1" select="*[local-name()='ReferentieAanbieder']/text()"/><variable name="v2" select="."/><for-each select="preceding-sibling::n2:Verzoek[*[local-name()='ReferentieAanbieder']/text()=$v1]"><call-template name="addError"><with-param name="pElements" select=".|$v2"/><with-param name="pRule">TR101</with-param></call-template></for-each></template><template match="*[n0:Antwoord]" mode="TR101generic"><call-template name="checkDuplicateKeys"><with-param name="pElement" select="n0:Antwoord"/><with-param name="pKeys">/ReferentieAanbieder,/VerzoekAntwoord,</with-param><with-param name="pRule">TR101</with-param></call-template></template><template match="n0:Woonplaatsbeginsel" mode="TR101simple"><variable name="v1" select="*[local-name()='Gemeente']/text()"/><variable name="v2" select="."/><for-each select="preceding-sibling::n0:Woonplaatsbeginsel[*[local-name()='Gemeente']/text()=$v1]"><call-template name="addError"><with-param name="pElements" select=".|$v2"/><with-param name="pRule">TR101</with-param></call-template></for-each></template><template match="n9:Client" mode="TR101simple"><variable name="v1" select="*[local-name()='Bsn']/text()"/><variable name="v2" select="."/><for-each select="preceding-sibling::n9:Client[*[local-name()='Bsn']/text()=$v1]"><call-template name="addError"><with-param name="pElements" select=".|$v2"/><with-param name="pRule">TR101</with-param></call-template></for-each></template><template match="n9:Declaratie" mode="TR101simple"><variable name="v1" select="*[local-name()='DeclaratieNummer']/text()"/><variable name="v2" select="."/><for-each select="preceding-sibling::n9:Declaratie[*[local-name()='DeclaratieNummer']/text()=$v1]"><call-template name="addError"><with-param name="pElements" select=".|$v2"/><with-param name="pRule">TR101</with-param></call-template></for-each></template><template match="*[n9:Prestatie]" mode="TR101generic"><call-template name="checkDuplicateKeys"><with-param name="pElement" select="n9:Prestatie"/><with-param name="pKeys">/ProductReferentie/ReferentieNummer,/ProductReferentie/VorigReferentieNummer,</with-param><with-param name="pRule">TR101</with-param></call-template></template><template match="n7:Client" mode="TR101simple"><variable name="v1" select="*[local-name()='Bsn']/text()"/><variable name="v2" select="."/><for-each select="preceding-sibling::n7:Client[*[local-name()='Bsn']/text()=$v1]"><call-template name="addError"><with-param name="pElements" select=".|$v2"/><with-param name="pRule">TR101</with-param></call-template></for-each></template><template match="n7:DeclaratieAntwoord" mode="TR101simple"><variable name="v1" select="*[local-name()='DeclaratieNummer']/text()"/><variable name="v2" select="."/><for-each select="preceding-sibling::n7:DeclaratieAntwoord[*[local-name()='DeclaratieNummer']/text()=$v1]"><call-template name="addError"><with-param name="pElements" select=".|$v2"/><with-param name="pRule">TR101</with-param></call-template></for-each></template><template match="*[n7:Prestatie]" mode="TR101generic"><call-template name="checkDuplicateKeys"><with-param name="pElement" select="n7:Prestatie"/><with-param name="pKeys">/ProductReferentie/ReferentieNummer,/ProductReferentie/VorigReferentieNummer,</with-param><with-param name="pRule">TR101</with-param></call-template></template><template match="*" mode="TR302"/><template match="n8:ToegewezenProduct" mode="TR302"><call-template name="tr302"/></template><template name="tr302"><param name="pThis" select="."/><param name="pList" select="preceding-sibling::*"/><variable name="v1"><call-template name="ignoreForTR302"/></variable><if test="$v1!='true'"><for-each select="$pList"><variable name="v2"><call-template name="ignoreForTR302"/></variable><if test="$v2!='true' and (( ($pThis/n8:Product/nb:Code and current()/n8:Product/nb:Code and $pThis/n8:Product/nb:Code=current()/n8:Product/nb:Code) and ($pThis/n8:Product/nb:Categorie and current()/n8:Product/nb:Categorie and $pThis/n8:Product/nb:Categorie=current()/n8:Product/nb:Categorie)) or ((not($pThis/n8:Product/nb:Code) or not(current()/n8:Product/nb:Code)) and ($pThis/n8:Product/nb:Categorie and current()/n8:Product/nb:Categorie and $pThis/n8:Product/nb:Categorie=current()/n8:Product/nb:Categorie)) or ((not($pThis/n8:Product/nb:Code) and not($pThis/n8:Product/nb:Categorie)) or (not(current()/n8:Product/nb:Code) and not(current()/n8:Product/nb:Categorie))) )"><variable name="v3"><call-template name="isPeriodOverlay"><with-param name="pThis" select="$pThis"/><with-param name="pOther" select="current()"/></call-template></variable><if test="$v3='true'"><call-template name="addError"><with-param name="pElements" select="$pThis|current()"/><with-param name="pRule">TR302</with-param></call-template></if></if></for-each></if></template><template name="ignoreForTR302"><param name="pThis" select="."/><choose><when test="n8:RedenWijziging/text()='01' and n8:Einddatum/. and normalize-space(n8:Einddatum/text())!=''"><choose><when test="translate(n8:Ingangsdatum/text(),'-','')=translate(n8:Einddatum/text(),'-','')"><value-of select="true()"/></when><otherwise><value-of select="false()"/></otherwise></choose></when><otherwise><value-of select="false()"/></otherwise></choose></template><template match="*" mode="TR312"/><template match="n6:DeclaratieFactuurBedragen" mode="TR312"><variable name="v1" select="sum(ancestor-or-self::n6:Bericht/n6:Clienten/n6:Client/n6:Prestaties/n6:Prestatie/n6:IngediendeBedragPrestatie/nb:DeclaratieFactuurBedrag[nb:DebetCredit/text()='D']/nb:Bedrag)"/><variable name="v2" select="sum(ancestor-or-self::n6:Bericht/n6:Clienten/n6:Client/n6:Prestaties/n6:Prestatie/n6:IngediendeBedragPrestatie/nb:DeclaratieFactuurBedrag[nb:DebetCredit/text()='C']/nb:Bedrag)"/><variable name="v3" select="$v1 - $v2"/><call-template name="checkimplication"><with-param name="pThis" select="nb:DeclaratieFactuurTotaalBedrag/nb:DebetCredit"/><with-param name="pValue1">D</with-param><with-param name="pOther" select="nb:DeclaratieFactuurTotaalBedrag/nb:TotaalBedrag"/><with-param name="pValue2"><call-template name="formatNumber"><with-param name="pValue" select="$v3"/></call-template></with-param><with-param name="pExtra" select="ancestor-or-self::n6:Bericht/n6:Clienten/n6:Client/n6:Prestaties/n6:Prestatie/n6:IngediendeBedragPrestatie/nb:DeclaratieFactuurBedrag/nb:Bedrag"/><with-param name="pRule">TR312</with-param></call-template><call-template name="checkimplication"><with-param name="pThis" select="nb:DeclaratieFactuurTotaalBedrag/nb:DebetCredit"/><with-param name="pValue1">C</with-param><with-param name="pOther" select="nb:DeclaratieFactuurTotaalBedrag/nb:TotaalBedrag"/><with-param name="pValue2"><call-template name="formatNumber"><with-param name="pValue" select="0 - 1*$v3"/></call-template></with-param><with-param name="pExtra" select="ancestor-or-self::n6:Bericht/n6:Clienten/n6:Client/n6:Prestaties/n6:Prestatie/n6:IngediendeBedragPrestatie/nb:DeclaratieFactuurBedrag/nb:Bedrag"/><with-param name="pRule">TR312</with-param></call-template></template><template match="*" mode="TR313"/><template match="n6:DeclaratieFactuurBedragen" mode="TR313"><variable name="v1" select="sum(ancestor-or-self::n6:Bericht/n6:Clienten/n6:Client/n6:Prestaties/n6:Prestatie/n6:IngediendeBedragPrestatie/nb:BtwBedrag[nb:DebetCredit='D']/nb:Bedrag)"/><variable name="v2" select="sum(ancestor-or-self::n6:Bericht/n6:Clienten/n6:Client/n6:Prestaties/n6:Prestatie/n6:IngediendeBedragPrestatie/nb:BtwBedrag[nb:DebetCredit='C']/nb:Bedrag)"/><variable name="v3" select="$v1 - $v2"/><call-template name="checkimplication"><with-param name="pThis" select="nb:BtwTotaalBedrag/nb:DebetCredit"/><with-param name="pValue1">D</with-param><with-param name="pOther" select="nb:BtwTotaalBedrag/nb:TotaalBedrag"/><with-param name="pValue2"><call-template name="formatNumber"><with-param name="pValue" select="$v3"/></call-template></with-param><with-param name="pExtra" select="ancestor-or-self::n6:Bericht/n6:Clienten/n6:Client/n6:Prestaties/n6:Prestatie/n6:IngediendeBedragPrestatie/nb:BtwBedrag/nb:Bedrag"/><with-param name="pRule">TR313</with-param></call-template><call-template name="checkimplication"><with-param name="pThis" select="nb:BtwTotaalBedrag/nb:DebetCredit"/><with-param name="pValue1">C</with-param><with-param name="pOther" select="nb:BtwTotaalBedrag/nb:TotaalBedrag"/><with-param name="pValue2"><call-template name="formatNumber"><with-param name="pValue" select="0 - 1*$v3"/></call-template></with-param><with-param name="pExtra" select="ancestor-or-self::n6:Bericht/n6:Clienten/n6:Client/n6:Prestaties/n6:Prestatie/n6:IngediendeBedragPrestatie/nb:BtwBedrag/nb:Bedrag"/><with-param name="pRule">TR313</with-param></call-template><if test="$v3!='0' and not(nb:BtwTotaalBedrag/nb:DebetCredit)"><call-template name="addError"><with-param name="pElements" select=".|ancestor-or-self::n6:Bericht/n6:Clienten/n6:Client/n6:Prestaties/n6:Prestatie/n6:IngediendeBedragPrestatie/nb:BtwBedrag/nb:Bedrag"/><with-param name="pRule">TR313</with-param></call-template></if></template><template match="*" mode="TR314"/><template match="n6:ProductReferentie" mode="TR314"><variable name="v1" select="normalize-space(nb:ReferentieNummer/text())"/><call-template name="checkvalue"><with-param name="pThis" select="ancestor-or-self::n6:Prestatie/preceding-sibling::n6:Prestatie/n6:ProductReferentie/nb:ReferentieNummer[text()=$v1]"/><with-param name="pValues">!#</with-param><with-param name="pRule">TR314</with-param><with-param name="pCode">8021</with-param><with-param name="pExtra" select="nb:ReferentieNummer"/></call-template><call-template name="checkvalue"><with-param name="pThis" select="ancestor-or-self::n6:Client/preceding-sibling::n6:Client/n6:Prestaties/n6:Prestatie/n6:ProductReferentie/nb:ReferentieNummer[text()=$v1]"/><with-param name="pValues">!#</with-param><with-param name="pRule">TR314</with-param><with-param name="pCode">8021</with-param><with-param name="pExtra" select="nb:ReferentieNummer"/></call-template></template><template match="*" mode="TR315"/><template match="n6:ProductReferentie" mode="TR315"><variable name="v1" select="normalize-space(nb:VorigReferentieNummer/text())"/><variable name="v2" select="nb:VorigReferentieNummer"/><for-each select="ancestor-or-self::n6:Prestatie/preceding-sibling::n6:Prestatie/n6:ProductReferentie/nb:VorigReferentieNummer[text()=$v1]|ancestor-or-self::n6:Client/preceding-sibling::n6:Client/n6:Prestaties/n6:Prestatie/n6:ProductReferentie/nb:VorigReferentieNummer[text()=$v1]"><call-template name="checkvalue"><with-param name="pValues">!#</with-param><with-param name="pRule">TR315</with-param><with-param name="pExtra" select="$v2"/></call-template></for-each></template><template match="n9:ProductReferentie" mode="TR315"><variable name="v1" select="normalize-space(nb:VorigReferentieNummer/text())"/><variable name="v2" select="nb:VorigReferentieNummer"/><for-each select="ancestor-or-self::n9:Prestatie/preceding-sibling::n9:Prestatie/n9:ProductReferentie/nb:VorigReferentieNummer[text()=$v1]|ancestor-or-self::n9:Client/preceding-sibling::n9:Client/n9:Prestaties/n9:Prestatie/n9:ProductReferentie/nb:VorigReferentieNummer[text()=$v1]"><call-template name="checkvalue"><with-param name="pValues">!#</with-param><with-param name="pRule">TR315</with-param><with-param name="pExtra" select="$v2"/></call-template></for-each></template><template match="*" mode="TR316"/><template match="n6:ProductReferentie" mode="TR316"><variable name="v1" select="normalize-space(nb:ReferentieNummer/text())"/><variable name="v2" select="normalize-space(nb:VorigReferentieNummer/text())"/><variable name="v3" select="nb:ReferentieNummer"/><variable name="v4" select="nb:VorigReferentieNummer"/><for-each select="ancestor-or-self::n6:Prestatie/preceding-sibling::n6:Prestatie/n6:ProductReferentie/nb:ReferentieNummer[text()=$v2]|ancestor-or-self::n6:Client/preceding-sibling::n6:Client/n6:Prestaties/n6:Prestatie/n6:ProductReferentie/nb:ReferentieNummer[text()=$v2]"><call-template name="checkvalue"><with-param name="pValues">!#</with-param><with-param name="pRule">TR316</with-param><with-param name="pExtra" select="$v4"/></call-template></for-each><for-each select="ancestor-or-self::n6:Prestatie/preceding-sibling::n6:Prestatie/n6:ProductReferentie/nb:VorigReferentieNummer[text()=$v1]|ancestor-or-self::n6:Client/preceding-sibling::n6:Client/n6:Prestaties/n6:Prestatie/n6:ProductReferentie/nb:VorigReferentieNummer[text()=$v1]"><call-template name="checkvalue"><with-param name="pValues">!#</with-param><with-param name="pRule">TR316</with-param><with-param name="pExtra" select="$v3"/></call-template></for-each><if test="$v1=$v2"><call-template name="addError"><with-param name="pRule">TR316</with-param><with-param name="pElements" select="nb:ReferentieNummer|nb:VorigReferentieNummer"/></call-template></if></template><template match="n9:ProductReferentie" mode="TR316"><variable name="v1" select="normalize-space(nb:ReferentieNummer/text())"/><variable name="v2" select="normalize-space(nb:VorigReferentieNummer/text())"/><variable name="v3" select="nb:ReferentieNummer"/><variable name="v4" select="nb:VorigReferentieNummer"/><for-each select="ancestor-or-self::n9:Prestatie/preceding-sibling::n9:Prestatie/n9:ProductReferentie/nb:ReferentieNummer[text()=$v2]|ancestor-or-self::n9:Client/preceding-sibling::n9:Client/n9:Prestaties/n9:Prestatie/n9:ProductReferentie/nb:ReferentieNummer[text()=$v2]"><call-template name="checkvalue"><with-param name="pValues">!#</with-param><with-param name="pRule">TR316</with-param><with-param name="pExtra" select="$v4"/></call-template></for-each><for-each select="ancestor-or-self::n9:Prestatie/preceding-sibling::n9:Prestatie/n9:ProductReferentie/nb:VorigReferentieNummer[text()=$v1]|ancestor-or-self::n9:Client/preceding-sibling::n9:Client/n9:Prestaties/n9:Prestatie/n9:ProductReferentie/nb:VorigReferentieNummer[text()=$v1]"><call-template name="checkvalue"><with-param name="pValues">!#</with-param><with-param name="pRule">TR316</with-param><with-param name="pExtra" select="$v3"/></call-template></for-each><if test="$v1=$v2"><call-template name="addError"><with-param name="pRule">TR316</with-param><with-param name="pElements" select="nb:ReferentieNummer|nb:VorigReferentieNummer"/></call-template></if></template><template match="*" mode="TR317"/><template match="n6:IngediendeBedragPrestatie | n4:IngediendeBedragPrestatie" mode="TR317"><variable name="v1" select="normalize-space(nb:GeleverdVolume)*normalize-space(nb:ProductTarief)"/><call-template name="checkimplication"><with-param name="pThis" select="nb:BerekendBedrag/nb:Bedrag"/><with-param name="pValue1">*</with-param><with-param name="pOther" select="nb:BerekendBedrag/nb:Bedrag"/><with-param name="pValue2"><call-template name="formatNumber"><with-param name="pValue" select="$v1"/></call-template></with-param><with-param name="pExtra" select="nb:GeleverdVolume|nb:ProductTarief"/><with-param name="pRule">TR317</with-param></call-template></template><template match="*" mode="TR319"/><template match="n6:Prestatie" mode="TR319"><call-template name="checkafter"><with-param name="pThis" select="ancestor-or-self::n6:Bericht/n6:Header/n6:DeclaratieFactuurIdentificatie/nb:DeclaratiePeriode/nb:Einddatum"/><with-param name="pOther" select="n6:ProductPeriode/nb:Begindatum"/><with-param name="pRule">TR319</with-param></call-template><call-template name="checkafter"><with-param name="pThis" select="ancestor-or-self::n6:Bericht/n6:Header/n6:DeclaratieFactuurIdentificatie/nb:DeclaratiePeriode/nb:Einddatum"/><with-param name="pOther" select="n6:ProductPeriode/nb:Einddatum"/><with-param name="pRule">TR319</with-param></call-template></template><template match="n9:Prestatie" mode="TR319"><call-template name="checkafter"><with-param name="pThis" select="ancestor-or-self::n9:Declaratie/n9:DeclaratiePeriode/nb:Einddatum"/><with-param name="pOther" select="n9:ProductPeriode/nb:Begindatum"/><with-param name="pRule">TR319</with-param></call-template><call-template name="checkafter"><with-param name="pThis" select="ancestor-or-self::n9:Declaratie/n9:DeclaratiePeriode/nb:Einddatum"/><with-param name="pOther" select="n9:ProductPeriode/nb:Einddatum"/><with-param name="pRule">TR319</with-param></call-template></template><template match="*" mode="TR320"/><template match="n4:RetourBedragen" mode="TR320"><variable name="v1" select="sum(ancestor-or-self::n4:Bericht/n4:Clienten/n4:Client/n4:Prestaties/n4:Prestatie/n4:IngediendeBedragPrestatie/nb:DeclaratieFactuurBedrag[nb:DebetCredit='D']/nb:Bedrag)"/><variable name="v2" select="sum(ancestor-or-self::n4:Bericht/n4:Clienten/n4:Client/n4:Prestaties/n4:Prestatie/n4:IngediendeBedragPrestatie/nb:DeclaratieFactuurBedrag[nb:DebetCredit='C']/nb:Bedrag)"/><variable name="v3" select="$v1 - $v2"/><variable name="v4" select="sum(ancestor-or-self::n4:Bericht/n4:Clienten/n4:Client/n4:Prestaties/n4:Prestatie/n4:ToegekendeBedragPrestatie/nb:ToegekendBedrag[nb:DebetCredit='D']/nb:Bedrag)"/><variable name="v5" select="sum(ancestor-or-self::n4:Bericht/n4:Clienten/n4:Client/n4:Prestaties/n4:Prestatie/n4:ToegekendeBedragPrestatie/nb:ToegekendBedrag[nb:DebetCredit='C']/nb:Bedrag)"/><variable name="v6" select="$v4 - $v5"/><variable name="v7" select="$v3 - $v6"/><variable name="v8"><choose><when test="./nb:ToegekendTotaalBedrag/nb:DebetCredit/text()='C'"><value-of select="./nb:ToegekendTotaalBedrag/nb:TotaalBedrag/text()*-1"/></when><otherwise><value-of select="./nb:ToegekendTotaalBedrag/nb:TotaalBedrag/text()"/></otherwise></choose></variable><variable name="v9"><choose><when test="./nb:IngediendTotaalBedrag/nb:DebetCredit/text()='C'"><value-of select="./nb:IngediendTotaalBedrag/nb:TotaalBedrag/text()*-1"/></when><otherwise><value-of select="./nb:IngediendTotaalBedrag/nb:TotaalBedrag/text()"/></otherwise></choose></variable><variable name="va" select="$v9 - $v8"/><if test="count(ancestor-or-self::n4:Bericht/n4:Header/n4:RetourCodes/*[local-name()='RetourCode'][text()!='0200' and text()!='8001'])=0 and normalize-space($v7)!=normalize-space($va)"><call-template name="addError"><with-param name="pRule">TR320</with-param><with-param name="pCode">0001</with-param><with-param name="pElements" select="nb:IngediendTotaalBedrag/nb:TotaalBedrag|nb:IngediendTotaalBedrag/nb:DebetCredit|nb:ToegekendTotaalBedrag/nb:TotaalBedrag|nb:ToegekendTotaalBedrag/nb:DebetCredit"/></call-template></if></template><template match="*" mode="TR335"/><template match="n9:Prestatie/n9:ProductPeriode/nb:Einddatum" mode="TR335"><call-template name="checkDateRelation"><with-param name="pDate" select="ancestor-or-self::n9:Declaratie/n9:DeclaratieDagtekening"/><with-param name="pRelation">monthsAfter</with-param><with-param name="pExtra">-60</with-param><with-param name="pRule">TR335</with-param></call-template></template><template match="*" mode="TR342"/><template match="n7:DeclaratieAntwoord" mode="TR342"><variable name="v1" select="sum(./n7:Clienten/n7:Client/n7:Prestaties/n7:Prestatie/n7:IngediendBedrag[./nb:DebetCredit/text()='D']/nb:Bedrag)"/><variable name="v2" select="sum(./n7:Clienten/n7:Client/n7:Prestaties/n7:Prestatie/n7:IngediendBedrag[./nb:DebetCredit/text()='C']/nb:Bedrag)"/><variable name="v3" select="$v1 - $v2"/><variable name="v4"><choose><when test="./n7:TotaalToegekendBedrag/nb:DebetCredit/text()='C'"><value-of select="number(./n7:TotaalToegekendBedrag/nb:TotaalBedrag/text())*-1"/></when><otherwise><value-of select="number(./n7:TotaalToegekendBedrag/nb:TotaalBedrag/text())"/></otherwise></choose></variable><variable name="v5"><choose><when test="./n7:TotaalIngediendBedrag/nb:DebetCredit/text()='C'"><value-of select="number(./n7:TotaalIngediendBedrag/nb:TotaalBedrag/text())*-1"/></when><otherwise><value-of select="number(./n7:TotaalIngediendBedrag/nb:TotaalBedrag/text())"/></otherwise></choose></variable><variable name="v6" select="$v5 - $v4"/><choose><when test="count(ancestor-or-self::n7:DeclaratieAntwoord/n7:RetourCodes/*[local-name()='RetourCode'][text()!='0200' and text()!='8001'])=0"><if test="normalize-space($v3)!=normalize-space($v6)"><call-template name="addError"><with-param name="pRule">TR342</with-param><with-param name="pCode">0001</with-param><with-param name="pElements" select="n7:TotaalToegekendBedrag|n7:TotaalIngediendBedrag"/></call-template></if></when><otherwise><if test="$v4!=0"><call-template name="addError"><with-param name="pRule">TR342</with-param><with-param name="pCode">0001</with-param><with-param name="pElements" select="n7:TotaalToegekendBedrag"/></call-template></if></otherwise></choose></template><template match="*" mode="TR345"/><template match="n9:Prestatie[n9:Eenheid/text() = '83']" mode="TR345"><call-template name="checkRelation"><with-param name="pThis" select="n9:GeleverdVolume"/><with-param name="pOther" select="n9:IngediendBedrag/nb:Bedrag"/><with-param name="pExtra" select="nonExistantNode"/><with-param name="pRelation">equals</with-param><with-param name="pRule">TR345</with-param></call-template></template><template match="*" mode="TR352"/><template match="n2:Verzoek" mode="TR352"><call-template name="checkvalue"><with-param name="pThis" select="n2:OngewijzigdeProducten/n2:OngewijzigdProduct|n2:TeWijzigenProducten/n2:TeWijzigenProduct"/><with-param name="pValues">#</with-param><with-param name="pExtra" select="."/><with-param name="pRule">TR352</with-param></call-template></template><template match="*" mode="TR353"/><template match="n2:Verzoek" mode="TR353"><call-template name="checkvalue"><with-param name="pThis" select="n2:TeWijzigenProducten/n2:TeWijzigenProduct|n2:NieuweProducten/n2:NieuwProduct"/><with-param name="pValues">#</with-param><with-param name="pExtra" select="."/><with-param name="pRule">TR353</with-param></call-template></template><template match="*" mode="TR358"/><template match="n9:TotaalIngediendBedrag" mode="TR358"><variable name="v1" select="sum(ancestor-or-self::n9:Declaratie/n9:Clienten/n9:Client/n9:Prestaties/n9:Prestatie/n9:IngediendBedrag[nb:DebetCredit/text()='D']/nb:Bedrag)"/><variable name="v2" select="sum(ancestor-or-self::n9:Declaratie/n9:Clienten/n9:Client/n9:Prestaties/n9:Prestatie/n9:IngediendBedrag[nb:DebetCredit/text()='C']/nb:Bedrag)"/><variable name="v3" select="$v1 - $v2"/><call-template name="checkimplication"><with-param name="pThis" select="nb:DebetCredit"/><with-param name="pValue1">D</with-param><with-param name="pOther" select="nb:TotaalBedrag"/><with-param name="pValue2"><call-template name="formatNumber"><with-param name="pValue" select="$v3"/></call-template></with-param><with-param name="pExtra" select="ancestor-or-self::n9:Declaratie/n9:Clienten/n9:Client/n9:Prestaties/n9:Prestatie/n9:IngediendBedrag"/><with-param name="pRule">TR358</with-param></call-template><call-template name="checkimplication"><with-param name="pThis" select="nb:DebetCredit"/><with-param name="pValue1">C</with-param><with-param name="pOther" select="nb:TotaalBedrag"/><with-param name="pValue2"><call-template name="formatNumber"><with-param name="pValue" select="0 - 1*$v3"/></call-template></with-param><with-param name="pExtra" select="ancestor-or-self::n9:Declaratie/n9:Clienten/n9:Client/n9:Prestaties/n9:Prestatie/n9:IngediendBedrag"/><with-param name="pRule">TR358</with-param></call-template></template><template match="*" mode="TR368"/><template match="n9:DeclaratiePeriode" mode="TR368"><if test="substring-after(substring-after(nb:Begindatum,'-'),'-')!='01'"><call-template name="addError"><with-param name="pElements" select="nb:Begindatum"/><with-param name="pRule">TR368</with-param></call-template></if><variable name="v1"><call-template name="addDate"><with-param name="pDate" select="nb:Einddatum/text()"/><with-param name="pExtra">1</with-param></call-template></variable><variable name="v2"><call-template name="addMonths"><with-param name="pDate" select="nb:Begindatum/text()"/><with-param name="pExtra">1</with-param></call-template></variable><if test="$v1!=$v2"><call-template name="addError"><with-param name="pElements" select="nb:Begindatum|nb:Einddatum"/><with-param name="pRule">TR368</with-param></call-template></if></template><template match="*" mode="check" priority="0"><apply-templates mode="CD005" select="."/><apply-templates mode="CD007" select="."/><apply-templates mode="CD009" select="."/><apply-templates mode="CD025" select="."/><apply-templates mode="CD034" select="."/><apply-templates mode="CD041" select="."/><apply-templates mode="CD043" select="."/><apply-templates mode="CD055" select="."/><apply-templates mode="CD056" select="."/><apply-templates mode="CD058" select="."/><apply-templates mode="CD059" select="."/><apply-templates mode="CD060" select="."/><apply-templates mode="CD062" select="."/><apply-templates mode="CD066" select="."/><apply-templates mode="CD067" select="."/><apply-templates mode="CD068" select="."/><apply-templates mode="CD075" select="."/><apply-templates mode="CD076" select="."/><apply-templates mode="CD077" select="."/><apply-templates mode="CD078" select="."/><apply-templates mode="CD079" select="."/><apply-templates mode="CD080" select="."/><apply-templates mode="CD081" select="."/><apply-templates mode="CD085" select="."/><apply-templates mode="CD086" select="."/><apply-templates mode="CD087" select="."/><apply-templates mode="CD088" select="."/><apply-templates mode="CS002" select="."/><apply-templates mode="CS003" select="."/><apply-templates mode="CS023" select="."/><apply-templates mode="CS050" select="."/><apply-templates mode="CS058" select="."/><apply-templates mode="CS089" select="."/><apply-templates mode="CS100" select="."/><apply-templates mode="CS102" select="."/><apply-templates mode="CS103" select="."/><apply-templates mode="CS104" select="."/><apply-templates mode="CS108" select="."/><apply-templates mode="CS300" select="."/><apply-templates mode="CS318" select="."/><apply-templates mode="CS323" select="."/><apply-templates mode="CS324" select="."/><apply-templates mode="CS325" select="."/><apply-templates mode="CS327" select="."/><apply-templates mode="CS328" select="."/><apply-templates mode="CS330" select="."/><apply-templates mode="CS331" select="."/><apply-templates mode="TR002" select="."/><apply-templates mode="TR006" select="."/><apply-templates mode="TR018" select="."/><apply-templates mode="TR061" select="."/><apply-templates mode="TR097" select="."/><apply-templates mode="TR101" select="."/><apply-templates mode="TR302" select="."/><apply-templates mode="TR312" select="."/><apply-templates mode="TR313" select="."/><apply-templates mode="TR314" select="."/><apply-templates mode="TR315" select="."/><apply-templates mode="TR316" select="."/><apply-templates mode="TR317" select="."/><apply-templates mode="TR319" select="."/><apply-templates mode="TR320" select="."/><apply-templates mode="TR335" select="."/><apply-templates mode="TR342" select="."/><apply-templates mode="TR345" select="."/><apply-templates mode="TR352" select="."/><apply-templates mode="TR353" select="."/><apply-templates mode="TR358" select="."/><apply-templates mode="TR368" select="."/></template><variable name="v1"><nc:XSLTHeader><nc:Standaard>ijw</nc:Standaard><nc:StandaardRelease>3.0</nc:StandaardRelease><nc:XSLTVersie>2.2.8</nc:XSLTVersie></nc:XSLTHeader></variable></stylesheet>
\ No newline at end of file
diff --git a/xslt-validatie/jw/3_0/condities/CD005.xsl b/xslt-validatie/jw/3_0/condities/CD005.xsl
deleted file mode 100644
index c8efbfbd5cd76b330a1ba5a01176659db089f799..0000000000000000000000000000000000000000
--- a/xslt-validatie/jw/3_0/condities/CD005.xsl
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-	xmlns:ijw="http://www.istandaarden.nl/ijw/3_0/basisschema/schema"
-	xmlns:jw304="http://www.istandaarden.nl/ijw/3_0/jw304/schema"
-	>
-	<!-- iJw 3.0 CD005 version 1.0.20208 (2021-01-25) -->
-
-	<xsl:import href="../common/basis.xsl"/>
-	<xsl:template match="*" mode="CD005"/>
-	<xsl:template match="*" mode="check">
-		<xsl:apply-templates select="*" mode="CD005"/>
-	</xsl:template>
-
-	<xsl:template match="ijw:Postcode" mode="CD005">
-		<xsl:if test="not (ancestor-or-self::jw304:Bericht)">
-			<xsl:call-template name="checkempty">
-				<xsl:with-param name="pOther" select="../ijw:LandCode"/>
-				<xsl:with-param name="pRule">CD005</xsl:with-param>
-			</xsl:call-template>
-		</xsl:if>
-	</xsl:template>
-	<xsl:template match="ijw:LandCode" mode="CD005">
-		<xsl:if test="not (ancestor-or-self::jw304:Bericht)">
-			<xsl:call-template name="checkempty">
-				<xsl:with-param name="pOther" select="../ijw:Postcode"/>
-				<xsl:with-param name="pRule">CD005</xsl:with-param>
-			</xsl:call-template>
-		</xsl:if>
-	</xsl:template>
-
-</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_0/condities/CD007.xsl b/xslt-validatie/jw/3_0/condities/CD007.xsl
deleted file mode 100644
index 7703359d5bf6772aa7a520129fc251d6956783d5..0000000000000000000000000000000000000000
--- a/xslt-validatie/jw/3_0/condities/CD007.xsl
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-	xmlns:ijw="http://www.istandaarden.nl/ijw/3_0/basisschema/schema"
-	xmlns:jw301="http://www.istandaarden.nl/ijw/3_0/jw301/schema"
-	xmlns:jw303="http://www.istandaarden.nl/ijw/3_0/jw303/schema"
-	xmlns:jw304="http://www.istandaarden.nl/ijw/3_0/jw304/schema"
-	xmlns:jw305="http://www.istandaarden.nl/ijw/3_0/jw305/schema"
-	xmlns:jw307="http://www.istandaarden.nl/ijw/3_0/jw307/schema"
-	xmlns:jw315="http://www.istandaarden.nl/ijw/3_0/jw315/schema"
-	>
-
-	<!-- iJw 3.0 CD007 version 2.2.8 (2021-01-25) -->
-
-	<xsl:import href="../common/basis.xsl"/>
-	<xsl:template match="*" mode="CD007"/>
-	<xsl:template match="*" mode="check">
-		<xsl:apply-templates select="*" mode="CD007"/>
-	</xsl:template>
-
-	<xsl:template match="*[ijw:Taal | ijw:Vorm]" mode="check">
-		<xsl:if test="not (ancestor-or-self::jw304:Bericht)">
-			<xsl:call-template name="checksame">
-				<xsl:with-param name="pThis" select="ijw:Taal"/>
-				<xsl:with-param name="pValue1">*</xsl:with-param>
-				<xsl:with-param name="pOther" select="ijw:Vorm"/>
-				<xsl:with-param name="pValue2">1</xsl:with-param>
-				<xsl:with-param name="pRule">CD007</xsl:with-param>
-			</xsl:call-template>
-		</xsl:if>
-	</xsl:template>
-
-</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_0/condities/CD009.xsl b/xslt-validatie/jw/3_0/condities/CD009.xsl
deleted file mode 100644
index 93da7044b9f3d04ff63ada9a580b40a261d4b68e..0000000000000000000000000000000000000000
--- a/xslt-validatie/jw/3_0/condities/CD009.xsl
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-                xmlns:jw301="http://www.istandaarden.nl/ijw/3_0/jw301/schema"
->
-    <!-- iJw 3.0 CD009 version 2.2.8 (2021-01-25) -->
-
-    <xsl:import href="../common/basis.xsl"/>
-    <xsl:template match="*" mode="CD009"/>
-    <xsl:template match="*" mode="check">
-        <xsl:apply-templates select="*" mode="CD009"/>
-    </xsl:template>
-
-    <xsl:template match="jw301:Contact/jw301:Periode" mode="CD009">
-        <xsl:call-template name="checkimplication">
-            <xsl:with-param name="pValue1">#</xsl:with-param>
-            <xsl:with-param name="pOther" select="../jw301:Soort"/>
-            <xsl:with-param name="pValue2">04</xsl:with-param>
-            <xsl:with-param name="pRule">CD009</xsl:with-param>
-        </xsl:call-template>
-    </xsl:template>
-
-</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_0/condities/CD025.xsl b/xslt-validatie/jw/3_0/condities/CD025.xsl
deleted file mode 100644
index 371d6139dc72561716c603e793017e06b6f952ce..0000000000000000000000000000000000000000
--- a/xslt-validatie/jw/3_0/condities/CD025.xsl
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-	xmlns:ijw="http://www.istandaarden.nl/ijw/3_0/basisschema/schema"
-	xmlns:jw301="http://www.istandaarden.nl/ijw/3_0/jw301/schema"
-	xmlns:jw303="http://www.istandaarden.nl/ijw/3_0/jw303/schema"
-	xmlns:jw304="http://www.istandaarden.nl/ijw/3_0/jw304/schema"
-	xmlns:jw305="http://www.istandaarden.nl/ijw/3_0/jw305/schema"
-	xmlns:jw307="http://www.istandaarden.nl/ijw/3_0/jw307/schema"
-	xmlns:jw315="http://www.istandaarden.nl/ijw/3_0/jw315/schema"
-	>
-
-	<!-- iJw 3.0 CD025 version 2.2.8 (2021-01-25) -->
-
-	<xsl:import href="../common/basis.xsl"/>
-	<xsl:template match="*" mode="CD025"/>
-	<xsl:template match="*" mode="check">
-		<xsl:apply-templates select="*" mode="CD025"/>
-	</xsl:template>
-
-	<xsl:template match="ijw:LandCode" mode="CD025">
-		<xsl:if test="not (ancestor-or-self::jw304:Bericht)">
-			<xsl:call-template name="checkimplication">
-				<xsl:with-param name="pValue1">NL</xsl:with-param>
-				<xsl:with-param name="pOther" select="../ijw:Huis/ijw:Huisnummer"/>
-				<xsl:with-param name="pValue2">*</xsl:with-param>
-				<xsl:with-param name="pRule">CD025</xsl:with-param>
-			</xsl:call-template>
-		</xsl:if>
-	</xsl:template>
-
-</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_0/condities/CD034.xsl b/xslt-validatie/jw/3_0/condities/CD034.xsl
deleted file mode 100644
index 9381bb5314c1c838f3120beaa7e24dcf486313cf..0000000000000000000000000000000000000000
--- a/xslt-validatie/jw/3_0/condities/CD034.xsl
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-                xmlns:ijw="http://www.istandaarden.nl/ijw/3_0/basisschema/schema"
-                xmlns:jw301="http://www.istandaarden.nl/ijw/3_0/jw301/schema">
-    <!-- iJw 3.0 CD034 version 2.2.8 (2021-01-25) -->
-
-    <xsl:import href="../common/basis.xsl"/>
-    <xsl:template match="*" mode="CD034"/>
-    <xsl:template match="*" mode="check">
-        <xsl:apply-templates select="*" mode="CD034"/>
-    </xsl:template>
-
-    <xsl:template match="jw301:Contact" mode="CD034">
-        <xsl:call-template name="checkimplication">
-            <xsl:with-param name="pThis" select="jw301:Soort"/>
-            <xsl:with-param name="pValue1">01,03</xsl:with-param>
-            <xsl:with-param name="pOther" select="jw301:Adres/ijw:Postcode"/>
-            <xsl:with-param name="pValue2">*</xsl:with-param>
-            <xsl:with-param name="pRule">CD034</xsl:with-param>
-        </xsl:call-template>
-    </xsl:template>
-
-</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_0/condities/CD041.xsl b/xslt-validatie/jw/3_0/condities/CD041.xsl
deleted file mode 100644
index eaf60bd9455f0885e15c2f1ade191ec6f614371b..0000000000000000000000000000000000000000
--- a/xslt-validatie/jw/3_0/condities/CD041.xsl
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-                xmlns:ijw="http://www.istandaarden.nl/ijw/3_0/basisschema/schema"
-                xmlns:jw301="http://www.istandaarden.nl/ijw/3_0/jw301/schema"
-                xmlns:jw315="http://www.istandaarden.nl/ijw/3_0/jw315/schema">
-
-    <!-- iJw 3.0 CD041 version 2.2.8 (2021-01-25) -->
-
-    <xsl:import href="../common/basis.xsl"/>
-    <xsl:template match="*" mode="CD041"/>
-    <xsl:template match="*" mode="check">
-        <xsl:apply-templates select="*" mode="CD041"/>
-    </xsl:template>
-
-    <xsl:template match="jw301:ToegewezenProduct" mode="CD041">
-        <xsl:call-template name="checkimplication">
-            <xsl:with-param name="pThis" select="jw301:Product/ijw:Code"/>
-            <xsl:with-param name="pValue1">*</xsl:with-param>
-            <xsl:with-param name="pOther" select="jw301:Omvang"/>
-            <xsl:with-param name="pValue2">#</xsl:with-param>
-            <xsl:with-param name="pRule">CD041</xsl:with-param>
-        </xsl:call-template>
-    </xsl:template>
-
-    <xsl:template match="jw315:AangevraagdProduct" mode="CD041">
-        <xsl:call-template name="checkimplication">
-            <xsl:with-param name="pThis" select="jw315:Product/ijw:Code"/>
-            <xsl:with-param name="pValue1">*</xsl:with-param>
-            <xsl:with-param name="pOther" select="jw315:Omvang"/>
-            <xsl:with-param name="pValue2">#</xsl:with-param>
-            <xsl:with-param name="pRule">CD041</xsl:with-param>
-        </xsl:call-template>
-    </xsl:template>
-
-</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_0/condities/CD043.xsl b/xslt-validatie/jw/3_0/condities/CD043.xsl
deleted file mode 100644
index ce0c4bed754e78bd17dcaeb5c414a848b631b1d4..0000000000000000000000000000000000000000
--- a/xslt-validatie/jw/3_0/condities/CD043.xsl
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-                xmlns:ijw="http://www.istandaarden.nl/ijw/3_0/basisschema/schema"
-                xmlns:jw315="http://www.istandaarden.nl/ijw/3_0/jw315/schema">
-
-    <!-- iJw 3.0 CD043 version 2.2.8 (2021-01-25) -->
-
-    <xsl:import href="../common/basis.xsl"/>
-    <xsl:template match="*" mode="CD043"/>
-    <xsl:template match="*" mode="check">
-        <xsl:apply-templates select="*" mode="CD043"/>
-    </xsl:template>
-
-    <xsl:template match="jw315:AangevraagdProduct" mode="CD043">
-        <xsl:call-template name="checksame">
-            <xsl:with-param name="pThis" select="jw315:BeschikkingNummer"/>
-            <xsl:with-param name="pValue1">*</xsl:with-param>
-            <xsl:with-param name="pOther" select="jw315:BeschikkingIngangsdatum"/>
-            <xsl:with-param name="pValue2">*</xsl:with-param>
-            <xsl:with-param name="pRule">CD043</xsl:with-param>
-        </xsl:call-template>
-    </xsl:template>
-
-</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_0/condities/CD055.xsl b/xslt-validatie/jw/3_0/condities/CD055.xsl
deleted file mode 100644
index 765928997ad5cc7de9d8153b8bdf29c2f3b7e81b..0000000000000000000000000000000000000000
--- a/xslt-validatie/jw/3_0/condities/CD055.xsl
+++ /dev/null
@@ -1,68 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-                xmlns:ijw="http://www.istandaarden.nl/ijw/3_0/basisschema/schema"
-                xmlns:jw303="http://www.istandaarden.nl/ijw/3_0/jw303/schema"
-                xmlns:jw304="http://www.istandaarden.nl/ijw/3_0/jw304/schema"
-                >
-
-    <!-- iJw 3.0 CD055 version 2.2.8 (2021-01-25) -->
-
-    <xsl:import href="../common/basis.xsl"/>
-    <xsl:template match="*" mode="CD055"/>
-    <xsl:template match="*" mode="check">
-        <xsl:apply-templates select="*" mode="CD055"/>
-    </xsl:template>
-
-    <xsl:template match="jw303:IngediendeBedragPrestatie" mode="CD055">
-        <xsl:if test="normalize-space(ijw:BtwVrijstellingIndicatie/text())='2'">
-            <xsl:call-template name="checkvalue">
-                <xsl:with-param name="pThis" select="ijw:BtwPercentage"/>
-                <xsl:with-param name="pValues">*</xsl:with-param>
-                <xsl:with-param name="pRule">CD055</xsl:with-param>
-                <xsl:with-param name="pExtra" select="ijw:BtwVrijstellingIndicatie"></xsl:with-param>
-            </xsl:call-template>
-            <xsl:call-template name="checkvalue">
-                <xsl:with-param name="pThis" select="ijw:BtwBedrag/ijw:Bedrag"/>
-                <xsl:with-param name="pValues">*</xsl:with-param>
-                <xsl:with-param name="pRule">CD055</xsl:with-param>
-                <xsl:with-param name="pExtra" select="ijw:BtwVrijstellingIndicatie"></xsl:with-param>
-            </xsl:call-template>
-            <xsl:call-template name="checkvalue">
-                <xsl:with-param name="pThis" select="ancestor-or-self::jw303:Bericht/jw303:Header//ijw:BtwIDNummer"/>
-                <xsl:with-param name="pValues">*</xsl:with-param>
-                <xsl:with-param name="pRule">CD055</xsl:with-param>
-                <xsl:with-param name="pExtra" select="ijw:BtwVrijstellingIndicatie"></xsl:with-param>
-            </xsl:call-template>
-            <xsl:call-template name="checkvalue">
-                <xsl:with-param name="pThis" select="ancestor-or-self::jw303:Bericht/jw303:Header//ijw:BtwTotaalBedrag/ijw:TotaalBedrag"/>
-                <xsl:with-param name="pValues">*</xsl:with-param>
-                <xsl:with-param name="pRule">CD055</xsl:with-param>
-                <xsl:with-param name="pExtra" select="ijw:BtwVrijstellingIndicatie"></xsl:with-param>
-            </xsl:call-template>
-        </xsl:if>
-    </xsl:template>
-    
-    <xsl:template match="jw304:IngediendeBedragPrestatie" mode="CD055">
-        <xsl:if test="normalize-space(ijw:BtwVrijstellingIndicatie/text())='2'">
-            <xsl:call-template name="checkvalue">
-                <xsl:with-param name="pThis" select="ijw:BtwPercentage"/>
-                <xsl:with-param name="pValues">*</xsl:with-param>
-                <xsl:with-param name="pRule">CD055</xsl:with-param>
-                <xsl:with-param name="pExtra" select="ijw:BtwVrijstellingIndicatie"></xsl:with-param>
-            </xsl:call-template>
-            <xsl:call-template name="checkvalue">
-                <xsl:with-param name="pThis" select="ijw:BtwBedrag/ijw:Bedrag"/>
-                <xsl:with-param name="pValues">*</xsl:with-param>
-                <xsl:with-param name="pRule">CD055</xsl:with-param>
-                <xsl:with-param name="pExtra" select="ijw:BtwVrijstellingIndicatie"></xsl:with-param>
-            </xsl:call-template>
-            <xsl:call-template name="checkvalue">
-                <xsl:with-param name="pThis" select="ancestor-or-self::jw304:Bericht/jw304:Header//ijw:BtwIDNummer"/>
-                <xsl:with-param name="pValues">*</xsl:with-param>
-                <xsl:with-param name="pRule">CD055</xsl:with-param>
-                <xsl:with-param name="pExtra" select="ijw:BtwVrijstellingIndicatie"></xsl:with-param>
-            </xsl:call-template>
-        </xsl:if>
-    </xsl:template>
-
-</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_0/condities/CD056.xsl b/xslt-validatie/jw/3_0/condities/CD056.xsl
deleted file mode 100644
index c1ba27bd5b2a9ba7aa4036784e2be9394cea02c2..0000000000000000000000000000000000000000
--- a/xslt-validatie/jw/3_0/condities/CD056.xsl
+++ /dev/null
@@ -1,47 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-                xmlns:ijw="http://www.istandaarden.nl/ijw/3_0/basisschema/schema"
-                xmlns:jw303="http://www.istandaarden.nl/ijw/3_0/jw303/schema"
-                xmlns:jw304="http://www.istandaarden.nl/ijw/3_0/jw304/schema"
-                >
-
-    <!-- iJw 3.0 CD056 version 2.2.8 (2021-01-25) -->
-
-    <xsl:import href="../common/basis.xsl"/>
-    <xsl:template match="*" mode="CD056"/>
-    <xsl:template match="*" mode="check">
-        <xsl:apply-templates select="*" mode="CD056"/>
-    </xsl:template>
-
-    <xsl:template match="jw303:IngediendeBedragPrestatie" mode="CD056">
-        <xsl:if test="normalize-space(ijw:BtwVrijstellingIndicatie/text())='1'">
-            <xsl:call-template name="checkempty">
-                <xsl:with-param name="pThis" select="ijw:BtwPercentage"/>
-                <xsl:with-param name="pRule">CD056</xsl:with-param>
-                <!--<xsl:with-param name="pExtra" select="ijw:BtwVrijstellingIndicatie"/>-->
-            </xsl:call-template>
-            <xsl:call-template name="checkempty">
-                <xsl:with-param name="pThis" select="ijw:BtwBedrag/ijw:Bedrag"/>
-                <xsl:with-param name="pRule">CD056</xsl:with-param>
-                <!--<xsl:with-param name="pExtra" select="ijw:BtwVrijstellingIndicatie"></xsl:with-param>-->
-            </xsl:call-template>
-        </xsl:if>
-    </xsl:template>
-    
-    <xsl:template match="jw304:IngediendeBedragPrestatie" mode="CD056">
-        <xsl:if test="normalize-space(ijw:BtwVrijstellingIndicatie/text())='1'">
-            <xsl:call-template name="checkempty">
-                <xsl:with-param name="pThis" select="ijw:BtwPercentage"/>
-                <xsl:with-param name="pRule">CD056</xsl:with-param>
-                <!--<xsl:with-param name="pExtra" select="ijw:BtwVrijstellingIndicatie"/>-->
-            </xsl:call-template>
-            <xsl:call-template name="checkempty">
-                <xsl:with-param name="pThis" select="ijw:BtwBedrag/ijw:Bedrag"/>
-                <xsl:with-param name="pRule">CD056</xsl:with-param>
-                <!--<xsl:with-param name="pExtra" select="ijw:BtwVrijstellingIndicatie"></xsl:with-param>-->
-            </xsl:call-template>
-        </xsl:if>
-    </xsl:template>
-
-</xsl:stylesheet>
-	
\ No newline at end of file
diff --git a/xslt-validatie/jw/3_0/condities/CD058.xsl b/xslt-validatie/jw/3_0/condities/CD058.xsl
deleted file mode 100644
index 6b10cac177331bfdffcb12c701d445c853dcf091..0000000000000000000000000000000000000000
--- a/xslt-validatie/jw/3_0/condities/CD058.xsl
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-                xmlns:ijw="http://www.istandaarden.nl/ijw/3_0/basisschema/schema"
-                xmlns:jw303="http://www.istandaarden.nl/ijw/3_0/jw303/schema"
-                xmlns:jw304="http://www.istandaarden.nl/ijw/3_0/jw304/schema"
-		    >
-
-    <!-- iJw 3.0 CD058 version 2.2.8 (2021-01-25) -->
-
-    <xsl:import href="../common/basis.xsl"/>
-    <xsl:template match="*" mode="CD058"/>
-    <xsl:template match="*" mode="check">
-        <xsl:apply-templates select="*" mode="CD058"/>
-    </xsl:template>
-
-    <xsl:template match="jw303:BetalingAanID" mode="CD058">
-        <xsl:call-template name="checkimplication">
-            <xsl:with-param name="pValue1">01</xsl:with-param>
-		<xsl:with-param name="pOther" select="../jw303:Servicebureau"/>
-            <xsl:with-param name="pValue2">*</xsl:with-param>
-            <xsl:with-param name="pRule">CD058</xsl:with-param>
-        </xsl:call-template>
-    </xsl:template>
-
-    <xsl:template match="jw304:BetalingAanID" mode="CD058">
-        <xsl:call-template name="checkimplication">
-            <xsl:with-param name="pValue1">01</xsl:with-param>
-		<xsl:with-param name="pOther" select="../jw304:Servicebureau"/>
-            <xsl:with-param name="pValue2">*</xsl:with-param>
-            <xsl:with-param name="pRule">CD058</xsl:with-param>
-        </xsl:call-template>
-    </xsl:template>
-
-</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_0/condities/CD059.xsl b/xslt-validatie/jw/3_0/condities/CD059.xsl
deleted file mode 100644
index 1322b7644acc5ace16c2b990f06522834ecaaf5b..0000000000000000000000000000000000000000
--- a/xslt-validatie/jw/3_0/condities/CD059.xsl
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-                xmlns:ijw="http://www.istandaarden.nl/ijw/3_0/basisschema/schema"
-                xmlns:jw303="http://www.istandaarden.nl/ijw/3_0/jw303/schema"
-                xmlns:jw304="http://www.istandaarden.nl/ijw/3_0/jw304/schema"
->
-
-    <!-- iJw 3.0 CD059 version 2.2.8 (2021-01-25) -->
-
-    <xsl:import href="../common/basis.xsl"/>
-    <xsl:template match="*" mode="CD059"/>
-    <xsl:template match="*" mode="check">
-        <xsl:apply-templates select="*" mode="CD059"/>
-    </xsl:template>
-
-    <xsl:template match="jw303:Prestatie" mode="CD059">
-        <xsl:call-template name="checkimplication">
-            <xsl:with-param name="pThis" select="ancestor-or-self::jw303:Bericht/jw303:Header/jw303:BerichtCode"/>
-            <xsl:with-param name="pValue1">448, 450</xsl:with-param>
-            <xsl:with-param name="pOther" select="jw303:IngediendeBedragPrestatie/ijw:BtwVrijstellingIndicatie"/>
-            <xsl:with-param name="pValue2">*</xsl:with-param>
-            <xsl:with-param name="pRule">CD059</xsl:with-param>
-        </xsl:call-template>
-    </xsl:template>
-
-    <xsl:template match="jw304:Prestatie" mode="CD059">
-        <xsl:call-template name="checkimplication">
-            <xsl:with-param name="pThis" select="ancestor-or-self::jw304:Bericht/jw304:Header/jw304:BerichtCode"/>
-            <xsl:with-param name="pValue1">449, 451</xsl:with-param>
-            <xsl:with-param name="pOther" select="jw304:IngediendeBedragPrestatie/ijw:BtwVrijstellingIndicatie"/>
-            <xsl:with-param name="pValue2">*</xsl:with-param>
-            <xsl:with-param name="pRule">CD059</xsl:with-param>
-        </xsl:call-template>
-    </xsl:template>
-
-</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_0/condities/CD060.xsl b/xslt-validatie/jw/3_0/condities/CD060.xsl
deleted file mode 100644
index 26baa21489a22657326d06fe750d4f9059f5f7cb..0000000000000000000000000000000000000000
--- a/xslt-validatie/jw/3_0/condities/CD060.xsl
+++ /dev/null
@@ -1,58 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-                xmlns:ijw="http://www.istandaarden.nl/ijw/3_0/basisschema/schema"
-                xmlns:jw303="http://www.istandaarden.nl/ijw/3_0/jw303/schema"
-                xmlns:jw304="http://www.istandaarden.nl/ijw/3_0/jw304/schema"
-                xmlns:jw323="http://www.istandaarden.nl/ijw/3_0/jw323/schema"
-                xmlns:jw325="http://www.istandaarden.nl/ijw/3_0/jw325/schema"
-		    >
-
-    <!-- iJw 3.0 CD060 version 2.2.8 (2021-01-25) -->
-
-    <xsl:import href="../common/basis.xsl"/>
-    <xsl:template match="*" mode="CD060"/>
-    <xsl:template match="*" mode="check">
-        <xsl:apply-templates select="*" mode="CD060"/>
-    </xsl:template>
-
-    <xsl:template match="jw303:Prestatie" mode="CD060">
-        <xsl:call-template name="checksame">
-        	<xsl:with-param name="pThis" select="jw303:IngediendeBedragPrestatie/ijw:DeclaratieFactuurBedrag/ijw:DebetCredit"/>
-            <xsl:with-param name="pValue1">C</xsl:with-param>
-			<xsl:with-param name="pOther" select="jw303:ProductReferentie/ijw:VorigReferentieNummer"/>
-            <xsl:with-param name="pValue2">*</xsl:with-param>
-            <xsl:with-param name="pRule">CD060</xsl:with-param>
-        </xsl:call-template>
-    </xsl:template>
-
-    <xsl:template match="jw304:Prestatie" mode="CD060">
-        <xsl:call-template name="checksame">
-        	<xsl:with-param name="pThis" select="jw304:IngediendeBedragPrestatie/ijw:DeclaratieFactuurBedrag/ijw:DebetCredit"/>
-            <xsl:with-param name="pValue1">C</xsl:with-param>
-			<xsl:with-param name="pOther" select="jw304:ProductReferentie/ijw:VorigReferentieNummer"/>
-            <xsl:with-param name="pValue2">*</xsl:with-param>
-            <xsl:with-param name="pRule">CD060</xsl:with-param>
-        </xsl:call-template>
-    </xsl:template>
-
-    <xsl:template match="jw323:Prestatie" mode="CD060">
-        <xsl:call-template name="checksame">
-        	<xsl:with-param name="pThis" select="jw323:IngediendBedrag/ijw:DebetCredit"/>
-            <xsl:with-param name="pValue1">C</xsl:with-param>
-			<xsl:with-param name="pOther" select="jw323:ProductReferentie/ijw:VorigReferentieNummer"/>
-            <xsl:with-param name="pValue2">*</xsl:with-param>
-            <xsl:with-param name="pRule">CD060</xsl:with-param>
-        </xsl:call-template>
-    </xsl:template>
-    
-    <xsl:template match="jw325:Prestatie" mode="CD060">
-        <xsl:call-template name="checksame">
-        	<xsl:with-param name="pThis" select="jw325:IngediendBedrag/ijw:DebetCredit"/>
-            <xsl:with-param name="pValue1">C</xsl:with-param>
-			<xsl:with-param name="pOther" select="jw325:ProductReferentie/ijw:VorigReferentieNummer"/>
-            <xsl:with-param name="pValue2">*</xsl:with-param>
-            <xsl:with-param name="pRule">CD060</xsl:with-param>
-        </xsl:call-template>
-    </xsl:template>
-    
-</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_0/condities/CD062.xsl b/xslt-validatie/jw/3_0/condities/CD062.xsl
deleted file mode 100644
index 5aadabbe51885cbf8667375abaa3a60feb861e51..0000000000000000000000000000000000000000
--- a/xslt-validatie/jw/3_0/condities/CD062.xsl
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-                xmlns:ijw="http://www.istandaarden.nl/ijw/3_0/basisschema/schema"
-                xmlns:jw303="http://www.istandaarden.nl/ijw/3_0/jw303/schema"
-    		    xmlns:jw304="http://www.istandaarden.nl/ijw/3_0/jw304/schema"
-		    >
-
-    <!-- iJw 3.0 CD062 version 2.2.8 (2021-01-25) -->
-
-    <xsl:import href="../common/basis.xsl"/>
-    <xsl:template match="*" mode="CD062"/>
-    <xsl:template match="*" mode="check">
-        <xsl:apply-templates select="*" mode="CD062"/>
-    </xsl:template>
-
-    <xsl:template match="jw303:IngediendeBedragPrestatie | jw304:IngediendeBedragPrestatie" mode="CD062">
-        <xsl:call-template name="checkimplication">
-            <xsl:with-param name="pThis" select="ijw:Eenheid"/>
-            <xsl:with-param name="pValue1">83</xsl:with-param>
-            <xsl:with-param name="pOther" select="ijw:ProductTarief"/>
-            <xsl:with-param name="pValue2"></xsl:with-param>
-            <xsl:with-param name="pRule">CD062</xsl:with-param>
-        </xsl:call-template>
-    </xsl:template>
-
-</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_0/condities/CD068.xsl b/xslt-validatie/jw/3_0/condities/CD068.xsl
deleted file mode 100644
index 9b31d3fe25bef46b4c587de0eb07546d5850f672..0000000000000000000000000000000000000000
--- a/xslt-validatie/jw/3_0/condities/CD068.xsl
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet version="1.0"
-	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-	xmlns:ijw="http://www.istandaarden.nl/ijw/3_0/basisschema/schema"
-	xmlns:jw315="http://www.istandaarden.nl/ijw/3_0/jw315/schema">
-
-	<!-- iJw 3.0 CD068 version 2.2.8 (2021-01-25) -->
-
-	<xsl:import href="../common/basis.xsl" />
-	<xsl:template match="*" mode="CD068" />
-	<xsl:template match="*" mode="check">
-		<xsl:apply-templates select="*" mode="CD068" />
-	</xsl:template>
-
-	<xsl:template match="jw315:Verwijzer" mode="CD068">
-		<xsl:call-template name="checkimplication">
-			<xsl:with-param name="pThis" select="ijw:Type" />
-			<xsl:with-param name="pValue1">!02,03,04,05</xsl:with-param>
-			<xsl:with-param name="pOther" select="ijw:ZorgverlenerCode" />
-			<xsl:with-param name="pValue2"></xsl:with-param>
-			<xsl:with-param name="pRule">CD068</xsl:with-param>
-		</xsl:call-template>
-	</xsl:template>
-</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_0/condities/CD076.xsl b/xslt-validatie/jw/3_0/condities/CD076.xsl
deleted file mode 100644
index 91007992f9744889690f7cea2b01930b379c17b0..0000000000000000000000000000000000000000
--- a/xslt-validatie/jw/3_0/condities/CD076.xsl
+++ /dev/null
@@ -1,52 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet version="1.0"
-	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-	xmlns:ijw="http://www.istandaarden.nl/ijw/3_0/basisschema/schema"
-	xmlns:jw301="http://www.istandaarden.nl/ijw/3_0/jw301/schema"
-	xmlns:jw315="http://www.istandaarden.nl/ijw/3_0/jw315/schema"
-	xmlns:jw317="http://www.istandaarden.nl/ijw/3_0/jw317/schema"
-	>
-
-	<!-- iJw 3.0 CD076 version 2.2.8 (2021-01-25) -->
-
-	<xsl:import href="../common/basis.xsl" />
-	<xsl:template match="*" mode="CD076" />
-	<xsl:template match="*" mode="check">
-		<xsl:apply-templates select="*" mode="CD076" />
-	</xsl:template>
-
-	<xsl:template match="jw301:ToegewezenProduct//ijw:Frequentie" mode="CD076">
-		<xsl:call-template name="checkimplication">
-			<xsl:with-param name="pValue1">2,6</xsl:with-param>
-			<xsl:with-param name="pOther" select="ancestor-or-self::jw301:ToegewezenProduct/jw301:Einddatum" />
-			<xsl:with-param name="pValue2">*</xsl:with-param>
-			<xsl:with-param name="pRule">CD076</xsl:with-param>
-		</xsl:call-template>
-	</xsl:template>
-	
-	<xsl:template match="jw315:AangevraagdProduct//ijw:Frequentie" mode="CD076">
-		<xsl:call-template name="checkimplication">
-			<xsl:with-param name="pValue1">2,6</xsl:with-param>
-			<xsl:with-param name="pOther" select="ancestor-or-self::jw315:AangevraagdProduct/jw315:ToewijzingEinddatum" />
-			<xsl:with-param name="pValue2">*</xsl:with-param>
-			<xsl:with-param name="pRule">CD076</xsl:with-param>
-		</xsl:call-template>
-	</xsl:template>
-	
-	<xsl:template match="jw317:TeWijzigenProduct//ijw:Frequentie" mode="CD076">
-		<xsl:call-template name="checkimplication">
-			<xsl:with-param name="pValue1">2,6</xsl:with-param>
-			<xsl:with-param name="pOther" select="ancestor-or-self::jw317:TeWijzigenProduct/jw317:Einddatum" />
-			<xsl:with-param name="pValue2">*</xsl:with-param>
-			<xsl:with-param name="pRule">CD076</xsl:with-param>
-		</xsl:call-template>
-	</xsl:template>
-	<xsl:template match="jw317:NieuwProduct//ijw:Frequentie" mode="CD076">
-		<xsl:call-template name="checkimplication">
-			<xsl:with-param name="pValue1">2,6</xsl:with-param>
-			<xsl:with-param name="pOther" select="ancestor-or-self::jw317:NieuwProduct/jw317:Einddatum" />
-			<xsl:with-param name="pValue2">*</xsl:with-param>
-			<xsl:with-param name="pRule">CD076</xsl:with-param>
-		</xsl:call-template>
-	</xsl:template>
-</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_0/condities/CD077.xsl b/xslt-validatie/jw/3_0/condities/CD077.xsl
deleted file mode 100644
index 4879a2c308886e7e68b89b37d13431bd1bef5cf7..0000000000000000000000000000000000000000
--- a/xslt-validatie/jw/3_0/condities/CD077.xsl
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet version="1.0"
-	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-	xmlns:ijw="http://www.istandaarden.nl/ijw/3_0/basisschema/schema"
-	xmlns:jw301="http://www.istandaarden.nl/ijw/3_0/jw301/schema"
-	xmlns:jw317="http://www.istandaarden.nl/ijw/3_0/jw317/schema"
-	>
-
-	<!-- iJw 3.0 CD077 version 2.2.8 (2021-01-25) -->
-
-	<xsl:import href="../common/basis.xsl" />
-	<xsl:template match="*" mode="CD077" />
-	<xsl:template match="*" mode="check">
-		<xsl:apply-templates select="*" mode="CD077" />
-	</xsl:template>
-
-	<xsl:template match="jw301:ToegewezenProduct//jw301:Budget" mode="CD077">
-		<xsl:call-template name="checkimplication">
-			<xsl:with-param name="pValue1">*</xsl:with-param>
-			<xsl:with-param name="pOther" select="ancestor-or-self::jw301:ToegewezenProduct/jw301:Omvang" />
-			<xsl:with-param name="pValue2">!#</xsl:with-param>
-			<xsl:with-param name="pRule">CD077</xsl:with-param>
-		</xsl:call-template>
-	</xsl:template>
-	
-	<xsl:template match="jw317:TeWijzigenProduct//jw317:Budget" mode="CD077">
-		<xsl:call-template name="checkimplication">
-			<xsl:with-param name="pValue1">*</xsl:with-param>
-			<xsl:with-param name="pOther" select="ancestor-or-self::jw317:TeWijzigenProduct/jw317:Omvang" />
-			<xsl:with-param name="pValue2">!#</xsl:with-param>
-			<xsl:with-param name="pRule">CD077</xsl:with-param>
-		</xsl:call-template>
-	</xsl:template>
-	<xsl:template match="jw317:NieuwProduct//jw317:Budget" mode="CD077">
-		<xsl:call-template name="checkimplication">
-			<xsl:with-param name="pValue1">*</xsl:with-param>
-			<xsl:with-param name="pOther" select="ancestor-or-self::jw317:NieuwProduct/jw317:Omvang" />
-			<xsl:with-param name="pValue2">!#</xsl:with-param>
-			<xsl:with-param name="pRule">CD077</xsl:with-param>
-		</xsl:call-template>
-	</xsl:template>
-</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_0/condities/CD078.xsl b/xslt-validatie/jw/3_0/condities/CD078.xsl
deleted file mode 100644
index 060704e12b22c424b9fa4410a40c65ec686df3e2..0000000000000000000000000000000000000000
--- a/xslt-validatie/jw/3_0/condities/CD078.xsl
+++ /dev/null
@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet version="1.0"
-	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-	xmlns:ijw="http://www.istandaarden.nl/ijw/3_0/basisschema/schema"
-	xmlns:jw301="http://www.istandaarden.nl/ijw/3_0/jw301/schema"
-	xmlns:jw317="http://www.istandaarden.nl/ijw/3_0/jw317/schema"
-	>
-
-	<!-- iJw 3.0 CD078 version 2.2.8 (2021-01-25) -->
-
-	<xsl:import href="../common/basis.xsl" />
-	<xsl:template match="*" mode="CD078" />
-	<xsl:template match="*" mode="check">
-		<xsl:apply-templates select="*" mode="CD078" />
-	</xsl:template>
-
-	<xsl:template match="jw301:ToegewezenProduct//jw301:Omvang" mode="CD078">
-		<xsl:call-template name="checkimplication">
-			<xsl:with-param name="pValue1">#</xsl:with-param>
-			<xsl:with-param name="pOther" select="ancestor-or-self::jw301:ToegewezenProduct/jw301:Budget" />
-			<xsl:with-param name="pValue2"></xsl:with-param>
-			<xsl:with-param name="pRule">CD078</xsl:with-param>
-		</xsl:call-template>
-	</xsl:template>
-	
-	<xsl:template match="jw317:TeWijzigenProduct//jw317:Omvang" mode="CD078">
-		<xsl:call-template name="checkimplication">
-			<xsl:with-param name="pValue1">#</xsl:with-param>
-			<xsl:with-param name="pOther" select="ancestor-or-self::jw317:TeWijzigenProduct/jw317:Budget" />
-			<xsl:with-param name="pValue2"></xsl:with-param>
-			<xsl:with-param name="pRule">CD078</xsl:with-param>
-		</xsl:call-template>
-	</xsl:template>
-	<xsl:template match="jw317:NieuwProduct//jw317:Omvang" mode="CD078">
-		<xsl:call-template name="checkimplication">
-			<xsl:with-param name="pValue1">#</xsl:with-param>
-			<xsl:with-param name="pOther" select="ancestor-or-self::jw317:NieuwProduct/jw317:Budget" />
-			<xsl:with-param name="pValue2"></xsl:with-param>
-			<xsl:with-param name="pRule">CD078</xsl:with-param>
-		</xsl:call-template>
-	</xsl:template>
-</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_0/condities/CD079.xsl b/xslt-validatie/jw/3_0/condities/CD079.xsl
deleted file mode 100644
index e373eff0992b8d833617786cc301ec2e44e6565c..0000000000000000000000000000000000000000
--- a/xslt-validatie/jw/3_0/condities/CD079.xsl
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet version="1.0"
-	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-	xmlns:ijw="http://www.istandaarden.nl/ijw/3_0/basisschema/schema"
-	xmlns:jw301="http://www.istandaarden.nl/ijw/3_0/jw301/schema"
-	xmlns:jw317="http://www.istandaarden.nl/ijw/3_0/jw317/schema"
-	>
-
-	<!-- iJw 3.0 CD079 version 2.2.8 (2021-01-25) -->
-
-	<xsl:import href="../common/basis.xsl" />
-	<xsl:template match="*" mode="CD079" />
-	<xsl:template match="*" mode="check">
-		<xsl:apply-templates select="*" mode="CD079" />
-	</xsl:template>
-
-	<xsl:template match="jw301:ToegewezenProduct" mode="CD079">
-		<xsl:call-template name="checkimplication">
-			<xsl:with-param name="pThis" select="jw301:Budget" />
-			<xsl:with-param name="pValue1"></xsl:with-param>
-			<xsl:with-param name="pOther" select="jw301:Product" />
-			<xsl:with-param name="pValue2">#</xsl:with-param>
-			<xsl:with-param name="pExtra" select="." />
-			<xsl:with-param name="pRule">CD079</xsl:with-param>
-		</xsl:call-template>
-	</xsl:template>
-	
-	<xsl:template match="jw317:NieuwProduct" mode="CD079">
-		<xsl:call-template name="checkimplication">
-			<xsl:with-param name="pThis" select="jw317:Budget" />
-			<xsl:with-param name="pValue1"></xsl:with-param>
-			<xsl:with-param name="pOther" select="jw317:Product" />
-			<xsl:with-param name="pValue2">#</xsl:with-param>
-			<xsl:with-param name="pExtra" select="." />
-			<xsl:with-param name="pRule">CD079</xsl:with-param>
-		</xsl:call-template>
-	</xsl:template>
-</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_0/condities/CD080.xsl b/xslt-validatie/jw/3_0/condities/CD080.xsl
deleted file mode 100644
index 2afadc2fe378648e5c1c2cd406286932e976415e..0000000000000000000000000000000000000000
--- a/xslt-validatie/jw/3_0/condities/CD080.xsl
+++ /dev/null
@@ -1,64 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet version="1.0"
-	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-	xmlns:ijw="http://www.istandaarden.nl/ijw/3_0/basisschema/schema"
-	xmlns:jw301="http://www.istandaarden.nl/ijw/3_0/jw301/schema"
-	xmlns:jw315="http://www.istandaarden.nl/ijw/3_0/jw315/schema"
-	xmlns:jw317="http://www.istandaarden.nl/ijw/3_0/jw317/schema"
-	>
-
-	<!-- iJw 3.0 CD080 version 2.2.8 (2021-01-25) -->
-
-	<xsl:import href="../common/basis.xsl" />
-	<xsl:template match="*" mode="CD080" />
-	<xsl:template match="*" mode="check">
-		<xsl:apply-templates select="*" mode="CD080" />
-	</xsl:template>
-
-	<xsl:template match="jw301:ToegewezenProduct//jw301:Omvang" mode="CD080">
-		<xsl:if test="not(ancestor-or-self::jw301:ToegewezenProduct/jw301:Einddatum) or number(translate(ancestor-or-self::jw301:ToegewezenProduct/jw301:Einddatum/text(), '-', '')) &gt; 20201231">
-			<xsl:call-template name="checkimplication">
-				<xsl:with-param name="pValue1">#</xsl:with-param>
-				<xsl:with-param name="pOther" select="ancestor-or-self::jw301:ToegewezenProduct/jw301:Product/ijw:Code" />
-				<xsl:with-param name="pValue2">*</xsl:with-param>
-				<xsl:with-param name="pRule">CD080</xsl:with-param>
-				<xsl:with-param name="pExtra" select="ancestor-or-self::jw301:ToegewezenProduct/jw301:Einddatum" />
-			</xsl:call-template>
-		</xsl:if>
-	</xsl:template>
-
-	<xsl:template match="jw315:AangevraagdProduct//jw315:Omvang" mode="CD080">
-		<xsl:if test="not(ancestor-or-self::jw315:AangevraagdProduct/jw315:ToewijzingEinddatum) or number(translate(ancestor-or-self::jw315:AangevraagdProduct/jw315:ToewijzingEinddatum/text(), '-', '')) &gt; 20201231">
-			<xsl:call-template name="checkimplication">
-				<xsl:with-param name="pValue1">#</xsl:with-param>
-				<xsl:with-param name="pOther" select="ancestor-or-self::jw315:AangevraagdProduct/jw315:Product/ijw:Code" />
-				<xsl:with-param name="pValue2">*</xsl:with-param>
-				<xsl:with-param name="pRule">CD080</xsl:with-param>
-				<xsl:with-param name="pExtra" select="ancestor-or-self::jw315:AangevraagdProduct/jw315:ToewijzingEinddatum" />
-			</xsl:call-template>
-		</xsl:if>
-	</xsl:template>
-	
-	<!-- 
-	<xsl:template match="jw317:TeWijzigenProduct//jw317:Omvang" mode="CD080">
-		<xsl:call-template name="checkimplication">
-			<xsl:with-param name="pValue1">#</xsl:with-param>
-			<xsl:with-param name="pOther" select="ancestor-or-self::jw317:TeWijzigenProduct/jw317:Product/ijw:Code" />
-			<xsl:with-param name="pValue2">*</xsl:with-param>
-			<xsl:with-param name="pRule">CD080</xsl:with-param>
-				<xsl:with-param name="pExtra" select="ancestor-or-self::jw301:ToegewezenProduct/jw301:Einddatum" />
-		</xsl:call-template>
-	</xsl:template>
-	 -->
-	<xsl:template match="jw317:NieuwProduct//jw317:Omvang" mode="CD080">
-		<xsl:if test="not(ancestor-or-self::jw317:NieuwProduct/jw317:Einddatum) or number(translate(ancestor-or-self::jw317:NieuwProduct/jw317:Einddatum/text(), '-', '')) &gt; 20201231">
-			<xsl:call-template name="checkimplication">
-				<xsl:with-param name="pValue1">#</xsl:with-param>
-				<xsl:with-param name="pOther" select="ancestor-or-self::jw317:NieuwProduct/jw317:Product/ijw:Code" />
-				<xsl:with-param name="pValue2">*</xsl:with-param>
-				<xsl:with-param name="pRule">CD080</xsl:with-param>
-				<xsl:with-param name="pExtra" select="ancestor-or-self::jw317:NieuwProduct/jw317:Einddatum" />
-			</xsl:call-template>
-		</xsl:if>
-	</xsl:template>
-</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_0/condities/CD081.xsl b/xslt-validatie/jw/3_0/condities/CD081.xsl
deleted file mode 100644
index c330b3504a8a215e70db9c625dfae271aa10dc14..0000000000000000000000000000000000000000
--- a/xslt-validatie/jw/3_0/condities/CD081.xsl
+++ /dev/null
@@ -1,64 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet version="1.0"
-	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-	xmlns:ijw="http://www.istandaarden.nl/ijw/3_0/basisschema/schema"
-	xmlns:jw301="http://www.istandaarden.nl/ijw/3_0/jw301/schema"
-	xmlns:jw315="http://www.istandaarden.nl/ijw/3_0/jw315/schema"
-	xmlns:jw317="http://www.istandaarden.nl/ijw/3_0/jw317/schema"
-	>
-
-	<!-- iJw 3.0 CD081 version 2.2.8 (2021-01-25) -->
-
-	<xsl:import href="../common/basis.xsl" />
-	<xsl:template match="*" mode="CD081" />
-	<xsl:template match="*" mode="check">
-		<xsl:apply-templates select="*" mode="CD081" />
-	</xsl:template>
-
-	<xsl:template match="jw301:ToegewezenProduct//jw301:Omvang/ijw:Eenheid" mode="CD081">
-		<xsl:if test="not(ancestor-or-self::jw301:ToegewezenProduct/jw301:Einddatum) or number(translate(ancestor-or-self::jw301:ToegewezenProduct/jw301:Einddatum/text(), '-', '')) &gt; 20201231">
-			<xsl:call-template name="checkimplication">
-				<xsl:with-param name="pValue1">14,16,83,84</xsl:with-param>
-				<xsl:with-param name="pOther" select="../ijw:Frequentie" />
-				<xsl:with-param name="pValue2">2,4,6</xsl:with-param>
-				<xsl:with-param name="pRule">CD081</xsl:with-param>
-				<xsl:with-param name="pExtra" select="ancestor-or-self::jw301:ToegewezenProduct/jw301:Einddatum" />
-			</xsl:call-template>
-		</xsl:if>
-	</xsl:template>
-
-	<xsl:template match="jw315:AangevraagdProduct//jw315:Omvang/ijw:Eenheid" mode="CD081">
-		<xsl:if test="not(ancestor-or-self::jw315:AangevraagdProduct/jw315:ToewijzingEinddatum) or number(translate(ancestor-or-self::jw315:AangevraagdProduct/jw315:ToewijzingEinddatum/text(), '-', '')) &gt; 20201231">
-			<xsl:call-template name="checkimplication">
-				<xsl:with-param name="pValue1">14,16,83,84</xsl:with-param>
-				<xsl:with-param name="pOther" select="../ijw:Frequentie" />
-				<xsl:with-param name="pValue2">2,4,6</xsl:with-param>
-				<xsl:with-param name="pRule">CD081</xsl:with-param>
-				<xsl:with-param name="pExtra" select="ancestor-or-self::jw315:AangevraagdProduct/jw315:ToewijzingEinddatum" />
-			</xsl:call-template>
-		</xsl:if>
-	</xsl:template>
-	
-	<xsl:template match="jw317:TeWijzigenProduct//jw317:Omvang/ijw:Eenheid" mode="CD081">
-		<xsl:if test="not(ancestor-or-self::jw317:TeWijzigenProduct/jw317:Einddatum) or number(translate(ancestor-or-self::jw317:TeWijzigenProduct/jw317:Einddatum/text(), '-', '')) &gt; 20201231">
-			<xsl:call-template name="checkimplication">
-				<xsl:with-param name="pValue1">14,16,83,84</xsl:with-param>
-				<xsl:with-param name="pOther" select="../ijw:Frequentie" />
-				<xsl:with-param name="pValue2">2,4,6</xsl:with-param>
-				<xsl:with-param name="pRule">CD081</xsl:with-param>
-				<xsl:with-param name="pExtra" select="ancestor-or-self::jw317:TeWijzigenProduct/jw317:Einddatum" />
-			</xsl:call-template>
-		</xsl:if>
-	</xsl:template>
-	<xsl:template match="jw317:NieuwProduct//jw317:Omvang/ijw:Eenheid" mode="CD081">
-		<xsl:if test="not(ancestor-or-self::jw317:NieuwProduct/jw317:Einddatum) or number(translate(ancestor-or-self::jw317:NieuwProduct/jw317:Einddatum/text(), '-', '')) &gt; 20201231">
-			<xsl:call-template name="checkimplication">
-				<xsl:with-param name="pValue1">14,16,83,84</xsl:with-param>
-				<xsl:with-param name="pOther" select="../ijw:Frequentie" />
-				<xsl:with-param name="pValue2">2,4,6</xsl:with-param>
-				<xsl:with-param name="pRule">CD081</xsl:with-param>
-				<xsl:with-param name="pExtra" select="ancestor-or-self::jw317:NieuwProduct/jw317:Einddatum" />
-			</xsl:call-template>
-		</xsl:if>
-	</xsl:template>
-</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_0/condities/CD088.xsl b/xslt-validatie/jw/3_0/condities/CD088.xsl
deleted file mode 100644
index f6a7a60c266277ec968c0276790b0a84fed3c8c8..0000000000000000000000000000000000000000
--- a/xslt-validatie/jw/3_0/condities/CD088.xsl
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet version="1.0"
-	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-	xmlns:ijw="http://www.istandaarden.nl/ijw/3_0/basisschema/schema"
-	xmlns:jw319="http://www.istandaarden.nl/ijw/3_0/jw319/schema"
-	>
-
-	<!-- iJw 3.0 CD088 version 2.2.8 (2021-01-25) -->
-
-	<xsl:import href="../common/basis.xsl" />
-	<xsl:template match="*" mode="CD088" />
-	<xsl:template match="*" mode="check">
-		<xsl:apply-templates select="*" mode="CD088" />
-	</xsl:template>
-
-	<xsl:template match="jw319:RedenAfwijzingVerzoek" mode="CD088">
-		<xsl:call-template name="checkimplication">
-			<xsl:with-param name="pValue1">!8</xsl:with-param>
-			<xsl:with-param name="pOther" select="../jw319:Woonplaatsbeginsel" />
-			<xsl:with-param name="pValue2">!#</xsl:with-param>
-			<xsl:with-param name="pRule">CD088</xsl:with-param>
-		</xsl:call-template>
-	</xsl:template>
-</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_0/constraints/CS002.xsl b/xslt-validatie/jw/3_0/constraints/CS002.xsl
deleted file mode 100644
index 9a2b4bed97beb7e21c18f532e04cea6801bfcf53..0000000000000000000000000000000000000000
--- a/xslt-validatie/jw/3_0/constraints/CS002.xsl
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-                xmlns:ijw="http://www.istandaarden.nl/ijw/3_0/basisschema/schema"
->
-
-    <!-- iJw 3.0 CS002 version 2.2.8 (2021-01-25) -->
-
-    <xsl:import href="../common/basis.xsl"/>
-    <xsl:template match="*" mode="CS002"/>
-    <xsl:template match="*" mode="check">
-        <xsl:apply-templates select="*" mode="CS002"/>
-    </xsl:template>
-
-    <xsl:template match="*[local-name() = 'Bsn']" mode="CS002">
-        <xsl:call-template name="check11proef">
-            <xsl:with-param name="pRule">CS002</xsl:with-param>
-        </xsl:call-template>
-    </xsl:template>
-
-</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_0/constraints/CS003.xsl b/xslt-validatie/jw/3_0/constraints/CS003.xsl
deleted file mode 100644
index 73b4e25a6f89ba3148619a03cd307bf61dd35046..0000000000000000000000000000000000000000
--- a/xslt-validatie/jw/3_0/constraints/CS003.xsl
+++ /dev/null
@@ -1,59 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-                xmlns:ijw="http://www.istandaarden.nl/ijw/3_0/basisschema/schema"
-                xmlns:jw301="http://www.istandaarden.nl/ijw/3_0/jw301/schema"
-                xmlns:jw315="http://www.istandaarden.nl/ijw/3_0/jw315/schema"
-                xmlns:jw317="http://www.istandaarden.nl/ijw/3_0/jw317/schema"
-                >
-
-    <!-- iJw 3.0 CS003 version 2.2.8 (2021-01-25) -->
-
-    <xsl:import href="../common/basis.xsl"/>
-    <xsl:template match="*" mode="CS003"/>
-    <xsl:template match="*" mode="check">
-        <xsl:apply-templates select="*" mode="CS003"/>
-    </xsl:template>
-
-    <xsl:template match="jw301:Beschikking/jw301:Einddatum" mode="CS003">
-        <xsl:call-template name="checkafter">
-            <xsl:with-param name="pOther" select="../jw301:Ingangsdatum"/>
-            <xsl:with-param name="pRule">CS003</xsl:with-param>
-        </xsl:call-template>
-    </xsl:template>
-
-    <xsl:template match="jw301:ToegewezenProduct/jw301:Einddatum" mode="CS003">
-        <xsl:call-template name="checkafter">
-            <xsl:with-param name="pOther" select="../jw301:Ingangsdatum"/>
-            <xsl:with-param name="pRule">CS003</xsl:with-param>
-        </xsl:call-template>
-    </xsl:template>
-
-    <xsl:template match="jw301:Contact/jw301:Periode/ijw:Einddatum" mode="CS003">
-        <xsl:call-template name="checkafter">
-            <xsl:with-param name="pOther" select="../ijw:Begindatum"/>
-            <xsl:with-param name="pRule">CS003</xsl:with-param>
-        </xsl:call-template>
-    </xsl:template>
-    
-   <xsl:template match="jw315:AangevraagdProduct/jw315:ToewijzingEinddatum" mode="CS003">
-        <xsl:call-template name="checkafter">
-            <xsl:with-param name="pOther" select="../jw315:ToewijzingIngangsdatum"/>
-            <xsl:with-param name="pRule">CS003</xsl:with-param>
-        </xsl:call-template>
-    </xsl:template>
-    
-   <xsl:template match="jw317:TeWijzigenProduct/jw317:Einddatum" mode="CS003">
-        <xsl:call-template name="checkafter">
-            <xsl:with-param name="pOther" select="../jw317:GewensteIngangsdatum"/>
-            <xsl:with-param name="pRule">CS003</xsl:with-param>
-        </xsl:call-template>
-    </xsl:template>
-    
-   <xsl:template match="jw317:NieuwProduct/jw317:Einddatum" mode="CS003">
-        <xsl:call-template name="checkafter">
-            <xsl:with-param name="pOther" select="../jw317:GewensteIngangsdatum"/>
-            <xsl:with-param name="pRule">CS003</xsl:with-param>
-        </xsl:call-template>
-    </xsl:template>
-    
-</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_0/constraints/CS023.xsl b/xslt-validatie/jw/3_0/constraints/CS023.xsl
deleted file mode 100644
index 15167bfede84d4ddbd6f9577f536c4a3cded606b..0000000000000000000000000000000000000000
--- a/xslt-validatie/jw/3_0/constraints/CS023.xsl
+++ /dev/null
@@ -1,116 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-                xmlns:ijw="http://www.istandaarden.nl/ijw/3_0/basisschema/schema"
-                xmlns:jw301="http://www.istandaarden.nl/ijw/3_0/jw301/schema"
-                xmlns:jw303="http://www.istandaarden.nl/ijw/3_0/jw303/schema"
-                xmlns:jw304="http://www.istandaarden.nl/ijw/3_0/jw304/schema"
-                xmlns:jw305="http://www.istandaarden.nl/ijw/3_0/jw305/schema"
-                xmlns:jw307="http://www.istandaarden.nl/ijw/3_0/jw307/schema"
-                xmlns:jw315="http://www.istandaarden.nl/ijw/3_0/jw315/schema"
-                xmlns:jw323="http://www.istandaarden.nl/ijw/3_0/jw323/schema"
-                xmlns:jw325="http://www.istandaarden.nl/ijw/3_0/jw325/schema"
-                >
-
-    <!-- iJw 3.0 CS023 version 2.2.8 (2021-01-25) -->
-
-    <xsl:import href="../common/basis.xsl"/>
-    <xsl:template match="*" mode="CS023"/>
-    <xsl:template match="*" mode="check">
-        <xsl:apply-templates select="*" mode="CS023"/>
-    </xsl:template>
-
-    <xsl:template match="jw301:Beschikking/jw301:Afgiftedatum" mode="CS023">
-        <xsl:call-template name="cs023"/>
-    </xsl:template>
-
-    <xsl:template match="jw301:Client/jw301:Geboortedatum/ijw:Datum" mode="CS023">
-        <xsl:call-template name="cs023"/>
-    </xsl:template>
-
-    <xsl:template match="jw301:Relatie/jw301:Geboortedatum/ijw:Datum" mode="CS023">
-        <xsl:call-template name="cs023"/>
-    </xsl:template>
-
-    <xsl:template match="jw301:ToegewezenProduct/jw301:Toewijzingsdatum" mode="CS023">
-        <xsl:call-template name="cs023"/>
-    </xsl:template>
-
-    <xsl:template match="ijw:DeclaratiePeriode/ijw:Begindatum" mode="CS023">
-        <xsl:call-template name="cs023declaratie"/>
-    </xsl:template>
-
-    <!---->
-
-    <xsl:template match="jw303:Client/jw303:Geboortedatum/ijw:Datum" mode="CS023">
-        <xsl:call-template name="cs023declaratie"/>
-    </xsl:template>
-
-    <xsl:template match="jw303:Prestatie/jw303:ProductPeriode/ijw:Begindatum" mode="CS023">
-        <xsl:call-template name="cs023declaratie"/>
-    </xsl:template>
-
-    <!---->
-
-    <xsl:template match="jw304:Client/jw304:Geboortedatum/ijw:Datum" mode="CS023">
-        <xsl:call-template name="cs023declaratie"/>
-    </xsl:template>
-    
-    <xsl:template match="jw304:Prestatie/jw304:ProductPeriode/ijw:Begindatum" mode="CS023">
-        <xsl:call-template name="cs023declaratie"/>
-    </xsl:template>
-
-    <!---->
-
-    <xsl:template match="jw305:Client/jw305:Geboortedatum/ijw:Datum" mode="CS023">
-        <xsl:call-template name="cs023"/>
-    </xsl:template>
-
-    <xsl:template match="jw305:StartProduct/jw305:Begindatum" mode="CS023">
-        <xsl:call-template name="cs023"/>
-    </xsl:template>
-
-    <xsl:template match="jw307:Client/jw307:Geboortedatum/ijw:Datum" mode="CS023">
-        <xsl:call-template name="cs023"/>
-    </xsl:template>
-
-    <xsl:template match="jw307:StopProduct/jw307:Einddatum" mode="CS023">
-        <xsl:call-template name="cs023"/>
-    </xsl:template>
-
-    <xsl:template match="jw315:Client/jw315:Geboortedatum/ijw:Datum" mode="CS023">
-        <xsl:call-template name="cs023"/>
-    </xsl:template>
-
-    <xsl:template match="jw323:DeclaratiePeriode/ijw:Begindatum" mode="CS023">
-        <xsl:call-template name="cs023"/>
-    </xsl:template>
-
-    <xsl:template match="jw323:ProductPeriode/ijw:Begindatum" mode="CS023">
-        <xsl:call-template name="cs023"/>
-    </xsl:template>
-
-    <xsl:template match="jw325:ProductPeriode/ijw:Begindatum" mode="CS023">
-        <xsl:call-template name="cs023"/>
-    </xsl:template>
-
-    <xsl:template name="cs023">
-        <xsl:param name="pThis" select="."/>
-        <xsl:call-template name="checkafter">
-            <xsl:with-param name="pThis"
-                            select="ancestor-or-self::*[local-name() = 'Bericht']/*[local-name() = 'Header']/*[local-name() = 'BerichtIdentificatie']/*[local-name() = 'Dagtekening']"/>
-            <xsl:with-param name="pOther" select="$pThis"/>
-            <xsl:with-param name="pRule">CS023</xsl:with-param>
-        </xsl:call-template>
-    </xsl:template>
-
-    <xsl:template name="cs023declaratie">
-        <xsl:param name="pThis" select="."/>
-        <xsl:call-template name="checkafter">
-            <xsl:with-param name="pThis"
-                            select="ancestor-or-self::*[local-name() = 'Bericht']/*[local-name() = 'Header']/*[local-name() = 'DeclaratieFactuurIdentificatie']/*[local-name() = 'FactuurDagtekening']"/>
-            <xsl:with-param name="pOther" select="$pThis"/>
-            <xsl:with-param name="pRule">CS023</xsl:with-param>
-        </xsl:call-template>
-    </xsl:template>
-
-</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_0/constraints/CS050.xsl b/xslt-validatie/jw/3_0/constraints/CS050.xsl
deleted file mode 100644
index 1b849bfdaca697cbd1a5484e332d332b53470af1..0000000000000000000000000000000000000000
--- a/xslt-validatie/jw/3_0/constraints/CS050.xsl
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-	xmlns:ijw="http://www.istandaarden.nl/ijw/3_0/basisschema/schema"
-	xmlns:jw301="http://www.istandaarden.nl/ijw/3_0/jw301/schema"
-	xmlns:jw303="http://www.istandaarden.nl/ijw/3_0/jw303/schema"
-	xmlns:jw304="http://www.istandaarden.nl/ijw/3_0/jw304/schema"
-	xmlns:jw305="http://www.istandaarden.nl/ijw/3_0/jw305/schema"
-	xmlns:jw307="http://www.istandaarden.nl/ijw/3_0/jw307/schema"
-	xmlns:jw315="http://www.istandaarden.nl/ijw/3_0/jw315/schema"
-	>
-	<!-- iJw 3.0 CS050 version 2.2.8 (2021-01-25) -->
-
-	<xsl:import href="../common/basis.xsl"/>
-	<xsl:template match="*" mode="CS050"/>
-	<xsl:template match="*" mode="check">
-		<xsl:apply-templates select="*" mode="CS050"/>
-	</xsl:template>
-
-	<xsl:template match="ijw:NaamGebruik" mode="CS050">
-		<xsl:if test="not (ancestor-or-self::jw304:Bericht)">
-			<xsl:call-template name="checkimplication">
-				<xsl:with-param name="pThis" select="../ijw:Partnernaam"/>
-				<xsl:with-param name="pValue1">#</xsl:with-param>
-				<xsl:with-param name="pOther" select="."/>
-				<xsl:with-param name="pValue2">1,2,3,4</xsl:with-param>
-				<xsl:with-param name="pRule">CS050</xsl:with-param>
-			</xsl:call-template>
-			<xsl:call-template name="checkimplication">
-				<xsl:with-param name="pThis" select="../ijw:Partnernaam"/>
-				<xsl:with-param name="pValue1">!#</xsl:with-param>
-				<xsl:with-param name="pOther" select="."/>
-				<xsl:with-param name="pValue2">1,6</xsl:with-param>
-				<xsl:with-param name="pRule">CS050</xsl:with-param>
-			</xsl:call-template>
-		</xsl:if>
-	</xsl:template>
-
-</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_0/constraints/CS058.xsl b/xslt-validatie/jw/3_0/constraints/CS058.xsl
deleted file mode 100644
index 731719a975c58b60be6061250b822a448c41cb7d..0000000000000000000000000000000000000000
--- a/xslt-validatie/jw/3_0/constraints/CS058.xsl
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-                xmlns:ijw="http://www.istandaarden.nl/ijw/3_0/basisschema/schema"
-                xmlns:jw305="http://www.istandaarden.nl/ijw/3_0/jw305/schema"
-                xmlns:jw307="http://www.istandaarden.nl/ijw/3_0/jw307/schema"
-                >
-
-    <!-- iJw 3.0 CS058 version 2.2.8 (2021-01-25) -->
-
-    <xsl:import href="../common/basis.xsl"/>
-    <xsl:template match="*" mode="CS058"/>
-    <xsl:template match="*" mode="check">
-        <xsl:apply-templates select="*" mode="CS058"/>
-    </xsl:template>
-
-    <xsl:template match="jw305:StartProduct/jw305:StatusAanlevering" mode="CS058">
-        <xsl:call-template name="checkvalue">
-            <xsl:with-param name="pValues">1,3</xsl:with-param>
-            <xsl:with-param name="pRule">CS058</xsl:with-param>
-        </xsl:call-template>
-    </xsl:template>
-    
-    <xsl:template match="jw307:StopProduct/jw307:StatusAanlevering" mode="CS058">
-        <xsl:call-template name="checkvalue">
-            <xsl:with-param name="pValues">1,3</xsl:with-param>
-            <xsl:with-param name="pRule">CS058</xsl:with-param>
-        </xsl:call-template>
-    </xsl:template>
-</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_0/constraints/CS089.xsl b/xslt-validatie/jw/3_0/constraints/CS089.xsl
deleted file mode 100644
index 8ccc0c68012f5941ba255b696559e1b3961fc038..0000000000000000000000000000000000000000
--- a/xslt-validatie/jw/3_0/constraints/CS089.xsl
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-	xmlns:ijw="http://www.istandaarden.nl/ijw/3_0/basisschema/schema"
-	xmlns:jw301="http://www.istandaarden.nl/ijw/3_0/jw301/schema"
-	xmlns:jw303="http://www.istandaarden.nl/ijw/3_0/jw303/schema"
-	xmlns:jw304="http://www.istandaarden.nl/ijw/3_0/jw304/schema"
-	xmlns:jw305="http://www.istandaarden.nl/ijw/3_0/jw305/schema"
-	xmlns:jw307="http://www.istandaarden.nl/ijw/3_0/jw307/schema"
-	xmlns:jw315="http://www.istandaarden.nl/ijw/3_0/jw315/schema"
-	>
-
-	<!-- iJw 3.0 CS089 version 2.2.8 (2021-01-25) -->
-
-	<xsl:import href="../common/basis.xsl"/>
-	<xsl:template match="*" mode="CS089"/>
-	<xsl:template match="*" mode="check">
-		<xsl:apply-templates select="*" mode="CS089"/>
-	</xsl:template>
-
-	<xsl:template match="ijw:LandCode" mode="CS089">
-		<xsl:if test="not (ancestor-or-self::jw304:Bericht)">
-			<xsl:call-template name="checkimplication">
-				<xsl:with-param name="pValue1">NL</xsl:with-param>
-				<xsl:with-param name="pOther" select="../ijw:Postcode"/>
-				<xsl:with-param name="pValue2">#1000ZZ</xsl:with-param>
-				<xsl:with-param name="pRule">CS089</xsl:with-param>
-			</xsl:call-template>
-		</xsl:if>
-	</xsl:template>
-
-</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_0/constraints/CS102.xsl b/xslt-validatie/jw/3_0/constraints/CS102.xsl
deleted file mode 100644
index 7e9083d04063da0737d33b58b25b533076c9f97e..0000000000000000000000000000000000000000
--- a/xslt-validatie/jw/3_0/constraints/CS102.xsl
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-                xmlns:jw317="http://www.istandaarden.nl/ijw/3_0/jw317/schema"
-                >
-
-    <!-- iJw 3.0 CS102 version 2.2.8 (2021-01-25) -->
-
-    <xsl:import href="../common/basis.xsl"/>
-    <xsl:template match="*" mode="CS102"/>
-    <xsl:template match="*" mode="check">
-        <xsl:apply-templates select="*" mode="CS102"/>
-    </xsl:template>
-
-    <xsl:template match="jw317:NieuwProduct/jw317:GewensteIngangsdatum" mode="CS102">
-        <xsl:call-template name="checkafterstrict">
-            <xsl:with-param name="pOther"
-                            select="ancestor-or-self::*[local-name() = 'Bericht']/*[local-name() = 'Header']/*[local-name() = 'BerichtIdentificatie']/*[local-name() = 'Dagtekening']"/>
-            <xsl:with-param name="pRule">CS102</xsl:with-param>
-        </xsl:call-template>
-    </xsl:template>
-
-</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_0/constraints/CS103.xsl b/xslt-validatie/jw/3_0/constraints/CS103.xsl
deleted file mode 100644
index 2c18c561574129e46fa676477ba1fe6983d84740..0000000000000000000000000000000000000000
--- a/xslt-validatie/jw/3_0/constraints/CS103.xsl
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-	xmlns:ijw="http://www.istandaarden.nl/ijw/3_0/basisschema/schema"
-	xmlns:jw303="http://www.istandaarden.nl/ijw/3_0/jw303/schema"
-	xmlns:jw304="http://www.istandaarden.nl/ijw/3_0/jw304/schema"
-	>
-
-	<!-- iJw 3.0 CS103 version 2.2.8 (2021-01-25) -->
-
-	<xsl:import href="../common/basis.xsl"/>
-	<xsl:template match="*" mode="CS103"/>
-	<xsl:template match="*" mode="check">
-		<xsl:apply-templates select="*" mode="CS103"/>
-	</xsl:template>
-
-	<xsl:template match="jw303:DeclaratieFactuurIdentificatie/ijw:DeclaratiePeriode" mode="CS103">
-		<xsl:if test="translate(ijw:Einddatum/text(), '-', '') &gt;= 20210101">
-			<xsl:call-template name="addError">
-				<xsl:with-param name="pRule">CS103</xsl:with-param>
-			</xsl:call-template>
-		</xsl:if>
-	</xsl:template>
-	<xsl:template match="jw303:ProductPeriode" mode="CS103">
-		<xsl:if test="translate(ijw:Einddatum/text(), '-', '') &gt;= 20210101">
-			<xsl:call-template name="addError">
-				<xsl:with-param name="pRule">CS103</xsl:with-param>
-			</xsl:call-template>
-		</xsl:if>
-	</xsl:template>
-	<xsl:template match="jw304:ProductPeriode" mode="CS103">
-		<xsl:if test="translate(ijw:Einddatum/text(), '-', '') &gt;= 20210101">
-			<xsl:call-template name="addError">
-				<xsl:with-param name="pRule">CS103</xsl:with-param>
-			</xsl:call-template>
-		</xsl:if>
-	</xsl:template>
-
-</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_0/constraints/CS104.xsl b/xslt-validatie/jw/3_0/constraints/CS104.xsl
deleted file mode 100644
index a8c2efe28b38533e33eda7e4702eb9548c465342..0000000000000000000000000000000000000000
--- a/xslt-validatie/jw/3_0/constraints/CS104.xsl
+++ /dev/null
@@ -1,56 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet version="1.0"
-	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-	xmlns:ijw="http://www.istandaarden.nl/ijw/3_0/basisschema/schema"
-	xmlns:jw301="http://www.istandaarden.nl/ijw/3_0/jw301/schema"
-	xmlns:jw315="http://www.istandaarden.nl/ijw/3_0/jw315/schema"
-	xmlns:jw317="http://www.istandaarden.nl/ijw/3_0/jw317/schema"
-	>
-
-	<!-- iJw 3.0 CS104 version 2.2.8 (2021-01-25) -->
-
-	<xsl:import href="../common/basis.xsl" />
-	<xsl:template match="*" mode="CS104" />
-	<xsl:template match="*" mode="check">
-		<xsl:apply-templates select="*" mode="CS104" />
-	</xsl:template>
-
-	<xsl:template match="jw301:ToegewezenProduct//jw301:Omvang/ijw:Frequentie" mode="CS104">
-		<xsl:if test="not(ancestor-or-self::jw301:ToegewezenProduct/jw301:Einddatum) or number(translate(ancestor-or-self::jw301:ToegewezenProduct/jw301:Einddatum/text(), '-', '')) &gt; 20201231">
-			<xsl:call-template name="checkvalue">
-				<xsl:with-param name="pValues">!3,5</xsl:with-param>
-				<xsl:with-param name="pExtra" select="ancestor-or-self::jw301:ToegewezenProduct/jw301:Einddatum" />
-				<xsl:with-param name="pRule">CS104</xsl:with-param>
-			</xsl:call-template>
-		</xsl:if>
-	</xsl:template>
-
-	<xsl:template match="jw315:AangevraagdProduct//jw315:Omvang/ijw:Frequentie" mode="CS104">
-		<xsl:if test="not(ancestor-or-self::jw315:AangevraagdProduct/jw315:ToewijzingEinddatum) or number(translate(ancestor-or-self::jw315:AangevraagdProduct/jw315:ToewijzingEinddatum/text(), '-', '')) &gt; 20201231">
-			<xsl:call-template name="checkvalue">
-				<xsl:with-param name="pValues">!3,5</xsl:with-param>
-				<xsl:with-param name="pExtra" select="ancestor-or-self::jw315:AangevraagdProduct/jw315:ToewijzingEinddatum" />
-				<xsl:with-param name="pRule">CS104</xsl:with-param>
-			</xsl:call-template>
-		</xsl:if>
-	</xsl:template>
-	
-	<xsl:template match="jw317:TeWijzigenProduct//jw317:Omvang/ijw:Frequentie" mode="CS104">
-		<xsl:if test="not(ancestor-or-self::jw317:TeWijzigenProduct/jw317:Einddatum) or number(translate(ancestor-or-self::jw317:TeWijzigenProduct/jw317:Einddatum/text(), '-', '')) &gt; 20201231">
-			<xsl:call-template name="checkvalue">
-				<xsl:with-param name="pValues">!3,5</xsl:with-param>
-				<xsl:with-param name="pExtra" select="ancestor-or-self::jw317:TeWijzigenProduct/jw317:Einddatum" />
-				<xsl:with-param name="pRule">CS104</xsl:with-param>
-			</xsl:call-template>
-		</xsl:if>
-	</xsl:template>
-	<xsl:template match="jw317:NieuwProduct//jw317:Omvang/ijw:Frequentie" mode="CS104">
-		<xsl:if test="not(ancestor-or-self::jw317:NieuwProduct/jw317:Einddatum) or number(translate(ancestor-or-self::jw317:NieuwProduct/jw317:Einddatum/text(), '-', '')) &gt; 20201231">
-			<xsl:call-template name="checkvalue">
-				<xsl:with-param name="pValues">!3,5</xsl:with-param>
-				<xsl:with-param name="pExtra" select="ancestor-or-self::jw317:NieuwProduct/jw317:Einddatum" />
-				<xsl:with-param name="pRule">CS104</xsl:with-param>
-			</xsl:call-template>
-		</xsl:if>
-	</xsl:template>
-</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_0/constraints/CS108.xsl b/xslt-validatie/jw/3_0/constraints/CS108.xsl
deleted file mode 100644
index 4460ec6536574422877c927aec619f7c28780ff3..0000000000000000000000000000000000000000
--- a/xslt-validatie/jw/3_0/constraints/CS108.xsl
+++ /dev/null
@@ -1,60 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-	xmlns:ijw="http://www.istandaarden.nl/ijw/3_0/basisschema/schema"
-	xmlns:jw303="http://www.istandaarden.nl/ijw/3_0/jw303/schema"
-	xmlns:jw304="http://www.istandaarden.nl/ijw/3_0/jw304/schema"
-	xmlns:jw323="http://www.istandaarden.nl/ijw/3_0/jw323/schema"
-	xmlns:jw325="http://www.istandaarden.nl/ijw/3_0/jw325/schema"
-	>
-
-	<!-- iJw 3.0 CS108 version 2.2.8 (2021-01-25) -->
-
-	<xsl:import href="../common/basis.xsl"/>
-	<xsl:template match="*" mode="CS108"/>
-	<xsl:template match="*" mode="check">
-		<xsl:apply-templates select="*" mode="CS108"/>
-	</xsl:template>
-
-	<xsl:template match="jw303:DeclaratieFactuurIdentificatie/ijw:DeclaratiePeriode" mode="CS108">
-		<xsl:call-template name="cs108"/>
-	</xsl:template>
-
-	<xsl:template match="jw303:ProductPeriode" mode="CS108">
-		<xsl:call-template name="cs108"/>
-	</xsl:template>
-
-	<xsl:template match="jw304:DeclaratieFactuurIdentificatie/ijw:DeclaratiePeriode" mode="CS108">
-		<xsl:call-template name="cs108"/>
-	</xsl:template>
-
-	<xsl:template match="jw304:ProductPeriode" mode="CS108">
-		<xsl:call-template name="cs108"/>
-	</xsl:template>
-	
-	<xsl:template match="jw323:DeclaratiePeriode" mode="CS108">
-		<xsl:call-template name="cs108"/>
-	</xsl:template>
-
-	<xsl:template match="jw323:ProductPeriode" mode="CS108">
-		<xsl:call-template name="cs108"/>
-	</xsl:template>
-
-	<xsl:template match="jw325:ProductPeriode" mode="CS108">
-		<xsl:call-template name="cs108"/>
-	</xsl:template>
-
-	<xsl:template name="cs108">
-		<xsl:call-template name="checkafter">
-			<xsl:with-param name="pThis" select="ijw:Einddatum" />
-			<xsl:with-param name="pOther" select="ijw:Begindatum"/>
-			<xsl:with-param name="pRule">CS108</xsl:with-param>
-		</xsl:call-template>
-		<xsl:call-template name="checkafter">
-			<xsl:with-param name="pThis"
-				select="ancestor-or-self::*[local-name() = 'Bericht']/*[local-name() = 'Header']/*[local-name() = 'DeclaratieFactuurIdentificatie']/*[local-name() = 'FactuurDagtekening'] |
-				ancestor-or-self::*[local-name() = 'Bericht']/*[local-name() = 'Header']/*[local-name() = 'BerichtIdentificatie']/*[local-name() = 'Dagtekening']"/>
-			<xsl:with-param name="pOther" select="ijw:Einddatum"/>
-			<xsl:with-param name="pRule">CS108</xsl:with-param>
-		</xsl:call-template>
-	</xsl:template>
-</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_0/constraints/CS323.xsl b/xslt-validatie/jw/3_0/constraints/CS323.xsl
deleted file mode 100644
index 94f32cc5afd9bf0e60e8c4aaf605eeaefeab11e3..0000000000000000000000000000000000000000
--- a/xslt-validatie/jw/3_0/constraints/CS323.xsl
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-				xmlns:ijw="http://www.istandaarden.nl/ijw/3_0/basisschema/schema">
-
-	<!-- ijw 2.4 CS323 version 2.2.8 (2021-01-25) -->
-
-	<xsl:import href="../common/basis.xsl"/>
-	<xsl:template match="*" mode="CS323"/>
-	<xsl:template match="*" mode="check">
-		<xsl:apply-templates select="*" mode="CS323"/>
-	</xsl:template>
-
-	<xsl:template match="ijw:DeclaratieFactuurBedrag/ijw:Bedrag" mode="CS323">
-		<xsl:call-template name="checkRelation">
-			<xsl:with-param name="pOther" select="../../ijw:BerekendBedrag/ijw:Bedrag"/>
-			<xsl:with-param name="pRelation">equalsLt</xsl:with-param>
-			<xsl:with-param name="pRule" >
-				CS323
-			</xsl:with-param>
-		</xsl:call-template>
-	</xsl:template>
-
-</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_0/constraints/CS324.xsl b/xslt-validatie/jw/3_0/constraints/CS324.xsl
deleted file mode 100644
index a1168d7f68c67c9a0223867d5529df0cbe897a3b..0000000000000000000000000000000000000000
--- a/xslt-validatie/jw/3_0/constraints/CS324.xsl
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-	xmlns:ijw="http://www.istandaarden.nl/ijw/3_0/basisschema/schema"
-	xmlns:jw304="http://www.istandaarden.nl/ijw/3_0/jw304/schema"
-	>
-
-	<!-- iJw 3.0 CS324 version 2.2.8 (2021-01-25) -->
-
-	<xsl:import href="../common/basis.xsl"/>
-	<xsl:template match="*" mode="CS324"/>
-	<xsl:template match="*" mode="check">
-		<xsl:apply-templates select="*" mode="CS324"/>
-	</xsl:template>
-
-	<xsl:template match="jw304:DeclaratieFactuurIdentificatie/ijw:FactuurDagtekening" mode="CS324">
-		<xsl:call-template name="checkafter">
-			<xsl:with-param name="pThis" select="../../jw304:RetourHeader/ijw:RetourDagtekening"/>
-			<xsl:with-param name="pRule">CS324</xsl:with-param>
-		</xsl:call-template>
-	</xsl:template>
-
-</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_0/constraints/CS327.xsl b/xslt-validatie/jw/3_0/constraints/CS327.xsl
deleted file mode 100644
index 62e7cf8370fcf199f0f0a0517b8c6c8875ab743a..0000000000000000000000000000000000000000
--- a/xslt-validatie/jw/3_0/constraints/CS327.xsl
+++ /dev/null
@@ -1,41 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-	xmlns:ijw="http://www.istandaarden.nl/ijw/3_0/basisschema/schema"
-	xmlns:jw303="http://www.istandaarden.nl/ijw/3_0/jw303/schema"
-	xmlns:jw304="http://www.istandaarden.nl/ijw/3_0/jw304/schema"
-	>
-
-	<!-- iJw 3.0 CS327 version 2.2.8 (2021-01-25) -->
-
-	<xsl:import href="../common/basis.xsl"/>
-	<xsl:template match="*" mode="CS327"/>
-	<xsl:template match="*" mode="check">
-		<xsl:apply-templates select="*" mode="CS327"/>
-	</xsl:template>
-
-	<xsl:template match="jw303:IngediendeBedragPrestatie/ijw:BerekendBedrag" mode="CS327">
-		<xsl:call-template name="cs327" />
-	</xsl:template>
-
-	<xsl:template match="jw303:IngediendeBedragPrestatie/ijw:BtwBedrag" mode="CS327">
-		<xsl:call-template name="cs327" />
-	</xsl:template>
-
-	<xsl:template match="jw304:IngediendeBedragPrestatie/ijw:BerekendBedrag" mode="CS327">
-		<xsl:call-template name="cs327" />
-	</xsl:template>
-
-	<xsl:template match="jw304:IngediendeBedragPrestatie/ijw:BtwBedrag" mode="CS327">
-		<xsl:call-template name="cs327" />
-	</xsl:template>
-
-	<xsl:template name="cs327">
-		<xsl:if test="not(normalize-space(ijw:DebetCredit/text()) = normalize-space(../ijw:DeclaratieFactuurBedrag/ijw:DebetCredit/text()))">
-			<xsl:call-template name="addError">
-				<xsl:with-param name="pRule">CS327</xsl:with-param>
-				<xsl:with-param name="pElements" select="ijw:DebetCredit | ../ijw:DeclaratieFactuurBedrag/ijw:DebetCredit" />
-			</xsl:call-template>
-		</xsl:if>
-	</xsl:template>
-
-</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_0/constraints/CS328.xsl b/xslt-validatie/jw/3_0/constraints/CS328.xsl
deleted file mode 100644
index b57731992daf060d8dbb6721fcd8f9d2fadb20cf..0000000000000000000000000000000000000000
--- a/xslt-validatie/jw/3_0/constraints/CS328.xsl
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-	xmlns:ijw="http://www.istandaarden.nl/ijw/3_0/basisschema/schema"
-	xmlns:jw303="http://www.istandaarden.nl/ijw/3_0/jw303/schema"
-	xmlns:jw304="http://www.istandaarden.nl/ijw/3_0/jw304/schema"
-	>
-
-	<!-- iJw 3.0 CS328 version 2.2.8 (2021-01-25) -->
-
-	<xsl:import href="../common/basis.xsl"/>
-	<xsl:template match="*" mode="CS328"/>
-	<xsl:template match="*" mode="check">
-		<xsl:apply-templates select="*" mode="CS328"/>
-	</xsl:template>
-
-	<xsl:template match="jw303:ProductPeriode/ijw:Begindatum" mode="CS328">
-		<xsl:if test="translate(text(), '-', '') &lt; 20150101">
-			<xsl:call-template name="addError">
-				<xsl:with-param name="pRule">CS328</xsl:with-param>
-			</xsl:call-template>
-		</xsl:if>
-	</xsl:template>
-
-	<xsl:template match="jw304:ProductPeriode/ijw:Begindatum" mode="CS328">
-		<xsl:if test="translate(text(), '-', '') &lt; 20150101">
-			<xsl:call-template name="addError">
-				<xsl:with-param name="pRule">CS328</xsl:with-param>
-			</xsl:call-template>
-		</xsl:if>
-	</xsl:template>
-
-</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_0/constraints/CS330.xsl b/xslt-validatie/jw/3_0/constraints/CS330.xsl
deleted file mode 100644
index e90ba5d95722419a1887523af3af820537668683..0000000000000000000000000000000000000000
--- a/xslt-validatie/jw/3_0/constraints/CS330.xsl
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-                xmlns:ijw="http://www.istandaarden.nl/ijw/3_0/basisschema/schema"
-		    xmlns:jw301="http://www.istandaarden.nl/ijw/3_0/jw301/schema"
-		    xmlns:jw315="http://www.istandaarden.nl/ijw/3_0/jw315/schema"
-		    xmlns:jw317="http://www.istandaarden.nl/ijw/3_0/jw317/schema"
-		    xmlns:jw323="http://www.istandaarden.nl/ijw/3_0/jw323/schema"
-		    >
-
-    <!-- iJw 3.0 CS330 version 2.2.8 (2021-01-25) -->
-
-    <xsl:import href="../common/basis.xsl"/>
-    <xsl:template match="*" mode="CS330"/>
-    <xsl:template match="*" mode="check">
-        <xsl:apply-templates select="*" mode="CS330"/>
-    </xsl:template>
-
-    <xsl:template match="jw301:Omvang/ijw:Eenheid" mode="CS330">
-        <xsl:call-template name="checknvalue">
-            <xsl:with-param name="pValues">21,81</xsl:with-param>
-            <xsl:with-param name="pRule">CS330</xsl:with-param>
-        </xsl:call-template>
-    </xsl:template>
-
-    <xsl:template match="jw315:Omvang/ijw:Eenheid" mode="CS330">
-        <xsl:call-template name="checknvalue">
-            <xsl:with-param name="pValues">21,81</xsl:with-param>
-            <xsl:with-param name="pRule">CS330</xsl:with-param>
-        </xsl:call-template>
-    </xsl:template>
-
-    <xsl:template match="jw317:TeWijzigenProduct/jw317:Omvang/ijw:Eenheid | jw317:NieuwProduct/jw317:Omvang/ijw:Eenheid" mode="CS330">
-        <xsl:call-template name="checknvalue">
-            <xsl:with-param name="pValues">21,81</xsl:with-param>
-            <xsl:with-param name="pRule">CS330</xsl:with-param>
-        </xsl:call-template>
-    </xsl:template>
-
-    <xsl:template match="jw323:Prestatie/jw323:Eenheid" mode="CS330">
-        <xsl:call-template name="checknvalue">
-            <xsl:with-param name="pValues">21,81</xsl:with-param>
-            <xsl:with-param name="pRule">CS330</xsl:with-param>
-        </xsl:call-template>
-    </xsl:template>
-
-</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_0/constraints/CS331.xsl b/xslt-validatie/jw/3_0/constraints/CS331.xsl
deleted file mode 100644
index 3af2c7d8cc8a20f3efd00976296034dcbfaf1ab1..0000000000000000000000000000000000000000
--- a/xslt-validatie/jw/3_0/constraints/CS331.xsl
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-	xmlns:ijw="http://www.istandaarden.nl/ijw/3_0/basisschema/schema"
-	xmlns:jw303="http://www.istandaarden.nl/ijw/3_0/jw303/schema"
-	xmlns:jw304="http://www.istandaarden.nl/ijw/3_0/jw304/schema"
-	>
-
-	<!-- iJw 3.0 CS331 version 2.2.8 (2021-01-25) -->
-
-	<xsl:import href="../common/basis.xsl"/>
-	<xsl:template match="*" mode="CS331"/>
-	<xsl:template match="*" mode="check">
-		<xsl:apply-templates select="*" mode="CS331"/>
-	</xsl:template>
-
-	<xsl:template match="jw303:IngediendeBedragPrestatie/ijw:Eenheid" mode="CS331">
-		<xsl:if test="translate(../../jw303:ProductPeriode/ijw:Begindatum/text(), '-', '') &gt;= 20190401">
-			<xsl:call-template name="checknvalue">
-				<xsl:with-param name="pValues">21,81</xsl:with-param>
-				<xsl:with-param name="pRule">CS331</xsl:with-param>
-			</xsl:call-template>
-		</xsl:if>
-	</xsl:template>
-
-	<xsl:template match="jw304:IngediendeBedragPrestatie/ijw:Eenheid" mode="CS331">
-		<xsl:if test="translate(../../jw304:ProductPeriode/ijw:Begindatum/text(), '-', '') &gt;= 20190401">
-			<xsl:call-template name="checknvalue">
-				<xsl:with-param name="pValues">21,81</xsl:with-param>
-				<xsl:with-param name="pRule">CS331</xsl:with-param>
-			</xsl:call-template>
-		</xsl:if>
-	</xsl:template>
-
-</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_0/rules/TR006.xsl b/xslt-validatie/jw/3_0/rules/TR006.xsl
deleted file mode 100644
index ae85acd1c99f69a4b1c894d63a5f237923cbbfc3..0000000000000000000000000000000000000000
--- a/xslt-validatie/jw/3_0/rules/TR006.xsl
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-                xmlns:ijw="http://www.istandaarden.nl/ijw/3_0/basisschema/schema"
-                xmlns:jw301="http://www.istandaarden.nl/ijw/3_0/jw301/schema"
->
-
-    <!-- iJw 3.0 TR006 version 2.2.8 (2021-01-25) -->
-
-    <xsl:import href="../common/basis.xsl"/>
-    <xsl:template match="*" mode="TR006"/>
-    <xsl:template match="*" mode="check">
-        <xsl:apply-templates select="*" mode="TR006"/>
-    </xsl:template>
-    
-    <xsl:template match="jw301:Contact" mode="TR006">
-        <xsl:call-template name="checkSingleCorrect">
-            <xsl:with-param name="pThis" select="jw301:Telefoon"/>
-            <xsl:with-param name="pValue1">#</xsl:with-param>
-            <xsl:with-param name="pOther" select="jw301:Adres/ijw:Huis"/>
-            <xsl:with-param name="pValue2">#</xsl:with-param>
-            <xsl:with-param name="pExtra" select="."/>
-            <xsl:with-param name="pRule">TR006</xsl:with-param>
-        </xsl:call-template>
-        <xsl:call-template name="checkSingleCorrect">
-            <xsl:with-param name="pThis" select="jw301:Telefoon"/>
-            <xsl:with-param name="pValue1">#</xsl:with-param>
-            <xsl:with-param name="pOther" select="jw301:Adres/ijw:Postcode"/>
-            <xsl:with-param name="pValue2">#</xsl:with-param>
-            <xsl:with-param name="pExtra" select="."/>
-            <xsl:with-param name="pRule">TR006</xsl:with-param>
-        </xsl:call-template>
-    </xsl:template>
-
-</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_0/rules/TR018.xsl b/xslt-validatie/jw/3_0/rules/TR018.xsl
deleted file mode 100644
index 9123a3aafa94de3293a996bc9b7babf653380cc1..0000000000000000000000000000000000000000
--- a/xslt-validatie/jw/3_0/rules/TR018.xsl
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-                xmlns:jw307="http://www.istandaarden.nl/ijw/3_0/jw307/schema"
->
-
-    <!-- iJw 3.0 TR018 version 2.2.8 (2021-01-25) -->
-
-    <xsl:import href="../common/basis.xsl"/>
-    <xsl:template match="*" mode="TR018"/>
-    <xsl:template match="*" mode="check">
-        <xsl:apply-templates select="*" mode="TR018"/>
-    </xsl:template>
-
-    <xsl:template match="jw307:StopProduct/jw307:Einddatum" mode="TR018">
-        <xsl:call-template name="checkafter">
-            <xsl:with-param name="pOther" select="../jw307:Begindatum"/>
-            <xsl:with-param name="pRule">TR018</xsl:with-param>
-        </xsl:call-template>
-    </xsl:template>
-</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_0/rules/TR061.xsl b/xslt-validatie/jw/3_0/rules/TR061.xsl
deleted file mode 100644
index 0a20a4473dc69d8b0c36dea58cd1d53241cc563c..0000000000000000000000000000000000000000
--- a/xslt-validatie/jw/3_0/rules/TR061.xsl
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-                xmlns:ijw="http://www.istandaarden.nl/ijw/3_0/basisschema/schema"
-                xmlns:jw301="http://www.istandaarden.nl/ijw/3_0/jw301/schema"
->
-
-    <!-- iJw 3.0 TR052 version 2.2.8 (2021-01-25) -->
-
-    <xsl:import href="../common/basis.xsl"/>
-    <xsl:template match="*" mode="TR061"/>
-    <xsl:template match="*" mode="check">
-        <xsl:apply-templates select="*" mode="TR061"/>
-    </xsl:template>
-
-    <xsl:template match="jw301:Client/jw301:Contactgegevens" mode="TR061">
-        <xsl:if test="not(./jw301:Contact/jw301:Soort[text() = '01' or text() = '02' or text() = '03'])">
-            <xsl:call-template name="addError">
-                <xsl:with-param name="pElements" select="jw301:Contact"/>
-                <xsl:with-param name="pRule">
-                    TR061
-                </xsl:with-param>
-            </xsl:call-template>
-        </xsl:if>
-    </xsl:template>
-
-</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_0/rules/TR101.xsl b/xslt-validatie/jw/3_0/rules/TR101.xsl
deleted file mode 100644
index d1ac802ec02547e528592d41f0457f5246621e78..0000000000000000000000000000000000000000
--- a/xslt-validatie/jw/3_0/rules/TR101.xsl
+++ /dev/null
@@ -1,286 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-	xmlns:jw301="http://www.istandaarden.nl/ijw/3_0/jw301/schema"
-	xmlns:jw303="http://www.istandaarden.nl/ijw/3_0/jw303/schema"
-	xmlns:jw304="http://www.istandaarden.nl/ijw/3_0/jw304/schema"
-	xmlns:jw305="http://www.istandaarden.nl/ijw/3_0/jw305/schema"
-	xmlns:jw307="http://www.istandaarden.nl/ijw/3_0/jw307/schema"
-	xmlns:jw315="http://www.istandaarden.nl/ijw/3_0/jw315/schema"
-	xmlns:jw317="http://www.istandaarden.nl/ijw/3_0/jw317/schema"
-	xmlns:jw319="http://www.istandaarden.nl/ijw/3_0/jw319/schema"
-	xmlns:jw323="http://www.istandaarden.nl/ijw/3_0/jw323/schema"
-	xmlns:jw325="http://www.istandaarden.nl/ijw/3_0/jw325/schema"
->
-	<!-- iJw 3.0 TR101 version 2.2.8 (2021-01-25) -->
-
-	<xsl:import href="../common/basis.xsl"/>
-	<xsl:template match="*" mode="TR101simple"/>
-	<xsl:template match="*" mode="TR101generic"/>
-	<xsl:template match="*" mode="TR101">
-		<xsl:apply-templates select="*" mode="TR101simple"/>
-		<xsl:apply-templates select="*" mode="TR101generic"/>
-	</xsl:template>
-	<xsl:template match="*" mode="check">
-		<xsl:apply-templates select="*" mode="TR101"/>
-	</xsl:template>
-
-	<!-- JW301 -->
-	<xsl:template match="jw301:Client" mode="TR101simple">
-		<xsl:variable name="vMatch" select="*[local-name() = 'Bsn']/text()" />
-		<xsl:variable name="vThis" select="." />
-		<xsl:for-each select="preceding-sibling::jw301:Client[*[local-name() = 'Bsn']/text() = $vMatch]">
-			<xsl:call-template name="addError">
-				<xsl:with-param name="pElements" select=". | $vThis"/>
-				<xsl:with-param name="pRule">TR101</xsl:with-param>
-			</xsl:call-template>
-		</xsl:for-each>
-	</xsl:template>
-	<xsl:template match="jw301:Contact" mode="TR101simple">
-		<xsl:variable name="vMatch" select="*[local-name() = 'Soort']/text()" />
-		<xsl:variable name="vThis" select="." />
-		<xsl:for-each select="preceding-sibling::jw301:Contact[*[local-name() = 'Soort']/text() = $vMatch]">
-			<xsl:call-template name="addError">
-				<xsl:with-param name="pElements" select=". | $vThis"/>
-				<xsl:with-param name="pRule">TR101</xsl:with-param>
-			</xsl:call-template>
-		</xsl:for-each>
-	</xsl:template>
-	<xsl:template match="*[jw301:Relatie]" mode="TR101generic">
-		<xsl:call-template name="checkDuplicateKeys">
-			<xsl:with-param name="pElement" select="jw301:Relatie"/>
-			<xsl:with-param name="pKeys">/Contact/Soort,/Nummer,</xsl:with-param>
-			<xsl:with-param name="pRule">TR101</xsl:with-param>
-		</xsl:call-template>
-	</xsl:template>
-	<xsl:template match="jw301:ToegewezenProduct" mode="TR101simple">
-		<xsl:variable name="vMatch" select="*[local-name() = 'ToewijzingNummer']/text()" />
-		<xsl:variable name="vThis" select="." />
-		<xsl:for-each select="preceding-sibling::jw301:ToegewezenProduct[*[local-name() = 'ToewijzingNummer']/text() = $vMatch]">
-			<xsl:call-template name="addError">
-				<xsl:with-param name="pElements" select=". | $vThis"/>
-				<xsl:with-param name="pRule">TR101</xsl:with-param>
-			</xsl:call-template>
-		</xsl:for-each>
-	</xsl:template>
-
-	<!-- JW303 -->
-	<xsl:template match="jw303:Client" mode="TR101simple">
-		<xsl:variable name="vMatch" select="*[local-name() = 'Bsn']/text()" />
-		<xsl:variable name="vThis" select="." />
-		<xsl:for-each select="preceding-sibling::jw303:Client[*[local-name() = 'Bsn']/text() = $vMatch]">
-			<xsl:call-template name="addError">
-				<xsl:with-param name="pElements" select=". | $vThis"/>
-				<xsl:with-param name="pRule">TR101</xsl:with-param>
-			</xsl:call-template>
-		</xsl:for-each>
-	</xsl:template>
-	<xsl:template match="*[jw303:Prestatie]" mode="TR101generic">
-		<xsl:call-template name="checkDuplicateKeys">
-			<xsl:with-param name="pElement" select="jw303:Prestatie"/>
-			<xsl:with-param name="pKeys">/ProductCategorie,/ProductCode,/ProductReferentie/ReferentieNummer,/ProductReferentie/VorigReferentieNummer,</xsl:with-param>
-			<xsl:with-param name="pRule">TR101</xsl:with-param>
-		</xsl:call-template>
-	</xsl:template>
-
-	<!-- JW304 -->
-	<xsl:template match="jw304:Client" mode="TR101simple">
-		<xsl:variable name="vMatch" select="*[local-name() = 'Bsn']/text()" />
-		<xsl:variable name="vThis" select="." />
-		<xsl:for-each select="preceding-sibling::jw304:Client[*[local-name() = 'Bsn']/text() = $vMatch]">
-			<xsl:call-template name="addError">
-				<xsl:with-param name="pElements" select=". | $vThis"/>
-				<xsl:with-param name="pRule">TR101</xsl:with-param>
-			</xsl:call-template>
-		</xsl:for-each>
-	</xsl:template>
-	<xsl:template match="*[jw304:Prestatie]" mode="TR101generic">
-		<xsl:call-template name="checkDuplicateKeys">
-			<xsl:with-param name="pElement" select="jw304:Prestatie"/>
-			<xsl:with-param name="pKeys">/ProductCategorie,/ProductCode,/ProductReferentie/ReferentieNummer,/ProductReferentie/VorigReferentieNummer,</xsl:with-param>
-			<xsl:with-param name="pRule">TR101</xsl:with-param>
-		</xsl:call-template>
-	</xsl:template>
-
-	<!-- JW305 -->
-	<xsl:template match="jw305:Client" mode="TR101simple">
-		<xsl:variable name="vMatch" select="*[local-name() = 'Bsn']/text()" />
-		<xsl:variable name="vThis" select="." />
-		<xsl:for-each select="preceding-sibling::jw305:Client[*[local-name() = 'Bsn']/text() = $vMatch]">
-			<xsl:call-template name="addError">
-				<xsl:with-param name="pElements" select=". | $vThis"/>
-				<xsl:with-param name="pRule">TR101</xsl:with-param>
-			</xsl:call-template>
-		</xsl:for-each>
-	</xsl:template>
-	<xsl:template match="*[jw305:StartProduct]" mode="TR101generic">
-		<xsl:call-template name="checkDuplicateKeys">
-			<xsl:with-param name="pElement" select="jw305:StartProduct"/>
-			<xsl:with-param name="pKeys">/Begindatum,/Product/Categorie,/Product/Code,/ToewijzingNummer,</xsl:with-param>
-			<xsl:with-param name="pRule">TR101</xsl:with-param>
-		</xsl:call-template>
-	</xsl:template>
-
-	<!-- JW307 -->
-	<xsl:template match="jw307:Client" mode="TR101simple">
-		<xsl:variable name="vMatch" select="*[local-name() = 'Bsn']/text()" />
-		<xsl:variable name="vThis" select="." />
-		<xsl:for-each select="preceding-sibling::jw307:Client[*[local-name() = 'Bsn']/text() = $vMatch]">
-			<xsl:call-template name="addError">
-				<xsl:with-param name="pElements" select=". | $vThis"/>
-				<xsl:with-param name="pRule">TR101</xsl:with-param>
-			</xsl:call-template>
-		</xsl:for-each>
-	</xsl:template>
-	<xsl:template match="*[jw307:StopProduct]" mode="TR101generic">
-		<xsl:call-template name="checkDuplicateKeys">
-			<xsl:with-param name="pElement" select="jw307:StopProduct"/>
-			<xsl:with-param name="pKeys">/Begindatum,/Einddatum,/Product/Categorie,/Product/Code,/ToewijzingNummer,</xsl:with-param>
-			<xsl:with-param name="pRule">TR101</xsl:with-param>
-		</xsl:call-template>
-	</xsl:template>
-
-	<!-- JW315 -->
-	<xsl:template match="*[jw315:AangevraagdProduct]" mode="TR101generic">
-		<xsl:call-template name="checkDuplicateKeys">
-			<xsl:with-param name="pElement" select="jw315:AangevraagdProduct"/>
-			<xsl:with-param name="pKeys">/Product/Categorie,/Product/Code,/ToewijzingIngangsdatum,</xsl:with-param>
-			<xsl:with-param name="pRule">TR101</xsl:with-param>
-		</xsl:call-template>
-	</xsl:template>
-	<xsl:template match="jw315:Client" mode="TR101simple">
-		<xsl:variable name="vMatch" select="*[local-name() = 'Bsn']/text()" />
-		<xsl:variable name="vThis" select="." />
-		<xsl:for-each select="preceding-sibling::jw315:Client[*[local-name() = 'Bsn']/text() = $vMatch]">
-			<xsl:call-template name="addError">
-				<xsl:with-param name="pElements" select=". | $vThis"/>
-				<xsl:with-param name="pRule">TR101</xsl:with-param>
-			</xsl:call-template>
-		</xsl:for-each>
-	</xsl:template>
-
-	<!-- JW317 -->
-	<xsl:template match="jw317:Client" mode="TR101simple">
-		<xsl:variable name="vMatch" select="*[local-name() = 'Bsn']/text()" />
-		<xsl:variable name="vThis" select="." />
-		<xsl:for-each select="preceding-sibling::jw317:Client[*[local-name() = 'Bsn']/text() = $vMatch]">
-			<xsl:call-template name="addError">
-				<xsl:with-param name="pElements" select=". | $vThis"/>
-				<xsl:with-param name="pRule">TR101</xsl:with-param>
-			</xsl:call-template>
-		</xsl:for-each>
-	</xsl:template>
-	<xsl:template match="*[jw317:NieuwProduct]" mode="TR101generic">
-		<xsl:call-template name="checkDuplicateKeys">
-			<xsl:with-param name="pElement" select="jw317:NieuwProduct"/>
-			<xsl:with-param name="pKeys">/GewensteIngangsdatum,/Product/Categorie,/Product/Code,</xsl:with-param>
-			<xsl:with-param name="pRule">TR101</xsl:with-param>
-		</xsl:call-template>
-	</xsl:template>
-	<xsl:template match="jw317:OngewijzigdProduct" mode="TR101simple">
-		<xsl:variable name="vMatch" select="*[local-name() = 'ToewijzingNummer']/text()" />
-		<xsl:variable name="vThis" select="." />
-		<xsl:for-each select="preceding-sibling::jw317:OngewijzigdProduct[*[local-name() = 'ToewijzingNummer']/text() = $vMatch]">
-			<xsl:call-template name="addError">
-				<xsl:with-param name="pElements" select=". | $vThis"/>
-				<xsl:with-param name="pRule">TR101</xsl:with-param>
-			</xsl:call-template>
-		</xsl:for-each>
-	</xsl:template>
-	<xsl:template match="jw317:TeWijzigenProduct" mode="TR101simple">
-		<xsl:variable name="vMatch" select="*[local-name() = 'ToewijzingNummer']/text()" />
-		<xsl:variable name="vThis" select="." />
-		<xsl:for-each select="preceding-sibling::jw317:TeWijzigenProduct[*[local-name() = 'ToewijzingNummer']/text() = $vMatch]">
-			<xsl:call-template name="addError">
-				<xsl:with-param name="pElements" select=". | $vThis"/>
-				<xsl:with-param name="pRule">TR101</xsl:with-param>
-			</xsl:call-template>
-		</xsl:for-each>
-	</xsl:template>
-	<xsl:template match="jw317:Verzoek" mode="TR101simple">
-		<xsl:variable name="vMatch" select="*[local-name() = 'ReferentieAanbieder']/text()" />
-		<xsl:variable name="vThis" select="." />
-		<xsl:for-each select="preceding-sibling::jw317:Verzoek[*[local-name() = 'ReferentieAanbieder']/text() = $vMatch]">
-			<xsl:call-template name="addError">
-				<xsl:with-param name="pElements" select=". | $vThis"/>
-				<xsl:with-param name="pRule">TR101</xsl:with-param>
-			</xsl:call-template>
-		</xsl:for-each>
-	</xsl:template>
-
-	<!-- JW319 -->
-	<xsl:template match="*[jw319:Antwoord]" mode="TR101generic">
-		<xsl:call-template name="checkDuplicateKeys">
-			<xsl:with-param name="pElement" select="jw319:Antwoord"/>
-			<xsl:with-param name="pKeys">/ReferentieAanbieder,/VerzoekAntwoord,</xsl:with-param>
-			<xsl:with-param name="pRule">TR101</xsl:with-param>
-		</xsl:call-template>
-	</xsl:template>
-	<xsl:template match="jw319:Woonplaatsbeginsel" mode="TR101simple">
-		<xsl:variable name="vMatch" select="*[local-name() = 'Gemeente']/text()" />
-		<xsl:variable name="vThis" select="." />
-		<xsl:for-each select="preceding-sibling::jw319:Woonplaatsbeginsel[*[local-name() = 'Gemeente']/text() = $vMatch]">
-			<xsl:call-template name="addError">
-				<xsl:with-param name="pElements" select=". | $vThis"/>
-				<xsl:with-param name="pRule">TR101</xsl:with-param>
-			</xsl:call-template>
-		</xsl:for-each>
-	</xsl:template>
-
-	<!-- JW323 -->
-	<xsl:template match="jw323:Client" mode="TR101simple">
-		<xsl:variable name="vMatch" select="*[local-name() = 'Bsn']/text()" />
-		<xsl:variable name="vThis" select="." />
-		<xsl:for-each select="preceding-sibling::jw323:Client[*[local-name() = 'Bsn']/text() = $vMatch]">
-			<xsl:call-template name="addError">
-				<xsl:with-param name="pElements" select=". | $vThis"/>
-				<xsl:with-param name="pRule">TR101</xsl:with-param>
-			</xsl:call-template>
-		</xsl:for-each>
-	</xsl:template>
-	<xsl:template match="jw323:Declaratie" mode="TR101simple">
-		<xsl:variable name="vMatch" select="*[local-name() = 'DeclaratieNummer']/text()" />
-		<xsl:variable name="vThis" select="." />
-		<xsl:for-each select="preceding-sibling::jw323:Declaratie[*[local-name() = 'DeclaratieNummer']/text() = $vMatch]">
-			<xsl:call-template name="addError">
-				<xsl:with-param name="pElements" select=". | $vThis"/>
-				<xsl:with-param name="pRule">TR101</xsl:with-param>
-			</xsl:call-template>
-		</xsl:for-each>
-	</xsl:template>
-	<xsl:template match="*[jw323:Prestatie]" mode="TR101generic">
-		<xsl:call-template name="checkDuplicateKeys">
-			<xsl:with-param name="pElement" select="jw323:Prestatie"/>
-			<xsl:with-param name="pKeys">/ProductReferentie/ReferentieNummer,/ProductReferentie/VorigReferentieNummer,</xsl:with-param>
-			<xsl:with-param name="pRule">TR101</xsl:with-param>
-		</xsl:call-template>
-	</xsl:template>
-
-	<!-- JW325 -->
-	<xsl:template match="jw325:Client" mode="TR101simple">
-		<xsl:variable name="vMatch" select="*[local-name() = 'Bsn']/text()" />
-		<xsl:variable name="vThis" select="." />
-		<xsl:for-each select="preceding-sibling::jw325:Client[*[local-name() = 'Bsn']/text() = $vMatch]">
-			<xsl:call-template name="addError">
-				<xsl:with-param name="pElements" select=". | $vThis"/>
-				<xsl:with-param name="pRule">TR101</xsl:with-param>
-			</xsl:call-template>
-		</xsl:for-each>
-	</xsl:template>
-	<xsl:template match="jw325:DeclaratieAntwoord" mode="TR101simple">
-		<xsl:variable name="vMatch" select="*[local-name() = 'DeclaratieNummer']/text()" />
-		<xsl:variable name="vThis" select="." />
-		<xsl:for-each select="preceding-sibling::jw325:DeclaratieAntwoord[*[local-name() = 'DeclaratieNummer']/text() = $vMatch]">
-			<xsl:call-template name="addError">
-				<xsl:with-param name="pElements" select=". | $vThis"/>
-				<xsl:with-param name="pRule">TR101</xsl:with-param>
-			</xsl:call-template>
-		</xsl:for-each>
-	</xsl:template>
-	<xsl:template match="*[jw325:Prestatie]" mode="TR101generic">
-		<xsl:call-template name="checkDuplicateKeys">
-			<xsl:with-param name="pElement" select="jw325:Prestatie"/>
-			<xsl:with-param name="pKeys">/ProductReferentie/ReferentieNummer,/ProductReferentie/VorigReferentieNummer,</xsl:with-param>
-			<xsl:with-param name="pRule">TR101</xsl:with-param>
-		</xsl:call-template>
-	</xsl:template>
-</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_0/rules/TR302.xsl b/xslt-validatie/jw/3_0/rules/TR302.xsl
deleted file mode 100644
index 1718ce0d7c4f6bc771e2346703b63f25a585a3c2..0000000000000000000000000000000000000000
--- a/xslt-validatie/jw/3_0/rules/TR302.xsl
+++ /dev/null
@@ -1,84 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-                xmlns:ijw="http://www.istandaarden.nl/ijw/3_0/basisschema/schema"
-                xmlns:jw301="http://www.istandaarden.nl/ijw/3_0/jw301/schema"
->
-
-    <!-- iJw 3.0 TR302 version 2.2.8 (2021-01-25) -->
-
-    <xsl:import href="../common/basis.xsl"/>
-    <xsl:template match="*" mode="TR302"/>
-    <xsl:template match="*" mode="check">
-        <xsl:apply-templates select="*" mode="TR302"/>
-    </xsl:template>
-
-    <xsl:template match="jw301:ToegewezenProduct" mode="TR302">
-        <xsl:call-template name="tr302"/>
-    </xsl:template>
-
-    <xsl:template name="tr302">
-        <xsl:param name="pThis" select="."/>
-        <xsl:param name="pList" select="preceding-sibling::*"/>
-        
-        <xsl:variable name="vIgnoreSelf">
-            <xsl:call-template name="ignoreForTR302" />
-        </xsl:variable>
-
-		<xsl:if test="$vIgnoreSelf != 'true'">
-	        <xsl:for-each select="$pList">
-		        <xsl:variable name="vIgnorePredecessor">
-		            <xsl:call-template name="ignoreForTR302" />
-		        </xsl:variable>
-	            <xsl:if test="$vIgnorePredecessor != 'true' and (
-	                                  (
-								            ($pThis/jw301:Product/ijw:Code and current()/jw301:Product/ijw:Code and $pThis/jw301:Product/ijw:Code = current()/jw301:Product/ijw:Code) and
-	                                        ($pThis/jw301:Product/ijw:Categorie and current()/jw301:Product/ijw:Categorie and $pThis/jw301:Product/ijw:Categorie = current()/jw301:Product/ijw:Categorie)
-	                                  ) or 
-	                                 (
-	                                 		(not($pThis/jw301:Product/ijw:Code) or not(current()/jw301:Product/ijw:Code)) and
-	                                        ($pThis/jw301:Product/ijw:Categorie and current()/jw301:Product/ijw:Categorie and $pThis/jw301:Product/ijw:Categorie = current()/jw301:Product/ijw:Categorie)
-	                         		) or
-	                         		(
-	                                 		(not($pThis/jw301:Product/ijw:Code) and not($pThis/jw301:Product/ijw:Categorie)) or
-	                                 		(not(current()/jw301:Product/ijw:Code) and not(current()/jw301:Product/ijw:Categorie))
-	                         		)
-	                                 )"> 
-	                          
-	                <xsl:variable name="isOverlay">
-	                    <xsl:call-template name="isPeriodOverlay">
-	                        <xsl:with-param name="pThis" select="$pThis"/>
-	                        <xsl:with-param name="pOther" select="current()"/>
-	                    </xsl:call-template>
-	                </xsl:variable>
-	                <xsl:if test="$isOverlay = 'true'">
-	                    <xsl:call-template name="addError">
-	                        <xsl:with-param name="pElements" select="$pThis | current()"/>
-	                        <xsl:with-param name="pRule">TR302</xsl:with-param>
-	                    </xsl:call-template>
-	                </xsl:if>
-	            </xsl:if>
-	        </xsl:for-each>
-        </xsl:if>
-    </xsl:template>
-    
-    <xsl:template name="ignoreForTR302">
-	    <xsl:param name="pThis" select="." />
-	    
-	    <xsl:choose>
-		    <xsl:when test="jw301:RedenWijziging/text() = '01' and jw301:Einddatum/. and normalize-space(jw301:Einddatum/text()) != ''">
-		    	<xsl:choose>
-			    	<xsl:when test="translate(jw301:Ingangsdatum/text(), '-', '') = translate(jw301:Einddatum/text(), '-', '')">
-				    	<xsl:value-of select="true()" />
-			    	</xsl:when>
-			    	<xsl:otherwise>
-				    	<xsl:value-of select="false()" />
-			    	</xsl:otherwise>
-		    	</xsl:choose>
-		    </xsl:when>
-		    <xsl:otherwise>
-			    <xsl:value-of select="false()" />
-		    </xsl:otherwise>
-	    </xsl:choose>
-    </xsl:template>
-
-</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_0/rules/TR312.xsl b/xslt-validatie/jw/3_0/rules/TR312.xsl
deleted file mode 100644
index 3cbee9c8497bc3aba092fcb0eb3a935e6e22b340..0000000000000000000000000000000000000000
--- a/xslt-validatie/jw/3_0/rules/TR312.xsl
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-	xmlns:ijw="http://www.istandaarden.nl/ijw/3_0/basisschema/schema"
-	xmlns:jw303="http://www.istandaarden.nl/ijw/3_0/jw303/schema"
-	>
-
-	<!-- iJw 3.0 TR312 version 2.2.8 (2021-01-25) -->
-
-	<xsl:import href="../common/basis.xsl"/>
-	<xsl:template match="*" mode="TR312"/>
-	<xsl:template match="*" mode="check">
-		<xsl:apply-templates select="*" mode="TR312"/>
-	</xsl:template>
-
-	<xsl:template match="jw303:DeclaratieFactuurBedragen" mode="TR312">
-		<xsl:variable name="vTotaalDebet"
-			select="sum(ancestor-or-self::jw303:Bericht/jw303:Clienten/jw303:Client/jw303:Prestaties/jw303:Prestatie/jw303:IngediendeBedragPrestatie/ijw:DeclaratieFactuurBedrag[ijw:DebetCredit/text() = 'D']/ijw:Bedrag)"/>
-		<xsl:variable name="vTotaalCredit"
-			select="sum(ancestor-or-self::jw303:Bericht/jw303:Clienten/jw303:Client/jw303:Prestaties/jw303:Prestatie/jw303:IngediendeBedragPrestatie/ijw:DeclaratieFactuurBedrag[ijw:DebetCredit/text() = 'C']/ijw:Bedrag)"/>
-
-		<xsl:variable name="vSaldo" select="$vTotaalDebet - $vTotaalCredit"/>
-
-		<!-- Controleren of BtwTotaalBedrag overeenkomt met saldo BtwBedragen -->
-		<xsl:call-template name="checkimplication">
-			<xsl:with-param name="pThis" select="ijw:DeclaratieFactuurTotaalBedrag/ijw:DebetCredit" />
-			<xsl:with-param name="pValue1">D</xsl:with-param>
-			<xsl:with-param name="pOther" select="ijw:DeclaratieFactuurTotaalBedrag/ijw:TotaalBedrag" />
-			<xsl:with-param name="pValue2"><xsl:call-template name="formatNumber"><xsl:with-param name="pValue" select="$vSaldo" /></xsl:call-template></xsl:with-param>
-			<xsl:with-param name="pExtra" select="ancestor-or-self::jw303:Bericht/jw303:Clienten/jw303:Client/jw303:Prestaties/jw303:Prestatie/jw303:IngediendeBedragPrestatie/ijw:DeclaratieFactuurBedrag/ijw:Bedrag"/>
-			<xsl:with-param name="pRule">TR312</xsl:with-param>
-		</xsl:call-template>
-
-		<!-- In het geval van Credit moet het bedrag negatief worden gemaakt -->
-		<xsl:call-template name="checkimplication">
-			<xsl:with-param name="pThis" select="ijw:DeclaratieFactuurTotaalBedrag/ijw:DebetCredit" />
-			<xsl:with-param name="pValue1">C</xsl:with-param>
-			<xsl:with-param name="pOther" select="ijw:DeclaratieFactuurTotaalBedrag/ijw:TotaalBedrag" />
-			<xsl:with-param name="pValue2"><xsl:call-template name="formatNumber"><xsl:with-param name="pValue" select="0 - 1 * $vSaldo" /></xsl:call-template></xsl:with-param>
-			<xsl:with-param name="pExtra" select="ancestor-or-self::jw303:Bericht/jw303:Clienten/jw303:Client/jw303:Prestaties/jw303:Prestatie/jw303:IngediendeBedragPrestatie/ijw:DeclaratieFactuurBedrag/ijw:Bedrag"/>
-			<xsl:with-param name="pRule">TR312</xsl:with-param>
-		</xsl:call-template>
-	</xsl:template>
-
-</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_0/rules/TR313.xsl b/xslt-validatie/jw/3_0/rules/TR313.xsl
deleted file mode 100644
index 3b5a310e479b63569de6a92df180cc9993d94b79..0000000000000000000000000000000000000000
--- a/xslt-validatie/jw/3_0/rules/TR313.xsl
+++ /dev/null
@@ -1,48 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-	xmlns:ijw="http://www.istandaarden.nl/ijw/3_0/basisschema/schema"
-	xmlns:jw303="http://www.istandaarden.nl/ijw/3_0/jw303/schema"
-	>
-
-	<!-- iJw 3.0 TR313 version 2.2.8 (2021-01-25) -->
-
-	<xsl:import href="../common/basis.xsl"/>
-	<xsl:template match="*" mode="TR313"/>
-	<xsl:template match="*" mode="check">
-		<xsl:apply-templates select="*" mode="TR313"/>
-	</xsl:template>
-
-	<xsl:template match="jw303:DeclaratieFactuurBedragen" mode="TR313">
-		<xsl:variable name="vTotaalDebet" select="sum(ancestor-or-self::jw303:Bericht/jw303:Clienten/jw303:Client/jw303:Prestaties/jw303:Prestatie/jw303:IngediendeBedragPrestatie/ijw:BtwBedrag[ijw:DebetCredit = 'D']/ijw:Bedrag)"/>
-		<xsl:variable name="vTotaalCredit" select="sum(ancestor-or-self::jw303:Bericht/jw303:Clienten/jw303:Client/jw303:Prestaties/jw303:Prestatie/jw303:IngediendeBedragPrestatie/ijw:BtwBedrag[ijw:DebetCredit = 'C']/ijw:Bedrag)"/>
-		<xsl:variable name="vSaldo" select="$vTotaalDebet - $vTotaalCredit"/>
-
-		<!-- Controleren of BtwTotaalBedrag overeenkomt met saldo BtwBedragen -->
-		<xsl:call-template name="checkimplication">
-			<xsl:with-param name="pThis" select="ijw:BtwTotaalBedrag/ijw:DebetCredit" />
-			<xsl:with-param name="pValue1">D</xsl:with-param>
-			<xsl:with-param name="pOther" select="ijw:BtwTotaalBedrag/ijw:TotaalBedrag" />
-			<xsl:with-param name="pValue2"><xsl:call-template name="formatNumber"><xsl:with-param name="pValue" select="$vSaldo" /></xsl:call-template></xsl:with-param>
-			<xsl:with-param name="pExtra" select="ancestor-or-self::jw303:Bericht/jw303:Clienten/jw303:Client/jw303:Prestaties/jw303:Prestatie/jw303:IngediendeBedragPrestatie/ijw:BtwBedrag/ijw:Bedrag"/>
-			<xsl:with-param name="pRule">TR313</xsl:with-param>
-		</xsl:call-template>
-
-		<!-- In het geval van Credit moet het bedrag negatief worden gemaakt -->
-		<xsl:call-template name="checkimplication">
-			<xsl:with-param name="pThis" select="ijw:BtwTotaalBedrag/ijw:DebetCredit" />
-			<xsl:with-param name="pValue1">C</xsl:with-param>
-			<xsl:with-param name="pOther" select="ijw:BtwTotaalBedrag/ijw:TotaalBedrag" />
-			<xsl:with-param name="pValue2"><xsl:call-template name="formatNumber"><xsl:with-param name="pValue" select="0 - 1 * $vSaldo" /></xsl:call-template></xsl:with-param>
-			<xsl:with-param name="pExtra" select="ancestor-or-self::jw303:Bericht/jw303:Clienten/jw303:Client/jw303:Prestaties/jw303:Prestatie/jw303:IngediendeBedragPrestatie/ijw:BtwBedrag/ijw:Bedrag"/>
-			<xsl:with-param name="pRule">TR313</xsl:with-param>
-		</xsl:call-template>
-		
-		<xsl:if test="$vSaldo != '0' and not(ijw:BtwTotaalBedrag/ijw:DebetCredit)">
-			<xsl:call-template name="addError">
-				<xsl:with-param name="pElements" select=". | ancestor-or-self::jw303:Bericht/jw303:Clienten/jw303:Client/jw303:Prestaties/jw303:Prestatie/jw303:IngediendeBedragPrestatie/ijw:BtwBedrag/ijw:Bedrag"/>
-				<xsl:with-param name="pRule">TR313</xsl:with-param>
-			</xsl:call-template>
-		</xsl:if>
-	</xsl:template>
-
-</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_0/rules/TR314.xsl b/xslt-validatie/jw/3_0/rules/TR314.xsl
deleted file mode 100644
index a54b24248db03b3d65c2fae13fb303e4f0d8bb38..0000000000000000000000000000000000000000
--- a/xslt-validatie/jw/3_0/rules/TR314.xsl
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-	xmlns:ijw="http://www.istandaarden.nl/ijw/3_0/basisschema/schema"
-	xmlns:jw303="http://www.istandaarden.nl/ijw/3_0/jw303/schema"
-	>
-
-	<!-- iJw 3.0 TR314 version 2.2.8 (2021-01-25) -->
-
-	<xsl:import href="../common/basis.xsl"/>
-	<xsl:template match="*" mode="TR314"/>
-	<xsl:template match="*" mode="check">
-		<xsl:apply-templates select="*" mode="TR314"/>
-	</xsl:template>
-
-	<xsl:template match="jw303:ProductReferentie" mode="TR314">
-		<xsl:variable name="vReferentieNummer" select="normalize-space(ijw:ReferentieNummer/text())" />
-
-		<xsl:call-template name="checkvalue">
-			<xsl:with-param name="pThis" select="ancestor-or-self::jw303:Prestatie/preceding-sibling::jw303:Prestatie/jw303:ProductReferentie/ijw:ReferentieNummer[text() = $vReferentieNummer]" />
-			<xsl:with-param name="pValues">!#</xsl:with-param>
-			<xsl:with-param name="pRule">TR314</xsl:with-param>
-			<xsl:with-param name="pCode">8021</xsl:with-param>
-			<xsl:with-param name="pExtra" select="ijw:ReferentieNummer" />
-		</xsl:call-template>
-
-		<xsl:call-template name="checkvalue">
-			<xsl:with-param name="pThis" select="ancestor-or-self::jw303:Client/preceding-sibling::jw303:Client/jw303:Prestaties/jw303:Prestatie/jw303:ProductReferentie/ijw:ReferentieNummer[text() = $vReferentieNummer]" />
-			<xsl:with-param name="pValues">!#</xsl:with-param>
-			<xsl:with-param name="pRule">TR314</xsl:with-param>
-			<xsl:with-param name="pCode">8021</xsl:with-param>
-			<xsl:with-param name="pExtra" select="ijw:ReferentieNummer" />
-		</xsl:call-template>
-	</xsl:template>
-
-</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_0/rules/TR315.xsl b/xslt-validatie/jw/3_0/rules/TR315.xsl
deleted file mode 100644
index 0fe2e8e78e78f1fdd6c4ad90630c02614b8af020..0000000000000000000000000000000000000000
--- a/xslt-validatie/jw/3_0/rules/TR315.xsl
+++ /dev/null
@@ -1,48 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-	xmlns:ijw="http://www.istandaarden.nl/ijw/3_0/basisschema/schema"
-	xmlns:jw303="http://www.istandaarden.nl/ijw/3_0/jw303/schema"
-	xmlns:jw323="http://www.istandaarden.nl/ijw/3_0/jw323/schema"
-	>
-
-	<!-- iJw 3.0 TR315 version 2.2.8 (2021-01-25) -->
-
-	<xsl:import href="../common/basis.xsl"/>
-	<xsl:template match="*" mode="TR315"/>
-	<xsl:template match="*" mode="check">
-		<xsl:apply-templates select="*" mode="TR315"/>
-	</xsl:template>
-
-	<xsl:template match="jw303:ProductReferentie" mode="TR315">
-		<xsl:variable name="vVorigReferentieNummer" select="normalize-space(ijw:VorigReferentieNummer/text())" />
-		<xsl:variable name="vSelf" select="ijw:VorigReferentieNummer" />
-
-		<xsl:for-each select="
-				ancestor-or-self::jw303:Prestatie/preceding-sibling::jw303:Prestatie/jw303:ProductReferentie/ijw:VorigReferentieNummer[text() = $vVorigReferentieNummer] |
-				ancestor-or-self::jw303:Client/preceding-sibling::jw303:Client/jw303:Prestaties/jw303:Prestatie/jw303:ProductReferentie/ijw:VorigReferentieNummer[text() = $vVorigReferentieNummer]
-				">
-			<xsl:call-template name="checkvalue">
-				<xsl:with-param name="pValues">!#</xsl:with-param>
-				<xsl:with-param name="pRule">TR315</xsl:with-param>
-				<xsl:with-param name="pExtra" select="$vSelf" />
-			</xsl:call-template>
-		</xsl:for-each>
-	</xsl:template>
-
-	<xsl:template match="jw323:ProductReferentie" mode="TR315">
-		<xsl:variable name="vVorigReferentieNummer" select="normalize-space(ijw:VorigReferentieNummer/text())" />
-		<xsl:variable name="vSelf" select="ijw:VorigReferentieNummer" />
-
-		<xsl:for-each select="
-				ancestor-or-self::jw323:Prestatie/preceding-sibling::jw323:Prestatie/jw323:ProductReferentie/ijw:VorigReferentieNummer[text() = $vVorigReferentieNummer] |
-				ancestor-or-self::jw323:Client/preceding-sibling::jw323:Client/jw323:Prestaties/jw323:Prestatie/jw323:ProductReferentie/ijw:VorigReferentieNummer[text() = $vVorigReferentieNummer]
-				">
-			<xsl:call-template name="checkvalue">
-				<xsl:with-param name="pValues">!#</xsl:with-param>
-				<xsl:with-param name="pRule">TR315</xsl:with-param>
-				<xsl:with-param name="pExtra" select="$vSelf" />
-			</xsl:call-template>
-		</xsl:for-each>
-	</xsl:template>
-
-</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_0/rules/TR316.xsl b/xslt-validatie/jw/3_0/rules/TR316.xsl
deleted file mode 100644
index ba0702e1841051fb1f65160aa0277e0aedae92c7..0000000000000000000000000000000000000000
--- a/xslt-validatie/jw/3_0/rules/TR316.xsl
+++ /dev/null
@@ -1,88 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-	xmlns:ijw="http://www.istandaarden.nl/ijw/3_0/basisschema/schema"
-	xmlns:jw303="http://www.istandaarden.nl/ijw/3_0/jw303/schema"
-	xmlns:jw323="http://www.istandaarden.nl/ijw/3_0/jw323/schema"
-	>
-
-	<!-- iWw 3.0 TR316 version 2.2.8 (2021-01-25) -->
-
-	<xsl:import href="../common/basis.xsl"/>
-	<xsl:template match="*" mode="TR316"/>
-	<xsl:template match="*" mode="check">
-		<xsl:apply-templates select="*" mode="TR316"/>
-	</xsl:template>
-
-	<xsl:template match="jw303:ProductReferentie" mode="TR316">
-		<xsl:variable name="vReferentieNummer" select="normalize-space(ijw:ReferentieNummer/text())" />
-		<xsl:variable name="vVorigReferentieNummer" select="normalize-space(ijw:VorigReferentieNummer/text())" />
-		<xsl:variable name="vReferentie" select="ijw:ReferentieNummer" />
-		<xsl:variable name="vVorigReferentie" select="ijw:VorigReferentieNummer" />
-		
-		<xsl:for-each select="
-				ancestor-or-self::jw303:Prestatie/preceding-sibling::jw303:Prestatie/jw303:ProductReferentie/ijw:ReferentieNummer[text() = $vVorigReferentieNummer] |
-				ancestor-or-self::jw303:Client/preceding-sibling::jw303:Client/jw303:Prestaties/jw303:Prestatie/jw303:ProductReferentie/ijw:ReferentieNummer[text() = $vVorigReferentieNummer]
-				">
-			<xsl:call-template name="checkvalue">
-				<xsl:with-param name="pValues">!#</xsl:with-param>
-				<xsl:with-param name="pRule">TR316</xsl:with-param>
-				<xsl:with-param name="pExtra" select="$vVorigReferentie" />
-			</xsl:call-template>
-		</xsl:for-each>
-		
-		<xsl:for-each select="
-				ancestor-or-self::jw303:Prestatie/preceding-sibling::jw303:Prestatie/jw303:ProductReferentie/ijw:VorigReferentieNummer[text() = $vReferentieNummer] |
-				ancestor-or-self::jw303:Client/preceding-sibling::jw303:Client/jw303:Prestaties/jw303:Prestatie/jw303:ProductReferentie/ijw:VorigReferentieNummer[text() = $vReferentieNummer]
-				">
-			<xsl:call-template name="checkvalue">
-				<xsl:with-param name="pValues">!#</xsl:with-param>
-				<xsl:with-param name="pRule">TR316</xsl:with-param>
-				<xsl:with-param name="pExtra" select="$vReferentie" />
-			</xsl:call-template>
-		</xsl:for-each>
-
-		<xsl:if test="$vReferentieNummer = $vVorigReferentieNummer">
-			<xsl:call-template name="addError">
-				<xsl:with-param name="pRule">TR316</xsl:with-param>
-				<xsl:with-param name="pElements" select="ijw:ReferentieNummer | ijw:VorigReferentieNummer" />
-			</xsl:call-template>
-		</xsl:if>
-	</xsl:template>
-
-	<xsl:template match="jw323:ProductReferentie" mode="TR316">
-		<xsl:variable name="vReferentieNummer" select="normalize-space(ijw:ReferentieNummer/text())" />
-		<xsl:variable name="vVorigReferentieNummer" select="normalize-space(ijw:VorigReferentieNummer/text())" />
-		<xsl:variable name="vReferentie" select="ijw:ReferentieNummer" />
-		<xsl:variable name="vVorigReferentie" select="ijw:VorigReferentieNummer" />
-		
-		<xsl:for-each select="
-				ancestor-or-self::jw323:Prestatie/preceding-sibling::jw323:Prestatie/jw323:ProductReferentie/ijw:ReferentieNummer[text() = $vVorigReferentieNummer] |
-				ancestor-or-self::jw323:Client/preceding-sibling::jw323:Client/jw323:Prestaties/jw323:Prestatie/jw323:ProductReferentie/ijw:ReferentieNummer[text() = $vVorigReferentieNummer]
-				">
-			<xsl:call-template name="checkvalue">
-				<xsl:with-param name="pValues">!#</xsl:with-param>
-				<xsl:with-param name="pRule">TR316</xsl:with-param>
-				<xsl:with-param name="pExtra" select="$vVorigReferentie" />
-			</xsl:call-template>
-		</xsl:for-each>
-		
-		<xsl:for-each select="
-				ancestor-or-self::jw323:Prestatie/preceding-sibling::jw323:Prestatie/jw323:ProductReferentie/ijw:VorigReferentieNummer[text() = $vReferentieNummer] |
-				ancestor-or-self::jw323:Client/preceding-sibling::jw323:Client/jw323:Prestaties/jw323:Prestatie/jw323:ProductReferentie/ijw:VorigReferentieNummer[text() = $vReferentieNummer]
-				">
-			<xsl:call-template name="checkvalue">
-				<xsl:with-param name="pValues">!#</xsl:with-param>
-				<xsl:with-param name="pRule">TR316</xsl:with-param>
-				<xsl:with-param name="pExtra" select="$vReferentie" />
-			</xsl:call-template>
-		</xsl:for-each>
-		
-		<xsl:if test="$vReferentieNummer = $vVorigReferentieNummer">
-			<xsl:call-template name="addError">
-				<xsl:with-param name="pRule">TR316</xsl:with-param>
-				<xsl:with-param name="pElements" select="ijw:ReferentieNummer | ijw:VorigReferentieNummer" />
-			</xsl:call-template>
-		</xsl:if>
-	</xsl:template>
-
-</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_0/rules/TR317.xsl b/xslt-validatie/jw/3_0/rules/TR317.xsl
deleted file mode 100644
index f4553c9ba55fc99eeaca107d8cc8dc4adfeff35a..0000000000000000000000000000000000000000
--- a/xslt-validatie/jw/3_0/rules/TR317.xsl
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-	xmlns:ijw="http://www.istandaarden.nl/ijw/3_0/basisschema/schema"
-	xmlns:jw303="http://www.istandaarden.nl/ijw/3_0/jw303/schema"
-	xmlns:jw304="http://www.istandaarden.nl/ijw/3_0/jw304/schema"
-	>
-
-	<!-- iJw 3.0 TR317 version 2.2.8 (2021-01-25) -->
-
-	<xsl:import href="../common/basis.xsl"/>
-	<xsl:template match="*" mode="TR317"/>
-	<xsl:template match="*" mode="check">
-		<xsl:apply-templates select="*" mode="TR317"/>
-	</xsl:template>
-
-	<xsl:template match="jw303:IngediendeBedragPrestatie | jw304:IngediendeBedragPrestatie" mode="TR317">
-		<xsl:variable name="vBedrag" select="normalize-space(ijw:GeleverdVolume) * normalize-space(ijw:ProductTarief)" />
-		<xsl:call-template name="checkimplication">
-			<xsl:with-param name="pThis" select="ijw:BerekendBedrag/ijw:Bedrag" />
-			<xsl:with-param name="pValue1">*</xsl:with-param>
-			<xsl:with-param name="pOther" select="ijw:BerekendBedrag/ijw:Bedrag" />
-			<xsl:with-param name="pValue2"><xsl:call-template name="formatNumber"><xsl:with-param name="pValue" select="$vBedrag" /></xsl:call-template></xsl:with-param>
-			<xsl:with-param name="pExtra" select="ijw:GeleverdVolume | ijw:ProductTarief" />
-			<xsl:with-param name="pRule">TR317</xsl:with-param>
-		</xsl:call-template>
-	</xsl:template>
-
-</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_0/rules/TR319.xsl b/xslt-validatie/jw/3_0/rules/TR319.xsl
deleted file mode 100644
index a20f0f995289415ed2ae73f798b080a2b49fb13f..0000000000000000000000000000000000000000
--- a/xslt-validatie/jw/3_0/rules/TR319.xsl
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-                xmlns:ijw="http://www.istandaarden.nl/ijw/3_0/basisschema/schema"
-                xmlns:jw303="http://www.istandaarden.nl/ijw/3_0/jw303/schema"
-                xmlns:jw323="http://www.istandaarden.nl/ijw/3_0/jw323/schema"
->
-
-    <!-- iJw 3.0 TR319 version 2.2.8 (2021-01-25) -->
-
-    <xsl:import href="../common/basis.xsl"/>
-    <xsl:template match="*" mode="TR319"/>
-    <xsl:template match="*" mode="check">
-        <xsl:apply-templates select="*" mode="TR319"/>
-    </xsl:template>
-
-    <xsl:template match="jw303:Prestatie" mode="TR319">
-        <xsl:call-template name="checkafter">
-            <xsl:with-param name="pThis"
-                            select="ancestor-or-self::jw303:Bericht/jw303:Header/jw303:DeclaratieFactuurIdentificatie/ijw:DeclaratiePeriode/ijw:Einddatum"/>
-            <xsl:with-param name="pOther" select="jw303:ProductPeriode/ijw:Begindatum"/>
-            <xsl:with-param name="pRule">TR319</xsl:with-param>
-        </xsl:call-template>
-        <xsl:call-template name="checkafter">
-            <xsl:with-param name="pThis"
-                            select="ancestor-or-self::jw303:Bericht/jw303:Header/jw303:DeclaratieFactuurIdentificatie/ijw:DeclaratiePeriode/ijw:Einddatum"/>
-            <xsl:with-param name="pOther" select="jw303:ProductPeriode/ijw:Einddatum"/>
-            <xsl:with-param name="pRule">TR319</xsl:with-param>
-        </xsl:call-template>
-    </xsl:template>
-
-    <xsl:template match="jw323:Prestatie" mode="TR319">
-        <xsl:call-template name="checkafter">
-            <xsl:with-param name="pThis"
-                            select="ancestor-or-self::jw323:Declaratie/jw323:DeclaratiePeriode/ijw:Einddatum"/>
-            <xsl:with-param name="pOther" select="jw323:ProductPeriode/ijw:Begindatum"/>
-            <xsl:with-param name="pRule">TR319</xsl:with-param>
-        </xsl:call-template>
-        <xsl:call-template name="checkafter">
-            <xsl:with-param name="pThis"
-                            select="ancestor-or-self::jw323:Declaratie/jw323:DeclaratiePeriode/ijw:Einddatum"/>
-            <xsl:with-param name="pOther" select="jw323:ProductPeriode/ijw:Einddatum"/>
-            <xsl:with-param name="pRule">TR319</xsl:with-param>
-        </xsl:call-template>
-    </xsl:template>
-
-</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_0/rules/TR320.xsl b/xslt-validatie/jw/3_0/rules/TR320.xsl
deleted file mode 100644
index a74269001b0039c5a7869b029f1d22b9d156f611..0000000000000000000000000000000000000000
--- a/xslt-validatie/jw/3_0/rules/TR320.xsl
+++ /dev/null
@@ -1,64 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-	xmlns:ijw="http://www.istandaarden.nl/ijw/3_0/basisschema/schema"
-	xmlns:jw304="http://www.istandaarden.nl/ijw/3_0/jw304/schema"
-	>
-
-	<!-- iJw 3.0 TR320 version 2.2.8 (2021-01-25) -->
-
-	<xsl:import href="../common/basis.xsl"/>
-	<xsl:template match="*" mode="TR320"/>
-	<xsl:template match="*" mode="check">
-		<xsl:apply-templates select="*" mode="TR320"/>
-	</xsl:template>
-
-	<xsl:template match="jw304:RetourBedragen" mode="TR320">
-		<!-- Bereken SaldoIngediendeBedragregel -->
-		<xsl:variable name="IngediendTotaalDebet" select="sum(ancestor-or-self::jw304:Bericht/jw304:Clienten/jw304:Client/jw304:Prestaties/jw304:Prestatie/jw304:IngediendeBedragPrestatie/ijw:DeclaratieFactuurBedrag[ijw:DebetCredit = 'D']/ijw:Bedrag)"/>
-		<xsl:variable name="IngediendTotaalCredit" select="sum(ancestor-or-self::jw304:Bericht/jw304:Clienten/jw304:Client/jw304:Prestaties/jw304:Prestatie/jw304:IngediendeBedragPrestatie/ijw:DeclaratieFactuurBedrag[ijw:DebetCredit = 'C']/ijw:Bedrag)"/>
-		<xsl:variable name="SaldoIngediendeBedragregel" select="$IngediendTotaalDebet - $IngediendTotaalCredit"/>
-
-		<!-- Bereken SaldoToegekendeBedragregel -->
-		<xsl:variable name="ToegekendTotaalDebet" select="sum(ancestor-or-self::jw304:Bericht/jw304:Clienten/jw304:Client/jw304:Prestaties/jw304:Prestatie/jw304:ToegekendeBedragPrestatie/ijw:ToegekendBedrag[ijw:DebetCredit = 'D']/ijw:Bedrag)"/>
-		<xsl:variable name="ToegekendTotaalCredit" select="sum(ancestor-or-self::jw304:Bericht/jw304:Clienten/jw304:Client/jw304:Prestaties/jw304:Prestatie/jw304:ToegekendeBedragPrestatie/ijw:ToegekendBedrag[ijw:DebetCredit = 'C']/ijw:Bedrag)"/>
-		<xsl:variable name="SaldoToegekendeBedragregel" select="$ToegekendTotaalDebet - $ToegekendTotaalCredit"/>
-
-		<!-- Bepaal verschil E: = SaldoIngediendeBedragregel minus SaldoToegekende bedragregel-->
-		<xsl:variable name="VerschilBedragregel" select="$SaldoIngediendeBedragregel - $SaldoToegekendeBedragregel"/>
-
-		<!-- Maak van ToegekendTotaalBedrag een negatief getal als ToegekendDebetCredit waarde C heeft -->
-		<xsl:variable name="ToegekendTotaalBedragDC">
-			<xsl:choose>
-				<xsl:when test="./ijw:ToegekendTotaalBedrag/ijw:DebetCredit/text() = 'C' ">
-					<xsl:value-of select='./ijw:ToegekendTotaalBedrag/ijw:TotaalBedrag/text() * -1'/>
-				</xsl:when>
-				<xsl:otherwise><xsl:value-of select='./ijw:ToegekendTotaalBedrag/ijw:TotaalBedrag/text()'/></xsl:otherwise>
-			</xsl:choose>
-		</xsl:variable>
-
-		<!-- Maak van IngediendTotaalBedrag een negatief getal als IngediendDebetCredit waarde C heeft -->
-		<xsl:variable name="IngediendTotaalBedragDC">
-			<xsl:choose>
-				<xsl:when test="./ijw:IngediendTotaalBedrag/ijw:DebetCredit/text() = 'C' ">
-					<xsl:value-of select='./ijw:IngediendTotaalBedrag/ijw:TotaalBedrag/text() * -1'/>
-				</xsl:when>
-				<xsl:otherwise><xsl:value-of select='./ijw:IngediendTotaalBedrag/ijw:TotaalBedrag/text()'/></xsl:otherwise>
-			</xsl:choose>
-		</xsl:variable>
-
-		<!-- Bepaal verschil F:= IngediendTotaalBedrag minus ToegekendTotaalBedrag-->
-		<xsl:variable name="VerschilHeaderTotalen" select="$IngediendTotaalBedragDC - $ToegekendTotaalBedragDC"/>
-
-		<!-- Controleren of verschil E overeenkomt met verschil F bedragen -->
-		<xsl:if test="count(ancestor-or-self::jw304:Bericht/jw304:Header/jw304:RetourCodes/*[local-name() = 'RetourCode'][text() != '0200' and text() != '8001']) = 0 and normalize-space($VerschilBedragregel) != normalize-space($VerschilHeaderTotalen)">
-			<xsl:call-template name="addError">
-				<xsl:with-param name="pRule">TR320</xsl:with-param>
-				<xsl:with-param name="pCode">0001</xsl:with-param>
-				<xsl:with-param name="pElements" select="
-					ijw:IngediendTotaalBedrag/ijw:TotaalBedrag | ijw:IngediendTotaalBedrag/ijw:DebetCredit |
-					ijw:ToegekendTotaalBedrag/ijw:TotaalBedrag | ijw:ToegekendTotaalBedrag/ijw:DebetCredit"/>
-			</xsl:call-template>
-		</xsl:if>
-	</xsl:template>
-
-</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_0/rules/TR335.xsl b/xslt-validatie/jw/3_0/rules/TR335.xsl
deleted file mode 100644
index 63f51fbaec72b95879e92e505d252e99c6a4689b..0000000000000000000000000000000000000000
--- a/xslt-validatie/jw/3_0/rules/TR335.xsl
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-                xmlns:ijw="http://www.istandaarden.nl/ijw/3_0/basisschema/schema"
-                xmlns:jw323="http://www.istandaarden.nl/ijw/3_0/jw323/schema"
->
-
-    <!-- iJw 3.0 TR335 version 2.2.8 (2021-01-25) -->
-
-    <xsl:import href="../common/basis.xsl"/>
-    <xsl:template match="*" mode="TR335"/>
-    <xsl:template match="*" mode="check">
-        <xsl:apply-templates select="*" mode="TR335"/>
-    </xsl:template>
-
-    <xsl:template match="jw323:Prestatie/jw323:ProductPeriode/ijw:Einddatum" mode="TR335">
-        <xsl:call-template name="checkDateRelation">
-            <xsl:with-param name="pDate" select="ancestor-or-self::jw323:Declaratie/jw323:DeclaratieDagtekening"/>
-			<xsl:with-param name="pRelation">monthsAfter</xsl:with-param>
-            <xsl:with-param name="pExtra">-60</xsl:with-param>
-            <xsl:with-param name="pRule">TR335</xsl:with-param>
-        </xsl:call-template>
-    </xsl:template>
-
-</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_0/rules/TR345.xsl b/xslt-validatie/jw/3_0/rules/TR345.xsl
deleted file mode 100644
index a7711a0edd0c8b370eba01a493d8643093c004dd..0000000000000000000000000000000000000000
--- a/xslt-validatie/jw/3_0/rules/TR345.xsl
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-                xmlns:ijw="http://www.istandaarden.nl/ijw/3_0/basisschema/schema"
-                xmlns:jw323="http://www.istandaarden.nl/ijw/3_0/jw323/schema"
->
-
-    <!-- iJw 3.0 TR345 version 2.2.8 (2021-01-25) -->
-
-    <xsl:import href="../common/basis.xsl"/>
-    <xsl:template match="*" mode="TR345"/>
-    <xsl:template match="*" mode="check">
-        <xsl:apply-templates select="*" mode="TR345"/>
-    </xsl:template>
-
-    <xsl:template match="jw323:Prestatie[jw323:Eenheid/text() = '83']" mode="TR345">
-        <xsl:call-template name="checkRelation">
-            <xsl:with-param name="pThis" select="jw323:GeleverdVolume" />
-            <xsl:with-param name="pOther" select="jw323:IngediendBedrag/ijw:Bedrag"/>
-            <xsl:with-param name="pExtra" select="nonExistantNode" />
-            <xsl:with-param name="pRelation">equals</xsl:with-param>
-            <xsl:with-param name="pRule">TR345</xsl:with-param>
-        </xsl:call-template>
-    </xsl:template>
-
-</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_0/rules/TR352.xsl b/xslt-validatie/jw/3_0/rules/TR352.xsl
deleted file mode 100644
index a456e8e889b715805ab0217cb7f0e02b297243cf..0000000000000000000000000000000000000000
--- a/xslt-validatie/jw/3_0/rules/TR352.xsl
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-                xmlns:ijw="http://www.istandaarden.nl/ijw/3_0/basisschema/schema"
-                xmlns:jw317="http://www.istandaarden.nl/ijw/3_0/jw317/schema"
->
-
-    <!-- iJw 3.0 TR352 version 2.2.8 (2021-01-25) -->
-
-    <xsl:import href="../common/basis.xsl"/>
-    <xsl:template match="*" mode="TR352"/>
-    <xsl:template match="*" mode="check">
-        <xsl:apply-templates select="*" mode="TR352"/>
-    </xsl:template>
-
-    <xsl:template match="jw317:Verzoek" mode="TR352">
-        <xsl:call-template name="checkvalue">
-            <xsl:with-param name="pThis" select="jw317:OngewijzigdeProducten/jw317:OngewijzigdProduct | jw317:TeWijzigenProducten/jw317:TeWijzigenProduct" />
-            <xsl:with-param name="pValues">#</xsl:with-param>
-            <xsl:with-param name="pExtra" select="." />
-            <xsl:with-param name="pRule">TR352</xsl:with-param>
-        </xsl:call-template>
-    </xsl:template>
-
-</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_0/rules/TR353.xsl b/xslt-validatie/jw/3_0/rules/TR353.xsl
deleted file mode 100644
index a2a6c1a28fae3b802a3e95736cd10d384fe99981..0000000000000000000000000000000000000000
--- a/xslt-validatie/jw/3_0/rules/TR353.xsl
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-                xmlns:ijw="http://www.istandaarden.nl/ijw/3_0/basisschema/schema"
-                xmlns:jw317="http://www.istandaarden.nl/ijw/3_0/jw317/schema"
->
-
-    <!-- iJw 3.0 TR353 version 2.2.8 (2021-01-25) -->
-
-    <xsl:import href="../common/basis.xsl"/>
-    <xsl:template match="*" mode="TR353"/>
-    <xsl:template match="*" mode="check">
-        <xsl:apply-templates select="*" mode="TR353"/>
-    </xsl:template>
-
-    <xsl:template match="jw317:Verzoek" mode="TR353">
-        <xsl:call-template name="checkvalue">
-            <xsl:with-param name="pThis" select="jw317:TeWijzigenProducten/jw317:TeWijzigenProduct | jw317:NieuweProducten/jw317:NieuwProduct" />
-            <xsl:with-param name="pValues">#</xsl:with-param>
-            <xsl:with-param name="pExtra" select="." />
-            <xsl:with-param name="pRule">TR353</xsl:with-param>
-        </xsl:call-template>
-    </xsl:template>
-
-</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_0/rules/TR358.xsl b/xslt-validatie/jw/3_0/rules/TR358.xsl
deleted file mode 100644
index e9e9edb3ca7d709e22a731b6adf683f93fdcbfe1..0000000000000000000000000000000000000000
--- a/xslt-validatie/jw/3_0/rules/TR358.xsl
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-	xmlns:ijw="http://www.istandaarden.nl/ijw/3_0/basisschema/schema"
-	xmlns:jw323="http://www.istandaarden.nl/ijw/3_0/jw323/schema"
-	>
-
-	<!-- iJw 3.0 TR358 version 2.2.8 (2021-01-25) -->
-
-	<xsl:import href="../common/basis.xsl"/>
-	<xsl:template match="*" mode="TR358"/>
-	<xsl:template match="*" mode="check">
-		<xsl:apply-templates select="*" mode="TR358"/>
-	</xsl:template>
-
-	<xsl:template match="jw323:TotaalIngediendBedrag" mode="TR358">
-		<xsl:variable name="vTotaalDebet"
-			select="sum(ancestor-or-self::jw323:Declaratie/jw323:Clienten/jw323:Client/jw323:Prestaties/jw323:Prestatie/jw323:IngediendBedrag[ijw:DebetCredit/text() = 'D']/ijw:Bedrag)"/>
-		<xsl:variable name="vTotaalCredit"
-			select="sum(ancestor-or-self::jw323:Declaratie/jw323:Clienten/jw323:Client/jw323:Prestaties/jw323:Prestatie/jw323:IngediendBedrag[ijw:DebetCredit/text() = 'C']/ijw:Bedrag)"/>
-
-		<xsl:variable name="vSaldo" select="$vTotaalDebet - $vTotaalCredit"/>
-
-		<!-- Controleren of BtwTotaalBedrag overeenkomt met saldo BtwBedragen -->
-		<xsl:call-template name="checkimplication">
-			<xsl:with-param name="pThis" select="ijw:DebetCredit" />
-			<xsl:with-param name="pValue1">D</xsl:with-param>
-			<xsl:with-param name="pOther" select="ijw:TotaalBedrag" />
-			<xsl:with-param name="pValue2"><xsl:call-template name="formatNumber"><xsl:with-param name="pValue" select="$vSaldo" /></xsl:call-template></xsl:with-param>
-			<xsl:with-param name="pExtra" select="ancestor-or-self::jw323:Declaratie/jw323:Clienten/jw323:Client/jw323:Prestaties/jw323:Prestatie/jw323:IngediendBedrag"/>
-			<xsl:with-param name="pRule">TR358</xsl:with-param>
-		</xsl:call-template>
-
-		<!-- In het geval van Credit moet het bedrag negatief worden gemaakt -->
-		<xsl:call-template name="checkimplication">
-			<xsl:with-param name="pThis" select="ijw:DebetCredit" />
-			<xsl:with-param name="pValue1">C</xsl:with-param>
-			<xsl:with-param name="pOther" select="ijw:TotaalBedrag" />
-			<xsl:with-param name="pValue2"><xsl:call-template name="formatNumber"><xsl:with-param name="pValue" select="0 - 1 * $vSaldo" /></xsl:call-template></xsl:with-param>
-			<xsl:with-param name="pExtra" select="ancestor-or-self::jw323:Declaratie/jw323:Clienten/jw323:Client/jw323:Prestaties/jw323:Prestatie/jw323:IngediendBedrag"/>
-			<xsl:with-param name="pRule">TR358</xsl:with-param>
-		</xsl:call-template>
-	</xsl:template>
-
-</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_0/JW301.xsl b/xslt-validatie/jw/3_1/JW301.xsl
similarity index 73%
rename from xslt-validatie/jw/3_0/JW301.xsl
rename to xslt-validatie/jw/3_1/JW301.xsl
index ea15b7377e74be40ffee4873b6d1aa2ec1a72d1d..442cb00332274fb8436da741385f269a2daddc22 100644
--- a/xslt-validatie/jw/3_0/JW301.xsl
+++ b/xslt-validatie/jw/3_1/JW301.xsl
@@ -1,8 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:vr="http://www.istandaarden.nl/validatie/1_1/rapport/schema">
-	<!-- iJw 3.0 JW301 (2021-01-25) -->
+	<!-- iJw 3.1 JW301 (2021-09-29) -->
 
 	<xsl:import href="common/basis.xsl" />
+	<xsl:include href="condities/CD005.xsl" />
 	<xsl:include href="condities/CD007.xsl" />
 	<xsl:include href="condities/CD009.xsl" />
 	<xsl:include href="condities/CD025.xsl" />
@@ -14,24 +15,26 @@
 	<xsl:include href="condities/CD078.xsl" />
 	<xsl:include href="condities/CD079.xsl" />
 	<xsl:include href="condities/CD080.xsl" />
-	<xsl:include href="condities/CD081.xsl" />
 	<xsl:include href="constraints/CS002.xsl" />
 	<xsl:include href="constraints/CS003.xsl" />
-	<xsl:include href="constraints/CS023.xsl" />
 	<xsl:include href="constraints/CS050.xsl" />
 	<xsl:include href="constraints/CS089.xsl" />
-	<xsl:include href="constraints/CS104.xsl" />
+	<xsl:include href="constraints/CS139.xsl" />
 	<xsl:include href="constraints/CS318.xsl" />
-	<xsl:include href="constraints/CS323.xsl" />
-	<xsl:include href="constraints/CS330.xsl" />
+	<xsl:include href="constraints/CS325.xsl" />
+	<xsl:include href="constraints/CS335.xsl" />
+	<xsl:include href="constraints/CS336.xsl" />
+	<xsl:include href="constraints/CS338.xsl" />
 	<xsl:include href="rules/TR002.xsl" />
 	<xsl:include href="rules/TR006.xsl" />
 	<xsl:include href="rules/TR061.xsl" />
-	<xsl:include href="rules/TR097.xsl" />
 	<xsl:include href="rules/TR101.xsl" />
+	<xsl:include href="rules/TR134.xsl" />
 	<xsl:include href="rules/TR302.xsl" />
+	<xsl:include href="rules/TR378.xsl" />
 
 	<xsl:template match="*" mode="check" priority="0">
+		<xsl:apply-templates select="." mode="CD005"/>
 		<xsl:apply-templates select="." mode="CD007"/>
 		<xsl:apply-templates select="." mode="CD009"/>
 		<xsl:apply-templates select="." mode="CD025"/>
@@ -43,29 +46,30 @@
 		<xsl:apply-templates select="." mode="CD078"/>
 		<xsl:apply-templates select="." mode="CD079"/>
 		<xsl:apply-templates select="." mode="CD080"/>
-		<xsl:apply-templates select="." mode="CD081"/>
 		<xsl:apply-templates select="." mode="CS002"/>
 		<xsl:apply-templates select="." mode="CS003"/>
-		<xsl:apply-templates select="." mode="CS023"/>
 		<xsl:apply-templates select="." mode="CS050"/>
 		<xsl:apply-templates select="." mode="CS089"/>
-		<xsl:apply-templates select="." mode="CS104"/>
+		<xsl:apply-templates select="." mode="CS139"/>
 		<xsl:apply-templates select="." mode="CS318"/>
-		<xsl:apply-templates select="." mode="CS323"/>
-		<xsl:apply-templates select="." mode="CS330"/>
+		<xsl:apply-templates select="." mode="CS325"/>
+		<xsl:apply-templates select="." mode="CS335"/>
+		<xsl:apply-templates select="." mode="CS336"/>
+		<xsl:apply-templates select="." mode="CS338"/>
 		<xsl:apply-templates select="." mode="TR002"/>
 		<xsl:apply-templates select="." mode="TR006"/>
 		<xsl:apply-templates select="." mode="TR061"/>
-		<xsl:apply-templates select="." mode="TR097"/>
 		<xsl:apply-templates select="." mode="TR101"/>
+		<xsl:apply-templates select="." mode="TR134"/>
 		<xsl:apply-templates select="." mode="TR302"/>
+		<xsl:apply-templates select="." mode="TR378"/>
 	</xsl:template>
 
 	<xsl:variable name="versionInfo">
 		<vr:XSLTHeader>
 			<vr:Standaard>ijw</vr:Standaard>
-			<vr:StandaardRelease>3.0</vr:StandaardRelease>
-			<vr:XSLTVersie>2.2.8</vr:XSLTVersie>
+			<vr:StandaardRelease>3.1</vr:StandaardRelease>
+			<vr:XSLTVersie>2.4.3</vr:XSLTVersie>
 		</vr:XSLTHeader>
 	</xsl:variable>
 </xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_0/JW305.xsl b/xslt-validatie/jw/3_1/JW305.xsl
similarity index 66%
rename from xslt-validatie/jw/3_0/JW305.xsl
rename to xslt-validatie/jw/3_1/JW305.xsl
index d186af24d68f7d5eebf74c6c199ce71d9489dbe8..017c6cb2d40a5f5155c5cba3beb4baba5b6441c0 100644
--- a/xslt-validatie/jw/3_0/JW305.xsl
+++ b/xslt-validatie/jw/3_1/JW305.xsl
@@ -1,39 +1,43 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:vr="http://www.istandaarden.nl/validatie/1_1/rapport/schema">
-	<!-- iJw 3.0 JW305 (2021-01-25) -->
+	<!-- iJw 3.1 JW305 (2021-09-29) -->
 
 	<xsl:import href="common/basis.xsl" />
+	<xsl:include href="condities/CD005.xsl" />
 	<xsl:include href="condities/CD007.xsl" />
 	<xsl:include href="condities/CD025.xsl" />
 	<xsl:include href="constraints/CS002.xsl" />
-	<xsl:include href="constraints/CS023.xsl" />
 	<xsl:include href="constraints/CS050.xsl" />
 	<xsl:include href="constraints/CS058.xsl" />
 	<xsl:include href="constraints/CS089.xsl" />
-	<xsl:include href="constraints/CS323.xsl" />
+	<xsl:include href="constraints/CS139.xsl" />
+	<xsl:include href="constraints/CS325.xsl" />
 	<xsl:include href="rules/TR002.xsl" />
-	<xsl:include href="rules/TR097.xsl" />
 	<xsl:include href="rules/TR101.xsl" />
+	<xsl:include href="rules/TR134.xsl" />
+	<xsl:include href="rules/TR378.xsl" />
 
 	<xsl:template match="*" mode="check" priority="0">
+		<xsl:apply-templates select="." mode="CD005"/>
 		<xsl:apply-templates select="." mode="CD007"/>
 		<xsl:apply-templates select="." mode="CD025"/>
 		<xsl:apply-templates select="." mode="CS002"/>
-		<xsl:apply-templates select="." mode="CS023"/>
 		<xsl:apply-templates select="." mode="CS050"/>
 		<xsl:apply-templates select="." mode="CS058"/>
 		<xsl:apply-templates select="." mode="CS089"/>
-		<xsl:apply-templates select="." mode="CS323"/>
+		<xsl:apply-templates select="." mode="CS139"/>
+		<xsl:apply-templates select="." mode="CS325"/>
 		<xsl:apply-templates select="." mode="TR002"/>
-		<xsl:apply-templates select="." mode="TR097"/>
 		<xsl:apply-templates select="." mode="TR101"/>
+		<xsl:apply-templates select="." mode="TR134"/>
+		<xsl:apply-templates select="." mode="TR378"/>
 	</xsl:template>
 
 	<xsl:variable name="versionInfo">
 		<vr:XSLTHeader>
 			<vr:Standaard>ijw</vr:Standaard>
-			<vr:StandaardRelease>3.0</vr:StandaardRelease>
-			<vr:XSLTVersie>2.2.8</vr:XSLTVersie>
+			<vr:StandaardRelease>3.1</vr:StandaardRelease>
+			<vr:XSLTVersie>2.4.3</vr:XSLTVersie>
 		</vr:XSLTHeader>
 	</xsl:variable>
 </xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_0/JW307.xsl b/xslt-validatie/jw/3_1/JW307.xsl
similarity index 68%
rename from xslt-validatie/jw/3_0/JW307.xsl
rename to xslt-validatie/jw/3_1/JW307.xsl
index 09ee56fd34ab8aa97dcee0ccf704b04634a8a557..93c8bbb975e8fdd901836e8ec2f326c5515d1c38 100644
--- a/xslt-validatie/jw/3_0/JW307.xsl
+++ b/xslt-validatie/jw/3_1/JW307.xsl
@@ -1,41 +1,45 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:vr="http://www.istandaarden.nl/validatie/1_1/rapport/schema">
-	<!-- iJw 3.0 JW307 (2021-01-25) -->
+	<!-- iJw 3.1 JW307 (2021-09-29) -->
 
 	<xsl:import href="common/basis.xsl" />
+	<xsl:include href="condities/CD005.xsl" />
 	<xsl:include href="condities/CD007.xsl" />
 	<xsl:include href="condities/CD025.xsl" />
 	<xsl:include href="constraints/CS002.xsl" />
-	<xsl:include href="constraints/CS023.xsl" />
 	<xsl:include href="constraints/CS050.xsl" />
 	<xsl:include href="constraints/CS058.xsl" />
 	<xsl:include href="constraints/CS089.xsl" />
-	<xsl:include href="constraints/CS323.xsl" />
+	<xsl:include href="constraints/CS139.xsl" />
+	<xsl:include href="constraints/CS325.xsl" />
 	<xsl:include href="rules/TR002.xsl" />
 	<xsl:include href="rules/TR018.xsl" />
-	<xsl:include href="rules/TR097.xsl" />
 	<xsl:include href="rules/TR101.xsl" />
+	<xsl:include href="rules/TR134.xsl" />
+	<xsl:include href="rules/TR378.xsl" />
 
 	<xsl:template match="*" mode="check" priority="0">
+		<xsl:apply-templates select="." mode="CD005"/>
 		<xsl:apply-templates select="." mode="CD007"/>
 		<xsl:apply-templates select="." mode="CD025"/>
 		<xsl:apply-templates select="." mode="CS002"/>
-		<xsl:apply-templates select="." mode="CS023"/>
 		<xsl:apply-templates select="." mode="CS050"/>
 		<xsl:apply-templates select="." mode="CS058"/>
 		<xsl:apply-templates select="." mode="CS089"/>
-		<xsl:apply-templates select="." mode="CS323"/>
+		<xsl:apply-templates select="." mode="CS139"/>
+		<xsl:apply-templates select="." mode="CS325"/>
 		<xsl:apply-templates select="." mode="TR002"/>
 		<xsl:apply-templates select="." mode="TR018"/>
-		<xsl:apply-templates select="." mode="TR097"/>
 		<xsl:apply-templates select="." mode="TR101"/>
+		<xsl:apply-templates select="." mode="TR134"/>
+		<xsl:apply-templates select="." mode="TR378"/>
 	</xsl:template>
 
 	<xsl:variable name="versionInfo">
 		<vr:XSLTHeader>
 			<vr:Standaard>ijw</vr:Standaard>
-			<vr:StandaardRelease>3.0</vr:StandaardRelease>
-			<vr:XSLTVersie>2.2.8</vr:XSLTVersie>
+			<vr:StandaardRelease>3.1</vr:StandaardRelease>
+			<vr:XSLTVersie>2.4.3</vr:XSLTVersie>
 		</vr:XSLTHeader>
 	</xsl:variable>
 </xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_0/JW315.xsl b/xslt-validatie/jw/3_1/JW315.xsl
similarity index 56%
rename from xslt-validatie/jw/3_0/JW315.xsl
rename to xslt-validatie/jw/3_1/JW315.xsl
index 85964d72b3c04ff02238ff4ad7d674a74d2104d9..04f0e6bb2fa1b424c8713bf9d6d69bdf5548f8c7 100644
--- a/xslt-validatie/jw/3_0/JW315.xsl
+++ b/xslt-validatie/jw/3_1/JW315.xsl
@@ -1,8 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:vr="http://www.istandaarden.nl/validatie/1_1/rapport/schema">
-	<!-- iJw 3.0 JW315 (2021-01-25) -->
+	<!-- iJw 3.1 JW315 (2021-09-29) -->
 
 	<xsl:import href="common/basis.xsl" />
+	<xsl:include href="condities/CD005.xsl" />
 	<xsl:include href="condities/CD007.xsl" />
 	<xsl:include href="condities/CD025.xsl" />
 	<xsl:include href="condities/CD041.xsl" />
@@ -10,22 +11,28 @@
 	<xsl:include href="condities/CD066.xsl" />
 	<xsl:include href="condities/CD067.xsl" />
 	<xsl:include href="condities/CD068.xsl" />
+	<xsl:include href="condities/CD075.xsl" />
 	<xsl:include href="condities/CD076.xsl" />
-	<xsl:include href="condities/CD080.xsl" />
-	<xsl:include href="condities/CD081.xsl" />
+	<xsl:include href="condities/CD077.xsl" />
+	<xsl:include href="condities/CD078.xsl" />
+	<xsl:include href="condities/CD079.xsl" />
+	<xsl:include href="condities/CD095.xsl" />
 	<xsl:include href="constraints/CS002.xsl" />
 	<xsl:include href="constraints/CS003.xsl" />
-	<xsl:include href="constraints/CS023.xsl" />
 	<xsl:include href="constraints/CS050.xsl" />
 	<xsl:include href="constraints/CS089.xsl" />
-	<xsl:include href="constraints/CS104.xsl" />
-	<xsl:include href="constraints/CS323.xsl" />
-	<xsl:include href="constraints/CS330.xsl" />
+	<xsl:include href="constraints/CS139.xsl" />
+	<xsl:include href="constraints/CS325.xsl" />
+	<xsl:include href="constraints/CS343.xsl" />
 	<xsl:include href="rules/TR002.xsl" />
-	<xsl:include href="rules/TR097.xsl" />
 	<xsl:include href="rules/TR101.xsl" />
+	<xsl:include href="rules/TR134.xsl" />
+	<xsl:include href="rules/TR378.xsl" />
+	<xsl:include href="rules/TR383.xsl" />
+	<xsl:include href="rules/TR386.xsl" />
 
 	<xsl:template match="*" mode="check" priority="0">
+		<xsl:apply-templates select="." mode="CD005"/>
 		<xsl:apply-templates select="." mode="CD007"/>
 		<xsl:apply-templates select="." mode="CD025"/>
 		<xsl:apply-templates select="." mode="CD041"/>
@@ -33,27 +40,32 @@
 		<xsl:apply-templates select="." mode="CD066"/>
 		<xsl:apply-templates select="." mode="CD067"/>
 		<xsl:apply-templates select="." mode="CD068"/>
+		<xsl:apply-templates select="." mode="CD075"/>
 		<xsl:apply-templates select="." mode="CD076"/>
-		<xsl:apply-templates select="." mode="CD080"/>
-		<xsl:apply-templates select="." mode="CD081"/>
+		<xsl:apply-templates select="." mode="CD077"/>
+		<xsl:apply-templates select="." mode="CD078"/>
+		<xsl:apply-templates select="." mode="CD079"/>
+		<xsl:apply-templates select="." mode="CD095"/>
 		<xsl:apply-templates select="." mode="CS002"/>
 		<xsl:apply-templates select="." mode="CS003"/>
-		<xsl:apply-templates select="." mode="CS023"/>
 		<xsl:apply-templates select="." mode="CS050"/>
 		<xsl:apply-templates select="." mode="CS089"/>
-		<xsl:apply-templates select="." mode="CS104"/>
-		<xsl:apply-templates select="." mode="CS323"/>
-		<xsl:apply-templates select="." mode="CS330"/>
+		<xsl:apply-templates select="." mode="CS139"/>
+		<xsl:apply-templates select="." mode="CS325"/>
+		<xsl:apply-templates select="." mode="CS343"/>
 		<xsl:apply-templates select="." mode="TR002"/>
-		<xsl:apply-templates select="." mode="TR097"/>
 		<xsl:apply-templates select="." mode="TR101"/>
+		<xsl:apply-templates select="." mode="TR134"/>
+		<xsl:apply-templates select="." mode="TR378"/>
+		<xsl:apply-templates select="." mode="TR383"/>
+		<xsl:apply-templates select="." mode="TR386"/>
 	</xsl:template>
 
 	<xsl:variable name="versionInfo">
 		<vr:XSLTHeader>
 			<vr:Standaard>ijw</vr:Standaard>
-			<vr:StandaardRelease>3.0</vr:StandaardRelease>
-			<vr:XSLTVersie>2.2.8</vr:XSLTVersie>
+			<vr:StandaardRelease>3.1</vr:StandaardRelease>
+			<vr:XSLTVersie>2.4.3</vr:XSLTVersie>
 		</vr:XSLTHeader>
 	</xsl:variable>
 </xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_0/JW317.xsl b/xslt-validatie/jw/3_1/JW317.xsl
similarity index 52%
rename from xslt-validatie/jw/3_0/JW317.xsl
rename to xslt-validatie/jw/3_1/JW317.xsl
index a2670c63e728c1fdd73c5b8e5e03f773c26e6ce4..c14ee697804309a7b8e3878210375449c2bd10ce 100644
--- a/xslt-validatie/jw/3_0/JW317.xsl
+++ b/xslt-validatie/jw/3_1/JW317.xsl
@@ -1,53 +1,65 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:vr="http://www.istandaarden.nl/validatie/1_1/rapport/schema">
-	<!-- iJw 3.0 JW317 (2021-01-25) -->
+	<!-- iJw 3.1 JW317 (2021-09-29) -->
 
 	<xsl:import href="common/basis.xsl" />
+	<xsl:include href="condities/CD005.xsl" />
+	<xsl:include href="condities/CD007.xsl" />
+	<xsl:include href="condities/CD025.xsl" />
+	<xsl:include href="condities/CD041.xsl" />
 	<xsl:include href="condities/CD075.xsl" />
 	<xsl:include href="condities/CD076.xsl" />
 	<xsl:include href="condities/CD077.xsl" />
 	<xsl:include href="condities/CD078.xsl" />
 	<xsl:include href="condities/CD079.xsl" />
-	<xsl:include href="condities/CD080.xsl" />
-	<xsl:include href="condities/CD081.xsl" />
+	<xsl:include href="condities/CD096.xsl" />
 	<xsl:include href="constraints/CS002.xsl" />
 	<xsl:include href="constraints/CS003.xsl" />
-	<xsl:include href="constraints/CS102.xsl" />
-	<xsl:include href="constraints/CS104.xsl" />
-	<xsl:include href="constraints/CS323.xsl" />
-	<xsl:include href="constraints/CS330.xsl" />
+	<xsl:include href="constraints/CS050.xsl" />
+	<xsl:include href="constraints/CS089.xsl" />
+	<xsl:include href="constraints/CS139.xsl" />
+	<xsl:include href="constraints/CS325.xsl" />
+	<xsl:include href="constraints/CS338.xsl" />
 	<xsl:include href="rules/TR002.xsl" />
-	<xsl:include href="rules/TR097.xsl" />
 	<xsl:include href="rules/TR101.xsl" />
 	<xsl:include href="rules/TR352.xsl" />
 	<xsl:include href="rules/TR353.xsl" />
+	<xsl:include href="rules/TR378.xsl" />
+	<xsl:include href="rules/TR380.xsl" />
+	<xsl:include href="rules/TR410.xsl" />
 
 	<xsl:template match="*" mode="check" priority="0">
+		<xsl:apply-templates select="." mode="CD005"/>
+		<xsl:apply-templates select="." mode="CD007"/>
+		<xsl:apply-templates select="." mode="CD025"/>
+		<xsl:apply-templates select="." mode="CD041"/>
 		<xsl:apply-templates select="." mode="CD075"/>
 		<xsl:apply-templates select="." mode="CD076"/>
 		<xsl:apply-templates select="." mode="CD077"/>
 		<xsl:apply-templates select="." mode="CD078"/>
 		<xsl:apply-templates select="." mode="CD079"/>
-		<xsl:apply-templates select="." mode="CD080"/>
-		<xsl:apply-templates select="." mode="CD081"/>
+		<xsl:apply-templates select="." mode="CD096"/>
 		<xsl:apply-templates select="." mode="CS002"/>
 		<xsl:apply-templates select="." mode="CS003"/>
-		<xsl:apply-templates select="." mode="CS102"/>
-		<xsl:apply-templates select="." mode="CS104"/>
-		<xsl:apply-templates select="." mode="CS323"/>
-		<xsl:apply-templates select="." mode="CS330"/>
+		<xsl:apply-templates select="." mode="CS050"/>
+		<xsl:apply-templates select="." mode="CS089"/>
+		<xsl:apply-templates select="." mode="CS139"/>
+		<xsl:apply-templates select="." mode="CS325"/>
+		<xsl:apply-templates select="." mode="CS338"/>
 		<xsl:apply-templates select="." mode="TR002"/>
-		<xsl:apply-templates select="." mode="TR097"/>
 		<xsl:apply-templates select="." mode="TR101"/>
 		<xsl:apply-templates select="." mode="TR352"/>
 		<xsl:apply-templates select="." mode="TR353"/>
+		<xsl:apply-templates select="." mode="TR378"/>
+		<xsl:apply-templates select="." mode="TR380"/>
+		<xsl:apply-templates select="." mode="TR410"/>
 	</xsl:template>
 
 	<xsl:variable name="versionInfo">
 		<vr:XSLTHeader>
 			<vr:Standaard>ijw</vr:Standaard>
-			<vr:StandaardRelease>3.0</vr:StandaardRelease>
-			<vr:XSLTVersie>2.2.8</vr:XSLTVersie>
+			<vr:StandaardRelease>3.1</vr:StandaardRelease>
+			<vr:XSLTVersie>2.4.3</vr:XSLTVersie>
 		</vr:XSLTHeader>
 	</xsl:variable>
 </xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_1/JW319.xsl b/xslt-validatie/jw/3_1/JW319.xsl
new file mode 100644
index 0000000000000000000000000000000000000000..205e789cdd222b035f491ae3578496a0ce71e7ec
--- /dev/null
+++ b/xslt-validatie/jw/3_1/JW319.xsl
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:vr="http://www.istandaarden.nl/validatie/1_1/rapport/schema">
+	<!-- iJw 3.1 JW319 (2021-09-29) -->
+
+	<xsl:import href="common/basis.xsl" />
+	<xsl:include href="condities/CD005.xsl" />
+	<xsl:include href="condities/CD007.xsl" />
+	<xsl:include href="condities/CD025.xsl" />
+	<xsl:include href="condities/CD085.xsl" />
+	<xsl:include href="condities/CD086.xsl" />
+	<xsl:include href="constraints/CS002.xsl" />
+	<xsl:include href="constraints/CS050.xsl" />
+	<xsl:include href="constraints/CS089.xsl" />
+	<xsl:include href="constraints/CS139.xsl" />
+	<xsl:include href="constraints/CS325.xsl" />
+	<xsl:include href="rules/TR002.xsl" />
+	<xsl:include href="rules/TR101.xsl" />
+	<xsl:include href="rules/TR377.xsl" />
+	<xsl:include href="rules/TR378.xsl" />
+	<xsl:include href="rules/TR409.xsl" />
+
+	<xsl:template match="*" mode="check" priority="0">
+		<xsl:apply-templates select="." mode="CD005"/>
+		<xsl:apply-templates select="." mode="CD007"/>
+		<xsl:apply-templates select="." mode="CD025"/>
+		<xsl:apply-templates select="." mode="CD085"/>
+		<xsl:apply-templates select="." mode="CD086"/>
+		<xsl:apply-templates select="." mode="CS002"/>
+		<xsl:apply-templates select="." mode="CS050"/>
+		<xsl:apply-templates select="." mode="CS089"/>
+		<xsl:apply-templates select="." mode="CS139"/>
+		<xsl:apply-templates select="." mode="CS325"/>
+		<xsl:apply-templates select="." mode="TR002"/>
+		<xsl:apply-templates select="." mode="TR101"/>
+		<xsl:apply-templates select="." mode="TR377"/>
+		<xsl:apply-templates select="." mode="TR378"/>
+		<xsl:apply-templates select="." mode="TR409"/>
+	</xsl:template>
+
+	<xsl:variable name="versionInfo">
+		<vr:XSLTHeader>
+			<vr:Standaard>ijw</vr:Standaard>
+			<vr:StandaardRelease>3.1</vr:StandaardRelease>
+			<vr:XSLTVersie>2.4.3</vr:XSLTVersie>
+		</vr:XSLTHeader>
+	</xsl:variable>
+</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_0/JW323.xsl b/xslt-validatie/jw/3_1/JW323.xsl
similarity index 55%
rename from xslt-validatie/jw/3_0/JW323.xsl
rename to xslt-validatie/jw/3_1/JW323.xsl
index 17a9574c38fe7673f0b2511a680a7d905aa619af..854dc01bb20078aefc8750c251f132d8291b2658 100644
--- a/xslt-validatie/jw/3_0/JW323.xsl
+++ b/xslt-validatie/jw/3_1/JW323.xsl
@@ -1,55 +1,65 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:vr="http://www.istandaarden.nl/validatie/1_1/rapport/schema">
-	<!-- iJw 3.0 JW323 (2021-01-25) -->
+	<!-- iJw 3.1 JW323 (2021-09-29) -->
 
 	<xsl:import href="common/basis.xsl" />
+	<xsl:include href="condities/CD005.xsl" />
+	<xsl:include href="condities/CD007.xsl" />
+	<xsl:include href="condities/CD025.xsl" />
 	<xsl:include href="condities/CD060.xsl" />
 	<xsl:include href="condities/CD087.xsl" />
 	<xsl:include href="constraints/CS002.xsl" />
-	<xsl:include href="constraints/CS023.xsl" />
+	<xsl:include href="constraints/CS050.xsl" />
+	<xsl:include href="constraints/CS089.xsl" />
 	<xsl:include href="constraints/CS100.xsl" />
-	<xsl:include href="constraints/CS108.xsl" />
-	<xsl:include href="constraints/CS323.xsl" />
+	<xsl:include href="constraints/CS139.xsl" />
 	<xsl:include href="constraints/CS325.xsl" />
-	<xsl:include href="constraints/CS330.xsl" />
+	<xsl:include href="constraints/CS337.xsl" />
+	<xsl:include href="constraints/CS339.xsl" />
+	<xsl:include href="constraints/CS340.xsl" />
 	<xsl:include href="rules/TR002.xsl" />
-	<xsl:include href="rules/TR097.xsl" />
 	<xsl:include href="rules/TR101.xsl" />
+	<xsl:include href="rules/TR134.xsl" />
+	<xsl:include href="rules/TR137.xsl" />
 	<xsl:include href="rules/TR315.xsl" />
 	<xsl:include href="rules/TR316.xsl" />
 	<xsl:include href="rules/TR319.xsl" />
 	<xsl:include href="rules/TR335.xsl" />
-	<xsl:include href="rules/TR345.xsl" />
 	<xsl:include href="rules/TR358.xsl" />
-	<xsl:include href="rules/TR368.xsl" />
+	<xsl:include href="rules/TR378.xsl" />
 
 	<xsl:template match="*" mode="check" priority="0">
+		<xsl:apply-templates select="." mode="CD005"/>
+		<xsl:apply-templates select="." mode="CD007"/>
+		<xsl:apply-templates select="." mode="CD025"/>
 		<xsl:apply-templates select="." mode="CD060"/>
 		<xsl:apply-templates select="." mode="CD087"/>
 		<xsl:apply-templates select="." mode="CS002"/>
-		<xsl:apply-templates select="." mode="CS023"/>
+		<xsl:apply-templates select="." mode="CS050"/>
+		<xsl:apply-templates select="." mode="CS089"/>
 		<xsl:apply-templates select="." mode="CS100"/>
-		<xsl:apply-templates select="." mode="CS108"/>
-		<xsl:apply-templates select="." mode="CS323"/>
+		<xsl:apply-templates select="." mode="CS139"/>
 		<xsl:apply-templates select="." mode="CS325"/>
-		<xsl:apply-templates select="." mode="CS330"/>
+		<xsl:apply-templates select="." mode="CS337"/>
+		<xsl:apply-templates select="." mode="CS339"/>
+		<xsl:apply-templates select="." mode="CS340"/>
 		<xsl:apply-templates select="." mode="TR002"/>
-		<xsl:apply-templates select="." mode="TR097"/>
 		<xsl:apply-templates select="." mode="TR101"/>
+		<xsl:apply-templates select="." mode="TR134"/>
+		<xsl:apply-templates select="." mode="TR137"/>
 		<xsl:apply-templates select="." mode="TR315"/>
 		<xsl:apply-templates select="." mode="TR316"/>
 		<xsl:apply-templates select="." mode="TR319"/>
 		<xsl:apply-templates select="." mode="TR335"/>
-		<xsl:apply-templates select="." mode="TR345"/>
 		<xsl:apply-templates select="." mode="TR358"/>
-		<xsl:apply-templates select="." mode="TR368"/>
+		<xsl:apply-templates select="." mode="TR378"/>
 	</xsl:template>
 
 	<xsl:variable name="versionInfo">
 		<vr:XSLTHeader>
 			<vr:Standaard>ijw</vr:Standaard>
-			<vr:StandaardRelease>3.0</vr:StandaardRelease>
-			<vr:XSLTVersie>2.2.8</vr:XSLTVersie>
+			<vr:StandaardRelease>3.1</vr:StandaardRelease>
+			<vr:XSLTVersie>2.4.3</vr:XSLTVersie>
 		</vr:XSLTHeader>
 	</xsl:variable>
 </xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_0/JW325.xsl b/xslt-validatie/jw/3_1/JW325.xsl
similarity index 50%
rename from xslt-validatie/jw/3_0/JW325.xsl
rename to xslt-validatie/jw/3_1/JW325.xsl
index 02d993d16a2e3eb9219e5e00bae873f1c5e49f5d..0900c306dc42955393535bed5395614b67d0da51 100644
--- a/xslt-validatie/jw/3_0/JW325.xsl
+++ b/xslt-validatie/jw/3_1/JW325.xsl
@@ -1,37 +1,47 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:vr="http://www.istandaarden.nl/validatie/1_1/rapport/schema">
-	<!-- iJw 3.0 JW325 (2021-01-25) -->
+	<!-- iJw 3.1 JW325 (2021-09-29) -->
 
 	<xsl:import href="common/basis.xsl" />
+	<xsl:include href="condities/CD005.xsl" />
+	<xsl:include href="condities/CD007.xsl" />
+	<xsl:include href="condities/CD025.xsl" />
 	<xsl:include href="condities/CD060.xsl" />
 	<xsl:include href="constraints/CS002.xsl" />
-	<xsl:include href="constraints/CS023.xsl" />
-	<xsl:include href="constraints/CS108.xsl" />
-	<xsl:include href="constraints/CS323.xsl" />
+	<xsl:include href="constraints/CS050.xsl" />
+	<xsl:include href="constraints/CS089.xsl" />
+	<xsl:include href="constraints/CS139.xsl" />
 	<xsl:include href="constraints/CS325.xsl" />
 	<xsl:include href="rules/TR002.xsl" />
-	<xsl:include href="rules/TR097.xsl" />
 	<xsl:include href="rules/TR101.xsl" />
+	<xsl:include href="rules/TR134.xsl" />
+	<xsl:include href="rules/TR137.xsl" />
 	<xsl:include href="rules/TR342.xsl" />
+	<xsl:include href="rules/TR378.xsl" />
 
 	<xsl:template match="*" mode="check" priority="0">
+		<xsl:apply-templates select="." mode="CD005"/>
+		<xsl:apply-templates select="." mode="CD007"/>
+		<xsl:apply-templates select="." mode="CD025"/>
 		<xsl:apply-templates select="." mode="CD060"/>
 		<xsl:apply-templates select="." mode="CS002"/>
-		<xsl:apply-templates select="." mode="CS023"/>
-		<xsl:apply-templates select="." mode="CS108"/>
-		<xsl:apply-templates select="." mode="CS323"/>
+		<xsl:apply-templates select="." mode="CS050"/>
+		<xsl:apply-templates select="." mode="CS089"/>
+		<xsl:apply-templates select="." mode="CS139"/>
 		<xsl:apply-templates select="." mode="CS325"/>
 		<xsl:apply-templates select="." mode="TR002"/>
-		<xsl:apply-templates select="." mode="TR097"/>
 		<xsl:apply-templates select="." mode="TR101"/>
+		<xsl:apply-templates select="." mode="TR134"/>
+		<xsl:apply-templates select="." mode="TR137"/>
 		<xsl:apply-templates select="." mode="TR342"/>
+		<xsl:apply-templates select="." mode="TR378"/>
 	</xsl:template>
 
 	<xsl:variable name="versionInfo">
 		<vr:XSLTHeader>
 			<vr:Standaard>ijw</vr:Standaard>
-			<vr:StandaardRelease>3.0</vr:StandaardRelease>
-			<vr:XSLTVersie>2.2.8</vr:XSLTVersie>
+			<vr:StandaardRelease>3.1</vr:StandaardRelease>
+			<vr:XSLTVersie>2.4.3</vr:XSLTVersie>
 		</vr:XSLTHeader>
 	</xsl:variable>
 </xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_0/all.xsl b/xslt-validatie/jw/3_1/all.xsl
similarity index 63%
rename from xslt-validatie/jw/3_0/all.xsl
rename to xslt-validatie/jw/3_1/all.xsl
index 2bdab0a6775b0c118b403ddb44ff8b25045b6449..4400da617cdf95d1772f0f01c361e48750bc1dea 100644
--- a/xslt-validatie/jw/3_0/all.xsl
+++ b/xslt-validatie/jw/3_1/all.xsl
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:vr="http://www.istandaarden.nl/validatie/1_1/rapport/schema">
-	<!-- iJw 3.0 (2021-01-25) -->
+	<!-- iJw 3.1 (2021-09-29) -->
 
 	<xsl:import href="common/basis.xsl" />
 	<xsl:include href="condities/CD005.xsl" />
@@ -10,12 +10,7 @@
 	<xsl:include href="condities/CD034.xsl" />
 	<xsl:include href="condities/CD041.xsl" />
 	<xsl:include href="condities/CD043.xsl" />
-	<xsl:include href="condities/CD055.xsl" />
-	<xsl:include href="condities/CD056.xsl" />
-	<xsl:include href="condities/CD058.xsl" />
-	<xsl:include href="condities/CD059.xsl" />
 	<xsl:include href="condities/CD060.xsl" />
-	<xsl:include href="condities/CD062.xsl" />
 	<xsl:include href="condities/CD066.xsl" />
 	<xsl:include href="condities/CD067.xsl" />
 	<xsl:include href="condities/CD068.xsl" />
@@ -25,52 +20,50 @@
 	<xsl:include href="condities/CD078.xsl" />
 	<xsl:include href="condities/CD079.xsl" />
 	<xsl:include href="condities/CD080.xsl" />
-	<xsl:include href="condities/CD081.xsl" />
 	<xsl:include href="condities/CD085.xsl" />
 	<xsl:include href="condities/CD086.xsl" />
 	<xsl:include href="condities/CD087.xsl" />
-	<xsl:include href="condities/CD088.xsl" />
+	<xsl:include href="condities/CD095.xsl" />
+	<xsl:include href="condities/CD096.xsl" />
 	<xsl:include href="constraints/CS002.xsl" />
 	<xsl:include href="constraints/CS003.xsl" />
-	<xsl:include href="constraints/CS023.xsl" />
 	<xsl:include href="constraints/CS050.xsl" />
 	<xsl:include href="constraints/CS058.xsl" />
 	<xsl:include href="constraints/CS089.xsl" />
 	<xsl:include href="constraints/CS100.xsl" />
-	<xsl:include href="constraints/CS102.xsl" />
-	<xsl:include href="constraints/CS103.xsl" />
-	<xsl:include href="constraints/CS104.xsl" />
-	<xsl:include href="constraints/CS108.xsl" />
+	<xsl:include href="constraints/CS139.xsl" />
 	<xsl:include href="constraints/CS318.xsl" />
-	<xsl:include href="constraints/CS323.xsl" />
-	<xsl:include href="constraints/CS324.xsl" />
 	<xsl:include href="constraints/CS325.xsl" />
-	<xsl:include href="constraints/CS327.xsl" />
-	<xsl:include href="constraints/CS328.xsl" />
-	<xsl:include href="constraints/CS330.xsl" />
-	<xsl:include href="constraints/CS331.xsl" />
+	<xsl:include href="constraints/CS335.xsl" />
+	<xsl:include href="constraints/CS336.xsl" />
+	<xsl:include href="constraints/CS337.xsl" />
+	<xsl:include href="constraints/CS338.xsl" />
+	<xsl:include href="constraints/CS339.xsl" />
+	<xsl:include href="constraints/CS340.xsl" />
+	<xsl:include href="constraints/CS343.xsl" />
 	<xsl:include href="rules/TR002.xsl" />
 	<xsl:include href="rules/TR006.xsl" />
 	<xsl:include href="rules/TR018.xsl" />
 	<xsl:include href="rules/TR061.xsl" />
-	<xsl:include href="rules/TR097.xsl" />
 	<xsl:include href="rules/TR101.xsl" />
+	<xsl:include href="rules/TR134.xsl" />
+	<xsl:include href="rules/TR137.xsl" />
 	<xsl:include href="rules/TR302.xsl" />
-	<xsl:include href="rules/TR312.xsl" />
-	<xsl:include href="rules/TR313.xsl" />
-	<xsl:include href="rules/TR314.xsl" />
 	<xsl:include href="rules/TR315.xsl" />
 	<xsl:include href="rules/TR316.xsl" />
-	<xsl:include href="rules/TR317.xsl" />
 	<xsl:include href="rules/TR319.xsl" />
-	<xsl:include href="rules/TR320.xsl" />
 	<xsl:include href="rules/TR335.xsl" />
 	<xsl:include href="rules/TR342.xsl" />
-	<xsl:include href="rules/TR345.xsl" />
 	<xsl:include href="rules/TR352.xsl" />
 	<xsl:include href="rules/TR353.xsl" />
 	<xsl:include href="rules/TR358.xsl" />
-	<xsl:include href="rules/TR368.xsl" />
+	<xsl:include href="rules/TR377.xsl" />
+	<xsl:include href="rules/TR378.xsl" />
+	<xsl:include href="rules/TR380.xsl" />
+	<xsl:include href="rules/TR383.xsl" />
+	<xsl:include href="rules/TR386.xsl" />
+	<xsl:include href="rules/TR409.xsl" />
+	<xsl:include href="rules/TR410.xsl" />
 
 	<xsl:template match="*" mode="check" priority="0">
 		<xsl:apply-templates select="." mode="CD005"/>
@@ -80,12 +73,7 @@
 		<xsl:apply-templates select="." mode="CD034"/>
 		<xsl:apply-templates select="." mode="CD041"/>
 		<xsl:apply-templates select="." mode="CD043"/>
-		<xsl:apply-templates select="." mode="CD055"/>
-		<xsl:apply-templates select="." mode="CD056"/>
-		<xsl:apply-templates select="." mode="CD058"/>
-		<xsl:apply-templates select="." mode="CD059"/>
 		<xsl:apply-templates select="." mode="CD060"/>
-		<xsl:apply-templates select="." mode="CD062"/>
 		<xsl:apply-templates select="." mode="CD066"/>
 		<xsl:apply-templates select="." mode="CD067"/>
 		<xsl:apply-templates select="." mode="CD068"/>
@@ -95,59 +83,57 @@
 		<xsl:apply-templates select="." mode="CD078"/>
 		<xsl:apply-templates select="." mode="CD079"/>
 		<xsl:apply-templates select="." mode="CD080"/>
-		<xsl:apply-templates select="." mode="CD081"/>
 		<xsl:apply-templates select="." mode="CD085"/>
 		<xsl:apply-templates select="." mode="CD086"/>
 		<xsl:apply-templates select="." mode="CD087"/>
-		<xsl:apply-templates select="." mode="CD088"/>
+		<xsl:apply-templates select="." mode="CD095"/>
+		<xsl:apply-templates select="." mode="CD096"/>
 		<xsl:apply-templates select="." mode="CS002"/>
 		<xsl:apply-templates select="." mode="CS003"/>
-		<xsl:apply-templates select="." mode="CS023"/>
 		<xsl:apply-templates select="." mode="CS050"/>
 		<xsl:apply-templates select="." mode="CS058"/>
 		<xsl:apply-templates select="." mode="CS089"/>
 		<xsl:apply-templates select="." mode="CS100"/>
-		<xsl:apply-templates select="." mode="CS102"/>
-		<xsl:apply-templates select="." mode="CS103"/>
-		<xsl:apply-templates select="." mode="CS104"/>
-		<xsl:apply-templates select="." mode="CS108"/>
+		<xsl:apply-templates select="." mode="CS139"/>
 		<xsl:apply-templates select="." mode="CS318"/>
-		<xsl:apply-templates select="." mode="CS323"/>
-		<xsl:apply-templates select="." mode="CS324"/>
 		<xsl:apply-templates select="." mode="CS325"/>
-		<xsl:apply-templates select="." mode="CS327"/>
-		<xsl:apply-templates select="." mode="CS328"/>
-		<xsl:apply-templates select="." mode="CS330"/>
-		<xsl:apply-templates select="." mode="CS331"/>
+		<xsl:apply-templates select="." mode="CS335"/>
+		<xsl:apply-templates select="." mode="CS336"/>
+		<xsl:apply-templates select="." mode="CS337"/>
+		<xsl:apply-templates select="." mode="CS338"/>
+		<xsl:apply-templates select="." mode="CS339"/>
+		<xsl:apply-templates select="." mode="CS340"/>
+		<xsl:apply-templates select="." mode="CS343"/>
 		<xsl:apply-templates select="." mode="TR002"/>
 		<xsl:apply-templates select="." mode="TR006"/>
 		<xsl:apply-templates select="." mode="TR018"/>
 		<xsl:apply-templates select="." mode="TR061"/>
-		<xsl:apply-templates select="." mode="TR097"/>
 		<xsl:apply-templates select="." mode="TR101"/>
+		<xsl:apply-templates select="." mode="TR134"/>
+		<xsl:apply-templates select="." mode="TR137"/>
 		<xsl:apply-templates select="." mode="TR302"/>
-		<xsl:apply-templates select="." mode="TR312"/>
-		<xsl:apply-templates select="." mode="TR313"/>
-		<xsl:apply-templates select="." mode="TR314"/>
 		<xsl:apply-templates select="." mode="TR315"/>
 		<xsl:apply-templates select="." mode="TR316"/>
-		<xsl:apply-templates select="." mode="TR317"/>
 		<xsl:apply-templates select="." mode="TR319"/>
-		<xsl:apply-templates select="." mode="TR320"/>
 		<xsl:apply-templates select="." mode="TR335"/>
 		<xsl:apply-templates select="." mode="TR342"/>
-		<xsl:apply-templates select="." mode="TR345"/>
 		<xsl:apply-templates select="." mode="TR352"/>
 		<xsl:apply-templates select="." mode="TR353"/>
 		<xsl:apply-templates select="." mode="TR358"/>
-		<xsl:apply-templates select="." mode="TR368"/>
+		<xsl:apply-templates select="." mode="TR377"/>
+		<xsl:apply-templates select="." mode="TR378"/>
+		<xsl:apply-templates select="." mode="TR380"/>
+		<xsl:apply-templates select="." mode="TR383"/>
+		<xsl:apply-templates select="." mode="TR386"/>
+		<xsl:apply-templates select="." mode="TR409"/>
+		<xsl:apply-templates select="." mode="TR410"/>
 	</xsl:template>
 
 	<xsl:variable name="versionInfo">
 		<vr:XSLTHeader>
 			<vr:Standaard>ijw</vr:Standaard>
-			<vr:StandaardRelease>3.0</vr:StandaardRelease>
-			<vr:XSLTVersie>2.2.8</vr:XSLTVersie>
+			<vr:StandaardRelease>3.1</vr:StandaardRelease>
+			<vr:XSLTVersie>2.4.3</vr:XSLTVersie>
 		</vr:XSLTHeader>
 	</xsl:variable>
 </xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_1/all_merged.xsl b/xslt-validatie/jw/3_1/all_merged.xsl
new file mode 100644
index 0000000000000000000000000000000000000000..74baab93d6ac574a3b9303b593db6af575452541
--- /dev/null
+++ b/xslt-validatie/jw/3_1/all_merged.xsl
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><stylesheet xmlns="http://www.w3.org/1999/XSL/Transform" xmlns:n0="http://www.istandaarden.nl/ijw/3_1/jw319/schema" xmlns:n1="http://www.istandaarden.nl/ijw/3_1/jw307/schema" xmlns:n2="http://www.istandaarden.nl/ijw/3_1/jw317/schema" xmlns:n3="http://www.istandaarden.nl/ijw/3_1/jw305/schema" xmlns:n4="http://www.istandaarden.nl/ijw/3_1/jw315/schema" xmlns:n5="http://www.istandaarden.nl/ijw/3_1/jw325/schema" xmlns:n6="http://www.istandaarden.nl/ijw/3_1/jw301/schema" xmlns:n7="http://www.istandaarden.nl/ijw/3_1/jw323/schema" xmlns:n8="http://www.istandaarden.nl/validatie/1_1/rapport/schema" xmlns:n9="http://www.istandaarden.nl/ijw/3_1/basisschema/schema" xmlns:na="http://www.istandaarden.nl/validatie/1_1/rapport/schema" exclude-result-prefixes="n8 n9 n6 n2 n4 n5 n7 n0 n1 n3" version="1.0"><output encoding="UTF-8" indent="yes" method="xml" version="1.0"/><template name="printXPath"><param name="pElement" select="."/><if test="$pElement/ancestor::*"><call-template name="printXPath"><with-param name="pElement" select="$pElement/.."/></call-template><text>/</text></if><value-of select="local-name($pElement)"/><if test="($pElement/preceding-sibling::*|$pElement/following-sibling::*)[local-name()=local-name($pElement)]"><value-of select="concat('[',count($pElement/preceding-sibling::*[local-name()=local-name($pElement)])+1,']')"/></if></template><template name="addError"><param name="pRule">FOUT</param><param name="pElements" select="."/><param name="pCode" select="nonExistingNode"/><param name="pDetails" select="''"/><n8:Fout><n8:Code><value-of select="normalize-space($pRule)"/></n8:Code><if test="$pCode"><n8:Retourcode><value-of select="$pCode"/></n8:Retourcode></if><for-each select="$pElements"><n8:Locatie><text>/</text><call-template name="printXPath"><with-param name="pElement" select="."/></call-template></n8:Locatie></for-each><choose><when test="$pDetails!=''"><n8:Details><value-of select="$pDetails"/></n8:Details></when><otherwise><variable name="v0"><apply-templates mode="getDetails" select="."><with-param name="pRule" select="normalize-space($pRule)"/></apply-templates></variable><if test="$v0!=''"><n8:Details><value-of select="$v0"/></n8:Details></if></otherwise></choose></n8:Fout></template><template match="*" mode="getDetails" priority="0"><param name="pRule">FOUT</param></template><template name="checkGemeenteCode"><param name="pThis" select="."/><param name="pExtra" select="emptyNodeSet"/><param name="pRule">FAIL</param><variable name="v0"><apply-templates mode="validGemeente" select="."><with-param name="pGemeenteCode" select="1*normalize-space($pThis/text())"/></apply-templates></variable><if test="$v0!='true'"><call-template name="addError"><with-param name="pRule" select="$pRule"/><with-param name="pElements" select="$pThis|$pExtra"/></call-template></if></template><template match="*" mode="validGemeente" priority="0"><param name="pGemeenteCode" select="."/><value-of select="true()"/></template><template match="*" mode="validAGBCode" priority="0"><param name="pAGBCode" select="."/><param name="pFrom"/><param name="pTo" select="0"/><value-of select="true()"/></template><template match="*" mode="validZorginstelling" priority="0"><param name="pInstelling"/><param name="pOntvanger"/><value-of select="true()"/></template><template name="check11proef"><param name="pElement" select="."/><param name="pRule">FOUT</param><variable name="v0" select="floor(number($pElement/text()) div 1) mod 10"/><variable name="v1" select="floor(number($pElement/text()) div 10) mod 10"/><variable name="v2" select="floor(number($pElement/text()) div 100) mod 10"/><variable name="v3" select="floor(number($pElement/text()) div 1000) mod 10"/><variable name="v4" select="floor(number($pElement/text()) div 10000) mod 10"/><variable name="v5" select="floor(number($pElement/text()) div 100000) mod 10"/><variable name="v6" select="floor(number($pElement/text()) div 1000000) mod 10"/><variable name="v7" select="floor(number($pElement/text()) div 10000000) mod 10"/><variable name="v8" select="floor(number($pElement/text()) div 100000000) mod 10"/><if test="((9*$v8+8*$v7+7*$v6+6*$v5+5*$v4+4*$v3+3*$v2+2*$v1 - 1*$v0) mod 11)!=0"><call-template name="addError"><with-param name="pRule" select="$pRule"/><with-param name="pElements" select="$pElement"/></call-template></if></template><template name="split"><param name="pElement" select="."/><param name="pValue"/><choose><when test="string-length(normalize-space($pValue)) &gt; 0"><variable name="v0" select="normalize-space(substring-before(concat($pValue,','),','))"/><choose><when test="normalize-space($pElement/text())=$v0"><value-of select="true()"/></when><otherwise><call-template name="split"><with-param name="pElement" select="$pElement"/><with-param name="pValue" select="substring-after($pValue,',')"/></call-template></otherwise></choose></when><otherwise><value-of select="false()"/></otherwise></choose></template><template name="callrecursive"><param name="pT"/><param name="pValues"/><param name="pText"/><param name="pPattern"/><choose><when test="string-length($pT)=1 and string-length(translate($pT,$pValues,''))=0"><call-template name="patternmatch"><with-param name="pText" select="$pText"/><with-param name="pPattern" select="$pPattern"/></call-template></when><otherwise><value-of select="false()"/></otherwise></choose></template><template name="patternmatch"><param name="pText"/><param name="pPattern"/><choose><when test="(string-length($pText)=0 and string-length($pPattern)!=0) or (string-length($pText)!=0 and string-length($pPattern)=0)"><value-of select="false()"/></when><when test="string-length($pText)=0"><value-of select="true()"/></when><otherwise><variable name="v0" select="substring($pText,1,1)"/><variable name="v1" select="substring($pPattern,1,1)"/><variable name="v2" select="substring($pText,2)"/><variable name="v3" select="substring($pPattern,2)"/><choose><when test="$v1='.'"><call-template name="patternmatch"><with-param name="pText" select="$v2"/><with-param name="pPattern" select="$v3"/></call-template></when><when test="$v1='\' and string-length($v3)!=0"><call-template name="callrecursive"><with-param name="pT" select="$v0"/><with-param name="pValues" select="substring($v3,1,1)"/><with-param name="pText" select="$v2"/><with-param name="pPattern" select="substring($v3,2)"/></call-template></when><when test="$v1='1'"><call-template name="callrecursive"><with-param name="pT" select="$v0"/><with-param name="pValues">123456789</with-param><with-param name="pText" select="$v2"/><with-param name="pPattern" select="$v3"/></call-template></when><when test="$v1='0'"><call-template name="callrecursive"><with-param name="pT" select="$v0"/><with-param name="pValues">0123456789</with-param><with-param name="pText" select="$v2"/><with-param name="pPattern" select="$v3"/></call-template></when><when test="$v1='a'"><call-template name="callrecursive"><with-param name="pT" select="$v0"/><with-param name="pValues">abcdefghijklmnopqrstuvwxyz</with-param><with-param name="pText" select="$v2"/><with-param name="pPattern" select="$v3"/></call-template></when><when test="$v1='A'"><call-template name="callrecursive"><with-param name="pT" select="$v0"/><with-param name="pValues">ABCDEFGHIJKLMNOPQRSTUVWXYZ</with-param><with-param name="pText" select="$v2"/><with-param name="pPattern" select="$v3"/></call-template></when><when test="$v1='z' or $v1='Z'"><call-template name="callrecursive"><with-param name="pT" select="$v0"/><with-param name="pValues">abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ</with-param><with-param name="pText" select="$v2"/><with-param name="pPattern" select="$v3"/></call-template></when><when test="$v0=$v1"><call-template name="patternmatch"><with-param name="pText" select="$v2"/><with-param name="pPattern" select="$v3"/></call-template></when><otherwise><value-of select="false()"/></otherwise></choose></otherwise></choose></template><template name="testpattern"><param name="pElement" select="."/><param name="pPattern" select="''"/><variable name="v0" select="$pElement/text()"/><call-template name="patternmatch"><with-param name="pText" select="$v0"/><with-param name="pPattern" select="$pPattern"/></call-template></template><template name="testvalue"><param name="pElement" select="."/><param name="pValues" select="''"/><choose><when test="normalize-space($pValues)=''"><choose><when test="not($pElement/.)"><value-of select="true()"/></when><when test="normalize-space($pElement/text())=''"><value-of select="true()"/></when><otherwise><value-of select="false()"/></otherwise></choose></when><when test="normalize-space($pValues)='*'"><choose><when test="normalize-space($pElement/text())!=''"><value-of select="true()"/></when><otherwise><value-of select="false()"/></otherwise></choose></when><when test="normalize-space($pValues)='#'"><choose><when test="$pElement/."><value-of select="true()"/></when><otherwise><value-of select="false()"/></otherwise></choose></when><when test="string-length(normalize-space($pValues)) &gt; 1 and substring(normalize-space($pValues),1,1)='#'"><call-template name="testpattern"><with-param name="pElement" select="$pElement"/><with-param name="pPattern" select="substring(normalize-space($pValues),2)"/></call-template></when><when test="string-length(normalize-space($pValues)) &gt; 1 and substring(normalize-space($pValues),1,1)='!'"><variable name="v0"><call-template name="testvalue"><with-param name="pElement" select="$pElement"/><with-param name="pValues" select="substring(normalize-space($pValues),2)"/></call-template></variable><choose><when test="$v0='true'"><value-of select="false()"/></when><otherwise><value-of select="true()"/></otherwise></choose></when><otherwise><call-template name="split"><with-param name="pElement" select="$pElement"/><with-param name="pValue" select="$pValues"/></call-template></otherwise></choose></template><template name="checkRelation"><param name="pThis" select="."/><param name="pOther"/><param name="pRelation"/><param name="pExtra" select="node()"/><param name="pRule">FAIL</param><choose><when test="normalize-space($pRelation)='equals'"><call-template name="checkRelation"><with-param name="pThis" select="$pOther"/><with-param name="pOther" select="$pThis"/><with-param name="pRelation">equalsGt</with-param><with-param name="pExtra" select="$pExtra"/><with-param name="pRule" select="$pRule"/></call-template><call-template name="checkRelation"><with-param name="pThis" select="$pOther"/><with-param name="pOther" select="$pThis"/><with-param name="pRelation">equalsLt</with-param><with-param name="pExtra" select="$pExtra"/><with-param name="pRule" select="$pRule"/></call-template></when><when test="normalize-space($pRelation)='equalsGt' and $pThis &lt; $pOther"><call-template name="addError"><with-param name="pRule" select="$pRule"/><with-param name="pElements" select="$pThis|$pOther|$pExtra"/></call-template></when><when test="normalize-space($pRelation)='equalsLt'"><call-template name="checkRelation"><with-param name="pThis" select="$pOther"/><with-param name="pOther" select="$pThis"/><with-param name="pRelation">equalsGt</with-param><with-param name="pExtra" select="$pExtra"/><with-param name="pRule" select="$pRule"/></call-template></when></choose></template><template name="adjustDate"><param name="pDate"/><param name="pOverflow">carry</param><variable name="v0" select="$pDate mod 100"/><variable name="v1" select="floor($pDate div 100) mod 100"/><variable name="v2" select="floor($pDate div 10000) mod 10000"/><variable name="v3"><choose><when test="$v0 &gt; 30 and ($v1=4 or $v1=6 or $v1=9 or $v1=11)"><choose><when test="$pOverflow='carry'"><value-of select="$pDate - 30+100"/></when><when test="$pOverflow='truncate'"><value-of select="$pDate - $v0+30"/></when></choose></when><when test="$v0 &gt; 31 and ($v1=1 or $v1=3 or $v1=5 or $v1=7 or $v1=8 or $v1=10 or $v1=12)"><choose><when test="$pOverflow='carry'"><value-of select="$pDate - 31+100"/></when><when test="$pOverflow='truncate'"><value-of select="$pDate - $v0+31"/></when></choose></when><when test="$v0 &gt; 29 and $v1=2 and ($v2 mod 4)=0"><choose><when test="$pOverflow='carry'"><value-of select="$pDate - 29+100"/></when><when test="$pOverflow='truncate'"><value-of select="$pDate - $v0+29"/></when></choose></when><when test="$v0 &gt; 28 and $v1=2 and ($v2 mod 4)!=0"><choose><when test="$pOverflow='carry'"><value-of select="$pDate - 28+100"/></when><when test="$pOverflow='truncate'"><value-of select="$pDate - $v0+28"/></when></choose></when><otherwise><value-of select="0+$pDate"/></otherwise></choose></variable><variable name="v4"><choose><when test="floor($v3 div 100) mod 100 &gt; 12"><value-of select="$v3 - 1200+10000"/></when><otherwise><value-of select="0+$v3"/></otherwise></choose></variable><choose><when test="$v4=$pDate"><value-of select="0+$pDate"/></when><otherwise><call-template name="adjustDate"><with-param name="pDate" select="$v4"/><with-param name="pOverflow" select="$pOverflow"/></call-template></otherwise></choose></template><template name="addDate"><param name="pDate"/><param name="pExtra"/><param name="pOverflow">carry</param><if test="normalize-space($pDate)!=''"><call-template name="adjustDate"><with-param name="pDate" select="translate($pDate,'-','')+$pExtra"/><with-param name="pOverflow" select="$pOverflow"/></call-template></if></template><template name="addMonths"><param name="pDate"/><param name="pExtra"/><param name="pOverflow">carry</param><choose><when test="$pExtra &lt; 0"><call-template name="addMonths"><with-param name="pDate" select="translate($pDate,'-','') - 10000"/><with-param name="pExtra" select="$pExtra+12"/><with-param name="pOverflow" select="$pOverflow"/></call-template></when><when test="$pExtra &gt; 12"><call-template name="addMonths"><with-param name="pDate" select="translate($pDate,'-','')+10000"/><with-param name="pExtra" select="$pExtra - 12"/><with-param name="pOverflow" select="$pOverflow"/></call-template></when><otherwise><call-template name="adjustDate"><with-param name="pDate" select="translate($pDate,'-','')+100*$pExtra"/><with-param name="pOverflow" select="$pOverflow"/></call-template></otherwise></choose></template><template name="checkDateRelation"><param name="pSource" select="."/><param name="pThis" select="$pSource/text()"/><param name="pDate">2018-01-01</param><param name="pRelation"/><param name="pExtra" select="emptyNodeSet"/><param name="pRule">FAIL</param><choose><when test="not($pSource)"><call-template name="addError"><with-param name="pRule" select="$pRule"/><with-param name="pElements" select="$pSource"/></call-template></when><when test="$pRelation='equals'"><call-template name="checkDateRelation"><with-param name="pThis" select="$pDate"/><with-param name="pDate" select="$pThis"/><with-param name="pRelation">equalsGt</with-param><with-param name="pExtra" select="$pExtra"/><with-param name="pRule" select="$pRule"/></call-template><call-template name="checkDateRelation"><with-param name="pThis" select="$pDate"/><with-param name="pDate" select="$pThis"/><with-param name="pRelation">equalsLt</with-param><with-param name="pExtra" select="$pExtra"/><with-param name="pRule" select="$pRule"/></call-template></when><when test="$pRelation='equalsGt' and translate($pThis,'-','') &lt; translate($pDate,'-','')"><call-template name="addError"><with-param name="pRule" select="$pRule"/><with-param name="pElements" select="$pSource|$pExtra"/></call-template></when><when test="$pRelation='equalsLt'"><call-template name="checkDateRelation"><with-param name="pThis" select="$pDate"/><with-param name="pDate" select="$pThis"/><with-param name="pRelation">equalsGt</with-param><with-param name="pExtra" select="$pExtra"/><with-param name="pRule" select="$pRule"/></call-template></when><when test="$pRelation='daysAfter'"><variable name="v0"><call-template name="addDate"><with-param name="pDate" select="$pDate"/><with-param name="pExtra" select="$pExtra"/></call-template></variable><if test="1*translate($pThis,'-','') &lt;= 1*$v0"><call-template name="addError"><with-param name="pRule" select="$pRule"/><with-param name="pElements" select="$pSource|$pDate"/></call-template></if></when><when test="$pRelation='monthsBefore'"><variable name="v0"><call-template name="addMonths"><with-param name="pDate" select="$pDate"/><with-param name="pExtra" select="$pExtra"/><with-param name="pOverflow">truncate</with-param></call-template></variable><if test="1*translate($pThis,'-','') &gt; 1*$v0"><call-template name="addError"><with-param name="pRule" select="$pRule"/><with-param name="pElements" select="$pSource|$pDate"/></call-template></if></when><when test="$pRelation='monthsAfter'"><variable name="v0"><call-template name="addMonths"><with-param name="pDate" select="$pDate"/><with-param name="pExtra" select="$pExtra"/><with-param name="pOverflow">truncate</with-param></call-template></variable><if test="1*translate($pThis,'-','') &lt; 1*$v0"><call-template name="addError"><with-param name="pRule" select="$pRule"/><with-param name="pElements" select="$pSource|$pDate"/></call-template></if></when></choose></template><template name="checkempty"><param name="pThis" select="."/><param name="pOther" select="."/><param name="pExtra" select="emptyNodeSet"/><param name="pRule">FAIL</param><variable name="v0"><call-template name="testvalue"><with-param name="pElement" select="$pThis"/></call-template></variable><variable name="v1"><call-template name="testvalue"><with-param name="pElement" select="$pOther"/></call-template></variable><if test="$v0='false' and $v1='true'"><call-template name="addError"><with-param name="pRule" select="$pRule"/><with-param name="pElements" select="$pThis|$pOther|$pExtra"/></call-template></if></template><template name="checkDateEquals"><param name="pThis"/><param name="pOther"/><param name="pExtra" select="emptyNodeSet"/><param name="pRule">FAIL</param><if test="$pThis and $pOther and $pThis!=$pOther/text()"><call-template name="addError"><with-param name="pRule" select="$pRule"/><with-param name="pElements" select="$pThis|$pOther|$pExtra"/></call-template></if></template><template name="checkafter"><param name="pThis" select="."/><param name="pOther" select="."/><param name="pExtra" select="emptyNodeSet"/><param name="pRule">FAIL</param><if test="not($pThis) or not($pOther) or translate($pOther/text(),'-','') &gt; translate(substring($pThis/text(),1,10),'-','')"><call-template name="addError"><with-param name="pRule" select="$pRule"/><with-param name="pElements" select="$pThis|$pOther|$pExtra"/></call-template></if></template><template name="checkafterstrict"><param name="pThis" select="."/><param name="pOther" select="."/><param name="pExtra" select="emptyNodeSet"/><param name="pRule">FAIL</param><if test="not($pThis) or not($pOther) or translate($pOther/text(),'-','') &gt;= translate($pThis/text(),'-','')"><call-template name="addError"><with-param name="pRule" select="$pRule"/><with-param name="pElements" select="$pThis|$pOther|$pExtra"/></call-template></if></template><template name="checksameyear"><param name="pThis" select="."/><param name="pOther" select="."/><param name="pExtra" select="emptyNodeSet"/><param name="pRule">FAIL</param><if test="not($pThis) or not($pOther) or substring(translate($pOther/text(),'-',''),1,4)!=substring(translate($pThis/text(),'-',''),1,4)"><call-template name="addError"><with-param name="pRule" select="$pRule"/><with-param name="pElements" select="$pThis|$pOther|$pExtra"/></call-template></if></template><template name="checksamemonth"><param name="pThis" select="."/><param name="pOther" select="."/><param name="pExtra" select="emptyNodeSet"/><param name="pRule">FAIL</param><if test="not($pThis) or not($pOther) or substring(translate($pOther/text(),'-',''),5,2)!=substring(translate($pThis/text(),'-',''),5,2)"><call-template name="addError"><with-param name="pRule" select="$pRule"/><with-param name="pElements" select="$pThis|$pOther|$pExtra"/></call-template></if></template><template name="checkYearsBetween"><param name="pDate1"/><param name="pDate2"/><param name="pYears"/><param name="pExtra" select="emptyNodeSet"/><param name="pRule">ERROR</param><variable name="v0" select="number(translate(substring($pDate1,1,10),'-',''))"/><variable name="v1" select="number(translate($pDate2,'-',''))"/><variable name="v2" select="number($pYears)*10000"/><if test="($v1+$v2) &lt; $v0"><call-template name="addError"><with-param name="pRule" select="$pRule"/><with-param name="pElements" select="$pDate1|$pDate2|$pExtra"/></call-template></if></template><template name="isPeriodOverlay"><param name="pThis"/><param name="pOther"/><choose><when test="$pThis/*[substring(local-name(),string-length(local-name()) - 8)='Einddatum'] and $pOther/*[substring(local-name(),string-length(local-name()) - 8)='Einddatum']"><choose><when test="translate($pThis/*[substring(local-name(),string-length(local-name()) - 8)='Einddatum'],'-','') &gt;= translate($pOther/*[substring(local-name(),string-length(local-name()) - 11)='Ingangsdatum'],'-','') and translate($pThis/*[substring(local-name(),string-length(local-name()) - 8)='Einddatum'],'-','') &lt;= translate($pOther/*[substring(local-name(),string-length(local-name()) - 8)='Einddatum'],'-','') or translate($pOther/*[substring(local-name(),string-length(local-name()) - 8)='Einddatum'],'-','') &gt;= translate($pThis/*[substring(local-name(),string-length(local-name()) - 11)='Ingangsdatum'],'-','') and translate($pOther/*[substring(local-name(),string-length(local-name()) - 8)='Einddatum'],'-','') &lt;= translate($pThis/*[substring(local-name(),string-length(local-name()) - 8)='Einddatum'],'-','')"><value-of select="true()"/></when><otherwise><value-of select="false()"/></otherwise></choose></when><when test="$pThis/*[substring(local-name(),string-length(local-name()) - 8)='Einddatum'] and not($pOther/*[substring(local-name(),string-length(local-name()) - 8)='Einddatum'])"><choose><when test="translate($pThis/*[substring(local-name(),string-length(local-name()) - 8)='Einddatum'],'-','') &gt;= translate($pOther/*[substring(local-name(),string-length(local-name()) - 11)='Ingangsdatum'],'-','') and translate($pThis/*[substring(local-name(),string-length(local-name()) - 8)='Einddatum'],'-','') &lt;= '99999999' or '99999999' &gt;= translate($pThis/*[substring(local-name(),string-length(local-name()) - 11)='Ingangsdatum'],'-','') and '99999999' &lt;= translate($pThis/*[substring(local-name(),string-length(local-name()) - 8)='Einddatum'],'-','')"><value-of select="true()"/></when><otherwise><value-of select="false()"/></otherwise></choose></when><when test="$pOther/*[substring(local-name(),string-length(local-name()) - 8)='Einddatum'] and not($pThis/*[substring(local-name(),string-length(local-name()) - 8)='Einddatum'])"><choose><when test="'99999999' &gt;= translate($pOther/*[substring(local-name(),string-length(local-name()) - 11)='Ingangsdatum'],'-','') and '99999999' &lt;= translate($pOther/*[substring(local-name(),string-length(local-name()) - 8)='Einddatum'],'-','') or translate($pOther/*[substring(local-name(),string-length(local-name()) - 8)='Einddatum'],'-','') &gt;= translate($pThis/*[substring(local-name(),string-length(local-name()) - 11)='Ingangsdatum'],'-','') and translate($pOther/*[substring(local-name(),string-length(local-name()) - 8)='Einddatum'],'-','') &lt;= '99999999'"><value-of select="true()"/></when><otherwise><value-of select="false()"/></otherwise></choose></when><otherwise><value-of select="true()"/></otherwise></choose></template><template name="checkvalue"><param name="pThis" select="."/><param name="pValues" select="''"/><param name="pExtra" select="emptyNodeSet"/><param name="pCode" select="nonExistingNode"/><param name="pRule">FAIL</param><variable name="v0"><call-template name="testvalue"><with-param name="pElement" select="$pThis"/><with-param name="pValues" select="$pValues"/></call-template></variable><if test="$v0='false'"><call-template name="addError"><with-param name="pRule" select="$pRule"/><with-param name="pElements" select="$pThis|$pExtra"/><with-param name="pCode" select="$pCode"/></call-template></if></template><template name="checknvalue"><param name="pThis" select="."/><param name="pValues" select="''"/><param name="pExtra" select="emptyNodeSet"/><param name="pRule">FAIL</param><variable name="v0"><call-template name="testvalue"><with-param name="pElement" select="$pThis"/><with-param name="pValues" select="$pValues"/></call-template></variable><if test="$v0='true'"><call-template name="addError"><with-param name="pRule" select="$pRule"/><with-param name="pElements" select="$pThis|$pExtra"/></call-template></if></template><template name="checkimplication"><param name="pThis" select="."/><param name="pValue1" select="''"/><param name="pOther" select="."/><param name="pValue2" select="''"/><param name="pExtra" select="emptyNodeSet"/><param name="pRule">FAIL</param><variable name="v0"><call-template name="testvalue"><with-param name="pElement" select="$pThis"/><with-param name="pValues" select="$pValue1"/></call-template></variable><variable name="v1"><call-template name="testvalue"><with-param name="pElement" select="$pOther"/><with-param name="pValues" select="$pValue2"/></call-template></variable><if test="$v0='true' and $v1='false'"><call-template name="addError"><with-param name="pRule" select="$pRule"/><with-param name="pElements" select="$pThis|$pOther|$pExtra"/></call-template></if></template><template name="checksame"><param name="pThis" select="."/><param name="pValue1" select="''"/><param name="pOther" select="."/><param name="pValue2" select="''"/><param name="pExtra" select="emptyNodeSet"/><param name="pRule">FAIL</param><variable name="v0"><call-template name="testvalue"><with-param name="pElement" select="$pThis"/><with-param name="pValues" select="$pValue1"/></call-template></variable><variable name="v1"><call-template name="testvalue"><with-param name="pElement" select="$pOther"/><with-param name="pValues" select="$pValue2"/></call-template></variable><if test="$v0!=$v1"><call-template name="addError"><with-param name="pRule" select="$pRule"/><with-param name="pElements" select="$pThis|$pOther|$pExtra"/></call-template></if></template><template name="checkSingleCorrect"><param name="pThis" select="."/><param name="pValue1" select="''"/><param name="pOther" select="."/><param name="pValue2" select="''"/><param name="pExtra" select="emptyNodeSet"/><param name="pRule">FAIL</param><variable name="v0"><call-template name="testvalue"><with-param name="pElement" select="$pThis"/><with-param name="pValues" select="$pValue1"/></call-template></variable><variable name="v1"><call-template name="testvalue"><with-param name="pElement" select="$pOther"/><with-param name="pValues" select="$pValue2"/></call-template></variable><if test="$v0='false' and $v1='false'"><call-template name="addError"><with-param name="pRule" select="$pRule"/><with-param name="pElements" select="$pThis|$pOther|$pExtra"/></call-template></if></template><template name="formatNumberInternal"><param name="pValue"/><if test="$pValue &gt; 0"><call-template name="formatNumberInternal"><with-param name="pValue" select="floor(number($pValue) div 10)"/></call-template><value-of select="number($pValue) mod 10"/></if></template><template name="formatNumber"><param name="pValue"/><choose><when test="number($pValue) &lt; 0">-<call-template name="formatNumberInternal"><with-param name="pValue" select="0 - number($pValue)"/></call-template></when><when test="number($pValue)=0">0</when><otherwise><call-template name="formatNumberInternal"><with-param name="pValue" select="number($pValue)"/></call-template></otherwise></choose></template><template match="*[local-name()='Afzender']" mode="header" priority="10"/><template match="*[local-name()='Ontvanger']" mode="header" priority="10"/><template match="*[local-name()='BerichtCode']" mode="header" priority="10"><n8:BerichtCode><value-of select="text()"/></n8:BerichtCode></template><template match="*[local-name()='BerichtType']" mode="header" priority="10"><n8:BerichtCode><value-of select="text()"/></n8:BerichtCode></template><template match="*[local-name()='BerichtVersie']" mode="header" priority="10"><n8:BerichtVersie><value-of select="text()"/></n8:BerichtVersie></template><template match="*[local-name()='BerichtSubversie']" mode="header" priority="10"><n8:BerichtSubversie><value-of select="text()"/></n8:BerichtSubversie></template><template match="*[local-name()='Identificatie'] | *[local-name()='DeclarantFactuurNummer']" mode="header" priority="10"><n8:Identificatie><value-of select="normalize-space(text())"/></n8:Identificatie></template><template match="*[local-name()='Dagtekening'] | *[local-name()='FactuurDagtekening']" mode="header" priority="10"><n8:Dagtekening><value-of select="substring(text(),1,10)"/></n8:Dagtekening></template><template match="*[local-name()='BerichtIdentificatie'] | *[local-name()='DeclaratieFactuurIdentificatie']" mode="header" priority="10"><n8:BerichtIdentificatie><apply-templates mode="header" select="*"/></n8:BerichtIdentificatie></template><template match="*[local-name()='DeclaratieIdentificatie']" mode="header" priority="10"/><variable name="v0">2.4.3</variable><template match="*|@*|text()" mode="check"/><template match="*|@*|text()" mode="header"><apply-templates mode="header" select="*"/></template><template match="*|@*|text()" mode="traverse"><apply-templates mode="traverse" select="*"/><apply-templates mode="check" select="."/></template><template match="*[local-name() = 'Bericht']"><n8:Rapport><n8:Header><apply-templates mode="header" select="//*[local-name()='Header']/*"/><choose><when test="contains($v0,'-SNAPSHOT')"><n8:XSLTVersie>0.0.0</n8:XSLTVersie></when><otherwise><n8:XSLTVersie><value-of select="normalize-space($v0)"/></n8:XSLTVersie></otherwise></choose></n8:Header><n8:Fouten><apply-templates mode="traverse" select="*"/></n8:Fouten></n8:Rapport></template><template match="*" mode="getDetails" priority="100"><param name="pRule">FOUT</param><choose><when test="$pRule='CD005'">Als Postcode gevuld is, dan verplicht vullen, anders leeg laten.</when><when test="$pRule='CD007'">Als Communicatie / Vorm de waarde 1 (tolk taal) heeft, dan verplicht vullen, anders leeglaten.</when><when test="$pRule='CD009'">Alleen als Soort adres de waarde 04 (tijdelijk adres) heeft, is vullen toegestaan.</when><when test="$pRule='CD025'">Als Adres / LandCode de waarde NL (Nederland) heeft, dan verplicht vullen.</when><when test="$pRule='CD034'">Als Soort adres de waarde 1 (BRP-adres) of 3 (verblijfadres) heeft, dan verplicht vullen.</when><when test="$pRule='CD041'">Indien Code in Product gevuld is, verplicht vullen.</when><when test="$pRule='CD043'">Indien Beschikkingnummer gevuld is, verplicht vullen, anders leeg laten.</when><when test="$pRule='CD060'">Verplicht vullen indien DebetCredit bij het ingediende bedrag de waarde C (credit) heeft, anders leeg laten.</when><when test="$pRule='CD066'">Als type verwijzer gelijk is aan 02, 03, 04 of 05 en ZorgverlenerCode is gevuld, dan is Naamverwijzer leeg.</when><when test="$pRule='CD067'">Als type verwijzer gelijk is aan 02, 03, 04 of 05 en ZorgverlenerCode is leeg, dan is Naamverwijzer gevuld.</when><when test="$pRule='CD068'">Als type verwijzer ongelijk is aan 02, 03, 04 of 05, dan is ZorgverlenerCode leeg.</when><when test="$pRule='CD075'">Verplicht vullen indien Budget gevuld is</when><when test="$pRule='CD076'">Verplicht vullen indien Frequentie waarde 2 (per week)</when><when test="$pRule='CD077'">Indien Budget gevuld is, dan leeg laten</when><when test="$pRule='CD078'">Indien Omvang gevuld is, dan leeg laten</when><when test="$pRule='CD079'">Indien Budget leeg is, dan verplicht vullen</when><when test="$pRule='CD080'">Indien Code in Product leeg is en Einddatum van het ToegewezenProduct groter dan 31-12-2020 of leeg is, dan leeg laten</when><when test="$pRule='CD085'">Als VerzoekAntwoord de waarde 1 (Verzoek afgewezen) heeft, dan vullen</when><when test="$pRule='CD086'">Als VerzoekAntwoord de waarde 2 (Aanvraag in onderzoek) heeft, dan leeg laten</when><when test="$pRule='CD087'">Als eenheid ongelijk is aan 83 (euro's) dan verplicht vullen, anders leeg laten.</when><when test="$pRule='CD095'">Indien Code in AangevraagdProduct leeg is en ToewijzingEinddatum van het AangevraagdProduct groter dan 31-12-2020 of leeg is, dan leeg laten</when><when test="$pRule='CD096'">Indien Code in NieuwProduct leeg is en Einddatum groter dan 31-12-2020 of leeg is, dan leeg laten</when><when test="$pRule='CS002'">De waarde moet voldoen aan de 11-proef.</when><when test="$pRule='CS003'">Indien van toepassing vullen met een waarde die groter is dan, of gelijk is aan de Begindatum (of Ingangsdatum) van de aangeduide periode.</when><when test="$pRule='CS015'">BerichtSubversie vullen met 1.</when><when test="$pRule='CS025'">BerichtVersie vullen met 3.</when><when test="$pRule='CS050'">Als Partnernaam gevuld is, dan NaamGebruik vullen met waarde 1, 2, 3 of 4. Anders waarde 1 of 6 vullen.</when><when test="$pRule='CS058'">1 (eerste aanlevering) of 3 (verwijderen aanlevering) vullen.</when><when test="$pRule='CS089'">Als LandCode de waarde NL (Nederland) heeft, dan moet het formaat overeenkomen met dat van een Nederlandse postcode.</when><when test="$pRule='CS100'">Vullen met een datum die groter dan of gelijk is aan 01-01-2021</when><when test="$pRule='CS139'">Voor Geboortedatum geldt dat DatumGebruik en Datum met elkaar in overeenstemming moeten zijn.</when><when test="$pRule='CS318'">NaamGebruik 6 (Niet-natuurlijk persoon) niet vullen.</when><when test="$pRule='CS319'">Aaneengesloten vullen met cijfers en/of letters</when><when test="$pRule='CS325'">Indien (Totaal)Bedrag de waarde 0 heeft, dan DebetCredit vullen met D (Debet).</when><when test="$pRule='CS335'">RedenWijziging 13 (verwijderd) mag alleen gebruikt worden indien de ingangsdatum gelijk is aan de einddatum</when><when test="$pRule='CS336'">01 (Administratieve correctie (vervallen)) niet gebruiken</when><when test="$pRule='CS337'">Einddatum in de ProductPeriode vullen met een datum die valt in dezelfde kalendermaand en jaar als de Begindatum van de ProductPeriode</when><when test="$pRule='CS338'">Indien eenheid de waarde 14, 16, 83 of 84 heeft en Einddatum groter dan 31-12-2020 of leeg is, dan Frequentie vullen met de waarde 2 , 4 of 6</when><when test="$pRule='CS339'">Indien Eenheid de waarde 83 (euro's) heeft, moet IngediendBedrag gelijk zijn aan GeleverdVolume.</when><when test="$pRule='CS340'">De periode is exact gelijk aan 1 hele kalendermaand</when><when test="$pRule='CS343'">Indien eenheid de waarde 14, 16, 83 of 84 heeft en ToewijzingEinddatum is groter dan 31-12-2020 of leeg, dan Frequentie vullen met waarde 2, 4 of 6</when><when test="$pRule='TR002'">Geboortedatum mag niet meer dan 120 jaar voor de Dagtekening liggen, tenzij Geboortedatum onbekend is.</when><when test="$pRule='TR006'">De berichtklasse Contact moet een berichtelement Telefoon, en/of de combinatie Huis en Postcode bevatten.</when><when test="$pRule='TR018'">Einddatum moet groter dan of gelijk zijn aan Begindatum.</when><when test="$pRule='TR019'">Bij een output- of inspanningsgerichte werkwijze moet de melding van de start of de stop van de ondersteuning gerelateerd zijn aan een toewijzing op basis van het ToewijzingNummer</when><when test="$pRule='TR056'">Identificatie moet per berichtsoort uniek zijn voor de verzendende partij.</when><when test="$pRule='TR061'">Bij een Client moet minimaal één Adres voorkomen waarvan Soort de waarde '01' (BRP-adres), '02' (Correspondentie-adres) of '03' (Verblijfadres) heeft.</when><when test="$pRule='TR063'">Indien StatusAanlevering de waarde 3 (aanlevering verwijderen) bevat, dan moet voor de betreffende Client een eerdere aanlevering met dezelfde logische sleutel verstuurd zijn.</when><when test="$pRule='TR071'">StatusAanlevering mag niet de waarde '3' bevatten als er voor de betreffende melding start zorg al een stop zorg is verstuurd.</when><when test="$pRule='TR074'">Indien StatusAanlevering de waarde '1' bevat, dan moet de sleutel van de betreffende aanlevering niet alleen uniek zijn binnen het bericht zelf, maar ook in combinatie met alle reeds ontvangen berichten.</when><when test="$pRule='TR101'">Binnen een bericht zijn dubbele regels niet toegestaan.</when><when test="$pRule='TR134'">Vullen met een bestaande datum die niet groter is dan de Dagtekening van het bericht.</when><when test="$pRule='TR135'">Vullen met een bestaande datum die niet in de toekomst ligt.</when><when test="$pRule='TR137'">Vullen met een waarde die groter is dan, of gelijk is aan de Begindatum van de aangeduide periode én die niet groter is dan de Dagtekening van het bericht.</when><when test="$pRule='TR302'">Een Product mag alleen vaker in een toewijzingsbericht voorkomen indien de zorgperiodes elkaar niet overlappen</when><when test="$pRule='TR304'">Bsn moet overeenkomen met Bsn van een Client.</when><when test="$pRule='TR307'">Begindatum in de Prestatie moet groter dan of gelijk zijn aan Ingangsdatum in het ToegewezenProduct.</when><when test="$pRule='TR308'">Einddatum in de Prestatie moet kleiner dan of gelijk zijn aan Einddatum in het ToegewezenProduct, indien die gevuld is.</when><when test="$pRule='TR314'">ReferentieNummer van de Prestatie moet uniek zijn voor de aanbieder binnen het wettelijk domein waarop de Prestatie betrekking heeft, zowel binnen één bericht als berichtoverstijgend.</when><when test="$pRule='TR315'">VorigReferentieNummer van de Prestatie moet uniek zijn in het bericht.</when><when test="$pRule='TR316'">Debetregels mogen niet in hetzelfde bericht gecrediteerd worden.</when><when test="$pRule='TR318'">Indien iedere DeclaratiePeriode zorg is geleverd, moet de DeclaratiePeriode de kalendermaand volgend op de voorgaande DeclaratiePeriode zijn</when><when test="$pRule='TR319'">Een declaratiebericht bevat alleen prestaties waarvan de ProductPeriode valt binnen de huidige, of een voorgaande declaratieperiode.</when><when test="$pRule='TR321'">Indien in het ToegewezenProduct een Omvang is meegegeven, moet GeleverdVolume in de Prestatie passen binnen Volume in het ToegewezenProduct.</when><when test="$pRule='TR322'">Indien in het ToegewezenProduct een Omvang is meegegeven, moet de som van GeleverdVolume in alle ingediende Prestaties die betrekking hebben op dat ToegewezenProduct passen binnen de toegewezen Omvang.</when><when test="$pRule='TR323'">Een credit Prestatie moet gerelateerd zijn aan een eerder verzonden (goedgekeurde) debet Prestatie op basis van sleutelvelden.</when><when test="$pRule='TR326'">Een Startbericht mag pas verstuurd worden als er géén actueel Startbericht bij ToegewezenProduct is.</when><when test="$pRule='TR332'">Ieder ToegewezenProduct binnen één gemeente heeft een uniek nummer per wettelijk domein.</when><when test="$pRule='TR333'">DeclaratieNummer van de Declaratie moet uniek zijn voor de aanbieder binnen het wettelijk domein waarop de Declaratie betrekking heeft.</when><when test="$pRule='TR335'">Einddatum mag niet meer dan 5 jaar voor DeclaratieDagtekening liggen.</when><when test="$pRule='TR337'">De DeclaratieIdentificatie dient overeen te komen met de BerichtIdentificatie van een eerder ontvangen Declaratiebericht.</when><when test="$pRule='TR338'">Iedere Prestatie in een declaratiebericht is gerelateerd aan een ToegewezenProduct op basis van het toewijzingnummer.</when><when test="$pRule='TR339'">ProductCategorie in Prestatie moet gelijk zijn aan ProductCategorie in het ToegewezenProduct indien deze opgenomen is.</when><when test="$pRule='TR340'">ProductCode in Prestatie moet gelijk zijn aan ProductCode in het ToegewezenProduct, indien deze opgenomen is.</when><when test="$pRule='TR341'">Eenheid in Prestatie moet passen bij Eenheid in het ToegewezenProduct.</when><when test="$pRule='TR342'">Alleen afgewezen Prestaties dienen meegestuurd te worden in het declaratie-antwoordbericht op een declaratie.</when><when test="$pRule='TR346'">Indien Eenheid ongelijk is aan waarde 83 (Euro’s), moet IngediendBedrag gelijk zijn aan GeleverdVolume vermenigvuldigd met ProductTarief</when><when test="$pRule='TR347'">ReferentieAanbieder is uniek voor de aanbieder binnen het wettelijk domein</when><when test="$pRule='TR349'">Het verzoek om wijziging bericht bevat alle actuele ToegewezenProducten van de client</when><when test="$pRule='TR350'">Ieder OngewijzigdProduct in een verzoek om wijziging bericht is gerelateerd aan een actueel toegewezen product op basis van het ToewijzingNummer.</when><when test="$pRule='TR351'">Ieder TeWijzigenProduct in een verzoek om wijziging is gerelateerd aan een actueel ToegewezenProduct op basis van ToewijzingNummer.</when><when test="$pRule='TR352'">Bij een verzoek om wijziging komt minstens 1 OngewijzigdProduct of TeWijzigenProduct voor.</when><when test="$pRule='TR353'">Bij een verzoek om wijziging komt minstens 1 TeWijzigenProduct of NieuwProduct voor.</when><when test="$pRule='TR355'">ReferentieAanbieder in het antwoordbericht komt voor in een eerder verzoek om toewijzing of verzoek om wijziging</when><when test="$pRule='TR357'">Als GewensteIngangsdatum kleiner dan of gelijk is aan de dagtekening, dan is GewensteIngangsdatum gelijk aan ingangsdatum van het originele ToegewezenProduct.</when><when test="$pRule='TR358'">De waarde van TotaalBedrag in TotaalIngediendBedrag  moet gelijk zijn aan de SOM van de waarden van Bedrag in Ingediendbedrag in alle onderliggende Prestaties, rekening houdend met indicatie debet/credit.</when><when test="$pRule='TR359'">Als een antwoordbericht wordt verstuurd, mag er niet al eerder een toewijzingsbericht gestuurd zijn met dezelfde ReferentieAanbieder</when><when test="$pRule='TR360'">Een antwoordbericht met in VerzoekAntwoord de waarde 2 (Aanvraag in onderzoek), mag alleen gestuurd worden indien er nog geen antwoordbericht is met deze ReferentieAanbieder</when><when test="$pRule='TR361'">Een Product mag alleen vaker in verzoek om wijziging voorkomen als de zorgperiodes elkaar niet overlappen</when><when test="$pRule='TR365'">Als er al een antwoordbericht is met dezelfde ReferentieAanbieder dan moet VerzoekAntwoord daar de waarde 2 (Aanvraag in onderzoek) hebben.</when><when test="$pRule='TR366'">Iedere Prestatie in een declaratieantwoord is gerelateerd aan een declaratiebericht op basis van ProductReferentie.</when><when test="$pRule='TR367'">Waarde moet overeenkomen met waarde uit het declaratiebericht dat gerelateerd is op basis van ProductReferentie</when><when test="$pRule='TR369'">Indien in het ToegewezenProduct een Budget is meegegeven, moet de som van GeleverdVolume in alle ingediende Prestaties die betrekking hebben op dat ToegewezenProduct passen binnen het toegewezen Budget.</when><when test="$pRule='TR371'">Waarde moet overeenkomen met waarde van XsdVersie uit het declaratiebericht dat gerelateerd is op basis van DeclaratieIdentificatie.</when><when test="$pRule='TR373'">Indien in een TeWijzigenProduct het Budget of het totaal over toewijzingsperiode wordt gewijzigd, dient GewensteIngangsdatum gelijk te zijn aan de actuele toewijzing</when><when test="$pRule='TR374'">Een verzoek mag alleen worden verstuurd als er geen onderhanden verzoek is voor de betreffende client van dezelfde aanbieder.</when><when test="$pRule='TR375'">Indien Product in de toewijzing met ToewijzingNummer leeg is en Einddatum groter dan 31-12-2020 of leeg is, dan leeg laten.</when><when test="$pRule='TR376'">Het DeclaratieNummer dient overeen te komen met het DeclaratieNummer van een eerder ontvangen Declaratie.</when><when test="$pRule='TR377'">Indien RedenAfwijzingVerzoek de waarde 8 (Woonplaatsbeginsel) heeft, dan berichtklasse Woonplaatsbeginsel opnemen</when><when test="$pRule='TR378'">Vullen met een bestaande gemeentecode uit het overzicht van CBS.</when><when test="$pRule='TR379'">Indien ToegewezenProduct wordt verstuurd ter honorering van een VOT of VOW, dient ReferentieAanbieder te worden gevuld met ReferentieAanbieder uit die VOT of VOW, anders leeglaten</when><when test="$pRule='TR380'">Vullen met een datum die groter is dan de dagtekening van het bericht.</when><when test="$pRule='TR381'">ProductCode vullen met met een code die, volgens de gehanteerde productcodelijst, past bij de ProductCategorie.</when><when test="$pRule='TR382'">De sleutelelementen uit het startbericht moeten in het stopbericht, waarin wordt aangegeven dat de betreffende levering (tijdelijk) beeindigd wordt, ongewijzigd worden overgenomen.</when><when test="$pRule='TR383'">ReferentieAanbieder is uniek voor elk AangevraagdProduct binnen het bericht</when><when test="$pRule='TR384'">Het is niet toegestaan te declareren op een toewijzing met RedenWijziging waarde "13" (Verwijderd)</when><when test="$pRule='TR385'">Indien de toewijzing goedgekeurde (niet gecrediteerde) prestatiesregels met gelijk ToewijzingNummer heeft, is het niet toegestaan deze toewijzing te verwijderen met RedenWijziging waarde 13 (verwijderd)</when><when test="$pRule='TR386'">Een Product mag alleen vaker in een verzoek om toewijzing voorkomen indien de zorgperiodes elkaar niet overlappen</when><when test="$pRule='TR387'">De Begindatum van een ProductPeriode is altijd de eerste dag van de kalendermaand waarop de ProductPeriode betrekking heeft tenzij de Ingangsdatum van de toewijzing later in de betreffende maand ligt</when><when test="$pRule='TR388'">De Einddatum van een ProductPeriode is altijd de laatste dag van de kalendermaand waarop de ProductPeriode betrekking heeft tenzij de Einddatum van de toewijzing eerder in de betreffende maand ligt</when><when test="$pRule='TR389'">Een Prestatie met waarde Debet mag alleen ingezonden worden voor dezelfde ProductPeriode met gelijk ToewijzingNummer als er niet al een Prestatie met waarde Debet is zonder bijbehorende creditprestatie</when><when test="$pRule='TR390'">DebetCredit mag alleen waarde Credit hebben indien voor Prestatie met gelijk ProductReferentie niet een Prestatie met Credit bestaat</when><when test="$pRule='TR409'">Als RedenAfwijzingVerzoek ongelijk is aan 8 (Woonplaatsbeginsel), dan berichtklasse Woonplaatsbeginsel weglaten</when><when test="$pRule='TR410'">Een Product mag alleen vaker in de berichtklassen NieuwProduct voorkomen als de zorgperiodes elkaar niet overlappen.</when><when test="$pRule='TR411'">Indien Code in Product bij de toewijzing met ToewijzingNummer gevuld is, dan Omvang verplicht vullen</when><when test="$pRule='TR412'">Indien Code in Product bij de toewijzing met ToewijzingNummer leeg is en einddatum groter dan 31-12-2020 of leeg is, dan leeg laten</when></choose></template><template match="*" mode="CD005"/><template match="n9:Postcode" mode="CD005"><call-template name="checkempty"><with-param name="pOther" select="../n9:LandCode"/><with-param name="pRule">CD005</with-param></call-template></template><template match="n9:LandCode" mode="CD005"><call-template name="checkempty"><with-param name="pOther" select="../n9:Postcode"/><with-param name="pRule">CD005</with-param></call-template></template><template match="*" mode="CD007"/><template match="*[n9:Taal | n9:Vorm]" mode="check"><call-template name="checksame"><with-param name="pThis" select="n9:Taal"/><with-param name="pValue1">*</with-param><with-param name="pOther" select="n9:Vorm"/><with-param name="pValue2">1</with-param><with-param name="pRule">CD007</with-param></call-template></template><template match="*" mode="CD009"/><template match="n6:Contact/n6:Periode" mode="CD009"><call-template name="checkimplication"><with-param name="pValue1">#</with-param><with-param name="pOther" select="../n6:Soort"/><with-param name="pValue2">04</with-param><with-param name="pRule">CD009</with-param></call-template></template><template match="*" mode="CD025"/><template match="n9:LandCode" mode="CD025"><call-template name="checkimplication"><with-param name="pValue1">NL</with-param><with-param name="pOther" select="../n9:Huis/n9:Huisnummer"/><with-param name="pValue2">*</with-param><with-param name="pRule">CD025</with-param></call-template></template><template match="*" mode="CD034"/><template match="n6:Contact" mode="CD034"><call-template name="checkimplication"><with-param name="pThis" select="n6:Soort"/><with-param name="pValue1">01,03</with-param><with-param name="pOther" select="n6:Adres/n9:Postcode"/><with-param name="pValue2">*</with-param><with-param name="pRule">CD034</with-param></call-template></template><template match="*" mode="CD041"/><template match="n6:ToegewezenProduct" mode="CD041"><call-template name="checkimplication"><with-param name="pThis" select="n6:Product/n9:Code"/><with-param name="pValue1">*</with-param><with-param name="pOther" select="n6:Omvang"/><with-param name="pValue2">#</with-param><with-param name="pRule">CD041</with-param></call-template></template><template match="n4:AangevraagdProduct" mode="CD041"><call-template name="checkimplication"><with-param name="pThis" select="n4:Product/n9:Code"/><with-param name="pValue1">*</with-param><with-param name="pOther" select="n4:Omvang"/><with-param name="pValue2">#</with-param><with-param name="pRule">CD041</with-param></call-template></template><template match="n2:NieuwProduct" mode="CD041"><call-template name="checkimplication"><with-param name="pThis" select="n2:Product/n9:Code"/><with-param name="pValue1">*</with-param><with-param name="pOther" select="n2:Omvang"/><with-param name="pValue2">#</with-param><with-param name="pRule">CD041</with-param></call-template></template><template match="*" mode="CD043"/><template match="n4:AangevraagdProduct" mode="CD043"><call-template name="checksame"><with-param name="pThis" select="n4:BeschikkingNummer"/><with-param name="pValue1">*</with-param><with-param name="pOther" select="n4:BeschikkingIngangsdatum"/><with-param name="pValue2">*</with-param><with-param name="pRule">CD043</with-param></call-template></template><template match="*" mode="CD060"/><template match="n7:Prestatie" mode="CD060"><call-template name="checksame"><with-param name="pThis" select="n7:IngediendBedrag/n9:DebetCredit"/><with-param name="pValue1">C</with-param><with-param name="pOther" select="n7:ProductReferentie/n9:VorigReferentieNummer"/><with-param name="pValue2">*</with-param><with-param name="pRule">CD060</with-param></call-template></template><template match="n5:Prestatie" mode="CD060"><call-template name="checksame"><with-param name="pThis" select="n5:IngediendBedrag/n9:DebetCredit"/><with-param name="pValue1">C</with-param><with-param name="pOther" select="n5:ProductReferentie/n9:VorigReferentieNummer"/><with-param name="pValue2">*</with-param><with-param name="pRule">CD060</with-param></call-template></template><template match="*" mode="CD066"/><template match="n4:Verwijzer" mode="CD066"><variable name="v1"><call-template name="testvalue"><with-param name="pElement" select="n9:Type"/><with-param name="pValues">02,03,04,05</with-param></call-template></variable><choose><when test="$v1='true'"><call-template name="checkimplication"><with-param name="pThis" select="n9:ZorgverlenerCode"/><with-param name="pValue1">*</with-param><with-param name="pOther" select="n9:Naam"/><with-param name="pValue2"/><with-param name="pExtra" select="n9:Type"/><with-param name="pRule">CD066</with-param></call-template></when></choose></template><template match="*" mode="CD067"/><template match="n4:Verwijzer" mode="CD067"><variable name="v1"><call-template name="testvalue"><with-param name="pElement" select="n9:Type"/><with-param name="pValues">02,03,04,05</with-param></call-template></variable><choose><when test="$v1='true'"><call-template name="checkimplication"><with-param name="pThis" select="n9:ZorgverlenerCode"/><with-param name="pValue1"/><with-param name="pOther" select="n9:Naam"/><with-param name="pValue2">*</with-param><with-param name="pExtra" select="n9:Type"/><with-param name="pRule">CD067</with-param></call-template></when></choose></template><template match="*" mode="CD068"/><template match="n4:Verwijzer" mode="CD068"><call-template name="checkimplication"><with-param name="pThis" select="n9:Type"/><with-param name="pValue1">!02,03,04,05</with-param><with-param name="pOther" select="n9:ZorgverlenerCode"/><with-param name="pValue2"/><with-param name="pRule">CD068</with-param></call-template></template><template match="*" mode="CD075"/><template match="n6:ToegewezenProduct//n6:Budget" mode="CD075"><call-template name="checkimplication"><with-param name="pValue1">*</with-param><with-param name="pOther" select="ancestor-or-self::n6:ToegewezenProduct/n6:Einddatum"/><with-param name="pValue2">*</with-param><with-param name="pRule">CD075</with-param></call-template></template><template match="n4:AangevraagdProduct//n4:Budget" mode="CD075"><call-template name="checkimplication"><with-param name="pValue1">*</with-param><with-param name="pOther" select="ancestor-or-self::n4:AangevraagdProduct/n4:ToewijzingEinddatum"/><with-param name="pValue2">*</with-param><with-param name="pRule">CD075</with-param></call-template></template><template match="n2:TeWijzigenProduct//n2:Budget" mode="CD075"><call-template name="checkimplication"><with-param name="pValue1">*</with-param><with-param name="pOther" select="ancestor-or-self::n2:TeWijzigenProduct/n2:Einddatum"/><with-param name="pValue2">*</with-param><with-param name="pRule">CD075</with-param></call-template></template><template match="n2:NieuwProduct//n2:Budget" mode="CD075"><call-template name="checkimplication"><with-param name="pValue1">*</with-param><with-param name="pOther" select="ancestor-or-self::n2:NieuwProduct/n2:Einddatum"/><with-param name="pValue2">*</with-param><with-param name="pRule">CD075</with-param></call-template></template><template match="*" mode="CD076"/><template match="n6:ToegewezenProduct/n6:Omvang/n9:Frequentie" mode="CD076"><call-template name="checkimplication"><with-param name="pValue1">2</with-param><with-param name="pOther" select="ancestor-or-self::n6:ToegewezenProduct/n6:Einddatum"/><with-param name="pValue2">*</with-param><with-param name="pRule">CD076</with-param></call-template></template><template match="n4:AangevraagdProduct/n4:Omvang/n9:Frequentie" mode="CD076"><call-template name="checkimplication"><with-param name="pValue1">2</with-param><with-param name="pOther" select="ancestor-or-self::n4:AangevraagdProduct/n4:ToewijzingEinddatum"/><with-param name="pValue2">*</with-param><with-param name="pRule">CD076</with-param></call-template></template><template match="n2:TeWijzigenProduct/n2:Omvang/n9:Frequentie" mode="CD076"><call-template name="checkimplication"><with-param name="pValue1">2</with-param><with-param name="pOther" select="ancestor-or-self::n2:TeWijzigenProduct/n2:Einddatum"/><with-param name="pValue2">*</with-param><with-param name="pRule">CD076</with-param></call-template></template><template match="n2:NieuwProduct/n2:Omvang/n9:Frequentie" mode="CD076"><call-template name="checkimplication"><with-param name="pValue1">2</with-param><with-param name="pOther" select="ancestor-or-self::n2:NieuwProduct/n2:Einddatum"/><with-param name="pValue2">*</with-param><with-param name="pRule">CD076</with-param></call-template></template><template match="*" mode="CD077"/><template match="n6:ToegewezenProduct/n6:Budget" mode="CD077"><call-template name="checkimplication"><with-param name="pValue1">*</with-param><with-param name="pOther" select="ancestor-or-self::n6:ToegewezenProduct/n6:Omvang"/><with-param name="pValue2">!#</with-param><with-param name="pRule">CD077</with-param></call-template></template><template match="n4:AangevraagdProduct/n4:Budget" mode="CD077"><call-template name="checkimplication"><with-param name="pValue1">*</with-param><with-param name="pOther" select="ancestor-or-self::n4:AangevraagdProduct/n4:Omvang"/><with-param name="pValue2">!#</with-param><with-param name="pRule">CD077</with-param></call-template></template><template match="n2:TeWijzigenProduct/n2:Budget" mode="CD077"><call-template name="checkimplication"><with-param name="pValue1">*</with-param><with-param name="pOther" select="ancestor-or-self::n2:TeWijzigenProduct/n2:Omvang"/><with-param name="pValue2">!#</with-param><with-param name="pRule">CD077</with-param></call-template></template><template match="n2:NieuwProduct/n2:Budget" mode="CD077"><call-template name="checkimplication"><with-param name="pValue1">*</with-param><with-param name="pOther" select="ancestor-or-self::n2:NieuwProduct/n2:Omvang"/><with-param name="pValue2">!#</with-param><with-param name="pRule">CD077</with-param></call-template></template><template match="*" mode="CD078"/><template match="n6:ToegewezenProduct/n6:Omvang" mode="CD078"><call-template name="checkimplication"><with-param name="pValue1">#</with-param><with-param name="pOther" select="ancestor-or-self::n6:ToegewezenProduct/n6:Budget"/><with-param name="pValue2">!#</with-param><with-param name="pRule">CD078</with-param></call-template></template><template match="n4:AangevraagdProduct/n4:Omvang" mode="CD078"><call-template name="checkimplication"><with-param name="pValue1">#</with-param><with-param name="pOther" select="ancestor-or-self::n4:AangevraagdProduct/n4:Budget"/><with-param name="pValue2">!#</with-param><with-param name="pRule">CD078</with-param></call-template></template><template match="n2:TeWijzigenProduct/n2:Omvang" mode="CD078"><call-template name="checkimplication"><with-param name="pValue1">#</with-param><with-param name="pOther" select="ancestor-or-self::n2:TeWijzigenProduct/n2:Budget"/><with-param name="pValue2">!#</with-param><with-param name="pRule">CD078</with-param></call-template></template><template match="n2:NieuwProduct/n2:Omvang" mode="CD078"><call-template name="checkimplication"><with-param name="pValue1">#</with-param><with-param name="pOther" select="ancestor-or-self::n2:NieuwProduct/n2:Budget"/><with-param name="pValue2">!#</with-param><with-param name="pRule">CD078</with-param></call-template></template><template match="*" mode="CD079"/><template match="n6:ToegewezenProduct" mode="CD079"><call-template name="checkimplication"><with-param name="pThis" select="n6:Budget"/><with-param name="pValue1"/><with-param name="pOther" select="n6:Product"/><with-param name="pValue2">#</with-param><with-param name="pExtra" select="."/><with-param name="pRule">CD079</with-param></call-template></template><template match="n4:AangevraagdProduct" mode="CD079"><call-template name="checkimplication"><with-param name="pThis" select="n4:Budget"/><with-param name="pValue1"/><with-param name="pOther" select="n4:Product"/><with-param name="pValue2">#</with-param><with-param name="pExtra" select="."/><with-param name="pRule">CD079</with-param></call-template></template><template match="n2:NieuwProduct" mode="CD079"><call-template name="checkimplication"><with-param name="pThis" select="n2:Budget"/><with-param name="pValue1"/><with-param name="pOther" select="n2:Product"/><with-param name="pValue2">#</with-param><with-param name="pExtra" select="."/><with-param name="pRule">CD079</with-param></call-template></template><template match="*" mode="CD080"/><template match="n6:ToegewezenProduct/n6:Omvang" mode="CD080"><if test="not(ancestor-or-self::n6:ToegewezenProduct/n6:Einddatum) or number(translate(ancestor-or-self::n6:ToegewezenProduct/n6:Einddatum/text(),'-','')) &gt; 20201231"><call-template name="checkimplication"><with-param name="pValue1">#</with-param><with-param name="pOther" select="ancestor-or-self::n6:ToegewezenProduct/n6:Product/n9:Code"/><with-param name="pValue2">*</with-param><with-param name="pRule">CD080</with-param><with-param name="pExtra" select="ancestor-or-self::n6:ToegewezenProduct/n6:Einddatum"/></call-template></if></template><template match="*" mode="CD085"/><template match="n0:VerzoekAntwoord" mode="CD085"><call-template name="checkimplication"><with-param name="pValue1">1</with-param><with-param name="pOther" select="../n0:RedenAfwijzingVerzoek"/><with-param name="pValue2">*</with-param><with-param name="pRule">CD085</with-param></call-template></template><template match="*" mode="CD086"/><template match="n0:VerzoekAntwoord" mode="CD086"><call-template name="checkimplication"><with-param name="pValue1">2</with-param><with-param name="pOther" select="../n0:RedenAfwijzingVerzoek"/><with-param name="pValue2"/><with-param name="pRule">CD086</with-param></call-template></template><template match="*" mode="CD087"/><template match="n7:Eenheid" mode="CD087"><call-template name="checksame"><with-param name="pValue1">!83</with-param><with-param name="pOther" select="../n7:ProductTarief"/><with-param name="pValue2">*</with-param><with-param name="pRule">CD087</with-param></call-template></template><template match="*" mode="CD095"/><template match="n4:AangevraagdProduct/n4:Omvang" mode="CD095"><if test="not(ancestor-or-self::n4:AangevraagdProduct/n4:ToewijzingEinddatum) or number(translate(ancestor-or-self::n4:AangevraagdProduct/n4:ToewijzingEinddatum/text(),'-','')) &gt; 20201231"><call-template name="checkimplication"><with-param name="pValue1">#</with-param><with-param name="pOther" select="ancestor-or-self::n4:AangevraagdProduct/n4:Product/n9:Code"/><with-param name="pValue2">*</with-param><with-param name="pRule">CD095</with-param><with-param name="pExtra" select="ancestor-or-self::n4:AangevraagdProduct/n4:ToewijzingEinddatum"/></call-template></if></template><template match="*" mode="CD096"/><template match="n2:TeWijzigenProduct/n2:Omvang" mode="CD096"><if test="not(ancestor-or-self::n2:TeWijzigenProduct/n2:Einddatum) or number(translate(ancestor-or-self::n2:TeWijzigenProduct/n2:Einddatum/text(),'-','')) &gt; 20201231"><call-template name="checkimplication"><with-param name="pValue1">#</with-param><with-param name="pOther" select="ancestor-or-self::n2:TeWijzigenProduct/n2:Product/n9:Code"/><with-param name="pValue2">*</with-param><with-param name="pRule">CD096</with-param><with-param name="pExtra" select="ancestor-or-self::n2:TeWijzigenProduct/n2:Einddatum"/></call-template></if></template><template match="n2:NieuwProduct/n2:Omvang" mode="CD096"><if test="not(ancestor-or-self::n2:NieuwProduct/n2:Einddatum) or number(translate(ancestor-or-self::n2:NieuwProduct/n2:Einddatum/text(),'-','')) &gt; 20201231"><call-template name="checkimplication"><with-param name="pValue1">#</with-param><with-param name="pOther" select="ancestor-or-self::n2:NieuwProduct/n2:Product/n9:Code"/><with-param name="pValue2">*</with-param><with-param name="pRule">CD096</with-param><with-param name="pExtra" select="ancestor-or-self::n2:NieuwProduct/n2:Einddatum"/></call-template></if></template><template match="*" mode="CS002"/><template match="*[local-name() = 'Bsn']" mode="CS002"><call-template name="check11proef"><with-param name="pRule">CS002</with-param></call-template></template><template match="*" mode="CS003"/><template match="n6:Beschikking/n6:Einddatum" mode="CS003"><call-template name="checkafter"><with-param name="pOther" select="../n6:Ingangsdatum"/><with-param name="pRule">CS003</with-param></call-template></template><template match="n6:ToegewezenProduct/n6:Einddatum" mode="CS003"><call-template name="checkafter"><with-param name="pOther" select="../n6:Ingangsdatum"/><with-param name="pRule">CS003</with-param></call-template></template><template match="n6:Contact/n6:Periode/n9:Einddatum" mode="CS003"><call-template name="checkafter"><with-param name="pOther" select="../n9:Begindatum"/><with-param name="pRule">CS003</with-param></call-template></template><template match="n4:AangevraagdProduct/n4:ToewijzingEinddatum" mode="CS003"><call-template name="checkafter"><with-param name="pOther" select="../n4:ToewijzingIngangsdatum"/><with-param name="pRule">CS003</with-param></call-template></template><template match="n2:TeWijzigenProduct/n2:Einddatum" mode="CS003"><call-template name="checkafter"><with-param name="pOther" select="../n2:GewensteIngangsdatum"/><with-param name="pRule">CS003</with-param></call-template></template><template match="n2:NieuwProduct/n2:Einddatum" mode="CS003"><call-template name="checkafter"><with-param name="pOther" select="../n2:GewensteIngangsdatum"/><with-param name="pRule">CS003</with-param></call-template></template><template match="*" mode="CS050"/><template match="n9:NaamGebruik" mode="CS050"><call-template name="checkimplication"><with-param name="pThis" select="../n9:Partnernaam"/><with-param name="pValue1">#</with-param><with-param name="pOther" select="."/><with-param name="pValue2">1,2,3,4</with-param><with-param name="pRule">CS050</with-param></call-template><call-template name="checkimplication"><with-param name="pThis" select="../n9:Partnernaam"/><with-param name="pValue1">!#</with-param><with-param name="pOther" select="."/><with-param name="pValue2">1,6</with-param><with-param name="pRule">CS050</with-param></call-template></template><template match="*" mode="CS058"/><template match="n3:StartProduct/n3:StatusAanlevering" mode="CS058"><call-template name="checkvalue"><with-param name="pValues">1,3</with-param><with-param name="pRule">CS058</with-param></call-template></template><template match="n1:StopProduct/n1:StatusAanlevering" mode="CS058"><call-template name="checkvalue"><with-param name="pValues">1,3</with-param><with-param name="pRule">CS058</with-param></call-template></template><template match="*" mode="CS089"/><template match="n9:LandCode" mode="CS089"><call-template name="checkimplication"><with-param name="pValue1">NL</with-param><with-param name="pOther" select="../n9:Postcode"/><with-param name="pValue2">#1000ZZ</with-param><with-param name="pRule">CS089</with-param></call-template></template><template match="*" mode="CS100"/><template match="n7:ProductPeriode/n9:Begindatum" mode="CS100"><if test="translate(text(),'-','') &lt; 20210101"><call-template name="addError"><with-param name="pRule">CS100</with-param></call-template></if></template><template match="n7:DeclaratiePeriode/n9:Begindatum" mode="CS100"><if test="translate(text(),'-','') &lt; 20210101"><call-template name="addError"><with-param name="pRule">CS100</with-param></call-template></if></template><template match="*" mode="CS139"/><template match="*[n9:Datum and n9:DatumGebruik]" mode="CS139"><choose><when test="n9:DatumGebruik='3' and n9:Datum!='1900-01-01'"><call-template name="addError"><with-param name="pElements" select="n9:Datum|n9:DatumGebruik"/><with-param name="pRule">CS139</with-param></call-template></when><when test="n9:DatumGebruik='2' and substring-after(n9:Datum,'-')!='01-01'"><call-template name="addError"><with-param name="pElements" select="n9:Datum|n9:DatumGebruik"/><with-param name="pRule">CS139</with-param></call-template></when><when test="n9:DatumGebruik='1' and substring-after(substring-after(n9:Datum,'-'),'-')!='01'"><call-template name="addError"><with-param name="pElements" select="n9:Datum|n9:DatumGebruik"/><with-param name="pRule">CS139</with-param></call-template></when></choose></template><template match="*" mode="CS318"/><template match="n6:Client/n6:Naam/n9:NaamGebruik" mode="CS318"><call-template name="checknvalue"><with-param name="pValues">6</with-param><with-param name="pRule">CS318</with-param></call-template></template><template match="*" mode="CS325"/><template match="*[local-name() = 'DeclaratieFactuurTotaalBedrag']" mode="CS325"><call-template name="cs325"><with-param name="bedrag" select="n9:TotaalBedrag"/></call-template></template><template match="*[local-name() = 'BtwTotaalBedrag']" mode="CS325"><call-template name="cs325"><with-param name="bedrag" select="n9:TotaalBedrag"/></call-template></template><template match="*[local-name() = 'BerekendBedrag']" mode="CS325"><call-template name="cs325"><with-param name="bedrag" select="n9:Bedrag"/></call-template></template><template match="*[local-name() = 'BtwBedrag']" mode="CS325"><call-template name="cs325"><with-param name="bedrag" select="n9:Bedrag"/></call-template></template><template match="*[local-name() = 'DeclaratieFactuurBedrag']" mode="CS325"><call-template name="cs325"><with-param name="bedrag" select="n9:Bedrag"/></call-template></template><template match="*[local-name() = 'IngediendTotaalBedrag']" mode="CS325"><call-template name="cs325"><with-param name="bedrag" select="n9:TotaalBedrag"/></call-template></template><template match="*[local-name() = 'ToegekendTotaalBedrag']" mode="CS325"><call-template name="cs325"><with-param name="bedrag" select="n9:TotaalBedrag"/></call-template></template><template match="*[local-name() = 'GemeenteBerekendBedrag']" mode="CS325"><call-template name="cs325"><with-param name="bedrag" select="n9:Bedrag"/></call-template></template><template match="*[local-name() = 'ToegekendBedrag']" mode="CS325"><call-template name="cs325"><with-param name="bedrag" select="n9:Bedrag"/></call-template></template><template match="*[local-name() = 'TotaalIngediendBedrag']" mode="CS325"><call-template name="cs325"><with-param name="bedrag" select="n9:TotaalBedrag"/></call-template></template><template match="*[local-name() = 'IngediendBedrag']" mode="CS325"><call-template name="cs325"><with-param name="bedrag" select="n9:Bedrag"/></call-template></template><template match="*[local-name() = 'TotaalToegekendBedrag']" mode="CS325"><call-template name="cs325"><with-param name="bedrag" select="n9:TotaalBedrag"/></call-template></template><template name="cs325"><param name="bedrag"/><param name="debetCredit" select="./n9:DebetCredit"/><if test="$bedrag=0 and (normalize-space($debetCredit)='c' or normalize-space($debetCredit)='C')"><call-template name="addError"><with-param name="pElements" select="$bedrag|$debetCredit"/><with-param name="pRule">CS325</with-param></call-template></if></template><template match="*" mode="CS335"/><template match="n6:ToegewezenProduct[n6:RedenWijziging/text() = '13']" mode="CS335"><call-template name="checkDateEquals"><with-param name="pThis" select="n6:Ingangsdatum"/><with-param name="pOther" select="n6:Einddatum"/><with-param name="pExtra" select="nonExistantNode"/><with-param name="pRule">CS335</with-param></call-template></template><template match="*" mode="CS336"/><template match="n6:ToegewezenProduct/n6:RedenWijziging" mode="CS336"><call-template name="checknvalue"><with-param name="pValues">01</with-param><with-param name="pRule">CS336</with-param></call-template></template><template match="*" mode="CS337"/><template match="n7:Prestatie" mode="CS337"><call-template name="checksameyear"><with-param name="pThis" select="n7:ProductPeriode/n9:Begindatum"/><with-param name="pOther" select="n7:ProductPeriode/n9:Einddatum"/><with-param name="pRule">CS337</with-param></call-template><call-template name="checksamemonth"><with-param name="pThis" select="n7:ProductPeriode/n9:Begindatum"/><with-param name="pOther" select="n7:ProductPeriode/n9:Einddatum"/><with-param name="pRule">CS337</with-param></call-template></template><template match="*" mode="CS338"/><template match="n6:ToegewezenProduct//n6:Omvang/n9:Eenheid" mode="CS338"><if test="not(ancestor-or-self::n6:ToegewezenProduct/n6:Einddatum) or number(translate(ancestor-or-self::n6:ToegewezenProduct/n6:Einddatum/text(),'-','')) &gt; 20201231"><call-template name="checkimplication"><with-param name="pValue1">14,16,83,84</with-param><with-param name="pOther" select="../n9:Frequentie"/><with-param name="pValue2">2,4,6</with-param><with-param name="pRule">CS338</with-param><with-param name="pExtra" select="ancestor-or-self::n6:ToegewezenProduct/n6:Einddatum"/></call-template></if></template><template match="n2:TeWijzigenProduct//n2:Omvang/n9:Eenheid" mode="CS338"><if test="not(ancestor-or-self::n2:TeWijzigenProduct/n2:Einddatum) or number(translate(ancestor-or-self::n2:TeWijzigenProduct/n2:Einddatum/text(),'-','')) &gt; 20201231"><call-template name="checkimplication"><with-param name="pValue1">14,16,83,84</with-param><with-param name="pOther" select="../n9:Frequentie"/><with-param name="pValue2">2,4,6</with-param><with-param name="pRule">CS338</with-param><with-param name="pExtra" select="ancestor-or-self::n2:TeWijzigenProduct/n2:Einddatum"/></call-template></if></template><template match="n2:NieuwProduct//n2:Omvang/n9:Eenheid" mode="CS338"><if test="not(ancestor-or-self::n2:NieuwProduct/n2:Einddatum) or number(translate(ancestor-or-self::n2:NieuwProduct/n2:Einddatum/text(),'-','')) &gt; 20201231"><call-template name="checkimplication"><with-param name="pValue1">14,16,83,84</with-param><with-param name="pOther" select="../n9:Frequentie"/><with-param name="pValue2">2,4,6</with-param><with-param name="pRule">CS338</with-param><with-param name="pExtra" select="ancestor-or-self::n2:NieuwProduct/n2:Einddatum"/></call-template></if></template><template match="*" mode="CS339"/><template match="n7:Prestatie[n7:Eenheid/text() = '83']" mode="CS339"><call-template name="checkRelation"><with-param name="pThis" select="n7:GeleverdVolume"/><with-param name="pOther" select="n7:IngediendBedrag/n9:Bedrag"/><with-param name="pExtra" select="nonExistantNode"/><with-param name="pRelation">equals</with-param><with-param name="pRule">CS339</with-param></call-template></template><template match="*" mode="CS340"/><template match="n7:DeclaratiePeriode" mode="CS340"><if test="substring-after(substring-after(n9:Begindatum,'-'),'-')!='01'"><call-template name="addError"><with-param name="pElements" select="n9:Begindatum"/><with-param name="pRule">CS340</with-param></call-template></if><variable name="v1"><call-template name="addDate"><with-param name="pDate" select="n9:Einddatum/text()"/><with-param name="pExtra">1</with-param></call-template></variable><variable name="v2"><call-template name="addMonths"><with-param name="pDate" select="n9:Begindatum/text()"/><with-param name="pExtra">1</with-param></call-template></variable><if test="$v1!=$v2"><call-template name="addError"><with-param name="pElements" select="n9:Begindatum|n9:Einddatum"/><with-param name="pRule">CS340</with-param></call-template></if></template><template match="*" mode="CS343"/><template match="n4:AangevraagdProduct//n4:Omvang/n9:Eenheid" mode="CS343"><if test="not(ancestor-or-self::n4:AangevraagdProduct/n4:ToewijzingEinddatum) or number(translate(ancestor-or-self::n4:AangevraagdProduct/n4:ToewijzingEinddatum/text(),'-','')) &gt; 20201231"><call-template name="checkimplication"><with-param name="pValue1">14,16,83,84</with-param><with-param name="pOther" select="../n9:Frequentie"/><with-param name="pValue2">2,4,6</with-param><with-param name="pRule">CS343</with-param><with-param name="pExtra" select="ancestor-or-self::n4:AangevraagdProduct/n4:ToewijzingEinddatum"/></call-template></if></template><template match="*" mode="TR002"/><template match="*[local-name() = 'Geboortedatum']/n9:Datum" mode="TR002"><if test="not(../n9:DatumGebruik/text()='3' and text()='1900-01-01')"><variable name="v1" select="ancestor-or-self::*[local-name()='Bericht']/*[local-name()='Header']"/><call-template name="checkYearsBetween"><with-param name="pDate1" select="$v1/*[local-name()='BerichtIdentificatie']/*[local-name()='Dagtekening']|$v1/*[local-name()='DeclaratieFactuurIdentificatie']/*[local-name()='FactuurDagtekening']"/><with-param name="pDate2" select="."/><with-param name="pYears">120</with-param><with-param name="pRule">TR002</with-param></call-template></if></template><template match="*" mode="TR006"/><template match="n6:Contact" mode="TR006"><call-template name="checkSingleCorrect"><with-param name="pThis" select="n6:Telefoon"/><with-param name="pValue1">#</with-param><with-param name="pOther" select="n6:Adres/n9:Huis"/><with-param name="pValue2">#</with-param><with-param name="pExtra" select="."/><with-param name="pRule">TR006</with-param></call-template><call-template name="checkSingleCorrect"><with-param name="pThis" select="n6:Telefoon"/><with-param name="pValue1">#</with-param><with-param name="pOther" select="n6:Adres/n9:Postcode"/><with-param name="pValue2">#</with-param><with-param name="pExtra" select="."/><with-param name="pRule">TR006</with-param></call-template></template><template match="*" mode="TR018"/><template match="n1:StopProduct/n1:Einddatum" mode="TR018"><call-template name="checkafter"><with-param name="pOther" select="../n1:Begindatum"/><with-param name="pRule">TR018</with-param></call-template></template><template match="*" mode="TR061"/><template match="n6:Client/n6:Contactgegevens" mode="TR061"><if test="not(./n6:Contact/n6:Soort[text()='01' or text()='02' or text()='03'])"><call-template name="addError"><with-param name="pElements" select="n6:Contact"/><with-param name="pRule">TR061</with-param></call-template></if></template><template match="*" mode="TR101simple"/><template match="*" mode="TR101generic"/><template match="*" mode="TR101"><apply-templates mode="TR101simple" select="*"/><apply-templates mode="TR101generic" select="*"/></template><template match="n6:Client" mode="TR101generic"><variable name="v1" select="."/><variable name="v2" select="*[local-name()='Bsn']/text()"/><if test="$v2"><variable name="v3" select="following-sibling::n6:Client[*[local-name()='Bsn']/text()=$v2]"/><if test="not($v3)"><variable name="v4" select="preceding-sibling::n6:Client[*[local-name()='Bsn']/text()=$v2]"/><if test="$v4"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v4"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="not($v2)"><variable name="v3" select="following-sibling::n6:Client[(not(*[local-name()='Bsn']))]"/><if test="not($v3)"><variable name="v4" select="preceding-sibling::n6:Client[(not(*[local-name()='Bsn']))]"/><if test="$v4"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v4"/><with-param name="pRule">TR101</with-param></call-template></if></if></if></template><template match="n6:Contact" mode="TR101generic"><variable name="v1" select="."/><variable name="v2" select="*[local-name()='Soort']/text()"/><if test="$v2"><variable name="v3" select="following-sibling::n6:Contact[*[local-name()='Soort']/text()=$v2]"/><if test="not($v3)"><variable name="v4" select="preceding-sibling::n6:Contact[*[local-name()='Soort']/text()=$v2]"/><if test="$v4"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v4"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="not($v2)"><variable name="v3" select="following-sibling::n6:Contact[(not(*[local-name()='Soort']))]"/><if test="not($v3)"><variable name="v4" select="preceding-sibling::n6:Contact[(not(*[local-name()='Soort']))]"/><if test="$v4"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v4"/><with-param name="pRule">TR101</with-param></call-template></if></if></if></template><template match="n6:Relatie" mode="TR101generic"><variable name="v1" select="."/><variable name="v2" select="*[local-name()='Nummer']/text()"/><if test="$v2"><variable name="v3" select="following-sibling::n6:Relatie[*[local-name()='Nummer']/text()=$v2]"/><if test="not($v3)"><variable name="v4" select="preceding-sibling::n6:Relatie[*[local-name()='Nummer']/text()=$v2]"/><if test="$v4"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v4"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="not($v2)"><variable name="v3" select="following-sibling::n6:Relatie[(not(*[local-name()='Nummer']))]"/><if test="not($v3)"><variable name="v4" select="preceding-sibling::n6:Relatie[(not(*[local-name()='Nummer']))]"/><if test="$v4"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v4"/><with-param name="pRule">TR101</with-param></call-template></if></if></if></template><template match="n6:ToegewezenProduct" mode="TR101generic"><variable name="v1" select="."/><variable name="v2" select="*[local-name()='ToewijzingNummer']/text()"/><if test="$v2"><variable name="v3" select="following-sibling::n6:ToegewezenProduct[*[local-name()='ToewijzingNummer']/text()=$v2]"/><if test="not($v3)"><variable name="v4" select="preceding-sibling::n6:ToegewezenProduct[*[local-name()='ToewijzingNummer']/text()=$v2]"/><if test="$v4"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v4"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="not($v2)"><variable name="v3" select="following-sibling::n6:ToegewezenProduct[(not(*[local-name()='ToewijzingNummer']))]"/><if test="not($v3)"><variable name="v4" select="preceding-sibling::n6:ToegewezenProduct[(not(*[local-name()='ToewijzingNummer']))]"/><if test="$v4"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v4"/><with-param name="pRule">TR101</with-param></call-template></if></if></if></template><template match="n3:Client" mode="TR101generic"><variable name="v1" select="."/><variable name="v2" select="*[local-name()='Bsn']/text()"/><if test="$v2"><variable name="v3" select="following-sibling::n3:Client[*[local-name()='Bsn']/text()=$v2]"/><if test="not($v3)"><variable name="v4" select="preceding-sibling::n3:Client[*[local-name()='Bsn']/text()=$v2]"/><if test="$v4"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v4"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="not($v2)"><variable name="v3" select="following-sibling::n3:Client[(not(*[local-name()='Bsn']))]"/><if test="not($v3)"><variable name="v4" select="preceding-sibling::n3:Client[(not(*[local-name()='Bsn']))]"/><if test="$v4"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v4"/><with-param name="pRule">TR101</with-param></call-template></if></if></if></template><template match="n3:StartProduct" mode="TR101generic"><variable name="v1" select="."/><variable name="v2" select="*[local-name()='Begindatum']/text()"/><variable name="v3" select="*[local-name()='Product']/*[local-name()='Categorie']/text()"/><variable name="v4" select="*[local-name()='Product']/*[local-name()='Code']/text()"/><variable name="v5" select="*[local-name()='ToewijzingNummer']/text()"/><if test="$v2 and $v3 and $v4 and $v5"><variable name="v6" select="following-sibling::n3:StartProduct[*[local-name()='Begindatum']/text()=$v2 and *[local-name()='Product']/*[local-name()='Categorie']/text()=$v3 and *[local-name()='Product']/*[local-name()='Code']/text()=$v4 and *[local-name()='ToewijzingNummer']/text()=$v5]"/><if test="not($v6)"><variable name="v7" select="preceding-sibling::n3:StartProduct[*[local-name()='Begindatum']/text()=$v2 and *[local-name()='Product']/*[local-name()='Categorie']/text()=$v3 and *[local-name()='Product']/*[local-name()='Code']/text()=$v4 and *[local-name()='ToewijzingNummer']/text()=$v5]"/><if test="$v7"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v7"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="$v2 and $v3 and $v4 and not($v5)"><variable name="v6" select="following-sibling::n3:StartProduct[*[local-name()='Begindatum']/text()=$v2 and *[local-name()='Product']/*[local-name()='Categorie']/text()=$v3 and *[local-name()='Product']/*[local-name()='Code']/text()=$v4 and (not(*[local-name()='ToewijzingNummer']))]"/><if test="not($v6)"><variable name="v7" select="preceding-sibling::n3:StartProduct[*[local-name()='Begindatum']/text()=$v2 and *[local-name()='Product']/*[local-name()='Categorie']/text()=$v3 and *[local-name()='Product']/*[local-name()='Code']/text()=$v4 and (not(*[local-name()='ToewijzingNummer']))]"/><if test="$v7"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v7"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="$v2 and $v3 and not($v4) and $v5"><variable name="v6" select="following-sibling::n3:StartProduct[*[local-name()='Begindatum']/text()=$v2 and *[local-name()='Product']/*[local-name()='Categorie']/text()=$v3 and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Code'])]) and *[local-name()='ToewijzingNummer']/text()=$v5]"/><if test="not($v6)"><variable name="v7" select="preceding-sibling::n3:StartProduct[*[local-name()='Begindatum']/text()=$v2 and *[local-name()='Product']/*[local-name()='Categorie']/text()=$v3 and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Code'])]) and *[local-name()='ToewijzingNummer']/text()=$v5]"/><if test="$v7"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v7"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="$v2 and $v3 and not($v4) and not($v5)"><variable name="v6" select="following-sibling::n3:StartProduct[*[local-name()='Begindatum']/text()=$v2 and *[local-name()='Product']/*[local-name()='Categorie']/text()=$v3 and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Code'])]) and (not(*[local-name()='ToewijzingNummer']))]"/><if test="not($v6)"><variable name="v7" select="preceding-sibling::n3:StartProduct[*[local-name()='Begindatum']/text()=$v2 and *[local-name()='Product']/*[local-name()='Categorie']/text()=$v3 and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Code'])]) and (not(*[local-name()='ToewijzingNummer']))]"/><if test="$v7"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v7"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="$v2 and not($v3) and $v4 and $v5"><variable name="v6" select="following-sibling::n3:StartProduct[*[local-name()='Begindatum']/text()=$v2 and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Categorie'])]) and *[local-name()='Product']/*[local-name()='Code']/text()=$v4 and *[local-name()='ToewijzingNummer']/text()=$v5]"/><if test="not($v6)"><variable name="v7" select="preceding-sibling::n3:StartProduct[*[local-name()='Begindatum']/text()=$v2 and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Categorie'])]) and *[local-name()='Product']/*[local-name()='Code']/text()=$v4 and *[local-name()='ToewijzingNummer']/text()=$v5]"/><if test="$v7"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v7"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="$v2 and not($v3) and $v4 and not($v5)"><variable name="v6" select="following-sibling::n3:StartProduct[*[local-name()='Begindatum']/text()=$v2 and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Categorie'])]) and *[local-name()='Product']/*[local-name()='Code']/text()=$v4 and (not(*[local-name()='ToewijzingNummer']))]"/><if test="not($v6)"><variable name="v7" select="preceding-sibling::n3:StartProduct[*[local-name()='Begindatum']/text()=$v2 and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Categorie'])]) and *[local-name()='Product']/*[local-name()='Code']/text()=$v4 and (not(*[local-name()='ToewijzingNummer']))]"/><if test="$v7"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v7"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="$v2 and not($v3) and not($v4) and $v5"><variable name="v6" select="following-sibling::n3:StartProduct[*[local-name()='Begindatum']/text()=$v2 and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Categorie'])]) and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Code'])]) and *[local-name()='ToewijzingNummer']/text()=$v5]"/><if test="not($v6)"><variable name="v7" select="preceding-sibling::n3:StartProduct[*[local-name()='Begindatum']/text()=$v2 and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Categorie'])]) and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Code'])]) and *[local-name()='ToewijzingNummer']/text()=$v5]"/><if test="$v7"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v7"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="$v2 and not($v3) and not($v4) and not($v5)"><variable name="v6" select="following-sibling::n3:StartProduct[*[local-name()='Begindatum']/text()=$v2 and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Categorie'])]) and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Code'])]) and (not(*[local-name()='ToewijzingNummer']))]"/><if test="not($v6)"><variable name="v7" select="preceding-sibling::n3:StartProduct[*[local-name()='Begindatum']/text()=$v2 and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Categorie'])]) and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Code'])]) and (not(*[local-name()='ToewijzingNummer']))]"/><if test="$v7"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v7"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="not($v2) and $v3 and $v4 and $v5"><variable name="v6" select="following-sibling::n3:StartProduct[(not(*[local-name()='Begindatum'])) and *[local-name()='Product']/*[local-name()='Categorie']/text()=$v3 and *[local-name()='Product']/*[local-name()='Code']/text()=$v4 and *[local-name()='ToewijzingNummer']/text()=$v5]"/><if test="not($v6)"><variable name="v7" select="preceding-sibling::n3:StartProduct[(not(*[local-name()='Begindatum'])) and *[local-name()='Product']/*[local-name()='Categorie']/text()=$v3 and *[local-name()='Product']/*[local-name()='Code']/text()=$v4 and *[local-name()='ToewijzingNummer']/text()=$v5]"/><if test="$v7"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v7"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="not($v2) and $v3 and $v4 and not($v5)"><variable name="v6" select="following-sibling::n3:StartProduct[(not(*[local-name()='Begindatum'])) and *[local-name()='Product']/*[local-name()='Categorie']/text()=$v3 and *[local-name()='Product']/*[local-name()='Code']/text()=$v4 and (not(*[local-name()='ToewijzingNummer']))]"/><if test="not($v6)"><variable name="v7" select="preceding-sibling::n3:StartProduct[(not(*[local-name()='Begindatum'])) and *[local-name()='Product']/*[local-name()='Categorie']/text()=$v3 and *[local-name()='Product']/*[local-name()='Code']/text()=$v4 and (not(*[local-name()='ToewijzingNummer']))]"/><if test="$v7"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v7"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="not($v2) and $v3 and not($v4) and $v5"><variable name="v6" select="following-sibling::n3:StartProduct[(not(*[local-name()='Begindatum'])) and *[local-name()='Product']/*[local-name()='Categorie']/text()=$v3 and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Code'])]) and *[local-name()='ToewijzingNummer']/text()=$v5]"/><if test="not($v6)"><variable name="v7" select="preceding-sibling::n3:StartProduct[(not(*[local-name()='Begindatum'])) and *[local-name()='Product']/*[local-name()='Categorie']/text()=$v3 and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Code'])]) and *[local-name()='ToewijzingNummer']/text()=$v5]"/><if test="$v7"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v7"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="not($v2) and $v3 and not($v4) and not($v5)"><variable name="v6" select="following-sibling::n3:StartProduct[(not(*[local-name()='Begindatum'])) and *[local-name()='Product']/*[local-name()='Categorie']/text()=$v3 and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Code'])]) and (not(*[local-name()='ToewijzingNummer']))]"/><if test="not($v6)"><variable name="v7" select="preceding-sibling::n3:StartProduct[(not(*[local-name()='Begindatum'])) and *[local-name()='Product']/*[local-name()='Categorie']/text()=$v3 and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Code'])]) and (not(*[local-name()='ToewijzingNummer']))]"/><if test="$v7"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v7"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="not($v2) and not($v3) and $v4 and $v5"><variable name="v6" select="following-sibling::n3:StartProduct[(not(*[local-name()='Begindatum'])) and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Categorie'])]) and *[local-name()='Product']/*[local-name()='Code']/text()=$v4 and *[local-name()='ToewijzingNummer']/text()=$v5]"/><if test="not($v6)"><variable name="v7" select="preceding-sibling::n3:StartProduct[(not(*[local-name()='Begindatum'])) and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Categorie'])]) and *[local-name()='Product']/*[local-name()='Code']/text()=$v4 and *[local-name()='ToewijzingNummer']/text()=$v5]"/><if test="$v7"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v7"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="not($v2) and not($v3) and $v4 and not($v5)"><variable name="v6" select="following-sibling::n3:StartProduct[(not(*[local-name()='Begindatum'])) and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Categorie'])]) and *[local-name()='Product']/*[local-name()='Code']/text()=$v4 and (not(*[local-name()='ToewijzingNummer']))]"/><if test="not($v6)"><variable name="v7" select="preceding-sibling::n3:StartProduct[(not(*[local-name()='Begindatum'])) and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Categorie'])]) and *[local-name()='Product']/*[local-name()='Code']/text()=$v4 and (not(*[local-name()='ToewijzingNummer']))]"/><if test="$v7"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v7"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="not($v2) and not($v3) and not($v4) and $v5"><variable name="v6" select="following-sibling::n3:StartProduct[(not(*[local-name()='Begindatum'])) and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Categorie'])]) and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Code'])]) and *[local-name()='ToewijzingNummer']/text()=$v5]"/><if test="not($v6)"><variable name="v7" select="preceding-sibling::n3:StartProduct[(not(*[local-name()='Begindatum'])) and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Categorie'])]) and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Code'])]) and *[local-name()='ToewijzingNummer']/text()=$v5]"/><if test="$v7"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v7"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="not($v2) and not($v3) and not($v4) and not($v5)"><variable name="v6" select="following-sibling::n3:StartProduct[(not(*[local-name()='Begindatum'])) and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Categorie'])]) and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Code'])]) and (not(*[local-name()='ToewijzingNummer']))]"/><if test="not($v6)"><variable name="v7" select="preceding-sibling::n3:StartProduct[(not(*[local-name()='Begindatum'])) and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Categorie'])]) and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Code'])]) and (not(*[local-name()='ToewijzingNummer']))]"/><if test="$v7"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v7"/><with-param name="pRule">TR101</with-param></call-template></if></if></if></template><template match="n1:Client" mode="TR101generic"><variable name="v1" select="."/><variable name="v2" select="*[local-name()='Bsn']/text()"/><if test="$v2"><variable name="v3" select="following-sibling::n1:Client[*[local-name()='Bsn']/text()=$v2]"/><if test="not($v3)"><variable name="v4" select="preceding-sibling::n1:Client[*[local-name()='Bsn']/text()=$v2]"/><if test="$v4"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v4"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="not($v2)"><variable name="v3" select="following-sibling::n1:Client[(not(*[local-name()='Bsn']))]"/><if test="not($v3)"><variable name="v4" select="preceding-sibling::n1:Client[(not(*[local-name()='Bsn']))]"/><if test="$v4"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v4"/><with-param name="pRule">TR101</with-param></call-template></if></if></if></template><template match="n1:StopProduct" mode="TR101generic"><variable name="v1" select="."/><variable name="v2" select="*[local-name()='Begindatum']/text()"/><variable name="v3" select="*[local-name()='Einddatum']/text()"/><variable name="v4" select="*[local-name()='Product']/*[local-name()='Categorie']/text()"/><variable name="v5" select="*[local-name()='Product']/*[local-name()='Code']/text()"/><variable name="v6" select="*[local-name()='ToewijzingNummer']/text()"/><if test="$v2 and $v3 and $v4 and $v5 and $v6"><variable name="v7" select="following-sibling::n1:StopProduct[*[local-name()='Begindatum']/text()=$v2 and *[local-name()='Einddatum']/text()=$v3 and *[local-name()='Product']/*[local-name()='Categorie']/text()=$v4 and *[local-name()='Product']/*[local-name()='Code']/text()=$v5 and *[local-name()='ToewijzingNummer']/text()=$v6]"/><if test="not($v7)"><variable name="v8" select="preceding-sibling::n1:StopProduct[*[local-name()='Begindatum']/text()=$v2 and *[local-name()='Einddatum']/text()=$v3 and *[local-name()='Product']/*[local-name()='Categorie']/text()=$v4 and *[local-name()='Product']/*[local-name()='Code']/text()=$v5 and *[local-name()='ToewijzingNummer']/text()=$v6]"/><if test="$v8"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v8"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="$v2 and $v3 and $v4 and $v5 and not($v6)"><variable name="v7" select="following-sibling::n1:StopProduct[*[local-name()='Begindatum']/text()=$v2 and *[local-name()='Einddatum']/text()=$v3 and *[local-name()='Product']/*[local-name()='Categorie']/text()=$v4 and *[local-name()='Product']/*[local-name()='Code']/text()=$v5 and (not(*[local-name()='ToewijzingNummer']))]"/><if test="not($v7)"><variable name="v8" select="preceding-sibling::n1:StopProduct[*[local-name()='Begindatum']/text()=$v2 and *[local-name()='Einddatum']/text()=$v3 and *[local-name()='Product']/*[local-name()='Categorie']/text()=$v4 and *[local-name()='Product']/*[local-name()='Code']/text()=$v5 and (not(*[local-name()='ToewijzingNummer']))]"/><if test="$v8"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v8"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="$v2 and $v3 and $v4 and not($v5) and $v6"><variable name="v7" select="following-sibling::n1:StopProduct[*[local-name()='Begindatum']/text()=$v2 and *[local-name()='Einddatum']/text()=$v3 and *[local-name()='Product']/*[local-name()='Categorie']/text()=$v4 and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Code'])]) and *[local-name()='ToewijzingNummer']/text()=$v6]"/><if test="not($v7)"><variable name="v8" select="preceding-sibling::n1:StopProduct[*[local-name()='Begindatum']/text()=$v2 and *[local-name()='Einddatum']/text()=$v3 and *[local-name()='Product']/*[local-name()='Categorie']/text()=$v4 and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Code'])]) and *[local-name()='ToewijzingNummer']/text()=$v6]"/><if test="$v8"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v8"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="$v2 and $v3 and $v4 and not($v5) and not($v6)"><variable name="v7" select="following-sibling::n1:StopProduct[*[local-name()='Begindatum']/text()=$v2 and *[local-name()='Einddatum']/text()=$v3 and *[local-name()='Product']/*[local-name()='Categorie']/text()=$v4 and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Code'])]) and (not(*[local-name()='ToewijzingNummer']))]"/><if test="not($v7)"><variable name="v8" select="preceding-sibling::n1:StopProduct[*[local-name()='Begindatum']/text()=$v2 and *[local-name()='Einddatum']/text()=$v3 and *[local-name()='Product']/*[local-name()='Categorie']/text()=$v4 and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Code'])]) and (not(*[local-name()='ToewijzingNummer']))]"/><if test="$v8"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v8"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="$v2 and $v3 and not($v4) and $v5 and $v6"><variable name="v7" select="following-sibling::n1:StopProduct[*[local-name()='Begindatum']/text()=$v2 and *[local-name()='Einddatum']/text()=$v3 and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Categorie'])]) and *[local-name()='Product']/*[local-name()='Code']/text()=$v5 and *[local-name()='ToewijzingNummer']/text()=$v6]"/><if test="not($v7)"><variable name="v8" select="preceding-sibling::n1:StopProduct[*[local-name()='Begindatum']/text()=$v2 and *[local-name()='Einddatum']/text()=$v3 and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Categorie'])]) and *[local-name()='Product']/*[local-name()='Code']/text()=$v5 and *[local-name()='ToewijzingNummer']/text()=$v6]"/><if test="$v8"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v8"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="$v2 and $v3 and not($v4) and $v5 and not($v6)"><variable name="v7" select="following-sibling::n1:StopProduct[*[local-name()='Begindatum']/text()=$v2 and *[local-name()='Einddatum']/text()=$v3 and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Categorie'])]) and *[local-name()='Product']/*[local-name()='Code']/text()=$v5 and (not(*[local-name()='ToewijzingNummer']))]"/><if test="not($v7)"><variable name="v8" select="preceding-sibling::n1:StopProduct[*[local-name()='Begindatum']/text()=$v2 and *[local-name()='Einddatum']/text()=$v3 and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Categorie'])]) and *[local-name()='Product']/*[local-name()='Code']/text()=$v5 and (not(*[local-name()='ToewijzingNummer']))]"/><if test="$v8"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v8"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="$v2 and $v3 and not($v4) and not($v5) and $v6"><variable name="v7" select="following-sibling::n1:StopProduct[*[local-name()='Begindatum']/text()=$v2 and *[local-name()='Einddatum']/text()=$v3 and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Categorie'])]) and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Code'])]) and *[local-name()='ToewijzingNummer']/text()=$v6]"/><if test="not($v7)"><variable name="v8" select="preceding-sibling::n1:StopProduct[*[local-name()='Begindatum']/text()=$v2 and *[local-name()='Einddatum']/text()=$v3 and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Categorie'])]) and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Code'])]) and *[local-name()='ToewijzingNummer']/text()=$v6]"/><if test="$v8"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v8"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="$v2 and $v3 and not($v4) and not($v5) and not($v6)"><variable name="v7" select="following-sibling::n1:StopProduct[*[local-name()='Begindatum']/text()=$v2 and *[local-name()='Einddatum']/text()=$v3 and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Categorie'])]) and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Code'])]) and (not(*[local-name()='ToewijzingNummer']))]"/><if test="not($v7)"><variable name="v8" select="preceding-sibling::n1:StopProduct[*[local-name()='Begindatum']/text()=$v2 and *[local-name()='Einddatum']/text()=$v3 and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Categorie'])]) and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Code'])]) and (not(*[local-name()='ToewijzingNummer']))]"/><if test="$v8"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v8"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="$v2 and not($v3) and $v4 and $v5 and $v6"><variable name="v7" select="following-sibling::n1:StopProduct[*[local-name()='Begindatum']/text()=$v2 and (not(*[local-name()='Einddatum'])) and *[local-name()='Product']/*[local-name()='Categorie']/text()=$v4 and *[local-name()='Product']/*[local-name()='Code']/text()=$v5 and *[local-name()='ToewijzingNummer']/text()=$v6]"/><if test="not($v7)"><variable name="v8" select="preceding-sibling::n1:StopProduct[*[local-name()='Begindatum']/text()=$v2 and (not(*[local-name()='Einddatum'])) and *[local-name()='Product']/*[local-name()='Categorie']/text()=$v4 and *[local-name()='Product']/*[local-name()='Code']/text()=$v5 and *[local-name()='ToewijzingNummer']/text()=$v6]"/><if test="$v8"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v8"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="$v2 and not($v3) and $v4 and $v5 and not($v6)"><variable name="v7" select="following-sibling::n1:StopProduct[*[local-name()='Begindatum']/text()=$v2 and (not(*[local-name()='Einddatum'])) and *[local-name()='Product']/*[local-name()='Categorie']/text()=$v4 and *[local-name()='Product']/*[local-name()='Code']/text()=$v5 and (not(*[local-name()='ToewijzingNummer']))]"/><if test="not($v7)"><variable name="v8" select="preceding-sibling::n1:StopProduct[*[local-name()='Begindatum']/text()=$v2 and (not(*[local-name()='Einddatum'])) and *[local-name()='Product']/*[local-name()='Categorie']/text()=$v4 and *[local-name()='Product']/*[local-name()='Code']/text()=$v5 and (not(*[local-name()='ToewijzingNummer']))]"/><if test="$v8"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v8"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="$v2 and not($v3) and $v4 and not($v5) and $v6"><variable name="v7" select="following-sibling::n1:StopProduct[*[local-name()='Begindatum']/text()=$v2 and (not(*[local-name()='Einddatum'])) and *[local-name()='Product']/*[local-name()='Categorie']/text()=$v4 and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Code'])]) and *[local-name()='ToewijzingNummer']/text()=$v6]"/><if test="not($v7)"><variable name="v8" select="preceding-sibling::n1:StopProduct[*[local-name()='Begindatum']/text()=$v2 and (not(*[local-name()='Einddatum'])) and *[local-name()='Product']/*[local-name()='Categorie']/text()=$v4 and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Code'])]) and *[local-name()='ToewijzingNummer']/text()=$v6]"/><if test="$v8"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v8"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="$v2 and not($v3) and $v4 and not($v5) and not($v6)"><variable name="v7" select="following-sibling::n1:StopProduct[*[local-name()='Begindatum']/text()=$v2 and (not(*[local-name()='Einddatum'])) and *[local-name()='Product']/*[local-name()='Categorie']/text()=$v4 and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Code'])]) and (not(*[local-name()='ToewijzingNummer']))]"/><if test="not($v7)"><variable name="v8" select="preceding-sibling::n1:StopProduct[*[local-name()='Begindatum']/text()=$v2 and (not(*[local-name()='Einddatum'])) and *[local-name()='Product']/*[local-name()='Categorie']/text()=$v4 and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Code'])]) and (not(*[local-name()='ToewijzingNummer']))]"/><if test="$v8"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v8"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="$v2 and not($v3) and not($v4) and $v5 and $v6"><variable name="v7" select="following-sibling::n1:StopProduct[*[local-name()='Begindatum']/text()=$v2 and (not(*[local-name()='Einddatum'])) and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Categorie'])]) and *[local-name()='Product']/*[local-name()='Code']/text()=$v5 and *[local-name()='ToewijzingNummer']/text()=$v6]"/><if test="not($v7)"><variable name="v8" select="preceding-sibling::n1:StopProduct[*[local-name()='Begindatum']/text()=$v2 and (not(*[local-name()='Einddatum'])) and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Categorie'])]) and *[local-name()='Product']/*[local-name()='Code']/text()=$v5 and *[local-name()='ToewijzingNummer']/text()=$v6]"/><if test="$v8"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v8"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="$v2 and not($v3) and not($v4) and $v5 and not($v6)"><variable name="v7" select="following-sibling::n1:StopProduct[*[local-name()='Begindatum']/text()=$v2 and (not(*[local-name()='Einddatum'])) and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Categorie'])]) and *[local-name()='Product']/*[local-name()='Code']/text()=$v5 and (not(*[local-name()='ToewijzingNummer']))]"/><if test="not($v7)"><variable name="v8" select="preceding-sibling::n1:StopProduct[*[local-name()='Begindatum']/text()=$v2 and (not(*[local-name()='Einddatum'])) and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Categorie'])]) and *[local-name()='Product']/*[local-name()='Code']/text()=$v5 and (not(*[local-name()='ToewijzingNummer']))]"/><if test="$v8"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v8"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="$v2 and not($v3) and not($v4) and not($v5) and $v6"><variable name="v7" select="following-sibling::n1:StopProduct[*[local-name()='Begindatum']/text()=$v2 and (not(*[local-name()='Einddatum'])) and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Categorie'])]) and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Code'])]) and *[local-name()='ToewijzingNummer']/text()=$v6]"/><if test="not($v7)"><variable name="v8" select="preceding-sibling::n1:StopProduct[*[local-name()='Begindatum']/text()=$v2 and (not(*[local-name()='Einddatum'])) and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Categorie'])]) and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Code'])]) and *[local-name()='ToewijzingNummer']/text()=$v6]"/><if test="$v8"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v8"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="$v2 and not($v3) and not($v4) and not($v5) and not($v6)"><variable name="v7" select="following-sibling::n1:StopProduct[*[local-name()='Begindatum']/text()=$v2 and (not(*[local-name()='Einddatum'])) and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Categorie'])]) and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Code'])]) and (not(*[local-name()='ToewijzingNummer']))]"/><if test="not($v7)"><variable name="v8" select="preceding-sibling::n1:StopProduct[*[local-name()='Begindatum']/text()=$v2 and (not(*[local-name()='Einddatum'])) and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Categorie'])]) and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Code'])]) and (not(*[local-name()='ToewijzingNummer']))]"/><if test="$v8"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v8"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="not($v2) and $v3 and $v4 and $v5 and $v6"><variable name="v7" select="following-sibling::n1:StopProduct[(not(*[local-name()='Begindatum'])) and *[local-name()='Einddatum']/text()=$v3 and *[local-name()='Product']/*[local-name()='Categorie']/text()=$v4 and *[local-name()='Product']/*[local-name()='Code']/text()=$v5 and *[local-name()='ToewijzingNummer']/text()=$v6]"/><if test="not($v7)"><variable name="v8" select="preceding-sibling::n1:StopProduct[(not(*[local-name()='Begindatum'])) and *[local-name()='Einddatum']/text()=$v3 and *[local-name()='Product']/*[local-name()='Categorie']/text()=$v4 and *[local-name()='Product']/*[local-name()='Code']/text()=$v5 and *[local-name()='ToewijzingNummer']/text()=$v6]"/><if test="$v8"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v8"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="not($v2) and $v3 and $v4 and $v5 and not($v6)"><variable name="v7" select="following-sibling::n1:StopProduct[(not(*[local-name()='Begindatum'])) and *[local-name()='Einddatum']/text()=$v3 and *[local-name()='Product']/*[local-name()='Categorie']/text()=$v4 and *[local-name()='Product']/*[local-name()='Code']/text()=$v5 and (not(*[local-name()='ToewijzingNummer']))]"/><if test="not($v7)"><variable name="v8" select="preceding-sibling::n1:StopProduct[(not(*[local-name()='Begindatum'])) and *[local-name()='Einddatum']/text()=$v3 and *[local-name()='Product']/*[local-name()='Categorie']/text()=$v4 and *[local-name()='Product']/*[local-name()='Code']/text()=$v5 and (not(*[local-name()='ToewijzingNummer']))]"/><if test="$v8"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v8"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="not($v2) and $v3 and $v4 and not($v5) and $v6"><variable name="v7" select="following-sibling::n1:StopProduct[(not(*[local-name()='Begindatum'])) and *[local-name()='Einddatum']/text()=$v3 and *[local-name()='Product']/*[local-name()='Categorie']/text()=$v4 and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Code'])]) and *[local-name()='ToewijzingNummer']/text()=$v6]"/><if test="not($v7)"><variable name="v8" select="preceding-sibling::n1:StopProduct[(not(*[local-name()='Begindatum'])) and *[local-name()='Einddatum']/text()=$v3 and *[local-name()='Product']/*[local-name()='Categorie']/text()=$v4 and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Code'])]) and *[local-name()='ToewijzingNummer']/text()=$v6]"/><if test="$v8"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v8"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="not($v2) and $v3 and $v4 and not($v5) and not($v6)"><variable name="v7" select="following-sibling::n1:StopProduct[(not(*[local-name()='Begindatum'])) and *[local-name()='Einddatum']/text()=$v3 and *[local-name()='Product']/*[local-name()='Categorie']/text()=$v4 and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Code'])]) and (not(*[local-name()='ToewijzingNummer']))]"/><if test="not($v7)"><variable name="v8" select="preceding-sibling::n1:StopProduct[(not(*[local-name()='Begindatum'])) and *[local-name()='Einddatum']/text()=$v3 and *[local-name()='Product']/*[local-name()='Categorie']/text()=$v4 and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Code'])]) and (not(*[local-name()='ToewijzingNummer']))]"/><if test="$v8"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v8"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="not($v2) and $v3 and not($v4) and $v5 and $v6"><variable name="v7" select="following-sibling::n1:StopProduct[(not(*[local-name()='Begindatum'])) and *[local-name()='Einddatum']/text()=$v3 and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Categorie'])]) and *[local-name()='Product']/*[local-name()='Code']/text()=$v5 and *[local-name()='ToewijzingNummer']/text()=$v6]"/><if test="not($v7)"><variable name="v8" select="preceding-sibling::n1:StopProduct[(not(*[local-name()='Begindatum'])) and *[local-name()='Einddatum']/text()=$v3 and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Categorie'])]) and *[local-name()='Product']/*[local-name()='Code']/text()=$v5 and *[local-name()='ToewijzingNummer']/text()=$v6]"/><if test="$v8"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v8"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="not($v2) and $v3 and not($v4) and $v5 and not($v6)"><variable name="v7" select="following-sibling::n1:StopProduct[(not(*[local-name()='Begindatum'])) and *[local-name()='Einddatum']/text()=$v3 and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Categorie'])]) and *[local-name()='Product']/*[local-name()='Code']/text()=$v5 and (not(*[local-name()='ToewijzingNummer']))]"/><if test="not($v7)"><variable name="v8" select="preceding-sibling::n1:StopProduct[(not(*[local-name()='Begindatum'])) and *[local-name()='Einddatum']/text()=$v3 and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Categorie'])]) and *[local-name()='Product']/*[local-name()='Code']/text()=$v5 and (not(*[local-name()='ToewijzingNummer']))]"/><if test="$v8"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v8"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="not($v2) and $v3 and not($v4) and not($v5) and $v6"><variable name="v7" select="following-sibling::n1:StopProduct[(not(*[local-name()='Begindatum'])) and *[local-name()='Einddatum']/text()=$v3 and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Categorie'])]) and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Code'])]) and *[local-name()='ToewijzingNummer']/text()=$v6]"/><if test="not($v7)"><variable name="v8" select="preceding-sibling::n1:StopProduct[(not(*[local-name()='Begindatum'])) and *[local-name()='Einddatum']/text()=$v3 and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Categorie'])]) and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Code'])]) and *[local-name()='ToewijzingNummer']/text()=$v6]"/><if test="$v8"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v8"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="not($v2) and $v3 and not($v4) and not($v5) and not($v6)"><variable name="v7" select="following-sibling::n1:StopProduct[(not(*[local-name()='Begindatum'])) and *[local-name()='Einddatum']/text()=$v3 and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Categorie'])]) and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Code'])]) and (not(*[local-name()='ToewijzingNummer']))]"/><if test="not($v7)"><variable name="v8" select="preceding-sibling::n1:StopProduct[(not(*[local-name()='Begindatum'])) and *[local-name()='Einddatum']/text()=$v3 and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Categorie'])]) and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Code'])]) and (not(*[local-name()='ToewijzingNummer']))]"/><if test="$v8"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v8"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="not($v2) and not($v3) and $v4 and $v5 and $v6"><variable name="v7" select="following-sibling::n1:StopProduct[(not(*[local-name()='Begindatum'])) and (not(*[local-name()='Einddatum'])) and *[local-name()='Product']/*[local-name()='Categorie']/text()=$v4 and *[local-name()='Product']/*[local-name()='Code']/text()=$v5 and *[local-name()='ToewijzingNummer']/text()=$v6]"/><if test="not($v7)"><variable name="v8" select="preceding-sibling::n1:StopProduct[(not(*[local-name()='Begindatum'])) and (not(*[local-name()='Einddatum'])) and *[local-name()='Product']/*[local-name()='Categorie']/text()=$v4 and *[local-name()='Product']/*[local-name()='Code']/text()=$v5 and *[local-name()='ToewijzingNummer']/text()=$v6]"/><if test="$v8"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v8"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="not($v2) and not($v3) and $v4 and $v5 and not($v6)"><variable name="v7" select="following-sibling::n1:StopProduct[(not(*[local-name()='Begindatum'])) and (not(*[local-name()='Einddatum'])) and *[local-name()='Product']/*[local-name()='Categorie']/text()=$v4 and *[local-name()='Product']/*[local-name()='Code']/text()=$v5 and (not(*[local-name()='ToewijzingNummer']))]"/><if test="not($v7)"><variable name="v8" select="preceding-sibling::n1:StopProduct[(not(*[local-name()='Begindatum'])) and (not(*[local-name()='Einddatum'])) and *[local-name()='Product']/*[local-name()='Categorie']/text()=$v4 and *[local-name()='Product']/*[local-name()='Code']/text()=$v5 and (not(*[local-name()='ToewijzingNummer']))]"/><if test="$v8"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v8"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="not($v2) and not($v3) and $v4 and not($v5) and $v6"><variable name="v7" select="following-sibling::n1:StopProduct[(not(*[local-name()='Begindatum'])) and (not(*[local-name()='Einddatum'])) and *[local-name()='Product']/*[local-name()='Categorie']/text()=$v4 and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Code'])]) and *[local-name()='ToewijzingNummer']/text()=$v6]"/><if test="not($v7)"><variable name="v8" select="preceding-sibling::n1:StopProduct[(not(*[local-name()='Begindatum'])) and (not(*[local-name()='Einddatum'])) and *[local-name()='Product']/*[local-name()='Categorie']/text()=$v4 and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Code'])]) and *[local-name()='ToewijzingNummer']/text()=$v6]"/><if test="$v8"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v8"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="not($v2) and not($v3) and $v4 and not($v5) and not($v6)"><variable name="v7" select="following-sibling::n1:StopProduct[(not(*[local-name()='Begindatum'])) and (not(*[local-name()='Einddatum'])) and *[local-name()='Product']/*[local-name()='Categorie']/text()=$v4 and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Code'])]) and (not(*[local-name()='ToewijzingNummer']))]"/><if test="not($v7)"><variable name="v8" select="preceding-sibling::n1:StopProduct[(not(*[local-name()='Begindatum'])) and (not(*[local-name()='Einddatum'])) and *[local-name()='Product']/*[local-name()='Categorie']/text()=$v4 and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Code'])]) and (not(*[local-name()='ToewijzingNummer']))]"/><if test="$v8"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v8"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="not($v2) and not($v3) and not($v4) and $v5 and $v6"><variable name="v7" select="following-sibling::n1:StopProduct[(not(*[local-name()='Begindatum'])) and (not(*[local-name()='Einddatum'])) and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Categorie'])]) and *[local-name()='Product']/*[local-name()='Code']/text()=$v5 and *[local-name()='ToewijzingNummer']/text()=$v6]"/><if test="not($v7)"><variable name="v8" select="preceding-sibling::n1:StopProduct[(not(*[local-name()='Begindatum'])) and (not(*[local-name()='Einddatum'])) and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Categorie'])]) and *[local-name()='Product']/*[local-name()='Code']/text()=$v5 and *[local-name()='ToewijzingNummer']/text()=$v6]"/><if test="$v8"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v8"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="not($v2) and not($v3) and not($v4) and $v5 and not($v6)"><variable name="v7" select="following-sibling::n1:StopProduct[(not(*[local-name()='Begindatum'])) and (not(*[local-name()='Einddatum'])) and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Categorie'])]) and *[local-name()='Product']/*[local-name()='Code']/text()=$v5 and (not(*[local-name()='ToewijzingNummer']))]"/><if test="not($v7)"><variable name="v8" select="preceding-sibling::n1:StopProduct[(not(*[local-name()='Begindatum'])) and (not(*[local-name()='Einddatum'])) and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Categorie'])]) and *[local-name()='Product']/*[local-name()='Code']/text()=$v5 and (not(*[local-name()='ToewijzingNummer']))]"/><if test="$v8"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v8"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="not($v2) and not($v3) and not($v4) and not($v5) and $v6"><variable name="v7" select="following-sibling::n1:StopProduct[(not(*[local-name()='Begindatum'])) and (not(*[local-name()='Einddatum'])) and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Categorie'])]) and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Code'])]) and *[local-name()='ToewijzingNummer']/text()=$v6]"/><if test="not($v7)"><variable name="v8" select="preceding-sibling::n1:StopProduct[(not(*[local-name()='Begindatum'])) and (not(*[local-name()='Einddatum'])) and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Categorie'])]) and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Code'])]) and *[local-name()='ToewijzingNummer']/text()=$v6]"/><if test="$v8"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v8"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="not($v2) and not($v3) and not($v4) and not($v5) and not($v6)"><variable name="v7" select="following-sibling::n1:StopProduct[(not(*[local-name()='Begindatum'])) and (not(*[local-name()='Einddatum'])) and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Categorie'])]) and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Code'])]) and (not(*[local-name()='ToewijzingNummer']))]"/><if test="not($v7)"><variable name="v8" select="preceding-sibling::n1:StopProduct[(not(*[local-name()='Begindatum'])) and (not(*[local-name()='Einddatum'])) and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Categorie'])]) and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Code'])]) and (not(*[local-name()='ToewijzingNummer']))]"/><if test="$v8"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v8"/><with-param name="pRule">TR101</with-param></call-template></if></if></if></template><template match="n4:AangevraagdProduct" mode="TR101generic"><variable name="v1" select="."/><variable name="v2" select="*[local-name()='ReferentieAanbieder']/text()"/><if test="$v2"><variable name="v3" select="following-sibling::n4:AangevraagdProduct[*[local-name()='ReferentieAanbieder']/text()=$v2]"/><if test="not($v3)"><variable name="v4" select="preceding-sibling::n4:AangevraagdProduct[*[local-name()='ReferentieAanbieder']/text()=$v2]"/><if test="$v4"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v4"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="not($v2)"><variable name="v3" select="following-sibling::n4:AangevraagdProduct[(not(*[local-name()='ReferentieAanbieder']))]"/><if test="not($v3)"><variable name="v4" select="preceding-sibling::n4:AangevraagdProduct[(not(*[local-name()='ReferentieAanbieder']))]"/><if test="$v4"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v4"/><with-param name="pRule">TR101</with-param></call-template></if></if></if></template><template match="n4:Client" mode="TR101generic"><variable name="v1" select="."/><variable name="v2" select="*[local-name()='Bsn']/text()"/><if test="$v2"><variable name="v3" select="following-sibling::n4:Client[*[local-name()='Bsn']/text()=$v2]"/><if test="not($v3)"><variable name="v4" select="preceding-sibling::n4:Client[*[local-name()='Bsn']/text()=$v2]"/><if test="$v4"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v4"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="not($v2)"><variable name="v3" select="following-sibling::n4:Client[(not(*[local-name()='Bsn']))]"/><if test="not($v3)"><variable name="v4" select="preceding-sibling::n4:Client[(not(*[local-name()='Bsn']))]"/><if test="$v4"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v4"/><with-param name="pRule">TR101</with-param></call-template></if></if></if></template><template match="n2:Client" mode="TR101generic"><variable name="v1" select="."/><variable name="v2" select="*[local-name()='Bsn']/text()"/><if test="$v2"><variable name="v3" select="following-sibling::n2:Client[*[local-name()='Bsn']/text()=$v2]"/><if test="not($v3)"><variable name="v4" select="preceding-sibling::n2:Client[*[local-name()='Bsn']/text()=$v2]"/><if test="$v4"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v4"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="not($v2)"><variable name="v3" select="following-sibling::n2:Client[(not(*[local-name()='Bsn']))]"/><if test="not($v3)"><variable name="v4" select="preceding-sibling::n2:Client[(not(*[local-name()='Bsn']))]"/><if test="$v4"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v4"/><with-param name="pRule">TR101</with-param></call-template></if></if></if></template><template match="n2:NieuwProduct" mode="TR101generic"><variable name="v1" select="."/><variable name="v2" select="*[local-name()='GewensteIngangsdatum']/text()"/><variable name="v3" select="*[local-name()='Product']/*[local-name()='Categorie']/text()"/><variable name="v4" select="*[local-name()='Product']/*[local-name()='Code']/text()"/><if test="$v2 and $v3 and $v4"><variable name="v5" select="following-sibling::n2:NieuwProduct[*[local-name()='GewensteIngangsdatum']/text()=$v2 and *[local-name()='Product']/*[local-name()='Categorie']/text()=$v3 and *[local-name()='Product']/*[local-name()='Code']/text()=$v4]"/><if test="not($v5)"><variable name="v6" select="preceding-sibling::n2:NieuwProduct[*[local-name()='GewensteIngangsdatum']/text()=$v2 and *[local-name()='Product']/*[local-name()='Categorie']/text()=$v3 and *[local-name()='Product']/*[local-name()='Code']/text()=$v4]"/><if test="$v6"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v6"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="$v2 and $v3 and not($v4)"><variable name="v5" select="following-sibling::n2:NieuwProduct[*[local-name()='GewensteIngangsdatum']/text()=$v2 and *[local-name()='Product']/*[local-name()='Categorie']/text()=$v3 and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Code'])])]"/><if test="not($v5)"><variable name="v6" select="preceding-sibling::n2:NieuwProduct[*[local-name()='GewensteIngangsdatum']/text()=$v2 and *[local-name()='Product']/*[local-name()='Categorie']/text()=$v3 and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Code'])])]"/><if test="$v6"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v6"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="$v2 and not($v3) and $v4"><variable name="v5" select="following-sibling::n2:NieuwProduct[*[local-name()='GewensteIngangsdatum']/text()=$v2 and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Categorie'])]) and *[local-name()='Product']/*[local-name()='Code']/text()=$v4]"/><if test="not($v5)"><variable name="v6" select="preceding-sibling::n2:NieuwProduct[*[local-name()='GewensteIngangsdatum']/text()=$v2 and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Categorie'])]) and *[local-name()='Product']/*[local-name()='Code']/text()=$v4]"/><if test="$v6"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v6"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="$v2 and not($v3) and not($v4)"><variable name="v5" select="following-sibling::n2:NieuwProduct[*[local-name()='GewensteIngangsdatum']/text()=$v2 and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Categorie'])]) and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Code'])])]"/><if test="not($v5)"><variable name="v6" select="preceding-sibling::n2:NieuwProduct[*[local-name()='GewensteIngangsdatum']/text()=$v2 and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Categorie'])]) and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Code'])])]"/><if test="$v6"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v6"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="not($v2) and $v3 and $v4"><variable name="v5" select="following-sibling::n2:NieuwProduct[(not(*[local-name()='GewensteIngangsdatum'])) and *[local-name()='Product']/*[local-name()='Categorie']/text()=$v3 and *[local-name()='Product']/*[local-name()='Code']/text()=$v4]"/><if test="not($v5)"><variable name="v6" select="preceding-sibling::n2:NieuwProduct[(not(*[local-name()='GewensteIngangsdatum'])) and *[local-name()='Product']/*[local-name()='Categorie']/text()=$v3 and *[local-name()='Product']/*[local-name()='Code']/text()=$v4]"/><if test="$v6"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v6"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="not($v2) and $v3 and not($v4)"><variable name="v5" select="following-sibling::n2:NieuwProduct[(not(*[local-name()='GewensteIngangsdatum'])) and *[local-name()='Product']/*[local-name()='Categorie']/text()=$v3 and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Code'])])]"/><if test="not($v5)"><variable name="v6" select="preceding-sibling::n2:NieuwProduct[(not(*[local-name()='GewensteIngangsdatum'])) and *[local-name()='Product']/*[local-name()='Categorie']/text()=$v3 and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Code'])])]"/><if test="$v6"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v6"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="not($v2) and not($v3) and $v4"><variable name="v5" select="following-sibling::n2:NieuwProduct[(not(*[local-name()='GewensteIngangsdatum'])) and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Categorie'])]) and *[local-name()='Product']/*[local-name()='Code']/text()=$v4]"/><if test="not($v5)"><variable name="v6" select="preceding-sibling::n2:NieuwProduct[(not(*[local-name()='GewensteIngangsdatum'])) and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Categorie'])]) and *[local-name()='Product']/*[local-name()='Code']/text()=$v4]"/><if test="$v6"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v6"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="not($v2) and not($v3) and not($v4)"><variable name="v5" select="following-sibling::n2:NieuwProduct[(not(*[local-name()='GewensteIngangsdatum'])) and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Categorie'])]) and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Code'])])]"/><if test="not($v5)"><variable name="v6" select="preceding-sibling::n2:NieuwProduct[(not(*[local-name()='GewensteIngangsdatum'])) and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Categorie'])]) and (not(*[local-name()='Product']) or *[local-name()='Product' and not(*[local-name()='Code'])])]"/><if test="$v6"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v6"/><with-param name="pRule">TR101</with-param></call-template></if></if></if></template><template match="n2:OngewijzigdProduct" mode="TR101generic"><variable name="v1" select="."/><variable name="v2" select="*[local-name()='ToewijzingNummer']/text()"/><if test="$v2"><variable name="v3" select="following-sibling::n2:OngewijzigdProduct[*[local-name()='ToewijzingNummer']/text()=$v2]"/><if test="not($v3)"><variable name="v4" select="preceding-sibling::n2:OngewijzigdProduct[*[local-name()='ToewijzingNummer']/text()=$v2]"/><if test="$v4"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v4"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="not($v2)"><variable name="v3" select="following-sibling::n2:OngewijzigdProduct[(not(*[local-name()='ToewijzingNummer']))]"/><if test="not($v3)"><variable name="v4" select="preceding-sibling::n2:OngewijzigdProduct[(not(*[local-name()='ToewijzingNummer']))]"/><if test="$v4"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v4"/><with-param name="pRule">TR101</with-param></call-template></if></if></if></template><template match="n2:TeWijzigenProduct" mode="TR101generic"><variable name="v1" select="."/><variable name="v2" select="*[local-name()='ToewijzingNummer']/text()"/><if test="$v2"><variable name="v3" select="following-sibling::n2:TeWijzigenProduct[*[local-name()='ToewijzingNummer']/text()=$v2]"/><if test="not($v3)"><variable name="v4" select="preceding-sibling::n2:TeWijzigenProduct[*[local-name()='ToewijzingNummer']/text()=$v2]"/><if test="$v4"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v4"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="not($v2)"><variable name="v3" select="following-sibling::n2:TeWijzigenProduct[(not(*[local-name()='ToewijzingNummer']))]"/><if test="not($v3)"><variable name="v4" select="preceding-sibling::n2:TeWijzigenProduct[(not(*[local-name()='ToewijzingNummer']))]"/><if test="$v4"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v4"/><with-param name="pRule">TR101</with-param></call-template></if></if></if></template><template match="n2:Verzoek" mode="TR101generic"><variable name="v1" select="."/><variable name="v2" select="*[local-name()='ReferentieAanbieder']/text()"/><if test="$v2"><variable name="v3" select="following-sibling::n2:Verzoek[*[local-name()='ReferentieAanbieder']/text()=$v2]"/><if test="not($v3)"><variable name="v4" select="preceding-sibling::n2:Verzoek[*[local-name()='ReferentieAanbieder']/text()=$v2]"/><if test="$v4"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v4"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="not($v2)"><variable name="v3" select="following-sibling::n2:Verzoek[(not(*[local-name()='ReferentieAanbieder']))]"/><if test="not($v3)"><variable name="v4" select="preceding-sibling::n2:Verzoek[(not(*[local-name()='ReferentieAanbieder']))]"/><if test="$v4"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v4"/><with-param name="pRule">TR101</with-param></call-template></if></if></if></template><template match="n0:Antwoord" mode="TR101generic"><variable name="v1" select="."/><variable name="v2" select="*[local-name()='ReferentieAanbieder']/text()"/><variable name="v3" select="*[local-name()='VerzoekAntwoord']/text()"/><if test="$v2 and $v3"><variable name="v4" select="following-sibling::n0:Antwoord[*[local-name()='ReferentieAanbieder']/text()=$v2 and *[local-name()='VerzoekAntwoord']/text()=$v3]"/><if test="not($v4)"><variable name="v5" select="preceding-sibling::n0:Antwoord[*[local-name()='ReferentieAanbieder']/text()=$v2 and *[local-name()='VerzoekAntwoord']/text()=$v3]"/><if test="$v5"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v5"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="$v2 and not($v3)"><variable name="v4" select="following-sibling::n0:Antwoord[*[local-name()='ReferentieAanbieder']/text()=$v2 and (not(*[local-name()='VerzoekAntwoord']))]"/><if test="not($v4)"><variable name="v5" select="preceding-sibling::n0:Antwoord[*[local-name()='ReferentieAanbieder']/text()=$v2 and (not(*[local-name()='VerzoekAntwoord']))]"/><if test="$v5"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v5"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="not($v2) and $v3"><variable name="v4" select="following-sibling::n0:Antwoord[(not(*[local-name()='ReferentieAanbieder'])) and *[local-name()='VerzoekAntwoord']/text()=$v3]"/><if test="not($v4)"><variable name="v5" select="preceding-sibling::n0:Antwoord[(not(*[local-name()='ReferentieAanbieder'])) and *[local-name()='VerzoekAntwoord']/text()=$v3]"/><if test="$v5"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v5"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="not($v2) and not($v3)"><variable name="v4" select="following-sibling::n0:Antwoord[(not(*[local-name()='ReferentieAanbieder'])) and (not(*[local-name()='VerzoekAntwoord']))]"/><if test="not($v4)"><variable name="v5" select="preceding-sibling::n0:Antwoord[(not(*[local-name()='ReferentieAanbieder'])) and (not(*[local-name()='VerzoekAntwoord']))]"/><if test="$v5"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v5"/><with-param name="pRule">TR101</with-param></call-template></if></if></if></template><template match="n0:Woonplaatsbeginsel" mode="TR101generic"><variable name="v1" select="."/><variable name="v2" select="*[local-name()='Gemeente']/text()"/><if test="$v2"><variable name="v3" select="following-sibling::n0:Woonplaatsbeginsel[*[local-name()='Gemeente']/text()=$v2]"/><if test="not($v3)"><variable name="v4" select="preceding-sibling::n0:Woonplaatsbeginsel[*[local-name()='Gemeente']/text()=$v2]"/><if test="$v4"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v4"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="not($v2)"><variable name="v3" select="following-sibling::n0:Woonplaatsbeginsel[(not(*[local-name()='Gemeente']))]"/><if test="not($v3)"><variable name="v4" select="preceding-sibling::n0:Woonplaatsbeginsel[(not(*[local-name()='Gemeente']))]"/><if test="$v4"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v4"/><with-param name="pRule">TR101</with-param></call-template></if></if></if></template><template match="n7:Client" mode="TR101generic"><variable name="v1" select="."/><variable name="v2" select="*[local-name()='Bsn']/text()"/><if test="$v2"><variable name="v3" select="following-sibling::n7:Client[*[local-name()='Bsn']/text()=$v2]"/><if test="not($v3)"><variable name="v4" select="preceding-sibling::n7:Client[*[local-name()='Bsn']/text()=$v2]"/><if test="$v4"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v4"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="not($v2)"><variable name="v3" select="following-sibling::n7:Client[(not(*[local-name()='Bsn']))]"/><if test="not($v3)"><variable name="v4" select="preceding-sibling::n7:Client[(not(*[local-name()='Bsn']))]"/><if test="$v4"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v4"/><with-param name="pRule">TR101</with-param></call-template></if></if></if></template><template match="n7:Declaratie" mode="TR101generic"><variable name="v1" select="."/><variable name="v2" select="*[local-name()='DeclaratieNummer']/text()"/><if test="$v2"><variable name="v3" select="following-sibling::n7:Declaratie[*[local-name()='DeclaratieNummer']/text()=$v2]"/><if test="not($v3)"><variable name="v4" select="preceding-sibling::n7:Declaratie[*[local-name()='DeclaratieNummer']/text()=$v2]"/><if test="$v4"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v4"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="not($v2)"><variable name="v3" select="following-sibling::n7:Declaratie[(not(*[local-name()='DeclaratieNummer']))]"/><if test="not($v3)"><variable name="v4" select="preceding-sibling::n7:Declaratie[(not(*[local-name()='DeclaratieNummer']))]"/><if test="$v4"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v4"/><with-param name="pRule">TR101</with-param></call-template></if></if></if></template><template match="n7:Prestatie" mode="TR101generic"><variable name="v1" select="."/><variable name="v2" select="*[local-name()='ProductReferentie']/*[local-name()='ReferentieNummer']/text()"/><variable name="v3" select="*[local-name()='ProductReferentie']/*[local-name()='VorigReferentieNummer']/text()"/><if test="$v2 and $v3"><variable name="v4" select="following-sibling::n7:Prestatie[*[local-name()='ProductReferentie']/*[local-name()='ReferentieNummer']/text()=$v2 and *[local-name()='ProductReferentie']/*[local-name()='VorigReferentieNummer']/text()=$v3]"/><if test="not($v4)"><variable name="v5" select="preceding-sibling::n7:Prestatie[*[local-name()='ProductReferentie']/*[local-name()='ReferentieNummer']/text()=$v2 and *[local-name()='ProductReferentie']/*[local-name()='VorigReferentieNummer']/text()=$v3]"/><if test="$v5"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v5"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="$v2 and not($v3)"><variable name="v4" select="following-sibling::n7:Prestatie[*[local-name()='ProductReferentie']/*[local-name()='ReferentieNummer']/text()=$v2 and (not(*[local-name()='ProductReferentie']) or *[local-name()='ProductReferentie' and not(*[local-name()='VorigReferentieNummer'])])]"/><if test="not($v4)"><variable name="v5" select="preceding-sibling::n7:Prestatie[*[local-name()='ProductReferentie']/*[local-name()='ReferentieNummer']/text()=$v2 and (not(*[local-name()='ProductReferentie']) or *[local-name()='ProductReferentie' and not(*[local-name()='VorigReferentieNummer'])])]"/><if test="$v5"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v5"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="not($v2) and $v3"><variable name="v4" select="following-sibling::n7:Prestatie[(not(*[local-name()='ProductReferentie']) or *[local-name()='ProductReferentie' and not(*[local-name()='ReferentieNummer'])]) and *[local-name()='ProductReferentie']/*[local-name()='VorigReferentieNummer']/text()=$v3]"/><if test="not($v4)"><variable name="v5" select="preceding-sibling::n7:Prestatie[(not(*[local-name()='ProductReferentie']) or *[local-name()='ProductReferentie' and not(*[local-name()='ReferentieNummer'])]) and *[local-name()='ProductReferentie']/*[local-name()='VorigReferentieNummer']/text()=$v3]"/><if test="$v5"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v5"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="not($v2) and not($v3)"><variable name="v4" select="following-sibling::n7:Prestatie[(not(*[local-name()='ProductReferentie']) or *[local-name()='ProductReferentie' and not(*[local-name()='ReferentieNummer'])]) and (not(*[local-name()='ProductReferentie']) or *[local-name()='ProductReferentie' and not(*[local-name()='VorigReferentieNummer'])])]"/><if test="not($v4)"><variable name="v5" select="preceding-sibling::n7:Prestatie[(not(*[local-name()='ProductReferentie']) or *[local-name()='ProductReferentie' and not(*[local-name()='ReferentieNummer'])]) and (not(*[local-name()='ProductReferentie']) or *[local-name()='ProductReferentie' and not(*[local-name()='VorigReferentieNummer'])])]"/><if test="$v5"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v5"/><with-param name="pRule">TR101</with-param></call-template></if></if></if></template><template match="n5:Client" mode="TR101generic"><variable name="v1" select="."/><variable name="v2" select="*[local-name()='Bsn']/text()"/><if test="$v2"><variable name="v3" select="following-sibling::n5:Client[*[local-name()='Bsn']/text()=$v2]"/><if test="not($v3)"><variable name="v4" select="preceding-sibling::n5:Client[*[local-name()='Bsn']/text()=$v2]"/><if test="$v4"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v4"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="not($v2)"><variable name="v3" select="following-sibling::n5:Client[(not(*[local-name()='Bsn']))]"/><if test="not($v3)"><variable name="v4" select="preceding-sibling::n5:Client[(not(*[local-name()='Bsn']))]"/><if test="$v4"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v4"/><with-param name="pRule">TR101</with-param></call-template></if></if></if></template><template match="n5:DeclaratieAntwoord" mode="TR101generic"><variable name="v1" select="."/><variable name="v2" select="*[local-name()='DeclaratieNummer']/text()"/><if test="$v2"><variable name="v3" select="following-sibling::n5:DeclaratieAntwoord[*[local-name()='DeclaratieNummer']/text()=$v2]"/><if test="not($v3)"><variable name="v4" select="preceding-sibling::n5:DeclaratieAntwoord[*[local-name()='DeclaratieNummer']/text()=$v2]"/><if test="$v4"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v4"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="not($v2)"><variable name="v3" select="following-sibling::n5:DeclaratieAntwoord[(not(*[local-name()='DeclaratieNummer']))]"/><if test="not($v3)"><variable name="v4" select="preceding-sibling::n5:DeclaratieAntwoord[(not(*[local-name()='DeclaratieNummer']))]"/><if test="$v4"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v4"/><with-param name="pRule">TR101</with-param></call-template></if></if></if></template><template match="n5:Prestatie" mode="TR101generic"><variable name="v1" select="."/><variable name="v2" select="*[local-name()='ProductReferentie']/*[local-name()='ReferentieNummer']/text()"/><variable name="v3" select="*[local-name()='ProductReferentie']/*[local-name()='VorigReferentieNummer']/text()"/><if test="$v2 and $v3"><variable name="v4" select="following-sibling::n5:Prestatie[*[local-name()='ProductReferentie']/*[local-name()='ReferentieNummer']/text()=$v2 and *[local-name()='ProductReferentie']/*[local-name()='VorigReferentieNummer']/text()=$v3]"/><if test="not($v4)"><variable name="v5" select="preceding-sibling::n5:Prestatie[*[local-name()='ProductReferentie']/*[local-name()='ReferentieNummer']/text()=$v2 and *[local-name()='ProductReferentie']/*[local-name()='VorigReferentieNummer']/text()=$v3]"/><if test="$v5"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v5"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="$v2 and not($v3)"><variable name="v4" select="following-sibling::n5:Prestatie[*[local-name()='ProductReferentie']/*[local-name()='ReferentieNummer']/text()=$v2 and (not(*[local-name()='ProductReferentie']) or *[local-name()='ProductReferentie' and not(*[local-name()='VorigReferentieNummer'])])]"/><if test="not($v4)"><variable name="v5" select="preceding-sibling::n5:Prestatie[*[local-name()='ProductReferentie']/*[local-name()='ReferentieNummer']/text()=$v2 and (not(*[local-name()='ProductReferentie']) or *[local-name()='ProductReferentie' and not(*[local-name()='VorigReferentieNummer'])])]"/><if test="$v5"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v5"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="not($v2) and $v3"><variable name="v4" select="following-sibling::n5:Prestatie[(not(*[local-name()='ProductReferentie']) or *[local-name()='ProductReferentie' and not(*[local-name()='ReferentieNummer'])]) and *[local-name()='ProductReferentie']/*[local-name()='VorigReferentieNummer']/text()=$v3]"/><if test="not($v4)"><variable name="v5" select="preceding-sibling::n5:Prestatie[(not(*[local-name()='ProductReferentie']) or *[local-name()='ProductReferentie' and not(*[local-name()='ReferentieNummer'])]) and *[local-name()='ProductReferentie']/*[local-name()='VorigReferentieNummer']/text()=$v3]"/><if test="$v5"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v5"/><with-param name="pRule">TR101</with-param></call-template></if></if></if><if test="not($v2) and not($v3)"><variable name="v4" select="following-sibling::n5:Prestatie[(not(*[local-name()='ProductReferentie']) or *[local-name()='ProductReferentie' and not(*[local-name()='ReferentieNummer'])]) and (not(*[local-name()='ProductReferentie']) or *[local-name()='ProductReferentie' and not(*[local-name()='VorigReferentieNummer'])])]"/><if test="not($v4)"><variable name="v5" select="preceding-sibling::n5:Prestatie[(not(*[local-name()='ProductReferentie']) or *[local-name()='ProductReferentie' and not(*[local-name()='ReferentieNummer'])]) and (not(*[local-name()='ProductReferentie']) or *[local-name()='ProductReferentie' and not(*[local-name()='VorigReferentieNummer'])])]"/><if test="$v5"><call-template name="addError"><with-param name="pElements" select=".|$v1|$v5"/><with-param name="pRule">TR101</with-param></call-template></if></if></if></template><template match="*" mode="TR134"/><template match="n6:Beschikking/n6:Afgiftedatum" mode="TR134"><call-template name="TR134"/></template><template match="n6:Client/n6:Geboortedatum/n9:Datum" mode="TR134"><call-template name="TR134"/></template><template match="n6:Relatie/n6:Geboortedatum/n9:Datum" mode="TR134"><call-template name="TR134"/></template><template match="n6:ToegewezenProduct/n6:Toewijzingsdatum" mode="TR134"><call-template name="TR134"/></template><template match="n9:DeclaratiePeriode/n9:Begindatum" mode="TR134"><call-template name="TR134declaratie"/></template><template match="n3:Client/n3:Geboortedatum/n9:Datum" mode="TR134"><call-template name="TR134"/></template><template match="n3:StartProduct/n3:Begindatum" mode="TR134"><call-template name="TR134"/></template><template match="n1:Client/n1:Geboortedatum/n9:Datum" mode="TR134"><call-template name="TR134"/></template><template match="n1:StopProduct/n1:Einddatum" mode="TR134"><call-template name="TR134"/></template><template match="n4:Client/n4:Geboortedatum/n9:Datum" mode="TR134"><call-template name="TR134"/></template><template match="n7:DeclaratiePeriode/n9:Begindatum" mode="TR134"><call-template name="TR134"/></template><template match="n7:ProductPeriode/n9:Begindatum" mode="TR134"><call-template name="TR134"/></template><template match="n5:ProductPeriode/n9:Begindatum" mode="TR134"><call-template name="TR134"/></template><template name="TR134"><param name="pThis" select="."/><call-template name="checkafter"><with-param name="pThis" select="ancestor-or-self::*[local-name()='Bericht']/*[local-name()='Header']/*[local-name()='BerichtIdentificatie']/*[local-name()='Dagtekening']"/><with-param name="pOther" select="$pThis"/><with-param name="pRule">TR134</with-param></call-template></template><template name="TR134declaratie"><param name="pThis" select="."/><call-template name="checkafter"><with-param name="pThis" select="ancestor-or-self::*[local-name()='Bericht']/*[local-name()='Header']/*[local-name()='DeclaratieFactuurIdentificatie']/*[local-name()='FactuurDagtekening']"/><with-param name="pOther" select="$pThis"/><with-param name="pRule">TR134</with-param></call-template></template><template match="*" mode="TR137"/><template match="n7:DeclaratiePeriode" mode="TR137"><call-template name="TR137"/></template><template match="n7:ProductPeriode" mode="TR137"><call-template name="TR137"/></template><template match="n5:ProductPeriode" mode="TR137"><call-template name="TR137"/></template><template name="TR137"><call-template name="checkafter"><with-param name="pThis" select="n9:Einddatum"/><with-param name="pOther" select="n9:Begindatum"/><with-param name="pRule">TR137</with-param></call-template><call-template name="checkafter"><with-param name="pThis" select="ancestor-or-self::*[local-name()='Bericht']/*[local-name()='Header']/*[local-name()='DeclaratieFactuurIdentificatie']/*[local-name()='FactuurDagtekening']|ancestor-or-self::*[local-name()='Bericht']/*[local-name()='Header']/*[local-name()='BerichtIdentificatie']/*[local-name()='Dagtekening']"/><with-param name="pOther" select="n9:Einddatum"/><with-param name="pRule">TR137</with-param></call-template></template><template match="*" mode="TR302"/><template match="n6:ToegewezenProduct" mode="TR302"><call-template name="tr302"/></template><template name="tr302"><param name="pThis" select="."/><param name="pList" select="preceding-sibling::*"/><variable name="v1"><call-template name="ignoreForTR302"/></variable><if test="$v1!='true'"><for-each select="$pList"><if test="(( ($pThis/n6:Product/n9:Code and current()/n6:Product/n9:Code and $pThis/n6:Product/n9:Code=current()/n6:Product/n9:Code) and ($pThis/n6:Product/n9:Categorie and current()/n6:Product/n9:Categorie and $pThis/n6:Product/n9:Categorie=current()/n6:Product/n9:Categorie)) or ((not($pThis/n6:Product/n9:Code) or not(current()/n6:Product/n9:Code)) and ($pThis/n6:Product/n9:Categorie and current()/n6:Product/n9:Categorie and $pThis/n6:Product/n9:Categorie=current()/n6:Product/n9:Categorie)) or ((not($pThis/n6:Product/n9:Code) and not($pThis/n6:Product/n9:Categorie)) or (not(current()/n6:Product/n9:Code) and not(current()/n6:Product/n9:Categorie))) )"><variable name="v2"><call-template name="isPeriodOverlay"><with-param name="pThis" select="$pThis"/><with-param name="pOther" select="current()"/></call-template></variable><if test="$v2='true'"><call-template name="addError"><with-param name="pElements" select="$pThis|current()"/><with-param name="pRule">TR302</with-param></call-template></if></if></for-each></if></template><template name="ignoreForTR302"><param name="pThis" select="."/><choose><when test="(n6:RedenWijziging/text()='01' or n6:RedenWijziging/text()='13') and n6:Einddatum/. and normalize-space(n6:Einddatum/text())!=''"><choose><when test="translate(n6:Ingangsdatum/text(),'-','')=translate(n6:Einddatum/text(),'-','')"><value-of select="true()"/></when><otherwise><value-of select="false()"/></otherwise></choose></when><otherwise><value-of select="false()"/></otherwise></choose></template><template match="*" mode="TR315"/><template match="n7:ProductReferentie" mode="TR315"><variable name="v1" select="normalize-space(n9:VorigReferentieNummer/text())"/><variable name="v2" select="n9:VorigReferentieNummer"/><for-each select="ancestor-or-self::n7:Prestatie/preceding-sibling::n7:Prestatie/n7:ProductReferentie/n9:VorigReferentieNummer[text()=$v1]|ancestor-or-self::n7:Client/preceding-sibling::n7:Client/n7:Prestaties/n7:Prestatie/n7:ProductReferentie/n9:VorigReferentieNummer[text()=$v1]"><call-template name="checkvalue"><with-param name="pValues">!#</with-param><with-param name="pRule">TR315</with-param><with-param name="pExtra" select="$v2"/></call-template></for-each></template><template match="*" mode="TR316"/><template match="n7:ProductReferentie" mode="TR316"><variable name="v1" select="normalize-space(n9:ReferentieNummer/text())"/><variable name="v2" select="normalize-space(n9:VorigReferentieNummer/text())"/><variable name="v3" select="n9:ReferentieNummer"/><variable name="v4" select="n9:VorigReferentieNummer"/><for-each select="ancestor-or-self::n7:Prestatie/preceding-sibling::n7:Prestatie/n7:ProductReferentie/n9:ReferentieNummer[text()=$v2]|ancestor-or-self::n7:Client/preceding-sibling::n7:Client/n7:Prestaties/n7:Prestatie/n7:ProductReferentie/n9:ReferentieNummer[text()=$v2]"><call-template name="checkvalue"><with-param name="pValues">!#</with-param><with-param name="pRule">TR316</with-param><with-param name="pExtra" select="$v4"/></call-template></for-each><for-each select="ancestor-or-self::n7:Prestatie/preceding-sibling::n7:Prestatie/n7:ProductReferentie/n9:VorigReferentieNummer[text()=$v1]|ancestor-or-self::n7:Client/preceding-sibling::n7:Client/n7:Prestaties/n7:Prestatie/n7:ProductReferentie/n9:VorigReferentieNummer[text()=$v1]"><call-template name="checkvalue"><with-param name="pValues">!#</with-param><with-param name="pRule">TR316</with-param><with-param name="pExtra" select="$v3"/></call-template></for-each><if test="$v1=$v2"><call-template name="addError"><with-param name="pRule">TR316</with-param><with-param name="pElements" select="n9:ReferentieNummer|n9:VorigReferentieNummer"/></call-template></if></template><template match="*" mode="TR319"/><template match="n7:Prestatie" mode="TR319"><call-template name="checkafter"><with-param name="pThis" select="ancestor-or-self::n7:Declaratie/n7:DeclaratiePeriode/n9:Einddatum"/><with-param name="pOther" select="n7:ProductPeriode/n9:Begindatum"/><with-param name="pRule">TR319</with-param></call-template><call-template name="checkafter"><with-param name="pThis" select="ancestor-or-self::n7:Declaratie/n7:DeclaratiePeriode/n9:Einddatum"/><with-param name="pOther" select="n7:ProductPeriode/n9:Einddatum"/><with-param name="pRule">TR319</with-param></call-template></template><template match="*" mode="TR335"/><template match="n7:Prestatie/n7:ProductPeriode/n9:Einddatum" mode="TR335"><call-template name="checkDateRelation"><with-param name="pDate" select="ancestor-or-self::n7:Declaratie/n7:DeclaratieDagtekening"/><with-param name="pRelation">monthsAfter</with-param><with-param name="pExtra">-60</with-param><with-param name="pRule">TR335</with-param></call-template></template><template match="*" mode="TR342"/><template match="n5:DeclaratieAntwoord" mode="TR342"><variable name="v1" select="sum(./n5:Clienten/n5:Client/n5:Prestaties/n5:Prestatie/n5:IngediendBedrag[./n9:DebetCredit/text()='D']/n9:Bedrag)"/><variable name="v2" select="sum(./n5:Clienten/n5:Client/n5:Prestaties/n5:Prestatie/n5:IngediendBedrag[./n9:DebetCredit/text()='C']/n9:Bedrag)"/><variable name="v3" select="$v1 - $v2"/><variable name="v4"><choose><when test="./n5:TotaalToegekendBedrag/n9:DebetCredit/text()='C'"><value-of select="number(./n5:TotaalToegekendBedrag/n9:TotaalBedrag/text())*-1"/></when><otherwise><value-of select="number(./n5:TotaalToegekendBedrag/n9:TotaalBedrag/text())"/></otherwise></choose></variable><variable name="v5"><choose><when test="./n5:TotaalIngediendBedrag/n9:DebetCredit/text()='C'"><value-of select="number(./n5:TotaalIngediendBedrag/n9:TotaalBedrag/text())*-1"/></when><otherwise><value-of select="number(./n5:TotaalIngediendBedrag/n9:TotaalBedrag/text())"/></otherwise></choose></variable><variable name="v6" select="$v5 - $v4"/><choose><when test="count(ancestor-or-self::n5:DeclaratieAntwoord/n5:RetourCodes/*[local-name()='RetourCode'][text()!='0200' and text()!='8001'])=0"><if test="normalize-space($v3)!=normalize-space($v6)"><call-template name="addError"><with-param name="pRule">TR342</with-param><with-param name="pCode">0001</with-param><with-param name="pElements" select="n5:TotaalToegekendBedrag|n5:TotaalIngediendBedrag"/></call-template></if></when><otherwise><if test="$v4!=0"><call-template name="addError"><with-param name="pRule">TR342</with-param><with-param name="pCode">0001</with-param><with-param name="pElements" select="n5:TotaalToegekendBedrag"/></call-template></if></otherwise></choose></template><template match="*" mode="TR352"/><template match="n2:Verzoek" mode="TR352"><call-template name="checkvalue"><with-param name="pThis" select="n2:OngewijzigdeProducten/n2:OngewijzigdProduct|n2:TeWijzigenProducten/n2:TeWijzigenProduct"/><with-param name="pValues">#</with-param><with-param name="pExtra" select="."/><with-param name="pRule">TR352</with-param></call-template></template><template match="*" mode="TR353"/><template match="n2:Verzoek" mode="TR353"><call-template name="checkvalue"><with-param name="pThis" select="n2:TeWijzigenProducten/n2:TeWijzigenProduct|n2:NieuweProducten/n2:NieuwProduct"/><with-param name="pValues">#</with-param><with-param name="pExtra" select="."/><with-param name="pRule">TR353</with-param></call-template></template><template match="*" mode="TR358"/><template match="n7:TotaalIngediendBedrag" mode="TR358"><variable name="v1" select="sum(ancestor-or-self::n7:Declaratie/n7:Clienten/n7:Client/n7:Prestaties/n7:Prestatie/n7:IngediendBedrag[n9:DebetCredit/text()='D']/n9:Bedrag)"/><variable name="v2" select="sum(ancestor-or-self::n7:Declaratie/n7:Clienten/n7:Client/n7:Prestaties/n7:Prestatie/n7:IngediendBedrag[n9:DebetCredit/text()='C']/n9:Bedrag)"/><variable name="v3" select="$v1 - $v2"/><call-template name="checkimplication"><with-param name="pThis" select="n9:DebetCredit"/><with-param name="pValue1">D</with-param><with-param name="pOther" select="n9:TotaalBedrag"/><with-param name="pValue2"><call-template name="formatNumber"><with-param name="pValue" select="$v3"/></call-template></with-param><with-param name="pExtra" select="ancestor-or-self::n7:Declaratie/n7:Clienten/n7:Client/n7:Prestaties/n7:Prestatie/n7:IngediendBedrag"/><with-param name="pRule">TR358</with-param></call-template><call-template name="checkimplication"><with-param name="pThis" select="n9:DebetCredit"/><with-param name="pValue1">C</with-param><with-param name="pOther" select="n9:TotaalBedrag"/><with-param name="pValue2"><call-template name="formatNumber"><with-param name="pValue" select="0 - 1*$v3"/></call-template></with-param><with-param name="pExtra" select="ancestor-or-self::n7:Declaratie/n7:Clienten/n7:Client/n7:Prestaties/n7:Prestatie/n7:IngediendBedrag"/><with-param name="pRule">TR358</with-param></call-template></template><template match="*" mode="TR377"/><template match="n0:RedenAfwijzingVerzoek" mode="TR377"><call-template name="checkimplication"><with-param name="pValue1">8</with-param><with-param name="pOther" select="../n0:Woonplaatsbeginsel"/><with-param name="pValue2">#</with-param><with-param name="pRule">TR377</with-param></call-template></template><template match="*" mode="TR378"/><template match="n6:Afzender" mode="TR378"><call-template name="checkGemeenteCode"><with-param name="pRule">TR378</with-param></call-template></template><template match="n3:Ontvanger" mode="TR378"><call-template name="checkGemeenteCode"><with-param name="pRule">TR378</with-param></call-template></template><template match="n1:Ontvanger" mode="TR378"><call-template name="checkGemeenteCode"><with-param name="pRule">TR378</with-param></call-template></template><template match="n4:Ontvanger" mode="TR378"><call-template name="checkGemeenteCode"><with-param name="pRule">TR378</with-param></call-template></template><template match="n2:Ontvanger" mode="TR378"><call-template name="checkGemeenteCode"><with-param name="pRule">TR378</with-param></call-template></template><template match="n0:Afzender" mode="TR378"><call-template name="checkGemeenteCode"><with-param name="pRule">TR378</with-param></call-template></template><template match="n0:Gemeente" mode="TR378"><call-template name="checkGemeenteCode"><with-param name="pRule">TR378</with-param></call-template></template><template match="n7:Ontvanger" mode="TR378"><call-template name="checkGemeenteCode"><with-param name="pRule">TR378</with-param></call-template></template><template match="n5:Afzender" mode="TR378"><call-template name="checkGemeenteCode"><with-param name="pRule">TR378</with-param></call-template></template><template match="*" mode="TR380"/><template match="n2:NieuwProduct/n2:GewensteIngangsdatum" mode="TR380"><call-template name="checkafterstrict"><with-param name="pOther" select="ancestor-or-self::*[local-name()='Bericht']/*[local-name()='Header']/*[local-name()='BerichtIdentificatie']/*[local-name()='Dagtekening']"/><with-param name="pRule">TR380</with-param></call-template></template><template match="*" mode="TR383"/><template match="n4:AangevraagdProduct" mode="TR383"><variable name="v1" select="normalize-space(n4:ReferentieAanbieder/text())"/><variable name="v2" select="n4:VorigReferentieNummer"/><for-each select="ancestor-or-self::n4:AangevraagdProduct/preceding-sibling::n4:AangevraagdProduct/n4:ReferentieAanbieder[text()=$v1]"><call-template name="checkvalue"><with-param name="pValues">!#</with-param><with-param name="pRule">TR383</with-param><with-param name="pExtra" select="$v2"/></call-template></for-each></template><template match="*" mode="TR386"/><template match="n4:AangevraagdProduct" mode="TR386"><call-template name="TR386"/></template><template name="TR386"><param name="pThis" select="."/><param name="pList" select="preceding-sibling::*"/><for-each select="$pList"><if test="(( ($pThis/n4:Product/n9:Code and current()/n4:Product/n9:Code and $pThis/n4:Product/n9:Code=current()/n4:Product/n9:Code) and ($pThis/n4:Product/n9:Categorie and current()/n4:Product/n9:Categorie and $pThis/n4:Product/n9:Categorie=current()/n4:Product/n9:Categorie)) or ((not($pThis/n4:Product/n9:Code) or not(current()/n4:Product/n9:Code)) and ($pThis/n4:Product/n9:Categorie and current()/n4:Product/n9:Categorie and $pThis/n4:Product/n9:Categorie=current()/n4:Product/n9:Categorie)) or ((not($pThis/n4:Product/n9:Code) and not($pThis/n4:Product/n9:Categorie)) or (not(current()/n4:Product/n9:Code) and not(current()/n4:Product/n9:Categorie))) )"><variable name="v1"><call-template name="isPeriodOverlay"><with-param name="pThis" select="$pThis"/><with-param name="pOther" select="current()"/></call-template></variable><if test="$v1='true'"><call-template name="addError"><with-param name="pElements" select="$pThis|current()"/><with-param name="pRule">TR386</with-param></call-template></if></if></for-each></template><template match="*" mode="TR409"/><template match="n0:RedenAfwijzingVerzoek" mode="TR409"><call-template name="checkimplication"><with-param name="pValue1">!8</with-param><with-param name="pOther" select="../n0:Woonplaatsbeginsel"/><with-param name="pValue2">!#</with-param><with-param name="pRule">TR409</with-param></call-template></template><template match="*" mode="TR410"/><template match="n2:NieuwProduct" mode="TR410"><call-template name="TR410"/></template><template name="TR410"><param name="pThis" select="."/><param name="pList" select="preceding-sibling::*"/><for-each select="$pList"><if test="(( ($pThis/n2:Product/n9:Code and current()/n2:Product/n9:Code and $pThis/n2:Product/n9:Code=current()/n2:Product/n9:Code) and ($pThis/n2:Product/n9:Categorie and current()/n2:Product/n9:Categorie and $pThis/n2:Product/n9:Categorie=current()/n2:Product/n9:Categorie)) or ((not($pThis/n2:Product/n9:Code) or not(current()/n2:Product/n9:Code)) and ($pThis/n2:Product/n9:Categorie and current()/n2:Product/n9:Categorie and $pThis/n2:Product/n9:Categorie=current()/n2:Product/n9:Categorie)) or ((not($pThis/n2:Product/n9:Code) and not($pThis/n2:Product/n9:Categorie)) or (not(current()/n2:Product/n9:Code) and not(current()/n2:Product/n9:Categorie))) )"><variable name="v1"><call-template name="isPeriodOverlay"><with-param name="pThis" select="$pThis"/><with-param name="pOther" select="current()"/></call-template></variable><if test="$v1='true'"><call-template name="addError"><with-param name="pElements" select="$pThis|current()"/><with-param name="pRule">TR410</with-param></call-template></if></if></for-each></template><template match="*" mode="check" priority="0"><apply-templates mode="CD005" select="."/><apply-templates mode="CD007" select="."/><apply-templates mode="CD009" select="."/><apply-templates mode="CD025" select="."/><apply-templates mode="CD034" select="."/><apply-templates mode="CD041" select="."/><apply-templates mode="CD043" select="."/><apply-templates mode="CD060" select="."/><apply-templates mode="CD066" select="."/><apply-templates mode="CD067" select="."/><apply-templates mode="CD068" select="."/><apply-templates mode="CD075" select="."/><apply-templates mode="CD076" select="."/><apply-templates mode="CD077" select="."/><apply-templates mode="CD078" select="."/><apply-templates mode="CD079" select="."/><apply-templates mode="CD080" select="."/><apply-templates mode="CD085" select="."/><apply-templates mode="CD086" select="."/><apply-templates mode="CD087" select="."/><apply-templates mode="CD095" select="."/><apply-templates mode="CD096" select="."/><apply-templates mode="CS002" select="."/><apply-templates mode="CS003" select="."/><apply-templates mode="CS050" select="."/><apply-templates mode="CS058" select="."/><apply-templates mode="CS089" select="."/><apply-templates mode="CS100" select="."/><apply-templates mode="CS139" select="."/><apply-templates mode="CS318" select="."/><apply-templates mode="CS325" select="."/><apply-templates mode="CS335" select="."/><apply-templates mode="CS336" select="."/><apply-templates mode="CS337" select="."/><apply-templates mode="CS338" select="."/><apply-templates mode="CS339" select="."/><apply-templates mode="CS340" select="."/><apply-templates mode="CS343" select="."/><apply-templates mode="TR002" select="."/><apply-templates mode="TR006" select="."/><apply-templates mode="TR018" select="."/><apply-templates mode="TR061" select="."/><apply-templates mode="TR101" select="."/><apply-templates mode="TR134" select="."/><apply-templates mode="TR137" select="."/><apply-templates mode="TR302" select="."/><apply-templates mode="TR315" select="."/><apply-templates mode="TR316" select="."/><apply-templates mode="TR319" select="."/><apply-templates mode="TR335" select="."/><apply-templates mode="TR342" select="."/><apply-templates mode="TR352" select="."/><apply-templates mode="TR353" select="."/><apply-templates mode="TR358" select="."/><apply-templates mode="TR377" select="."/><apply-templates mode="TR378" select="."/><apply-templates mode="TR380" select="."/><apply-templates mode="TR383" select="."/><apply-templates mode="TR386" select="."/><apply-templates mode="TR409" select="."/><apply-templates mode="TR410" select="."/></template><variable name="v1"><na:XSLTHeader><na:Standaard>ijw</na:Standaard><na:StandaardRelease>3.1</na:StandaardRelease><na:XSLTVersie>2.4.3</na:XSLTVersie></na:XSLTHeader></variable></stylesheet>
\ No newline at end of file
diff --git a/xslt-validatie/jw/3_0/common/basis.xsl b/xslt-validatie/jw/3_1/common/basis.xsl
similarity index 63%
rename from xslt-validatie/jw/3_0/common/basis.xsl
rename to xslt-validatie/jw/3_1/common/basis.xsl
index b7b918f1ac56fba43e4a373c5dc86279133711c3..a265b13b6e463c0569aa1dc148af492e743af121 100644
--- a/xslt-validatie/jw/3_0/common/basis.xsl
+++ b/xslt-validatie/jw/3_1/common/basis.xsl
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-	<!-- iJw 3.0 version 2.2.8 (2021-01-25) -->
+	<!-- iJw 3.1 version 2.4.3 (2021-09-29) -->
 
 	<xsl:import href="../../../common/2_0/basis.xsl" />
 		<xsl:template match="*" mode="getDetails" priority="100">
@@ -13,93 +13,65 @@
 			<xsl:when test="$pRule='CD034'">Als Soort adres de waarde 1 (BRP-adres) of 3 (verblijfadres) heeft, dan verplicht vullen.</xsl:when>
 			<xsl:when test="$pRule='CD041'">Indien Code in Product gevuld is, verplicht vullen.</xsl:when>
 			<xsl:when test="$pRule='CD043'">Indien Beschikkingnummer gevuld is, verplicht vullen, anders leeg laten.</xsl:when>
-			<xsl:when test="$pRule='CD055'">Verplicht vullen indien BtwVrijstellingIndicatie de waarde 2 (Geen btw-vrijstelling) bevat.</xsl:when>
-			<xsl:when test="$pRule='CD056'">Niet vullen indien BtwVrijstellingIndicatie de waarde 1 (Btw-vrijstelling) bevat.</xsl:when>
-			<xsl:when test="$pRule='CD058'">Verplicht vullen indien BetalingAanID de waarde 01 (= servicebureau) heeft.</xsl:when>
-			<xsl:when test="$pRule='CD059'">Verplicht vullen indien BerichtCode de waarde 448 of 450 (= Factuur Wmo-ondersteuning of Jw-ondersteuning) bevat.</xsl:when>
 			<xsl:when test="$pRule='CD060'">Verplicht vullen indien DebetCredit bij het ingediende bedrag de waarde C (credit) heeft, anders leeg laten.</xsl:when>
-			<xsl:when test="$pRule='CD062'">Niet vullen indien Eenheid is 83 (Euro’s).</xsl:when>
 			<xsl:when test="$pRule='CD066'">Als type verwijzer gelijk is aan 02, 03, 04 of 05 en ZorgverlenerCode is gevuld, dan is Naamverwijzer leeg.</xsl:when>
 			<xsl:when test="$pRule='CD067'">Als type verwijzer gelijk is aan 02, 03, 04 of 05 en ZorgverlenerCode is leeg, dan is Naamverwijzer gevuld.</xsl:when>
 			<xsl:when test="$pRule='CD068'">Als type verwijzer ongelijk is aan 02, 03, 04 of 05, dan is ZorgverlenerCode leeg.</xsl:when>
 			<xsl:when test="$pRule='CD075'">Verplicht vullen indien Budget gevuld is</xsl:when>
-			<xsl:when test="$pRule='CD076'">Verplicht vullen indien Frequentie waarde 2 (per week) of 6 (totaal binnen geldigheid toewijzing) heeft.</xsl:when>
+			<xsl:when test="$pRule='CD076'">Verplicht vullen indien Frequentie waarde 2 (per week)</xsl:when>
 			<xsl:when test="$pRule='CD077'">Indien Budget gevuld is, dan leeg laten</xsl:when>
 			<xsl:when test="$pRule='CD078'">Indien Omvang gevuld is, dan leeg laten</xsl:when>
 			<xsl:when test="$pRule='CD079'">Indien Budget leeg is, dan verplicht vullen</xsl:when>
 			<xsl:when test="$pRule='CD080'">Indien Code in Product leeg is en Einddatum van het ToegewezenProduct groter dan 31-12-2020 of leeg is, dan leeg laten</xsl:when>
-			<xsl:when test="$pRule='CD081'">Indien eenheid de waarde 14, 16, 83 of 84 heeft en Einddatum van het ToegewezenProduct groter dan 31-12-2020 of leeg is, dan Frequentie vullen met de waarde 2 , 4 of 6</xsl:when>
 			<xsl:when test="$pRule='CD085'">Als VerzoekAntwoord de waarde 1 (Verzoek afgewezen) heeft, dan vullen</xsl:when>
 			<xsl:when test="$pRule='CD086'">Als VerzoekAntwoord de waarde 2 (Aanvraag in onderzoek) heeft, dan leeg laten</xsl:when>
 			<xsl:when test="$pRule='CD087'">Als eenheid ongelijk is aan 83 (euro's) dan verplicht vullen, anders leeg laten.</xsl:when>
-			<xsl:when test="$pRule='CD088'">Als RedenAfwijzingVerzoek ongelijk is aan 8 (Woonplaatsbeginsel), dan leeg laten.</xsl:when>
+			<xsl:when test="$pRule='CD095'">Indien Code in AangevraagdProduct leeg is en ToewijzingEinddatum van het AangevraagdProduct groter dan 31-12-2020 of leeg is, dan leeg laten</xsl:when>
+			<xsl:when test="$pRule='CD096'">Indien Code in NieuwProduct leeg is en Einddatum groter dan 31-12-2020 of leeg is, dan leeg laten</xsl:when>
 			<xsl:when test="$pRule='CS002'">De waarde moet voldoen aan de 11-proef.</xsl:when>
 			<xsl:when test="$pRule='CS003'">Indien van toepassing vullen met een waarde die groter is dan, of gelijk is aan de Begindatum (of Ingangsdatum) van de aangeduide periode.</xsl:when>
-			<xsl:when test="$pRule='CS004'">Aaneengesloten vullen (zonder punten of spaties).</xsl:when>
-			<xsl:when test="$pRule='CS005'">Aaneengesloten vullen met cijfers.</xsl:when>
-			<xsl:when test="$pRule='CS015'">BerichtSubversie vullen met 0.</xsl:when>
-			<xsl:when test="$pRule='CS023'">Vullen met een bestaande datum die niet groter is dan de Dagtekening van het bericht.</xsl:when>
+			<xsl:when test="$pRule='CS015'">BerichtSubversie vullen met 1.</xsl:when>
 			<xsl:when test="$pRule='CS025'">BerichtVersie vullen met 3.</xsl:when>
 			<xsl:when test="$pRule='CS050'">Als Partnernaam gevuld is, dan NaamGebruik vullen met waarde 1, 2, 3 of 4. Anders waarde 1 of 6 vullen.</xsl:when>
 			<xsl:when test="$pRule='CS058'">1 (eerste aanlevering) of 3 (verwijderen aanlevering) vullen.</xsl:when>
-			<xsl:when test="$pRule='CS064'">Vullen met een bestaande datum die niet in de toekomst ligt.</xsl:when>
 			<xsl:when test="$pRule='CS089'">Als LandCode de waarde NL (Nederland) heeft, dan moet het formaat overeenkomen met dat van een Nederlandse postcode.</xsl:when>
-			<xsl:when test="$pRule='CS100'">Datum is groter dan of gelijk aan 01-01-2021</xsl:when>
-			<xsl:when test="$pRule='CS102'">Datum is groter dan de dagtekening van het bericht.</xsl:when>
-			<xsl:when test="$pRule='CS103'">De gehele periode ligt voor 01-01-2021.</xsl:when>
-			<xsl:when test="$pRule='CS104'">3 (per 4 weken) en 5 (per jaar) niet vullen indien de Einddatum van het ToegewezenProduct leeg is of groter is dan 31-12-2020.</xsl:when>
-			<xsl:when test="$pRule='CS108'">Vullen met een waarde die groter is dan, of gelijk is aan de Begindatum van de aangeduide periode én die niet groter is dan de Dagtekening van het bericht.</xsl:when>
-			<xsl:when test="$pRule='CS126'">Vullen met BerichtCode volgens de specificatie</xsl:when>
-			<xsl:when test="$pRule='CS128'">Vullen met een versienummer bestaande uit drie gehele getallen, gescheiden met punten.</xsl:when>
-			<xsl:when test="$pRule='CS300'">Vullen met een bestaande gemeentecode uit het overzicht van CBS.</xsl:when>
+			<xsl:when test="$pRule='CS100'">Vullen met een datum die groter dan of gelijk is aan 01-01-2021</xsl:when>
+			<xsl:when test="$pRule='CS139'">Voor Geboortedatum geldt dat DatumGebruik en Datum met elkaar in overeenstemming moeten zijn.</xsl:when>
 			<xsl:when test="$pRule='CS318'">NaamGebruik 6 (Niet-natuurlijk persoon) niet vullen.</xsl:when>
 			<xsl:when test="$pRule='CS319'">Aaneengesloten vullen met cijfers en/of letters</xsl:when>
-			<xsl:when test="$pRule='CS320'">Vullen met een geldig btw-nummer</xsl:when>
-			<xsl:when test="$pRule='CS321'">Vullen met een geldige AGB-code van een servicebureau ( zie https://www.agbcode.nl)</xsl:when>
-			<xsl:when test="$pRule='CS322'">Vullen met een percentage kleiner dan 100.</xsl:when>
-			<xsl:when test="$pRule='CS323'">Bedrag vullen met een waarde kleiner dan of gelijk aan Bedrag in BerekendBedrag</xsl:when>
-			<xsl:when test="$pRule='CS324'">Vullen met een waarde die groter is dan, of gelijk is aan de DagtekeningFactuur.</xsl:when>
 			<xsl:when test="$pRule='CS325'">Indien (Totaal)Bedrag de waarde 0 heeft, dan DebetCredit vullen met D (Debet).</xsl:when>
-			<xsl:when test="$pRule='CS327'">DebetCredit vullen met een waarde die gelijk is aan DebetCredit in DeclaratieFactuurBedrag.</xsl:when>
-			<xsl:when test="$pRule='CS328'">Begindatum vullen met een datum die groter dan of gelijk is aan 2015-01-01.</xsl:when>
-			<xsl:when test="$pRule='CS329'">ProductCode vullen met met een code die, volgens de gehanteerde productcodelijst, past bij de ProductCategorie.</xsl:when>
-			<xsl:when test="$pRule='CS330'">21 (Week) en 81 (Benodigde tijdsduur of tijdsonafhankelijk) niet vullen.</xsl:when>
-			<xsl:when test="$pRule='CS331'">21 (Week) en 81 (Benodigde tijdsduur of tijdsonafhankelijk) niet vullen indien de ProductPeriode Begindatum op of na de implementatiedatum van release 2.3 ligt.</xsl:when>
+			<xsl:when test="$pRule='CS335'">RedenWijziging 13 (verwijderd) mag alleen gebruikt worden indien de ingangsdatum gelijk is aan de einddatum</xsl:when>
+			<xsl:when test="$pRule='CS336'">01 (Administratieve correctie (vervallen)) niet gebruiken</xsl:when>
+			<xsl:when test="$pRule='CS337'">Einddatum in de ProductPeriode vullen met een datum die valt in dezelfde kalendermaand en jaar als de Begindatum van de ProductPeriode</xsl:when>
+			<xsl:when test="$pRule='CS338'">Indien eenheid de waarde 14, 16, 83 of 84 heeft en Einddatum groter dan 31-12-2020 of leeg is, dan Frequentie vullen met de waarde 2 , 4 of 6</xsl:when>
+			<xsl:when test="$pRule='CS339'">Indien Eenheid de waarde 83 (euro's) heeft, moet IngediendBedrag gelijk zijn aan GeleverdVolume.</xsl:when>
+			<xsl:when test="$pRule='CS340'">De periode is exact gelijk aan 1 hele kalendermaand</xsl:when>
+			<xsl:when test="$pRule='CS343'">Indien eenheid de waarde 14, 16, 83 of 84 heeft en ToewijzingEinddatum is groter dan 31-12-2020 of leeg, dan Frequentie vullen met waarde 2, 4 of 6</xsl:when>
 			<xsl:when test="$pRule='TR002'">Geboortedatum mag niet meer dan 120 jaar voor de Dagtekening liggen, tenzij Geboortedatum onbekend is.</xsl:when>
 			<xsl:when test="$pRule='TR006'">De berichtklasse Contact moet een berichtelement Telefoon, en/of de combinatie Huis en Postcode bevatten.</xsl:when>
 			<xsl:when test="$pRule='TR018'">Einddatum moet groter dan of gelijk zijn aan Begindatum.</xsl:when>
-			<xsl:when test="$pRule='TR019'">Bij een output- of inspanningsgerichte werkwijze moet de melding van de start of de stop van de ondersteuning gerelateerd zijn aan een toewijzing op basis van het toewijzingnummer</xsl:when>
+			<xsl:when test="$pRule='TR019'">Bij een output- of inspanningsgerichte werkwijze moet de melding van de start of de stop van de ondersteuning gerelateerd zijn aan een toewijzing op basis van het ToewijzingNummer</xsl:when>
 			<xsl:when test="$pRule='TR056'">Identificatie moet per berichtsoort uniek zijn voor de verzendende partij.</xsl:when>
 			<xsl:when test="$pRule='TR061'">Bij een Client moet minimaal één Adres voorkomen waarvan Soort de waarde '01' (BRP-adres), '02' (Correspondentie-adres) of '03' (Verblijfadres) heeft.</xsl:when>
 			<xsl:when test="$pRule='TR063'">Indien StatusAanlevering de waarde 3 (aanlevering verwijderen) bevat, dan moet voor de betreffende Client een eerdere aanlevering met dezelfde logische sleutel verstuurd zijn.</xsl:when>
-			<xsl:when test="$pRule='TR069'">De sleutelelementen uit het startbericht moeten in het stopbericht, waarin wordt aangegeven dat de betreffende levering (tijdelijk) beeindigd wordt, ongewijzigd worden overgenomen.</xsl:when>
 			<xsl:when test="$pRule='TR071'">StatusAanlevering mag niet de waarde '3' bevatten als er voor de betreffende melding start zorg al een stop zorg is verstuurd.</xsl:when>
 			<xsl:when test="$pRule='TR074'">Indien StatusAanlevering de waarde '1' bevat, dan moet de sleutel van de betreffende aanlevering niet alleen uniek zijn binnen het bericht zelf, maar ook in combinatie met alle reeds ontvangen berichten.</xsl:when>
-			<xsl:when test="$pRule='TR097'">Voor Geboortedatum geldt dat DatumGebruik en Datum met elkaar in overeenstemming moeten zijn.</xsl:when>
 			<xsl:when test="$pRule='TR101'">Binnen een bericht zijn dubbele regels niet toegestaan.</xsl:when>
-			<xsl:when test="$pRule='TR300'">Indien de toewijzing wordt gestuurd naar aanleiding van het honoreren van een verzoek om toewijzing bericht, moet ReferentieAanbieder worden overgenomen van het betreffende verzoek om toewijzing bericht (315).</xsl:when>
-			<xsl:when test="$pRule='TR302'">Een product mag alleen vaker in een toewijzing voorkomen indien de zorgperiodes elkaar niet overlappen</xsl:when>
-			<xsl:when test="$pRule='TR303'">Iedere prestatie in een declaratie- of factuurbericht is gerelateerd aan een toegewezen product op basis van het toewijzingnummer.</xsl:when>
+			<xsl:when test="$pRule='TR134'">Vullen met een bestaande datum die niet groter is dan de Dagtekening van het bericht.</xsl:when>
+			<xsl:when test="$pRule='TR135'">Vullen met een bestaande datum die niet in de toekomst ligt.</xsl:when>
+			<xsl:when test="$pRule='TR137'">Vullen met een waarde die groter is dan, of gelijk is aan de Begindatum van de aangeduide periode én die niet groter is dan de Dagtekening van het bericht.</xsl:when>
+			<xsl:when test="$pRule='TR302'">Een Product mag alleen vaker in een toewijzingsbericht voorkomen indien de zorgperiodes elkaar niet overlappen</xsl:when>
 			<xsl:when test="$pRule='TR304'">Bsn moet overeenkomen met Bsn van een Client.</xsl:when>
-			<xsl:when test="$pRule='TR305'">ProductCategorie in de Prestatie moet gelijk zijn aan ProductCategorie in het ToegewezenProduct.</xsl:when>
-			<xsl:when test="$pRule='TR306'">ProductCode in de Prestatie moet gelijk zijn aan ProductCode in het ToegewezenProduct, indien deze opgenomen is.</xsl:when>
 			<xsl:when test="$pRule='TR307'">Begindatum in de Prestatie moet groter dan of gelijk zijn aan Ingangsdatum in het ToegewezenProduct.</xsl:when>
 			<xsl:when test="$pRule='TR308'">Einddatum in de Prestatie moet kleiner dan of gelijk zijn aan Einddatum in het ToegewezenProduct, indien die gevuld is.</xsl:when>
-			<xsl:when test="$pRule='TR309'">Eenheid in de Prestatie moet passen bij Eenheid in het ToegewezenProduct.</xsl:when>
-			<xsl:when test="$pRule='TR311'">De indiener van het declaratie- of factuurbericht is de aanbieder of de administratieve eenheid die namens de aanbieder declareert of factureert.</xsl:when>
-			<xsl:when test="$pRule='TR312'">De waarde van TotaalBedrag in DeclaratieFactuurTotaalBedrag moet gelijk zijn aan de SOM van de waarden van Bedrag in DeclaratieFactuurBedrag, rekening houdend met  indicatie debet/credit.</xsl:when>
-			<xsl:when test="$pRule='TR313'">De waarde van TotaalBedrag in BtwTotaalBedrag moet gelijk zijn aan de SOM van de waarden van Bedrag in BtwBedrag, rekening houdend met  indicatie debet/credit.</xsl:when>
 			<xsl:when test="$pRule='TR314'">ReferentieNummer van de Prestatie moet uniek zijn voor de aanbieder binnen het wettelijk domein waarop de Prestatie betrekking heeft, zowel binnen één bericht als berichtoverstijgend.</xsl:when>
 			<xsl:when test="$pRule='TR315'">VorigReferentieNummer van de Prestatie moet uniek zijn in het bericht.</xsl:when>
 			<xsl:when test="$pRule='TR316'">Debetregels mogen niet in hetzelfde bericht gecrediteerd worden.</xsl:when>
-			<xsl:when test="$pRule='TR317'">Indien gevuld moet BerekendBedrag gelijk zijn aan GeleverdVolume vermenigvuldigd met ProductTarief.</xsl:when>
-			<xsl:when test="$pRule='TR318'">Indien iedere DeclaratiePeriode zorg is geleverd, moet DeclaratiePeriode BeginDatum van de volgende declaratie-/factuurperiode precies één dag na de DeclaratiePeriode EindDatum van de voorgaande declaratie-/factuurperiode liggen.</xsl:when>
-			<xsl:when test="$pRule='TR319'">Een declaratie- of factuurbericht bevat alleen prestaties waarvan de ProductPeriode valt binnen de huidige, of een voorgaande declaratie- of factuurperiode.</xsl:when>
-			<xsl:when test="$pRule='TR320'">Alle deels toegekende en/of afgewezen prestaties dienen meegestuurd te worden in het retourbericht op een declaratie/factuur.</xsl:when>
+			<xsl:when test="$pRule='TR318'">Indien iedere DeclaratiePeriode zorg is geleverd, moet de DeclaratiePeriode de kalendermaand volgend op de voorgaande DeclaratiePeriode zijn</xsl:when>
+			<xsl:when test="$pRule='TR319'">Een declaratiebericht bevat alleen prestaties waarvan de ProductPeriode valt binnen de huidige, of een voorgaande declaratieperiode.</xsl:when>
 			<xsl:when test="$pRule='TR321'">Indien in het ToegewezenProduct een Omvang is meegegeven, moet GeleverdVolume in de Prestatie passen binnen Volume in het ToegewezenProduct.</xsl:when>
 			<xsl:when test="$pRule='TR322'">Indien in het ToegewezenProduct een Omvang is meegegeven, moet de som van GeleverdVolume in alle ingediende Prestaties die betrekking hebben op dat ToegewezenProduct passen binnen de toegewezen Omvang.</xsl:when>
-			<xsl:when test="$pRule='TR323'">Een credit Prestatie moet gerelateerd zijn aan een eerder verzonden debet Prestatie op basis van sleutelvelden.</xsl:when>
-			<xsl:when test="$pRule='TR324'">Factuurnummer moet uniek zijn voor de verzendende partij.</xsl:when>
+			<xsl:when test="$pRule='TR323'">Een credit Prestatie moet gerelateerd zijn aan een eerder verzonden (goedgekeurde) debet Prestatie op basis van sleutelvelden.</xsl:when>
 			<xsl:when test="$pRule='TR326'">Een Startbericht mag pas verstuurd worden als er géén actueel Startbericht bij ToegewezenProduct is.</xsl:when>
 			<xsl:when test="$pRule='TR332'">Ieder ToegewezenProduct binnen één gemeente heeft een uniek nummer per wettelijk domein.</xsl:when>
 			<xsl:when test="$pRule='TR333'">DeclaratieNummer van de Declaratie moet uniek zijn voor de aanbieder binnen het wettelijk domein waarop de Declaratie betrekking heeft.</xsl:when>
@@ -109,34 +81,47 @@
 			<xsl:when test="$pRule='TR339'">ProductCategorie in Prestatie moet gelijk zijn aan ProductCategorie in het ToegewezenProduct indien deze opgenomen is.</xsl:when>
 			<xsl:when test="$pRule='TR340'">ProductCode in Prestatie moet gelijk zijn aan ProductCode in het ToegewezenProduct, indien deze opgenomen is.</xsl:when>
 			<xsl:when test="$pRule='TR341'">Eenheid in Prestatie moet passen bij Eenheid in het ToegewezenProduct.</xsl:when>
-			<xsl:when test="$pRule='TR342'">Alle afgewezen Prestaties dienen meegestuurd te worden in het declaratie-antwoordbericht op een declaratie.</xsl:when>
-			<xsl:when test="$pRule='TR345'">Indien Eenheid de waarde 83 (euro's) heeft, moet IngediendBedrag gelijk zijn aan GeleverdVolume.</xsl:when>
-			<xsl:when test="$pRule='TR346'">Indien Eenheid ongelijk is aan waarde 83 (Euro's), moet IngediendBedrag gelijk zijn aan GeleverdVolume vermenigvuldigd met (het onafgeronde) ProductTarief.</xsl:when>
+			<xsl:when test="$pRule='TR342'">Alleen afgewezen Prestaties dienen meegestuurd te worden in het declaratie-antwoordbericht op een declaratie.</xsl:when>
+			<xsl:when test="$pRule='TR346'">Indien Eenheid ongelijk is aan waarde 83 (Euro’s), moet IngediendBedrag gelijk zijn aan GeleverdVolume vermenigvuldigd met ProductTarief</xsl:when>
 			<xsl:when test="$pRule='TR347'">ReferentieAanbieder is uniek voor de aanbieder binnen het wettelijk domein</xsl:when>
 			<xsl:when test="$pRule='TR349'">Het verzoek om wijziging bericht bevat alle actuele ToegewezenProducten van de client</xsl:when>
 			<xsl:when test="$pRule='TR350'">Ieder OngewijzigdProduct in een verzoek om wijziging bericht is gerelateerd aan een actueel toegewezen product op basis van het ToewijzingNummer.</xsl:when>
 			<xsl:when test="$pRule='TR351'">Ieder TeWijzigenProduct in een verzoek om wijziging is gerelateerd aan een actueel ToegewezenProduct op basis van ToewijzingNummer.</xsl:when>
 			<xsl:when test="$pRule='TR352'">Bij een verzoek om wijziging komt minstens 1 OngewijzigdProduct of TeWijzigenProduct voor.</xsl:when>
-			<xsl:when test="$pRule='TR353'">Bij een verzoek komt minstens 1 TeWijzigenProduct of NieuwProduct voor.</xsl:when>
+			<xsl:when test="$pRule='TR353'">Bij een verzoek om wijziging komt minstens 1 TeWijzigenProduct of NieuwProduct voor.</xsl:when>
 			<xsl:when test="$pRule='TR355'">ReferentieAanbieder in het antwoordbericht komt voor in een eerder verzoek om toewijzing of verzoek om wijziging</xsl:when>
 			<xsl:when test="$pRule='TR357'">Als GewensteIngangsdatum kleiner dan of gelijk is aan de dagtekening, dan is GewensteIngangsdatum gelijk aan ingangsdatum van het originele ToegewezenProduct.</xsl:when>
 			<xsl:when test="$pRule='TR358'">De waarde van TotaalBedrag in TotaalIngediendBedrag  moet gelijk zijn aan de SOM van de waarden van Bedrag in Ingediendbedrag in alle onderliggende Prestaties, rekening houdend met indicatie debet/credit.</xsl:when>
 			<xsl:when test="$pRule='TR359'">Als een antwoordbericht wordt verstuurd, mag er niet al eerder een toewijzingsbericht gestuurd zijn met dezelfde ReferentieAanbieder</xsl:when>
 			<xsl:when test="$pRule='TR360'">Een antwoordbericht met in VerzoekAntwoord de waarde 2 (Aanvraag in onderzoek), mag alleen gestuurd worden indien er nog geen antwoordbericht is met deze ReferentieAanbieder</xsl:when>
-			<xsl:when test="$pRule='TR361'">Een product mag alleen vaker in verzoek om wijziging voorkomen als de zorgperiodes elkaar niet overlappen</xsl:when>
-			<xsl:when test="$pRule='TR362'">Als een toewijzingsbericht niet wordt gestuurd naar aanleiding van het honoreren van een verzoek om toewijzing of een verzoek om wijziging dan wordt ReferentieAanbieder leeg gelaten.</xsl:when>
-			<xsl:when test="$pRule='TR363'">Als een toewijzingsbericht wordt gestuurd als honorering van een verzoek om wijziging, wordt ReferentieAanbieder overgenomen</xsl:when>
-			<xsl:when test="$pRule='TR364'">ReferentieAanbieder in een ToegewezenProduct komt voor in een eerder verzoek om toewijzing of verzoek om wijziging</xsl:when>
+			<xsl:when test="$pRule='TR361'">Een Product mag alleen vaker in verzoek om wijziging voorkomen als de zorgperiodes elkaar niet overlappen</xsl:when>
 			<xsl:when test="$pRule='TR365'">Als er al een antwoordbericht is met dezelfde ReferentieAanbieder dan moet VerzoekAntwoord daar de waarde 2 (Aanvraag in onderzoek) hebben.</xsl:when>
 			<xsl:when test="$pRule='TR366'">Iedere Prestatie in een declaratieantwoord is gerelateerd aan een declaratiebericht op basis van ProductReferentie.</xsl:when>
 			<xsl:when test="$pRule='TR367'">Waarde moet overeenkomen met waarde uit het declaratiebericht dat gerelateerd is op basis van ProductReferentie</xsl:when>
-			<xsl:when test="$pRule='TR368'">De periode is exact gelijk aan 1 hele kalendermaand</xsl:when>
 			<xsl:when test="$pRule='TR369'">Indien in het ToegewezenProduct een Budget is meegegeven, moet de som van GeleverdVolume in alle ingediende Prestaties die betrekking hebben op dat ToegewezenProduct passen binnen het toegewezen Budget.</xsl:when>
 			<xsl:when test="$pRule='TR371'">Waarde moet overeenkomen met waarde van XsdVersie uit het declaratiebericht dat gerelateerd is op basis van DeclaratieIdentificatie.</xsl:when>
 			<xsl:when test="$pRule='TR373'">Indien in een TeWijzigenProduct het Budget of het totaal over toewijzingsperiode wordt gewijzigd, dient GewensteIngangsdatum gelijk te zijn aan de actuele toewijzing</xsl:when>
 			<xsl:when test="$pRule='TR374'">Een verzoek mag alleen worden verstuurd als er geen onderhanden verzoek is voor de betreffende client van dezelfde aanbieder.</xsl:when>
 			<xsl:when test="$pRule='TR375'">Indien Product in de toewijzing met ToewijzingNummer leeg is en Einddatum groter dan 31-12-2020 of leeg is, dan leeg laten.</xsl:when>
 			<xsl:when test="$pRule='TR376'">Het DeclaratieNummer dient overeen te komen met het DeclaratieNummer van een eerder ontvangen Declaratie.</xsl:when>
+			<xsl:when test="$pRule='TR377'">Indien RedenAfwijzingVerzoek de waarde 8 (Woonplaatsbeginsel) heeft, dan berichtklasse Woonplaatsbeginsel opnemen</xsl:when>
+			<xsl:when test="$pRule='TR378'">Vullen met een bestaande gemeentecode uit het overzicht van CBS.</xsl:when>
+			<xsl:when test="$pRule='TR379'">Indien ToegewezenProduct wordt verstuurd ter honorering van een VOT of VOW, dient ReferentieAanbieder te worden gevuld met ReferentieAanbieder uit die VOT of VOW, anders leeglaten</xsl:when>
+			<xsl:when test="$pRule='TR380'">Vullen met een datum die groter is dan de dagtekening van het bericht.</xsl:when>
+			<xsl:when test="$pRule='TR381'">ProductCode vullen met met een code die, volgens de gehanteerde productcodelijst, past bij de ProductCategorie.</xsl:when>
+			<xsl:when test="$pRule='TR382'">De sleutelelementen uit het startbericht moeten in het stopbericht, waarin wordt aangegeven dat de betreffende levering (tijdelijk) beeindigd wordt, ongewijzigd worden overgenomen.</xsl:when>
+			<xsl:when test="$pRule='TR383'">ReferentieAanbieder is uniek voor elk AangevraagdProduct binnen het bericht</xsl:when>
+			<xsl:when test="$pRule='TR384'">Het is niet toegestaan te declareren op een toewijzing met RedenWijziging waarde "13" (Verwijderd)</xsl:when>
+			<xsl:when test="$pRule='TR385'">Indien de toewijzing goedgekeurde (niet gecrediteerde) prestatiesregels met gelijk ToewijzingNummer heeft, is het niet toegestaan deze toewijzing te verwijderen met RedenWijziging waarde 13 (verwijderd)</xsl:when>
+			<xsl:when test="$pRule='TR386'">Een Product mag alleen vaker in een verzoek om toewijzing voorkomen indien de zorgperiodes elkaar niet overlappen</xsl:when>
+			<xsl:when test="$pRule='TR387'">De Begindatum van een ProductPeriode is altijd de eerste dag van de kalendermaand waarop de ProductPeriode betrekking heeft tenzij de Ingangsdatum van de toewijzing later in de betreffende maand ligt</xsl:when>
+			<xsl:when test="$pRule='TR388'">De Einddatum van een ProductPeriode is altijd de laatste dag van de kalendermaand waarop de ProductPeriode betrekking heeft tenzij de Einddatum van de toewijzing eerder in de betreffende maand ligt</xsl:when>
+			<xsl:when test="$pRule='TR389'">Een Prestatie met waarde Debet mag alleen ingezonden worden voor dezelfde ProductPeriode met gelijk ToewijzingNummer als er niet al een Prestatie met waarde Debet is zonder bijbehorende creditprestatie</xsl:when>
+			<xsl:when test="$pRule='TR390'">DebetCredit mag alleen waarde Credit hebben indien voor Prestatie met gelijk ProductReferentie niet een Prestatie met Credit bestaat</xsl:when>
+			<xsl:when test="$pRule='TR409'">Als RedenAfwijzingVerzoek ongelijk is aan 8 (Woonplaatsbeginsel), dan berichtklasse Woonplaatsbeginsel weglaten</xsl:when>
+			<xsl:when test="$pRule='TR410'">Een Product mag alleen vaker in de berichtklassen NieuwProduct voorkomen als de zorgperiodes elkaar niet overlappen.</xsl:when>
+			<xsl:when test="$pRule='TR411'">Indien Code in Product bij de toewijzing met ToewijzingNummer gevuld is, dan Omvang verplicht vullen</xsl:when>
+			<xsl:when test="$pRule='TR412'">Indien Code in Product bij de toewijzing met ToewijzingNummer leeg is en einddatum groter dan 31-12-2020 of leeg is, dan leeg laten</xsl:when>
 		</xsl:choose>
 	</xsl:template>
 </xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_1/condities/CD005.xsl b/xslt-validatie/jw/3_1/condities/CD005.xsl
new file mode 100644
index 0000000000000000000000000000000000000000..1bb375ed227416266d0da411e123d3815709bb1e
--- /dev/null
+++ b/xslt-validatie/jw/3_1/condities/CD005.xsl
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+				xmlns:ijw="http://www.istandaarden.nl/ijw/3_1/basisschema/schema"
+>
+	<!-- iJw 3.0 CD005 version 1.0.20403 (2021-09-29) -->
+
+	<xsl:import href="../common/basis.xsl"/>
+	<xsl:template match="*" mode="CD005"/>
+	<xsl:template match="*" mode="check">
+		<xsl:apply-templates select="*" mode="CD005"/>
+	</xsl:template>
+
+	<xsl:template match="ijw:Postcode" mode="CD005">
+		<xsl:call-template name="checkempty">
+			<xsl:with-param name="pOther" select="../ijw:LandCode"/>
+			<xsl:with-param name="pRule">CD005</xsl:with-param>
+		</xsl:call-template>
+	</xsl:template>
+
+	<xsl:template match="ijw:LandCode" mode="CD005">
+		<xsl:call-template name="checkempty">
+			<xsl:with-param name="pOther" select="../ijw:Postcode"/>
+			<xsl:with-param name="pRule">CD005</xsl:with-param>
+		</xsl:call-template>
+	</xsl:template>
+
+</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_1/condities/CD007.xsl b/xslt-validatie/jw/3_1/condities/CD007.xsl
new file mode 100644
index 0000000000000000000000000000000000000000..6c6be22dae9449b0d09f626ae0306e58c38edd63
--- /dev/null
+++ b/xslt-validatie/jw/3_1/condities/CD007.xsl
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+				xmlns:ijw="http://www.istandaarden.nl/ijw/3_1/basisschema/schema"
+>
+	<!-- iJw 3.0 CD007 version 2.4.3 (2021-09-29) -->
+
+	<xsl:import href="../common/basis.xsl"/>
+	<xsl:template match="*" mode="CD007"/>
+	<xsl:template match="*" mode="check">
+		<xsl:apply-templates select="*" mode="CD007"/>
+	</xsl:template>
+
+	<xsl:template match="*[ijw:Taal | ijw:Vorm]" mode="check">
+		<xsl:call-template name="checksame">
+			<xsl:with-param name="pThis" select="ijw:Taal"/>
+			<xsl:with-param name="pValue1">*</xsl:with-param>
+			<xsl:with-param name="pOther" select="ijw:Vorm"/>
+			<xsl:with-param name="pValue2">1</xsl:with-param>
+			<xsl:with-param name="pRule">CD007</xsl:with-param>
+		</xsl:call-template>
+	</xsl:template>
+
+</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_1/condities/CD009.xsl b/xslt-validatie/jw/3_1/condities/CD009.xsl
new file mode 100644
index 0000000000000000000000000000000000000000..54e4063e2aba1e4211787bb2405beb5d26e258a2
--- /dev/null
+++ b/xslt-validatie/jw/3_1/condities/CD009.xsl
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+				xmlns:jw301="http://www.istandaarden.nl/ijw/3_1/jw301/schema"
+>
+	<!-- iJw 3.0 CD009 version 2.4.3 (2021-09-29) -->
+
+	<xsl:import href="../common/basis.xsl"/>
+	<xsl:template match="*" mode="CD009"/>
+	<xsl:template match="*" mode="check">
+		<xsl:apply-templates select="*" mode="CD009"/>
+	</xsl:template>
+
+	<xsl:template match="jw301:Contact/jw301:Periode" mode="CD009">
+		<xsl:call-template name="checkimplication">
+			<xsl:with-param name="pValue1">#</xsl:with-param>
+			<xsl:with-param name="pOther" select="../jw301:Soort"/>
+			<xsl:with-param name="pValue2">04</xsl:with-param>
+			<xsl:with-param name="pRule">CD009</xsl:with-param>
+		</xsl:call-template>
+	</xsl:template>
+
+</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_1/condities/CD025.xsl b/xslt-validatie/jw/3_1/condities/CD025.xsl
new file mode 100644
index 0000000000000000000000000000000000000000..deabf326a7c8b16773d0f506d0ba631e16e6875e
--- /dev/null
+++ b/xslt-validatie/jw/3_1/condities/CD025.xsl
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+				xmlns:ijw="http://www.istandaarden.nl/ijw/3_1/basisschema/schema"
+>
+
+	<!-- iJw 3.0 CD025 version 2.4.3 (2021-09-29) -->
+
+	<xsl:import href="../common/basis.xsl"/>
+	<xsl:template match="*" mode="CD025"/>
+	<xsl:template match="*" mode="check">
+		<xsl:apply-templates select="*" mode="CD025"/>
+	</xsl:template>
+
+	<xsl:template match="ijw:LandCode" mode="CD025">
+		<xsl:call-template name="checkimplication">
+			<xsl:with-param name="pValue1">NL</xsl:with-param>
+			<xsl:with-param name="pOther" select="../ijw:Huis/ijw:Huisnummer"/>
+			<xsl:with-param name="pValue2">*</xsl:with-param>
+			<xsl:with-param name="pRule">CD025</xsl:with-param>
+		</xsl:call-template>
+	</xsl:template>
+
+</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_1/condities/CD034.xsl b/xslt-validatie/jw/3_1/condities/CD034.xsl
new file mode 100644
index 0000000000000000000000000000000000000000..bf4ba4dbf7aacaceb4e9c1a7f268f9280f1d5dd2
--- /dev/null
+++ b/xslt-validatie/jw/3_1/condities/CD034.xsl
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+				xmlns:ijw="http://www.istandaarden.nl/ijw/3_1/basisschema/schema"
+				xmlns:jw301="http://www.istandaarden.nl/ijw/3_1/jw301/schema"
+>
+	<!-- iJw 3.0 CD034 version 2.4.3 (2021-09-29) -->
+
+	<xsl:import href="../common/basis.xsl"/>
+	<xsl:template match="*" mode="CD034"/>
+	<xsl:template match="*" mode="check">
+		<xsl:apply-templates select="*" mode="CD034"/>
+	</xsl:template>
+
+	<xsl:template match="jw301:Contact" mode="CD034">
+		<xsl:call-template name="checkimplication">
+			<xsl:with-param name="pThis" select="jw301:Soort"/>
+			<xsl:with-param name="pValue1">01,03</xsl:with-param>
+			<xsl:with-param name="pOther" select="jw301:Adres/ijw:Postcode"/>
+			<xsl:with-param name="pValue2">*</xsl:with-param>
+			<xsl:with-param name="pRule">CD034</xsl:with-param>
+		</xsl:call-template>
+	</xsl:template>
+
+</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_1/condities/CD041.xsl b/xslt-validatie/jw/3_1/condities/CD041.xsl
new file mode 100644
index 0000000000000000000000000000000000000000..377bf779132940a21f99cade5c9bb60678b1bfc0
--- /dev/null
+++ b/xslt-validatie/jw/3_1/condities/CD041.xsl
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+				xmlns:ijw="http://www.istandaarden.nl/ijw/3_1/basisschema/schema"
+				xmlns:jw301="http://www.istandaarden.nl/ijw/3_1/jw301/schema"
+				xmlns:jw315="http://www.istandaarden.nl/ijw/3_1/jw315/schema"
+				xmlns:jw317="http://www.istandaarden.nl/ijw/3_1/jw317/schema"
+>
+
+	<!-- iJw 3.0 CD041 version 2.4.3 (2021-09-29) -->
+
+	<xsl:import href="../common/basis.xsl"/>
+	<xsl:template match="*" mode="CD041"/>
+	<xsl:template match="*" mode="check">
+		<xsl:apply-templates select="*" mode="CD041"/>
+	</xsl:template>
+
+	<xsl:template match="jw301:ToegewezenProduct" mode="CD041">
+		<xsl:call-template name="checkimplication">
+			<xsl:with-param name="pThis" select="jw301:Product/ijw:Code"/>
+			<xsl:with-param name="pValue1">*</xsl:with-param>
+			<xsl:with-param name="pOther" select="jw301:Omvang"/>
+			<xsl:with-param name="pValue2">#</xsl:with-param>
+			<xsl:with-param name="pRule">CD041</xsl:with-param>
+		</xsl:call-template>
+	</xsl:template>
+
+	<xsl:template match="jw315:AangevraagdProduct" mode="CD041">
+		<xsl:call-template name="checkimplication">
+			<xsl:with-param name="pThis" select="jw315:Product/ijw:Code"/>
+			<xsl:with-param name="pValue1">*</xsl:with-param>
+			<xsl:with-param name="pOther" select="jw315:Omvang"/>
+			<xsl:with-param name="pValue2">#</xsl:with-param>
+			<xsl:with-param name="pRule">CD041</xsl:with-param>
+		</xsl:call-template>
+	</xsl:template>
+
+	<xsl:template match="jw317:NieuwProduct" mode="CD041">
+		<xsl:call-template name="checkimplication">
+			<xsl:with-param name="pThis" select="jw317:Product/ijw:Code"/>
+			<xsl:with-param name="pValue1">*</xsl:with-param>
+			<xsl:with-param name="pOther" select="jw317:Omvang"/>
+			<xsl:with-param name="pValue2">#</xsl:with-param>
+			<xsl:with-param name="pRule">CD041</xsl:with-param>
+		</xsl:call-template>
+	</xsl:template>
+
+</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_1/condities/CD043.xsl b/xslt-validatie/jw/3_1/condities/CD043.xsl
new file mode 100644
index 0000000000000000000000000000000000000000..218b5580e0075d4eddd100b15debaa4e4fe2fbb4
--- /dev/null
+++ b/xslt-validatie/jw/3_1/condities/CD043.xsl
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+				xmlns:jw315="http://www.istandaarden.nl/ijw/3_1/jw315/schema"
+>
+
+	<!-- iJw 3.0 CD043 version 2.4.3 (2021-09-29) -->
+
+	<xsl:import href="../common/basis.xsl"/>
+	<xsl:template match="*" mode="CD043"/>
+	<xsl:template match="*" mode="check">
+		<xsl:apply-templates select="*" mode="CD043"/>
+	</xsl:template>
+
+	<xsl:template match="jw315:AangevraagdProduct" mode="CD043">
+		<xsl:call-template name="checksame">
+			<xsl:with-param name="pThis" select="jw315:BeschikkingNummer"/>
+			<xsl:with-param name="pValue1">*</xsl:with-param>
+			<xsl:with-param name="pOther" select="jw315:BeschikkingIngangsdatum"/>
+			<xsl:with-param name="pValue2">*</xsl:with-param>
+			<xsl:with-param name="pRule">CD043</xsl:with-param>
+		</xsl:call-template>
+	</xsl:template>
+
+</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_1/condities/CD060.xsl b/xslt-validatie/jw/3_1/condities/CD060.xsl
new file mode 100644
index 0000000000000000000000000000000000000000..b6a6b6a3daabedce5a568d5e1f70d8a3181fe2d2
--- /dev/null
+++ b/xslt-validatie/jw/3_1/condities/CD060.xsl
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+				xmlns:ijw="http://www.istandaarden.nl/ijw/3_1/basisschema/schema"
+				xmlns:jw323="http://www.istandaarden.nl/ijw/3_1/jw323/schema"
+				xmlns:jw325="http://www.istandaarden.nl/ijw/3_1/jw325/schema"
+>
+
+	<!-- iJw 3.0 CD060 version 2.4.3 (2021-09-29) -->
+
+	<xsl:import href="../common/basis.xsl"/>
+	<xsl:template match="*" mode="CD060"/>
+	<xsl:template match="*" mode="check">
+		<xsl:apply-templates select="*" mode="CD060"/>
+	</xsl:template>
+
+	<xsl:template match="jw323:Prestatie" mode="CD060">
+		<xsl:call-template name="checksame">
+			<xsl:with-param name="pThis" select="jw323:IngediendBedrag/ijw:DebetCredit"/>
+			<xsl:with-param name="pValue1">C</xsl:with-param>
+			<xsl:with-param name="pOther" select="jw323:ProductReferentie/ijw:VorigReferentieNummer"/>
+			<xsl:with-param name="pValue2">*</xsl:with-param>
+			<xsl:with-param name="pRule">CD060</xsl:with-param>
+		</xsl:call-template>
+	</xsl:template>
+
+	<xsl:template match="jw325:Prestatie" mode="CD060">
+		<xsl:call-template name="checksame">
+			<xsl:with-param name="pThis" select="jw325:IngediendBedrag/ijw:DebetCredit"/>
+			<xsl:with-param name="pValue1">C</xsl:with-param>
+			<xsl:with-param name="pOther" select="jw325:ProductReferentie/ijw:VorigReferentieNummer"/>
+			<xsl:with-param name="pValue2">*</xsl:with-param>
+			<xsl:with-param name="pRule">CD060</xsl:with-param>
+		</xsl:call-template>
+	</xsl:template>
+
+</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_0/condities/CD066.xsl b/xslt-validatie/jw/3_1/condities/CD066.xsl
similarity index 54%
rename from xslt-validatie/jw/3_0/condities/CD066.xsl
rename to xslt-validatie/jw/3_1/condities/CD066.xsl
index 3ed50e91d5465fbda271416e40acfbfb5dd4b469..4ab79b8e2a9e3260f9734c01fcd395d8eae3c9d4 100644
--- a/xslt-validatie/jw/3_0/condities/CD066.xsl
+++ b/xslt-validatie/jw/3_1/condities/CD066.xsl
@@ -1,21 +1,22 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <xsl:stylesheet version="1.0"
-	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-	xmlns:ijw="http://www.istandaarden.nl/ijw/3_0/basisschema/schema"
-	xmlns:jw315="http://www.istandaarden.nl/ijw/3_0/jw315/schema">
+				xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+				xmlns:ijw="http://www.istandaarden.nl/ijw/3_1/basisschema/schema"
+				xmlns:jw315="http://www.istandaarden.nl/ijw/3_1/jw315/schema"
+>
 
-	<!-- iJw 3.0 CD066 version 2.2.8 (2021-01-25) -->
+	<!-- iJw 3.0 CD066 version 2.4.3 (2021-09-29) -->
 
-	<xsl:import href="../common/basis.xsl" />
-	<xsl:template match="*" mode="CD066" />
+	<xsl:import href="../common/basis.xsl"/>
+	<xsl:template match="*" mode="CD066"/>
 	<xsl:template match="*" mode="check">
-		<xsl:apply-templates select="*" mode="CD066" />
+		<xsl:apply-templates select="*" mode="CD066"/>
 	</xsl:template>
 
 	<xsl:template match="jw315:Verwijzer" mode="CD066">
 		<xsl:variable name="inList">
 			<xsl:call-template name="testvalue">
-				<xsl:with-param name="pElement" select="ijw:Type" />
+				<xsl:with-param name="pElement" select="ijw:Type"/>
 				<xsl:with-param name="pValues">02,03,04,05</xsl:with-param>
 			</xsl:call-template>
 		</xsl:variable>
@@ -23,11 +24,11 @@
 		<xsl:choose>
 			<xsl:when test="$inList = 'true'">
 				<xsl:call-template name="checkimplication">
-					<xsl:with-param name="pThis" select="ijw:ZorgverlenerCode" />
+					<xsl:with-param name="pThis" select="ijw:ZorgverlenerCode"/>
 					<xsl:with-param name="pValue1">*</xsl:with-param>
-					<xsl:with-param name="pOther" select="ijw:Naam" />
+					<xsl:with-param name="pOther" select="ijw:Naam"/>
 					<xsl:with-param name="pValue2"></xsl:with-param>
-					<xsl:with-param name="pExtra" select="ijw:Type" />
+					<xsl:with-param name="pExtra" select="ijw:Type"/>
 					<xsl:with-param name="pRule">CD066</xsl:with-param>
 				</xsl:call-template>
 			</xsl:when>
diff --git a/xslt-validatie/jw/3_0/condities/CD067.xsl b/xslt-validatie/jw/3_1/condities/CD067.xsl
similarity index 54%
rename from xslt-validatie/jw/3_0/condities/CD067.xsl
rename to xslt-validatie/jw/3_1/condities/CD067.xsl
index bf81a7f9a8a9aba77b0fbc5a387366bb997d92fe..8d2507d13b42022cfe1613c5e192dfa354f8f48b 100644
--- a/xslt-validatie/jw/3_0/condities/CD067.xsl
+++ b/xslt-validatie/jw/3_1/condities/CD067.xsl
@@ -1,21 +1,22 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <xsl:stylesheet version="1.0"
-	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-	xmlns:ijw="http://www.istandaarden.nl/ijw/3_0/basisschema/schema"
-	xmlns:jw315="http://www.istandaarden.nl/ijw/3_0/jw315/schema">
+				xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+				xmlns:ijw="http://www.istandaarden.nl/ijw/3_1/basisschema/schema"
+				xmlns:jw315="http://www.istandaarden.nl/ijw/3_1/jw315/schema"
+>
 
-	<!-- iJw 3.0 CD067 version 2.2.8 (2021-01-25) -->
+	<!-- iJw 3.0 CD067 version 2.4.3 (2021-09-29) -->
 
-	<xsl:import href="../common/basis.xsl" />
-	<xsl:template match="*" mode="CD067" />
+	<xsl:import href="../common/basis.xsl"/>
+	<xsl:template match="*" mode="CD067"/>
 	<xsl:template match="*" mode="check">
-		<xsl:apply-templates select="*" mode="CD067" />
+		<xsl:apply-templates select="*" mode="CD067"/>
 	</xsl:template>
 
 	<xsl:template match="jw315:Verwijzer" mode="CD067">
 		<xsl:variable name="inList">
 			<xsl:call-template name="testvalue">
-				<xsl:with-param name="pElement" select="ijw:Type" />
+				<xsl:with-param name="pElement" select="ijw:Type"/>
 				<xsl:with-param name="pValues">02,03,04,05</xsl:with-param>
 			</xsl:call-template>
 		</xsl:variable>
@@ -23,11 +24,11 @@
 		<xsl:choose>
 			<xsl:when test="$inList = 'true'">
 				<xsl:call-template name="checkimplication">
-					<xsl:with-param name="pThis" select="ijw:ZorgverlenerCode" />
+					<xsl:with-param name="pThis" select="ijw:ZorgverlenerCode"/>
 					<xsl:with-param name="pValue1"></xsl:with-param>
-					<xsl:with-param name="pOther" select="ijw:Naam" />
+					<xsl:with-param name="pOther" select="ijw:Naam"/>
 					<xsl:with-param name="pValue2">*</xsl:with-param>
-					<xsl:with-param name="pExtra" select="ijw:Type" />
+					<xsl:with-param name="pExtra" select="ijw:Type"/>
 					<xsl:with-param name="pRule">CD067</xsl:with-param>
 				</xsl:call-template>
 			</xsl:when>
diff --git a/xslt-validatie/jw/3_1/condities/CD068.xsl b/xslt-validatie/jw/3_1/condities/CD068.xsl
new file mode 100644
index 0000000000000000000000000000000000000000..ccb9efb480c49c9749e585c5427624907333220e
--- /dev/null
+++ b/xslt-validatie/jw/3_1/condities/CD068.xsl
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0"
+				xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+				xmlns:ijw="http://www.istandaarden.nl/ijw/3_1/basisschema/schema"
+				xmlns:jw315="http://www.istandaarden.nl/ijw/3_1/jw315/schema"
+>
+
+	<!-- iJw 3.0 CD068 version 2.4.3 (2021-09-29) -->
+
+	<xsl:import href="../common/basis.xsl"/>
+	<xsl:template match="*" mode="CD068"/>
+	<xsl:template match="*" mode="check">
+		<xsl:apply-templates select="*" mode="CD068"/>
+	</xsl:template>
+
+	<xsl:template match="jw315:Verwijzer" mode="CD068">
+		<xsl:call-template name="checkimplication">
+			<xsl:with-param name="pThis" select="ijw:Type"/>
+			<xsl:with-param name="pValue1">!02,03,04,05</xsl:with-param>
+			<xsl:with-param name="pOther" select="ijw:ZorgverlenerCode"/>
+			<xsl:with-param name="pValue2"></xsl:with-param>
+			<xsl:with-param name="pRule">CD068</xsl:with-param>
+		</xsl:call-template>
+	</xsl:template>
+</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_0/condities/CD075.xsl b/xslt-validatie/jw/3_1/condities/CD075.xsl
similarity index 56%
rename from xslt-validatie/jw/3_0/condities/CD075.xsl
rename to xslt-validatie/jw/3_1/condities/CD075.xsl
index d724a4badb07d501c3e3e963c8298eeb17486a16..d6f8b157e8a791b82d278a1449b88af2ade510eb 100644
--- a/xslt-validatie/jw/3_0/condities/CD075.xsl
+++ b/xslt-validatie/jw/3_1/condities/CD075.xsl
@@ -1,32 +1,41 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <xsl:stylesheet version="1.0"
-	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-	xmlns:ijw="http://www.istandaarden.nl/ijw/3_0/basisschema/schema"
-	xmlns:jw301="http://www.istandaarden.nl/ijw/3_0/jw301/schema"
-	xmlns:jw317="http://www.istandaarden.nl/ijw/3_0/jw317/schema"
-	>
+				xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+				xmlns:jw301="http://www.istandaarden.nl/ijw/3_1/jw301/schema"
+				xmlns:jw315="http://www.istandaarden.nl/ijw/3_1/jw315/schema"
+				xmlns:jw317="http://www.istandaarden.nl/ijw/3_1/jw317/schema"
+>
 
-	<!-- iJw 3.0 CD075 version 2.2.8 (2021-01-25) -->
+	<!-- iJw 3.0 CD075 version 2.4.3 (2021-09-29) -->
 
-	<xsl:import href="../common/basis.xsl" />
-	<xsl:template match="*" mode="CD075" />
+	<xsl:import href="../common/basis.xsl"/>
+	<xsl:template match="*" mode="CD075"/>
 	<xsl:template match="*" mode="check">
-		<xsl:apply-templates select="*" mode="CD075" />
+		<xsl:apply-templates select="*" mode="CD075"/>
 	</xsl:template>
 
 	<xsl:template match="jw301:ToegewezenProduct//jw301:Budget" mode="CD075">
 		<xsl:call-template name="checkimplication">
 			<xsl:with-param name="pValue1">*</xsl:with-param>
-			<xsl:with-param name="pOther" select="ancestor-or-self::jw301:ToegewezenProduct/jw301:Einddatum" />
+			<xsl:with-param name="pOther" select="ancestor-or-self::jw301:ToegewezenProduct/jw301:Einddatum"/>
 			<xsl:with-param name="pValue2">*</xsl:with-param>
 			<xsl:with-param name="pRule">CD075</xsl:with-param>
 		</xsl:call-template>
 	</xsl:template>
-	
+
+	<xsl:template match="jw315:AangevraagdProduct//jw315:Budget" mode="CD075">
+		<xsl:call-template name="checkimplication">
+			<xsl:with-param name="pValue1">*</xsl:with-param>
+			<xsl:with-param name="pOther" select="ancestor-or-self::jw315:AangevraagdProduct/jw315:ToewijzingEinddatum"/>
+			<xsl:with-param name="pValue2">*</xsl:with-param>
+			<xsl:with-param name="pRule">CD075</xsl:with-param>
+		</xsl:call-template>
+	</xsl:template>
+
 	<xsl:template match="jw317:TeWijzigenProduct//jw317:Budget" mode="CD075">
 		<xsl:call-template name="checkimplication">
 			<xsl:with-param name="pValue1">*</xsl:with-param>
-			<xsl:with-param name="pOther" select="ancestor-or-self::jw317:TeWijzigenProduct/jw317:Einddatum" />
+			<xsl:with-param name="pOther" select="ancestor-or-self::jw317:TeWijzigenProduct/jw317:Einddatum"/>
 			<xsl:with-param name="pValue2">*</xsl:with-param>
 			<xsl:with-param name="pRule">CD075</xsl:with-param>
 		</xsl:call-template>
@@ -34,7 +43,7 @@
 	<xsl:template match="jw317:NieuwProduct//jw317:Budget" mode="CD075">
 		<xsl:call-template name="checkimplication">
 			<xsl:with-param name="pValue1">*</xsl:with-param>
-			<xsl:with-param name="pOther" select="ancestor-or-self::jw317:NieuwProduct/jw317:Einddatum" />
+			<xsl:with-param name="pOther" select="ancestor-or-self::jw317:NieuwProduct/jw317:Einddatum"/>
 			<xsl:with-param name="pValue2">*</xsl:with-param>
 			<xsl:with-param name="pRule">CD075</xsl:with-param>
 		</xsl:call-template>
diff --git a/xslt-validatie/jw/3_1/condities/CD076.xsl b/xslt-validatie/jw/3_1/condities/CD076.xsl
new file mode 100644
index 0000000000000000000000000000000000000000..1f9ce5befd5644ee3f37745ced6dddeaf493c6ea
--- /dev/null
+++ b/xslt-validatie/jw/3_1/condities/CD076.xsl
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0"
+				xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+				xmlns:ijw="http://www.istandaarden.nl/ijw/3_1/basisschema/schema"
+				xmlns:jw301="http://www.istandaarden.nl/ijw/3_1/jw301/schema"
+				xmlns:jw315="http://www.istandaarden.nl/ijw/3_1/jw315/schema"
+				xmlns:jw317="http://www.istandaarden.nl/ijw/3_1/jw317/schema"
+>
+
+	<!-- iJw 3.0 CD076 version 2.4.3 (2021-09-29) -->
+
+	<xsl:import href="../common/basis.xsl"/>
+	<xsl:template match="*" mode="CD076"/>
+	<xsl:template match="*" mode="check">
+		<xsl:apply-templates select="*" mode="CD076"/>
+	</xsl:template>
+
+	<xsl:template match="jw301:ToegewezenProduct/jw301:Omvang/ijw:Frequentie" mode="CD076">
+		<xsl:call-template name="checkimplication">
+			<xsl:with-param name="pValue1">2</xsl:with-param>
+			<xsl:with-param name="pOther" select="ancestor-or-self::jw301:ToegewezenProduct/jw301:Einddatum"/>
+			<xsl:with-param name="pValue2">*</xsl:with-param>
+			<xsl:with-param name="pRule">CD076</xsl:with-param>
+		</xsl:call-template>
+	</xsl:template>
+
+	<xsl:template match="jw315:AangevraagdProduct/jw315:Omvang/ijw:Frequentie" mode="CD076">
+		<xsl:call-template name="checkimplication">
+			<xsl:with-param name="pValue1">2</xsl:with-param>
+			<xsl:with-param name="pOther"
+							select="ancestor-or-self::jw315:AangevraagdProduct/jw315:ToewijzingEinddatum"/>
+			<xsl:with-param name="pValue2">*</xsl:with-param>
+			<xsl:with-param name="pRule">CD076</xsl:with-param>
+		</xsl:call-template>
+	</xsl:template>
+
+	<xsl:template match="jw317:TeWijzigenProduct/jw317:Omvang/ijw:Frequentie" mode="CD076">
+		<xsl:call-template name="checkimplication">
+			<xsl:with-param name="pValue1">2</xsl:with-param>
+			<xsl:with-param name="pOther" select="ancestor-or-self::jw317:TeWijzigenProduct/jw317:Einddatum"/>
+			<xsl:with-param name="pValue2">*</xsl:with-param>
+			<xsl:with-param name="pRule">CD076</xsl:with-param>
+		</xsl:call-template>
+	</xsl:template>
+	<xsl:template match="jw317:NieuwProduct/jw317:Omvang/ijw:Frequentie" mode="CD076">
+		<xsl:call-template name="checkimplication">
+			<xsl:with-param name="pValue1">2</xsl:with-param>
+			<xsl:with-param name="pOther" select="ancestor-or-self::jw317:NieuwProduct/jw317:Einddatum"/>
+			<xsl:with-param name="pValue2">*</xsl:with-param>
+			<xsl:with-param name="pRule">CD076</xsl:with-param>
+		</xsl:call-template>
+	</xsl:template>
+</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_1/condities/CD077.xsl b/xslt-validatie/jw/3_1/condities/CD077.xsl
new file mode 100644
index 0000000000000000000000000000000000000000..305fc2cc47997c10d98e437444a5b17508a9f57b
--- /dev/null
+++ b/xslt-validatie/jw/3_1/condities/CD077.xsl
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0"
+				xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+				xmlns:jw301="http://www.istandaarden.nl/ijw/3_1/jw301/schema"
+				xmlns:jw315="http://www.istandaarden.nl/ijw/3_1/jw315/schema"
+				xmlns:jw317="http://www.istandaarden.nl/ijw/3_1/jw317/schema"
+>
+
+	<!-- iJw 3.0 CD077 version 2.4.3 (2021-09-29) -->
+
+	<xsl:import href="../common/basis.xsl"/>
+	<xsl:template match="*" mode="CD077"/>
+	<xsl:template match="*" mode="check">
+		<xsl:apply-templates select="*" mode="CD077"/>
+	</xsl:template>
+
+	<xsl:template match="jw301:ToegewezenProduct/jw301:Budget" mode="CD077">
+		<xsl:call-template name="checkimplication">
+			<xsl:with-param name="pValue1">*</xsl:with-param>
+			<xsl:with-param name="pOther" select="ancestor-or-self::jw301:ToegewezenProduct/jw301:Omvang"/>
+			<xsl:with-param name="pValue2">!#</xsl:with-param>
+			<xsl:with-param name="pRule">CD077</xsl:with-param>
+		</xsl:call-template>
+	</xsl:template>
+
+	<xsl:template match="jw315:AangevraagdProduct/jw315:Budget" mode="CD077">
+		<xsl:call-template name="checkimplication">
+			<xsl:with-param name="pValue1">*</xsl:with-param>
+			<xsl:with-param name="pOther" select="ancestor-or-self::jw315:AangevraagdProduct/jw315:Omvang"/>
+			<xsl:with-param name="pValue2">!#</xsl:with-param>
+			<xsl:with-param name="pRule">CD077</xsl:with-param>
+		</xsl:call-template>
+	</xsl:template>
+
+	<xsl:template match="jw317:TeWijzigenProduct/jw317:Budget" mode="CD077">
+		<xsl:call-template name="checkimplication">
+			<xsl:with-param name="pValue1">*</xsl:with-param>
+			<xsl:with-param name="pOther" select="ancestor-or-self::jw317:TeWijzigenProduct/jw317:Omvang"/>
+			<xsl:with-param name="pValue2">!#</xsl:with-param>
+			<xsl:with-param name="pRule">CD077</xsl:with-param>
+		</xsl:call-template>
+	</xsl:template>
+	<xsl:template match="jw317:NieuwProduct/jw317:Budget" mode="CD077">
+		<xsl:call-template name="checkimplication">
+			<xsl:with-param name="pValue1">*</xsl:with-param>
+			<xsl:with-param name="pOther" select="ancestor-or-self::jw317:NieuwProduct/jw317:Omvang"/>
+			<xsl:with-param name="pValue2">!#</xsl:with-param>
+			<xsl:with-param name="pRule">CD077</xsl:with-param>
+		</xsl:call-template>
+	</xsl:template>
+</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_1/condities/CD078.xsl b/xslt-validatie/jw/3_1/condities/CD078.xsl
new file mode 100644
index 0000000000000000000000000000000000000000..7dcd4e5546da3c432e4f2df3fc75bf9c3872882f
--- /dev/null
+++ b/xslt-validatie/jw/3_1/condities/CD078.xsl
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0"
+				xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+				xmlns:jw301="http://www.istandaarden.nl/ijw/3_1/jw301/schema"
+				xmlns:jw315="http://www.istandaarden.nl/ijw/3_1/jw315/schema"
+				xmlns:jw317="http://www.istandaarden.nl/ijw/3_1/jw317/schema"
+>
+
+	<!-- iJw 3.0 CD078 version 2.4.3 (2021-09-29) -->
+
+	<xsl:import href="../common/basis.xsl"/>
+	<xsl:template match="*" mode="CD078"/>
+	<xsl:template match="*" mode="check">
+		<xsl:apply-templates select="*" mode="CD078"/>
+	</xsl:template>
+
+	<xsl:template match="jw301:ToegewezenProduct/jw301:Omvang" mode="CD078">
+		<xsl:call-template name="checkimplication">
+			<xsl:with-param name="pValue1">#</xsl:with-param>
+			<xsl:with-param name="pOther" select="ancestor-or-self::jw301:ToegewezenProduct/jw301:Budget"/>
+			<xsl:with-param name="pValue2">!#</xsl:with-param>
+			<xsl:with-param name="pRule">CD078</xsl:with-param>
+		</xsl:call-template>
+	</xsl:template>
+
+	<xsl:template match="jw315:AangevraagdProduct/jw315:Omvang" mode="CD078">
+		<xsl:call-template name="checkimplication">
+			<xsl:with-param name="pValue1">#</xsl:with-param>
+			<xsl:with-param name="pOther" select="ancestor-or-self::jw315:AangevraagdProduct/jw315:Budget"/>
+			<xsl:with-param name="pValue2">!#</xsl:with-param>
+			<xsl:with-param name="pRule">CD078</xsl:with-param>
+		</xsl:call-template>
+	</xsl:template>
+
+	<xsl:template match="jw317:TeWijzigenProduct/jw317:Omvang" mode="CD078">
+		<xsl:call-template name="checkimplication">
+			<xsl:with-param name="pValue1">#</xsl:with-param>
+			<xsl:with-param name="pOther" select="ancestor-or-self::jw317:TeWijzigenProduct/jw317:Budget"/>
+			<xsl:with-param name="pValue2">!#</xsl:with-param>
+			<xsl:with-param name="pRule">CD078</xsl:with-param>
+		</xsl:call-template>
+	</xsl:template>
+	<xsl:template match="jw317:NieuwProduct/jw317:Omvang" mode="CD078">
+		<xsl:call-template name="checkimplication">
+			<xsl:with-param name="pValue1">#</xsl:with-param>
+			<xsl:with-param name="pOther" select="ancestor-or-self::jw317:NieuwProduct/jw317:Budget"/>
+			<xsl:with-param name="pValue2">!#</xsl:with-param>
+			<xsl:with-param name="pRule">CD078</xsl:with-param>
+		</xsl:call-template>
+	</xsl:template>
+</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_1/condities/CD079.xsl b/xslt-validatie/jw/3_1/condities/CD079.xsl
new file mode 100644
index 0000000000000000000000000000000000000000..26e567008358e37f73b93ac8c82772cac631bce3
--- /dev/null
+++ b/xslt-validatie/jw/3_1/condities/CD079.xsl
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0"
+				xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+				xmlns:jw301="http://www.istandaarden.nl/ijw/3_1/jw301/schema"
+				xmlns:jw315="http://www.istandaarden.nl/ijw/3_1/jw315/schema"
+				xmlns:jw317="http://www.istandaarden.nl/ijw/3_1/jw317/schema"
+>
+
+	<!-- iJw 3.0 CD079 version 2.4.3 (2021-09-29) -->
+
+	<xsl:import href="../common/basis.xsl"/>
+	<xsl:template match="*" mode="CD079"/>
+	<xsl:template match="*" mode="check">
+		<xsl:apply-templates select="*" mode="CD079"/>
+	</xsl:template>
+
+	<xsl:template match="jw301:ToegewezenProduct" mode="CD079">
+		<xsl:call-template name="checkimplication">
+			<xsl:with-param name="pThis" select="jw301:Budget"/>
+			<xsl:with-param name="pValue1"></xsl:with-param>
+			<xsl:with-param name="pOther" select="jw301:Product"/>
+			<xsl:with-param name="pValue2">#</xsl:with-param>
+			<xsl:with-param name="pExtra" select="."/>
+			<xsl:with-param name="pRule">CD079</xsl:with-param>
+		</xsl:call-template>
+	</xsl:template>
+
+	<xsl:template match="jw315:AangevraagdProduct" mode="CD079">
+		<xsl:call-template name="checkimplication">
+			<xsl:with-param name="pThis" select="jw315:Budget"/>
+			<xsl:with-param name="pValue1"></xsl:with-param>
+			<xsl:with-param name="pOther" select="jw315:Product"/>
+			<xsl:with-param name="pValue2">#</xsl:with-param>
+			<xsl:with-param name="pExtra" select="."/>
+			<xsl:with-param name="pRule">CD079</xsl:with-param>
+		</xsl:call-template>
+	</xsl:template>
+
+	<xsl:template match="jw317:NieuwProduct" mode="CD079">
+		<xsl:call-template name="checkimplication">
+			<xsl:with-param name="pThis" select="jw317:Budget"/>
+			<xsl:with-param name="pValue1"></xsl:with-param>
+			<xsl:with-param name="pOther" select="jw317:Product"/>
+			<xsl:with-param name="pValue2">#</xsl:with-param>
+			<xsl:with-param name="pExtra" select="."/>
+			<xsl:with-param name="pRule">CD079</xsl:with-param>
+		</xsl:call-template>
+	</xsl:template>
+</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_1/condities/CD080.xsl b/xslt-validatie/jw/3_1/condities/CD080.xsl
new file mode 100644
index 0000000000000000000000000000000000000000..927a810e49d541e6dff5735f7307713405f5c1dc
--- /dev/null
+++ b/xslt-validatie/jw/3_1/condities/CD080.xsl
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0"
+				xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+				xmlns:ijw="http://www.istandaarden.nl/ijw/3_1/basisschema/schema"
+				xmlns:jw301="http://www.istandaarden.nl/ijw/3_1/jw301/schema"
+>
+
+	<!-- iJw 3.0 CD080 version 2.4.3 (2021-09-29) -->
+
+	<xsl:import href="../common/basis.xsl"/>
+	<xsl:template match="*" mode="CD080"/>
+	<xsl:template match="*" mode="check">
+		<xsl:apply-templates select="*" mode="CD080"/>
+	</xsl:template>
+
+	<xsl:template match="jw301:ToegewezenProduct/jw301:Omvang" mode="CD080">
+		<xsl:if test="not(ancestor-or-self::jw301:ToegewezenProduct/jw301:Einddatum) or number(translate(ancestor-or-self::jw301:ToegewezenProduct/jw301:Einddatum/text(), '-', '')) &gt; 20201231">
+			<xsl:call-template name="checkimplication">
+				<xsl:with-param name="pValue1">#</xsl:with-param>
+				<xsl:with-param name="pOther"
+								select="ancestor-or-self::jw301:ToegewezenProduct/jw301:Product/ijw:Code"/>
+				<xsl:with-param name="pValue2">*</xsl:with-param>
+				<xsl:with-param name="pRule">CD080</xsl:with-param>
+				<xsl:with-param name="pExtra" select="ancestor-or-self::jw301:ToegewezenProduct/jw301:Einddatum"/>
+			</xsl:call-template>
+		</xsl:if>
+	</xsl:template>
+</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_0/condities/CD085.xsl b/xslt-validatie/jw/3_1/condities/CD085.xsl
similarity index 54%
rename from xslt-validatie/jw/3_0/condities/CD085.xsl
rename to xslt-validatie/jw/3_1/condities/CD085.xsl
index 532d7465098d6e38b6da7e06f78d78c27348f8c7..79213089f62cb72c85e3a1ebd6ace901f1258b16 100644
--- a/xslt-validatie/jw/3_0/condities/CD085.xsl
+++ b/xslt-validatie/jw/3_1/condities/CD085.xsl
@@ -1,22 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet version="1.0"
-	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-	xmlns:ijw="http://www.istandaarden.nl/ijw/3_0/basisschema/schema"
-	xmlns:jw319="http://www.istandaarden.nl/ijw/3_0/jw319/schema"
-	>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+				xmlns:jw319="http://www.istandaarden.nl/ijw/3_1/jw319/schema"
+>
 
-	<!-- iJw 3.0 CD085 version 2.2.8 (2021-01-25) -->
+	<!-- iJw 3.0 CD085 version 2.4.3 (2021-09-29) -->
 
-	<xsl:import href="../common/basis.xsl" />
-	<xsl:template match="*" mode="CD085" />
+	<xsl:import href="../common/basis.xsl"/>
+	<xsl:template match="*" mode="CD085"/>
 	<xsl:template match="*" mode="check">
-		<xsl:apply-templates select="*" mode="CD085" />
+		<xsl:apply-templates select="*" mode="CD085"/>
 	</xsl:template>
 
 	<xsl:template match="jw319:VerzoekAntwoord" mode="CD085">
 		<xsl:call-template name="checkimplication">
 			<xsl:with-param name="pValue1">1</xsl:with-param>
-			<xsl:with-param name="pOther" select="../jw319:RedenAfwijzingVerzoek" />
+			<xsl:with-param name="pOther" select="../jw319:RedenAfwijzingVerzoek"/>
 			<xsl:with-param name="pValue2">*</xsl:with-param>
 			<xsl:with-param name="pRule">CD085</xsl:with-param>
 		</xsl:call-template>
diff --git a/xslt-validatie/jw/3_0/condities/CD086.xsl b/xslt-validatie/jw/3_1/condities/CD086.xsl
similarity index 57%
rename from xslt-validatie/jw/3_0/condities/CD086.xsl
rename to xslt-validatie/jw/3_1/condities/CD086.xsl
index 8653439feabdcd32d0add1e55b2f3fac0d88b5d6..357c768210dc5da275616ccdd8e1f34e21ae7ce8 100644
--- a/xslt-validatie/jw/3_0/condities/CD086.xsl
+++ b/xslt-validatie/jw/3_1/condities/CD086.xsl
@@ -1,22 +1,21 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <xsl:stylesheet version="1.0"
-	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-	xmlns:ijw="http://www.istandaarden.nl/ijw/3_0/basisschema/schema"
-	xmlns:jw319="http://www.istandaarden.nl/ijw/3_0/jw319/schema"
-	>
+				xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+				xmlns:jw319="http://www.istandaarden.nl/ijw/3_1/jw319/schema"
+>
 
-	<!-- iJw 3.0 CD086 version 2.2.8 (2021-01-25) -->
+	<!-- iJw 3.0 CD086 version 2.4.3 (2021-09-29) -->
 
-	<xsl:import href="../common/basis.xsl" />
-	<xsl:template match="*" mode="CD086" />
+	<xsl:import href="../common/basis.xsl"/>
+	<xsl:template match="*" mode="CD086"/>
 	<xsl:template match="*" mode="check">
-		<xsl:apply-templates select="*" mode="CD086" />
+		<xsl:apply-templates select="*" mode="CD086"/>
 	</xsl:template>
 
 	<xsl:template match="jw319:VerzoekAntwoord" mode="CD086">
 		<xsl:call-template name="checkimplication">
 			<xsl:with-param name="pValue1">2</xsl:with-param>
-			<xsl:with-param name="pOther" select="../jw319:RedenAfwijzingVerzoek" />
+			<xsl:with-param name="pOther" select="../jw319:RedenAfwijzingVerzoek"/>
 			<xsl:with-param name="pValue2"></xsl:with-param>
 			<xsl:with-param name="pRule">CD086</xsl:with-param>
 		</xsl:call-template>
diff --git a/xslt-validatie/jw/3_0/condities/CD087.xsl b/xslt-validatie/jw/3_1/condities/CD087.xsl
similarity index 57%
rename from xslt-validatie/jw/3_0/condities/CD087.xsl
rename to xslt-validatie/jw/3_1/condities/CD087.xsl
index ef814ff0e0eaba13794d54400874d6f33b9f4770..917d93082ccbf46736d4011be9d79111cb5bed45 100644
--- a/xslt-validatie/jw/3_0/condities/CD087.xsl
+++ b/xslt-validatie/jw/3_1/condities/CD087.xsl
@@ -1,22 +1,21 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <xsl:stylesheet version="1.0"
-	xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-	xmlns:ijw="http://www.istandaarden.nl/ijw/3_0/basisschema/schema"
-	xmlns:jw323="http://www.istandaarden.nl/ijw/3_0/jw323/schema"
-	>
+				xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+				xmlns:jw323="http://www.istandaarden.nl/ijw/3_1/jw323/schema"
+>
 
-	<!-- iJw 3.0 CD087 version 2.2.8 (2021-01-25) -->
+	<!-- iJw 3.0 CD087 version 2.4.3 (2021-09-29) -->
 
-	<xsl:import href="../common/basis.xsl" />
-	<xsl:template match="*" mode="CD087" />
+	<xsl:import href="../common/basis.xsl"/>
+	<xsl:template match="*" mode="CD087"/>
 	<xsl:template match="*" mode="check">
-		<xsl:apply-templates select="*" mode="CD087" />
+		<xsl:apply-templates select="*" mode="CD087"/>
 	</xsl:template>
 
 	<xsl:template match="jw323:Eenheid" mode="CD087">
 		<xsl:call-template name="checksame">
 			<xsl:with-param name="pValue1">!83</xsl:with-param>
-			<xsl:with-param name="pOther" select="../jw323:ProductTarief" />
+			<xsl:with-param name="pOther" select="../jw323:ProductTarief"/>
 			<xsl:with-param name="pValue2">*</xsl:with-param>
 			<xsl:with-param name="pRule">CD087</xsl:with-param>
 		</xsl:call-template>
diff --git a/xslt-validatie/jw/3_1/condities/CD095.xsl b/xslt-validatie/jw/3_1/condities/CD095.xsl
new file mode 100644
index 0000000000000000000000000000000000000000..1782d6c1806ccaa5cbdc11baa3770d8dfcc2c8ec
--- /dev/null
+++ b/xslt-validatie/jw/3_1/condities/CD095.xsl
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0"
+				xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+				xmlns:ijw="http://www.istandaarden.nl/ijw/3_1/basisschema/schema"
+				xmlns:jw315="http://www.istandaarden.nl/ijw/3_1/jw315/schema"
+>
+
+	<!-- iJw 3.0 CD095 version 2.4.3 (2021-09-29) -->
+
+	<xsl:import href="../common/basis.xsl"/>
+	<xsl:template match="*" mode="CD095"/>
+	<xsl:template match="*" mode="check">
+		<xsl:apply-templates select="*" mode="CD095"/>
+	</xsl:template>
+
+	<xsl:template match="jw315:AangevraagdProduct/jw315:Omvang" mode="CD095">
+		<xsl:if test="not(ancestor-or-self::jw315:AangevraagdProduct/jw315:ToewijzingEinddatum) or number(translate(ancestor-or-self::jw315:AangevraagdProduct/jw315:ToewijzingEinddatum/text(), '-', '')) &gt; 20201231">
+			<xsl:call-template name="checkimplication">
+				<xsl:with-param name="pValue1">#</xsl:with-param>
+				<xsl:with-param name="pOther"
+								select="ancestor-or-self::jw315:AangevraagdProduct/jw315:Product/ijw:Code"/>
+				<xsl:with-param name="pValue2">*</xsl:with-param>
+				<xsl:with-param name="pRule">CD095</xsl:with-param>
+				<xsl:with-param name="pExtra" select="ancestor-or-self::jw315:AangevraagdProduct/jw315:ToewijzingEinddatum"/>
+			</xsl:call-template>
+		</xsl:if>
+	</xsl:template>
+</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_1/condities/CD096.xsl b/xslt-validatie/jw/3_1/condities/CD096.xsl
new file mode 100644
index 0000000000000000000000000000000000000000..9f6352d90a9d73a19f2bb1690f87c95f6840fc79
--- /dev/null
+++ b/xslt-validatie/jw/3_1/condities/CD096.xsl
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0"
+				xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+				xmlns:ijw="http://www.istandaarden.nl/ijw/3_1/basisschema/schema"
+				xmlns:jw317="http://www.istandaarden.nl/ijw/3_1/jw317/schema"
+>
+
+	<!-- iJw 3.0 CD096 version 2.4.3 (2021-09-29) -->
+
+	<xsl:import href="../common/basis.xsl"/>
+	<xsl:template match="*" mode="CD096"/>
+	<xsl:template match="*" mode="check">
+		<xsl:apply-templates select="*" mode="CD096"/>
+	</xsl:template>
+
+	<xsl:template match="jw317:TeWijzigenProduct/jw317:Omvang" mode="CD096">
+		<xsl:if test="not(ancestor-or-self::jw317:TeWijzigenProduct/jw317:Einddatum) or number(translate(ancestor-or-self::jw317:TeWijzigenProduct/jw317:Einddatum/text(), '-', '')) &gt; 20201231">
+			<xsl:call-template name="checkimplication">
+				<xsl:with-param name="pValue1">#</xsl:with-param>
+				<xsl:with-param name="pOther"
+								select="ancestor-or-self::jw317:TeWijzigenProduct/jw317:Product/ijw:Code"/>
+				<xsl:with-param name="pValue2">*</xsl:with-param>
+				<xsl:with-param name="pRule">CD096</xsl:with-param>
+				<xsl:with-param name="pExtra" select="ancestor-or-self::jw317:TeWijzigenProduct/jw317:Einddatum"/>
+			</xsl:call-template>
+		</xsl:if>
+	</xsl:template>
+
+	<xsl:template match="jw317:NieuwProduct/jw317:Omvang" mode="CD096">
+		<xsl:if test="not(ancestor-or-self::jw317:NieuwProduct/jw317:Einddatum) or number(translate(ancestor-or-self::jw317:NieuwProduct/jw317:Einddatum/text(), '-', '')) &gt; 20201231">
+			<xsl:call-template name="checkimplication">
+				<xsl:with-param name="pValue1">#</xsl:with-param>
+				<xsl:with-param name="pOther"
+								select="ancestor-or-self::jw317:NieuwProduct/jw317:Product/ijw:Code"/>
+				<xsl:with-param name="pValue2">*</xsl:with-param>
+				<xsl:with-param name="pRule">CD096</xsl:with-param>
+				<xsl:with-param name="pExtra" select="ancestor-or-self::jw317:NieuwProduct/jw317:Einddatum"/>
+			</xsl:call-template>
+		</xsl:if>
+	</xsl:template>
+</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_1/constraints/CS002.xsl b/xslt-validatie/jw/3_1/constraints/CS002.xsl
new file mode 100644
index 0000000000000000000000000000000000000000..59af48f2ebc1e97d951d521c75b8c4b111b1b0af
--- /dev/null
+++ b/xslt-validatie/jw/3_1/constraints/CS002.xsl
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+>
+
+	<!-- iJw 3.0 CS002 version 2.4.3 (2021-09-29) -->
+
+	<xsl:import href="../common/basis.xsl"/>
+	<xsl:template match="*" mode="CS002"/>
+	<xsl:template match="*" mode="check">
+		<xsl:apply-templates select="*" mode="CS002"/>
+	</xsl:template>
+
+	<xsl:template match="*[local-name() = 'Bsn']" mode="CS002">
+		<xsl:call-template name="check11proef">
+			<xsl:with-param name="pRule">CS002</xsl:with-param>
+		</xsl:call-template>
+	</xsl:template>
+
+</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_1/constraints/CS003.xsl b/xslt-validatie/jw/3_1/constraints/CS003.xsl
new file mode 100644
index 0000000000000000000000000000000000000000..2cf106e6747b676869d342ced72d147447525830
--- /dev/null
+++ b/xslt-validatie/jw/3_1/constraints/CS003.xsl
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+				xmlns:ijw="http://www.istandaarden.nl/ijw/3_1/basisschema/schema"
+				xmlns:jw301="http://www.istandaarden.nl/ijw/3_1/jw301/schema"
+				xmlns:jw315="http://www.istandaarden.nl/ijw/3_1/jw315/schema"
+				xmlns:jw317="http://www.istandaarden.nl/ijw/3_1/jw317/schema"
+>
+
+	<!-- iJw 3.0 CS003 version 2.4.3 (2021-09-29) -->
+
+	<xsl:import href="../common/basis.xsl"/>
+	<xsl:template match="*" mode="CS003"/>
+	<xsl:template match="*" mode="check">
+		<xsl:apply-templates select="*" mode="CS003"/>
+	</xsl:template>
+
+	<xsl:template match="jw301:Beschikking/jw301:Einddatum" mode="CS003">
+		<xsl:call-template name="checkafter">
+			<xsl:with-param name="pOther" select="../jw301:Ingangsdatum"/>
+			<xsl:with-param name="pRule">CS003</xsl:with-param>
+		</xsl:call-template>
+	</xsl:template>
+
+	<xsl:template match="jw301:ToegewezenProduct/jw301:Einddatum" mode="CS003">
+		<xsl:call-template name="checkafter">
+			<xsl:with-param name="pOther" select="../jw301:Ingangsdatum"/>
+			<xsl:with-param name="pRule">CS003</xsl:with-param>
+		</xsl:call-template>
+	</xsl:template>
+
+	<xsl:template match="jw301:Contact/jw301:Periode/ijw:Einddatum" mode="CS003">
+		<xsl:call-template name="checkafter">
+			<xsl:with-param name="pOther" select="../ijw:Begindatum"/>
+			<xsl:with-param name="pRule">CS003</xsl:with-param>
+		</xsl:call-template>
+	</xsl:template>
+
+	<xsl:template match="jw315:AangevraagdProduct/jw315:ToewijzingEinddatum" mode="CS003">
+		<xsl:call-template name="checkafter">
+			<xsl:with-param name="pOther" select="../jw315:ToewijzingIngangsdatum"/>
+			<xsl:with-param name="pRule">CS003</xsl:with-param>
+		</xsl:call-template>
+	</xsl:template>
+
+	<xsl:template match="jw317:TeWijzigenProduct/jw317:Einddatum" mode="CS003">
+		<xsl:call-template name="checkafter">
+			<xsl:with-param name="pOther" select="../jw317:GewensteIngangsdatum"/>
+			<xsl:with-param name="pRule">CS003</xsl:with-param>
+		</xsl:call-template>
+	</xsl:template>
+
+	<xsl:template match="jw317:NieuwProduct/jw317:Einddatum" mode="CS003">
+		<xsl:call-template name="checkafter">
+			<xsl:with-param name="pOther" select="../jw317:GewensteIngangsdatum"/>
+			<xsl:with-param name="pRule">CS003</xsl:with-param>
+		</xsl:call-template>
+	</xsl:template>
+
+</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_1/constraints/CS050.xsl b/xslt-validatie/jw/3_1/constraints/CS050.xsl
new file mode 100644
index 0000000000000000000000000000000000000000..0fa362fa232cfa0c252aeb425a1ff4ae0733a943
--- /dev/null
+++ b/xslt-validatie/jw/3_1/constraints/CS050.xsl
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+				xmlns:ijw="http://www.istandaarden.nl/ijw/3_1/basisschema/schema"
+>
+	<!-- iJw 3.0 CS050 version 2.4.3 (2021-09-29) -->
+
+	<xsl:import href="../common/basis.xsl"/>
+	<xsl:template match="*" mode="CS050"/>
+	<xsl:template match="*" mode="check">
+		<xsl:apply-templates select="*" mode="CS050"/>
+	</xsl:template>
+
+	<xsl:template match="ijw:NaamGebruik" mode="CS050">
+		<xsl:call-template name="checkimplication">
+			<xsl:with-param name="pThis" select="../ijw:Partnernaam"/>
+			<xsl:with-param name="pValue1">#</xsl:with-param>
+			<xsl:with-param name="pOther" select="."/>
+			<xsl:with-param name="pValue2">1,2,3,4</xsl:with-param>
+			<xsl:with-param name="pRule">CS050</xsl:with-param>
+		</xsl:call-template>
+		<xsl:call-template name="checkimplication">
+			<xsl:with-param name="pThis" select="../ijw:Partnernaam"/>
+			<xsl:with-param name="pValue1">!#</xsl:with-param>
+			<xsl:with-param name="pOther" select="."/>
+			<xsl:with-param name="pValue2">1,6</xsl:with-param>
+			<xsl:with-param name="pRule">CS050</xsl:with-param>
+		</xsl:call-template>
+	</xsl:template>
+
+</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_1/constraints/CS058.xsl b/xslt-validatie/jw/3_1/constraints/CS058.xsl
new file mode 100644
index 0000000000000000000000000000000000000000..97ac7b5575deb2472550ec5d8df2e5d7e8138c9f
--- /dev/null
+++ b/xslt-validatie/jw/3_1/constraints/CS058.xsl
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+				xmlns:jw305="http://www.istandaarden.nl/ijw/3_1/jw305/schema"
+				xmlns:jw307="http://www.istandaarden.nl/ijw/3_1/jw307/schema"
+>
+
+	<!-- iJw 3.0 CS058 version 2.4.3 (2021-09-29) -->
+
+	<xsl:import href="../common/basis.xsl"/>
+	<xsl:template match="*" mode="CS058"/>
+	<xsl:template match="*" mode="check">
+		<xsl:apply-templates select="*" mode="CS058"/>
+	</xsl:template>
+
+	<xsl:template match="jw305:StartProduct/jw305:StatusAanlevering" mode="CS058">
+		<xsl:call-template name="checkvalue">
+			<xsl:with-param name="pValues">1,3</xsl:with-param>
+			<xsl:with-param name="pRule">CS058</xsl:with-param>
+		</xsl:call-template>
+	</xsl:template>
+
+	<xsl:template match="jw307:StopProduct/jw307:StatusAanlevering" mode="CS058">
+		<xsl:call-template name="checkvalue">
+			<xsl:with-param name="pValues">1,3</xsl:with-param>
+			<xsl:with-param name="pRule">CS058</xsl:with-param>
+		</xsl:call-template>
+	</xsl:template>
+</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_1/constraints/CS089.xsl b/xslt-validatie/jw/3_1/constraints/CS089.xsl
new file mode 100644
index 0000000000000000000000000000000000000000..9e7b6c2ecb4c325fd204c27579d821451f56b79c
--- /dev/null
+++ b/xslt-validatie/jw/3_1/constraints/CS089.xsl
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+				xmlns:ijw="http://www.istandaarden.nl/ijw/3_1/basisschema/schema"
+>
+
+	<!-- iJw 3.0 CS089 version 2.4.3 (2021-09-29) -->
+
+	<xsl:import href="../common/basis.xsl"/>
+	<xsl:template match="*" mode="CS089"/>
+	<xsl:template match="*" mode="check">
+		<xsl:apply-templates select="*" mode="CS089"/>
+	</xsl:template>
+
+	<xsl:template match="ijw:LandCode" mode="CS089">
+		<xsl:call-template name="checkimplication">
+			<xsl:with-param name="pValue1">NL</xsl:with-param>
+			<xsl:with-param name="pOther" select="../ijw:Postcode"/>
+			<xsl:with-param name="pValue2">#1000ZZ</xsl:with-param>
+			<xsl:with-param name="pRule">CS089</xsl:with-param>
+		</xsl:call-template>
+	</xsl:template>
+
+</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_0/constraints/CS100.xsl b/xslt-validatie/jw/3_1/constraints/CS100.xsl
similarity index 82%
rename from xslt-validatie/jw/3_0/constraints/CS100.xsl
rename to xslt-validatie/jw/3_1/constraints/CS100.xsl
index d412381934623dd2232a5a5c842a184b23f28375..f15ce9362a5001841f4578f5ce1f25c28a5de951 100644
--- a/xslt-validatie/jw/3_0/constraints/CS100.xsl
+++ b/xslt-validatie/jw/3_1/constraints/CS100.xsl
@@ -1,10 +1,10 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-	xmlns:ijw="http://www.istandaarden.nl/ijw/3_0/basisschema/schema"
-	xmlns:jw323="http://www.istandaarden.nl/ijw/3_0/jw323/schema"
-	>
+				xmlns:ijw="http://www.istandaarden.nl/ijw/3_1/basisschema/schema"
+				xmlns:jw323="http://www.istandaarden.nl/ijw/3_1/jw323/schema"
+>
 
-	<!-- iJw 3.0 CS100 version 2.2.8 (2021-01-25) -->
+	<!-- iJw 3.0 CS100 version 2.4.3 (2021-09-29) -->
 
 	<xsl:import href="../common/basis.xsl"/>
 	<xsl:template match="*" mode="CS100"/>
diff --git a/xslt-validatie/jw/3_0/rules/TR097.xsl b/xslt-validatie/jw/3_1/constraints/CS139.xsl
similarity index 79%
rename from xslt-validatie/jw/3_0/rules/TR097.xsl
rename to xslt-validatie/jw/3_1/constraints/CS139.xsl
index 863382bdc1e5a38eca513bb4f89064134197112f..faced5795aa9b7a0bfaaa2de6161905e016eeee2 100644
--- a/xslt-validatie/jw/3_0/rules/TR097.xsl
+++ b/xslt-validatie/jw/3_1/constraints/CS139.xsl
@@ -1,23 +1,23 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-	xmlns:ijw="http://www.istandaarden.nl/ijw/3_0/basisschema/schema"
-	>
+				xmlns:ijw="http://www.istandaarden.nl/ijw/3_1/basisschema/schema"
+>
 
-	<!-- iJw 3.0 TR097 version 2.2.8 (2021-01-25) -->
+	<!-- iJw 3.0 CS139 version 2.4.3 (2021-09-29) -->
 
 	<xsl:import href="../common/basis.xsl"/>
-	<xsl:template match="*" mode="TR097"/>
+	<xsl:template match="*" mode="CS139"/>
 	<xsl:template match="*" mode="check">
-		<xsl:apply-templates select="*" mode="TR097"/>
+		<xsl:apply-templates select="*" mode="CS139"/>
 	</xsl:template>
 
-	<xsl:template match="*[ijw:Datum and ijw:DatumGebruik]" mode="TR097">
+	<xsl:template match="*[ijw:Datum and ijw:DatumGebruik]" mode="CS139">
 		<xsl:choose>
 			<xsl:when test="ijw:DatumGebruik = '3' and ijw:Datum != '1900-01-01'">
 				<xsl:call-template name="addError">
 					<xsl:with-param name="pElements" select="ijw:Datum | ijw:DatumGebruik"/>
 					<xsl:with-param name="pRule">
-						TR097
+						CS139
 					</xsl:with-param>
 				</xsl:call-template>
 			</xsl:when>
@@ -25,7 +25,7 @@
 				<xsl:call-template name="addError">
 					<xsl:with-param name="pElements" select="ijw:Datum | ijw:DatumGebruik"/>
 					<xsl:with-param name="pRule">
-						TR097
+						CS139
 					</xsl:with-param>
 				</xsl:call-template>
 			</xsl:when>
@@ -33,7 +33,7 @@
 				<xsl:call-template name="addError">
 					<xsl:with-param name="pElements" select="ijw:Datum | ijw:DatumGebruik"/>
 					<xsl:with-param name="pRule">
-						TR097
+						CS139
 					</xsl:with-param>
 				</xsl:call-template>
 			</xsl:when>
diff --git a/xslt-validatie/jw/3_0/constraints/CS318.xsl b/xslt-validatie/jw/3_1/constraints/CS318.xsl
similarity index 63%
rename from xslt-validatie/jw/3_0/constraints/CS318.xsl
rename to xslt-validatie/jw/3_1/constraints/CS318.xsl
index 6a8982bf5191437ce876715549db8bec12e99b5a..db3befd4e70dd312b8aa915a71f22a3aaa745b8f 100644
--- a/xslt-validatie/jw/3_0/constraints/CS318.xsl
+++ b/xslt-validatie/jw/3_1/constraints/CS318.xsl
@@ -1,10 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:ijw="http://www.istandaarden.nl/ijw/3_0/basisschema/schema"
-	xmlns:jw301="http://www.istandaarden.nl/ijw/3_0/jw301/schema">
-	<!-- iJw 3.0 CS318 version 2.2.8 (2021-01-25) -->
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+				xmlns:ijw="http://www.istandaarden.nl/ijw/3_1/basisschema/schema"
+				xmlns:jw301="http://www.istandaarden.nl/ijw/3_1/jw301/schema">
+	<!-- iJw 3.0 CS318 version 2.4.3 (2021-09-29) -->
 
-	<xsl:import href="../common/basis.xsl" />
-	<xsl:template match="*" mode="CS318" />
+	<xsl:import href="../common/basis.xsl"/>
+	<xsl:template match="*" mode="CS318"/>
 	<xsl:template match="*" mode="check">
 		<xsl:apply-templates select="*" mode="CS318"/>
 	</xsl:template>
@@ -15,5 +16,5 @@
 			<xsl:with-param name="pRule">CS318</xsl:with-param>
 		</xsl:call-template>
 	</xsl:template>
-	
+
 </xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_0/constraints/CS325.xsl b/xslt-validatie/jw/3_1/constraints/CS325.xsl
similarity index 88%
rename from xslt-validatie/jw/3_0/constraints/CS325.xsl
rename to xslt-validatie/jw/3_1/constraints/CS325.xsl
index 029a2ed5dcf45c0d2bbbd0427c689ed58c8b7dcf..87e21b5b9ff8f6aa7bf06dcb00020bfda19a9e95 100644
--- a/xslt-validatie/jw/3_0/constraints/CS325.xsl
+++ b/xslt-validatie/jw/3_1/constraints/CS325.xsl
@@ -1,12 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-				xmlns:ijw="http://www.istandaarden.nl/ijw/3_0/basisschema/schema"
-				xmlns:jw303="http://www.istandaarden.nl/ijw/3_0/jw303/schema"
-				xmlns:jw304="http://www.istandaarden.nl/ijw/3_0/jw304/schema"
-				xmlns:jw323="http://www.istandaarden.nl/ijw/3_0/jw323/schema"
-				xmlns:jw325="http://www.istandaarden.nl/ijw/3_0/jw325/schema"
+				xmlns:ijw="http://www.istandaarden.nl/ijw/3_1/basisschema/schema"
 >
-	<!-- ijw 2.4 CS325 version 2.2.8 (2021-01-25) -->
+	<!-- ijw 2.4 CS325 version 2.4.3 (2021-09-29) -->
 
 	<xsl:import href="../common/basis.xsl"/>
 	<xsl:template match="*" mode="CS325"/>
@@ -88,7 +84,7 @@
 
 	<xsl:template name="cs325">
 		<xsl:param name="bedrag"/>
-		<xsl:param name="debetCredit" select="./ijw:DebetCredit" />
+		<xsl:param name="debetCredit" select="./ijw:DebetCredit"/>
 
 		<xsl:if test="$bedrag = 0 and (normalize-space($debetCredit) = 'c' or normalize-space($debetCredit) = 'C')">
 			<xsl:call-template name="addError">
diff --git a/xslt-validatie/jw/3_1/constraints/CS335.xsl b/xslt-validatie/jw/3_1/constraints/CS335.xsl
new file mode 100644
index 0000000000000000000000000000000000000000..dd3fd9f0bf7779c3b55eb601fafb832a1c67a8f9
--- /dev/null
+++ b/xslt-validatie/jw/3_1/constraints/CS335.xsl
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0"
+				xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+				xmlns:jw301="http://www.istandaarden.nl/ijw/3_1/jw301/schema"
+>
+
+	<!-- iJw 3.0 CS335 version 2.4.3 (2021-09-29) -->
+
+	<xsl:import href="../common/basis.xsl"/>
+	<xsl:template match="*" mode="CS335"/>
+	<xsl:template match="*" mode="check">
+		<xsl:apply-templates select="*" mode="CS335"/>
+	</xsl:template>
+
+	<xsl:template match="jw301:ToegewezenProduct[jw301:RedenWijziging/text() = '13']" mode="CS335">
+		<xsl:call-template name="checkDateEquals">
+			<xsl:with-param name="pThis" select="jw301:Ingangsdatum"/>
+			<xsl:with-param name="pOther" select="jw301:Einddatum"/>
+			<xsl:with-param name="pExtra" select="nonExistantNode"/>
+			<xsl:with-param name="pRule">CS335</xsl:with-param>
+		</xsl:call-template>
+	</xsl:template>
+</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_1/constraints/CS336.xsl b/xslt-validatie/jw/3_1/constraints/CS336.xsl
new file mode 100644
index 0000000000000000000000000000000000000000..49b2bd894888aa77f97341a72183df8d18ba32cd
--- /dev/null
+++ b/xslt-validatie/jw/3_1/constraints/CS336.xsl
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0"
+				xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+				xmlns:jw301="http://www.istandaarden.nl/ijw/3_1/jw301/schema"
+>
+
+	<!-- iJw 3.0 CS336 version 2.4.3 (2021-09-29) -->
+
+	<xsl:import href="../common/basis.xsl"/>
+	<xsl:template match="*" mode="CS336"/>
+	<xsl:template match="*" mode="check">
+		<xsl:apply-templates select="*" mode="CS336"/>
+	</xsl:template>
+
+	<xsl:template match="jw301:ToegewezenProduct/jw301:RedenWijziging" mode="CS336">
+		<xsl:call-template name="checknvalue">
+			<xsl:with-param name="pValues">01</xsl:with-param>
+			<xsl:with-param name="pRule">CS336</xsl:with-param>
+		</xsl:call-template>
+	</xsl:template>
+</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_1/constraints/CS337.xsl b/xslt-validatie/jw/3_1/constraints/CS337.xsl
new file mode 100644
index 0000000000000000000000000000000000000000..d65065c3ff752b9feb39abd457825db5f3760810
--- /dev/null
+++ b/xslt-validatie/jw/3_1/constraints/CS337.xsl
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0"
+				xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+				xmlns:ijw="http://www.istandaarden.nl/ijw/3_1/basisschema/schema"
+				xmlns:jw323="http://www.istandaarden.nl/ijw/3_1/jw323/schema"
+>
+
+	<!-- iJw 3.0 CS337 version 2.4.3 (2021-09-29) -->
+
+	<xsl:import href="../common/basis.xsl"/>
+	<xsl:template match="*" mode="CS337"/>
+	<xsl:template match="*" mode="check">
+		<xsl:apply-templates select="*" mode="CS337"/>
+	</xsl:template>
+
+	<xsl:template match="jw323:Prestatie" mode="CS337">
+		<xsl:call-template name="checksameyear">
+			<xsl:with-param name="pThis" select="jw323:ProductPeriode/ijw:Begindatum"/>
+			<xsl:with-param name="pOther" select="jw323:ProductPeriode/ijw:Einddatum"/>
+			<xsl:with-param name="pRule">CS337</xsl:with-param>
+		</xsl:call-template>
+		<xsl:call-template name="checksamemonth">
+			<xsl:with-param name="pThis" select="jw323:ProductPeriode/ijw:Begindatum"/>
+			<xsl:with-param name="pOther" select="jw323:ProductPeriode/ijw:Einddatum"/>
+			<xsl:with-param name="pRule">CS337</xsl:with-param>
+		</xsl:call-template>
+	</xsl:template>
+</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_1/constraints/CS338.xsl b/xslt-validatie/jw/3_1/constraints/CS338.xsl
new file mode 100644
index 0000000000000000000000000000000000000000..7543cd764519e89fd7d43cda85c671f8c7dceae8
--- /dev/null
+++ b/xslt-validatie/jw/3_1/constraints/CS338.xsl
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0"
+				xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+				xmlns:ijw="http://www.istandaarden.nl/ijw/3_1/basisschema/schema"
+				xmlns:jw301="http://www.istandaarden.nl/ijw/3_1/jw301/schema"
+				xmlns:jw317="http://www.istandaarden.nl/ijw/3_1/jw317/schema"
+>
+
+	<!-- iJw 3.0 CS338 version 2.4.3 (2021-09-29) -->
+
+	<xsl:import href="../common/basis.xsl"/>
+	<xsl:template match="*" mode="CS338"/>
+	<xsl:template match="*" mode="check">
+		<xsl:apply-templates select="*" mode="CS338"/>
+	</xsl:template>
+
+	<xsl:template match="jw301:ToegewezenProduct//jw301:Omvang/ijw:Eenheid" mode="CS338">
+		<xsl:if test="not(ancestor-or-self::jw301:ToegewezenProduct/jw301:Einddatum) or number(translate(ancestor-or-self::jw301:ToegewezenProduct/jw301:Einddatum/text(), '-', '')) &gt; 20201231">
+			<xsl:call-template name="checkimplication">
+				<xsl:with-param name="pValue1">14,16,83,84</xsl:with-param>
+				<xsl:with-param name="pOther" select="../ijw:Frequentie"/>
+				<xsl:with-param name="pValue2">2,4,6</xsl:with-param>
+				<xsl:with-param name="pRule">CS338</xsl:with-param>
+				<xsl:with-param name="pExtra" select="ancestor-or-self::jw301:ToegewezenProduct/jw301:Einddatum"/>
+			</xsl:call-template>
+		</xsl:if>
+	</xsl:template>
+
+	<xsl:template match="jw317:TeWijzigenProduct//jw317:Omvang/ijw:Eenheid" mode="CS338">
+		<xsl:if test="not(ancestor-or-self::jw317:TeWijzigenProduct/jw317:Einddatum) or number(translate(ancestor-or-self::jw317:TeWijzigenProduct/jw317:Einddatum/text(), '-', '')) &gt; 20201231">
+			<xsl:call-template name="checkimplication">
+				<xsl:with-param name="pValue1">14,16,83,84</xsl:with-param>
+				<xsl:with-param name="pOther" select="../ijw:Frequentie"/>
+				<xsl:with-param name="pValue2">2,4,6</xsl:with-param>
+				<xsl:with-param name="pRule">CS338</xsl:with-param>
+				<xsl:with-param name="pExtra" select="ancestor-or-self::jw317:TeWijzigenProduct/jw317:Einddatum"/>
+			</xsl:call-template>
+		</xsl:if>
+	</xsl:template>
+	<xsl:template match="jw317:NieuwProduct//jw317:Omvang/ijw:Eenheid" mode="CS338">
+		<xsl:if test="not(ancestor-or-self::jw317:NieuwProduct/jw317:Einddatum) or number(translate(ancestor-or-self::jw317:NieuwProduct/jw317:Einddatum/text(), '-', '')) &gt; 20201231">
+			<xsl:call-template name="checkimplication">
+				<xsl:with-param name="pValue1">14,16,83,84</xsl:with-param>
+				<xsl:with-param name="pOther" select="../ijw:Frequentie"/>
+				<xsl:with-param name="pValue2">2,4,6</xsl:with-param>
+				<xsl:with-param name="pRule">CS338</xsl:with-param>
+				<xsl:with-param name="pExtra" select="ancestor-or-self::jw317:NieuwProduct/jw317:Einddatum"/>
+			</xsl:call-template>
+		</xsl:if>
+	</xsl:template>
+</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_1/constraints/CS339.xsl b/xslt-validatie/jw/3_1/constraints/CS339.xsl
new file mode 100644
index 0000000000000000000000000000000000000000..03657165aae4fb70d6545b4e7aeb14c871f1e12e
--- /dev/null
+++ b/xslt-validatie/jw/3_1/constraints/CS339.xsl
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+				xmlns:ijw="http://www.istandaarden.nl/ijw/3_1/basisschema/schema"
+				xmlns:jw323="http://www.istandaarden.nl/ijw/3_1/jw323/schema"
+>
+
+	<!-- iJw 3.0 CS339 version 2.4.3 (2021-09-29) -->
+
+	<xsl:import href="../common/basis.xsl"/>
+	<xsl:template match="*" mode="CS339"/>
+	<xsl:template match="*" mode="check">
+		<xsl:apply-templates select="*" mode="CS339"/>
+	</xsl:template>
+
+	<xsl:template match="jw323:Prestatie[jw323:Eenheid/text() = '83']" mode="CS339">
+		<xsl:call-template name="checkRelation">
+			<xsl:with-param name="pThis" select="jw323:GeleverdVolume"/>
+			<xsl:with-param name="pOther" select="jw323:IngediendBedrag/ijw:Bedrag"/>
+			<xsl:with-param name="pExtra" select="nonExistantNode"/>
+			<xsl:with-param name="pRelation">equals</xsl:with-param>
+			<xsl:with-param name="pRule">CS339</xsl:with-param>
+		</xsl:call-template>
+	</xsl:template>
+
+</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_0/rules/TR368.xsl b/xslt-validatie/jw/3_1/constraints/CS340.xsl
similarity index 59%
rename from xslt-validatie/jw/3_0/rules/TR368.xsl
rename to xslt-validatie/jw/3_1/constraints/CS340.xsl
index 8f855bb6f55ad41b8fc1dcaee2b1f3f007e47d84..b2e7ae1f8920e069c4500f723dd24495e3af921a 100644
--- a/xslt-validatie/jw/3_0/rules/TR368.xsl
+++ b/xslt-validatie/jw/3_1/constraints/CS340.xsl
@@ -1,41 +1,41 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-	xmlns:ijw="http://www.istandaarden.nl/ijw/3_0/basisschema/schema"
-	xmlns:jw323="http://www.istandaarden.nl/ijw/3_0/jw323/schema"
-	>
+				xmlns:ijw="http://www.istandaarden.nl/ijw/3_1/basisschema/schema"
+				xmlns:jw323="http://www.istandaarden.nl/ijw/3_1/jw323/schema"
+>
 
-	<!-- iJw 3.0 TR368 version 2.2.8 (2021-01-25) -->
+	<!-- iJw 3.0 CS340 version 2.4.3 (2021-09-29) -->
 
 	<xsl:import href="../common/basis.xsl"/>
-	<xsl:template match="*" mode="TR368"/>
+	<xsl:template match="*" mode="CS340"/>
 	<xsl:template match="*" mode="check">
-		<xsl:apply-templates select="*" mode="TR368"/>
+		<xsl:apply-templates select="*" mode="CS340"/>
 	</xsl:template>
 
-	<xsl:template match="jw323:DeclaratiePeriode" mode="TR368">
+	<xsl:template match="jw323:DeclaratiePeriode" mode="CS340">
 		<xsl:if test="substring-after(substring-after(ijw:Begindatum, '-'), '-') != '01'">
 			<xsl:call-template name="addError">
-				<xsl:with-param name="pElements" select="ijw:Begindatum" />
-				<xsl:with-param name="pRule">TR368</xsl:with-param>
+				<xsl:with-param name="pElements" select="ijw:Begindatum"/>
+				<xsl:with-param name="pRule">CS340</xsl:with-param>
 			</xsl:call-template>
 		</xsl:if>
-		
+
 		<xsl:variable name="vAdjustedDay">
 			<xsl:call-template name="addDate">
-				<xsl:with-param name="pDate" select="ijw:Einddatum/text()" />
+				<xsl:with-param name="pDate" select="ijw:Einddatum/text()"/>
 				<xsl:with-param name="pExtra">1</xsl:with-param>
 			</xsl:call-template>
 		</xsl:variable>
 		<xsl:variable name="vAdjustedMonth">
 			<xsl:call-template name="addMonths">
-				<xsl:with-param name="pDate" select="ijw:Begindatum/text()" />
+				<xsl:with-param name="pDate" select="ijw:Begindatum/text()"/>
 				<xsl:with-param name="pExtra">1</xsl:with-param>
 			</xsl:call-template>
 		</xsl:variable>
 		<xsl:if test="$vAdjustedDay != $vAdjustedMonth">
 			<xsl:call-template name="addError">
-				<xsl:with-param name="pElements" select="ijw:Begindatum | ijw:Einddatum" />
-				<xsl:with-param name="pRule">TR368</xsl:with-param>
+				<xsl:with-param name="pElements" select="ijw:Begindatum | ijw:Einddatum"/>
+				<xsl:with-param name="pRule">CS340</xsl:with-param>
 			</xsl:call-template>
 		</xsl:if>
 	</xsl:template>
diff --git a/xslt-validatie/jw/3_1/constraints/CS343.xsl b/xslt-validatie/jw/3_1/constraints/CS343.xsl
new file mode 100644
index 0000000000000000000000000000000000000000..ffa5f83da0c015ebe60d1793448192482bafc9a0
--- /dev/null
+++ b/xslt-validatie/jw/3_1/constraints/CS343.xsl
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0"
+				xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+				xmlns:ijw="http://www.istandaarden.nl/ijw/3_1/basisschema/schema"
+				xmlns:jw315="http://www.istandaarden.nl/ijw/3_1/jw315/schema"
+>
+
+	<!-- iJw 3.0 CS343 version 2.4.3 (2021-09-29) -->
+
+	<xsl:import href="../common/basis.xsl"/>
+	<xsl:template match="*" mode="CS343"/>
+	<xsl:template match="*" mode="check">
+		<xsl:apply-templates select="*" mode="CS343"/>
+	</xsl:template>
+
+	<xsl:template match="jw315:AangevraagdProduct//jw315:Omvang/ijw:Eenheid" mode="CS343">
+		<xsl:if test="not(ancestor-or-self::jw315:AangevraagdProduct/jw315:ToewijzingEinddatum) or number(translate(ancestor-or-self::jw315:AangevraagdProduct/jw315:ToewijzingEinddatum/text(), '-', '')) &gt; 20201231">
+			<xsl:call-template name="checkimplication">
+				<xsl:with-param name="pValue1">14,16,83,84</xsl:with-param>
+				<xsl:with-param name="pOther" select="../ijw:Frequentie"/>
+				<xsl:with-param name="pValue2">2,4,6</xsl:with-param>
+				<xsl:with-param name="pRule">CS343</xsl:with-param>
+				<xsl:with-param name="pExtra"
+								select="ancestor-or-self::jw315:AangevraagdProduct/jw315:ToewijzingEinddatum"/>
+			</xsl:call-template>
+		</xsl:if>
+	</xsl:template>
+</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_0/rules/TR002.xsl b/xslt-validatie/jw/3_1/rules/TR002.xsl
similarity index 64%
rename from xslt-validatie/jw/3_0/rules/TR002.xsl
rename to xslt-validatie/jw/3_1/rules/TR002.xsl
index 3d6651b6f14a738409cf1eb38e1dff437ca83794..b4143a8a7b72031d87f74e66a1db8b996db4ac27 100644
--- a/xslt-validatie/jw/3_0/rules/TR002.xsl
+++ b/xslt-validatie/jw/3_1/rules/TR002.xsl
@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-	xmlns:ijw="http://www.istandaarden.nl/ijw/3_0/basisschema/schema"
-	>
+				xmlns:ijw="http://www.istandaarden.nl/ijw/3_1/basisschema/schema"
+>
 
-	<!-- iJw 3.0 TR002 version 2.2.8 (2021-01-25) -->
+	<!-- iJw 3.0 TR002 version 2.4.3 (2021-09-29) -->
 
 	<xsl:import href="../common/basis.xsl"/>
 	<xsl:template match="*" mode="TR002"/>
@@ -13,10 +13,11 @@
 
 	<xsl:template match="*[local-name() = 'Geboortedatum']/ijw:Datum" mode="TR002">
 		<xsl:if test="not(../ijw:DatumGebruik/text() = '3' and text() = '1900-01-01')">
-			<xsl:variable name="parent" select="ancestor-or-self::*[local-name() = 'Bericht']/*[local-name() = 'Header']"/>
+			<xsl:variable name="parent"
+						  select="ancestor-or-self::*[local-name() = 'Bericht']/*[local-name() = 'Header']"/>
 			<xsl:call-template name="checkYearsBetween">
 				<xsl:with-param name="pDate1"
-					select="$parent/*[local-name() = 'BerichtIdentificatie']/*[local-name() = 'Dagtekening'] | $parent/*[local-name() = 'DeclaratieFactuurIdentificatie']/*[local-name() = 'FactuurDagtekening']"/>
+								select="$parent/*[local-name() = 'BerichtIdentificatie']/*[local-name() = 'Dagtekening'] | $parent/*[local-name() = 'DeclaratieFactuurIdentificatie']/*[local-name() = 'FactuurDagtekening']"/>
 				<xsl:with-param name="pDate2" select="."/>
 				<xsl:with-param name="pYears">120</xsl:with-param>
 				<xsl:with-param name="pRule">
diff --git a/xslt-validatie/jw/3_1/rules/TR006.xsl b/xslt-validatie/jw/3_1/rules/TR006.xsl
new file mode 100644
index 0000000000000000000000000000000000000000..7d6e728f9d13b6bec7f3938cbedf3221b3be9bb3
--- /dev/null
+++ b/xslt-validatie/jw/3_1/rules/TR006.xsl
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+				xmlns:ijw="http://www.istandaarden.nl/ijw/3_1/basisschema/schema"
+				xmlns:jw301="http://www.istandaarden.nl/ijw/3_1/jw301/schema"
+>
+
+	<!-- iJw 3.0 TR006 version 2.4.3 (2021-09-29) -->
+
+	<xsl:import href="../common/basis.xsl"/>
+	<xsl:template match="*" mode="TR006"/>
+	<xsl:template match="*" mode="check">
+		<xsl:apply-templates select="*" mode="TR006"/>
+	</xsl:template>
+
+	<xsl:template match="jw301:Contact" mode="TR006">
+		<xsl:call-template name="checkSingleCorrect">
+			<xsl:with-param name="pThis" select="jw301:Telefoon"/>
+			<xsl:with-param name="pValue1">#</xsl:with-param>
+			<xsl:with-param name="pOther" select="jw301:Adres/ijw:Huis"/>
+			<xsl:with-param name="pValue2">#</xsl:with-param>
+			<xsl:with-param name="pExtra" select="."/>
+			<xsl:with-param name="pRule">TR006</xsl:with-param>
+		</xsl:call-template>
+		<xsl:call-template name="checkSingleCorrect">
+			<xsl:with-param name="pThis" select="jw301:Telefoon"/>
+			<xsl:with-param name="pValue1">#</xsl:with-param>
+			<xsl:with-param name="pOther" select="jw301:Adres/ijw:Postcode"/>
+			<xsl:with-param name="pValue2">#</xsl:with-param>
+			<xsl:with-param name="pExtra" select="."/>
+			<xsl:with-param name="pRule">TR006</xsl:with-param>
+		</xsl:call-template>
+	</xsl:template>
+
+</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_1/rules/TR018.xsl b/xslt-validatie/jw/3_1/rules/TR018.xsl
new file mode 100644
index 0000000000000000000000000000000000000000..a8a4140906cc717f109c5f448636414db0bea09e
--- /dev/null
+++ b/xslt-validatie/jw/3_1/rules/TR018.xsl
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+				xmlns:jw307="http://www.istandaarden.nl/ijw/3_1/jw307/schema"
+>
+
+	<!-- iJw 3.0 TR018 version 2.4.3 (2021-09-29) -->
+
+	<xsl:import href="../common/basis.xsl"/>
+	<xsl:template match="*" mode="TR018"/>
+	<xsl:template match="*" mode="check">
+		<xsl:apply-templates select="*" mode="TR018"/>
+	</xsl:template>
+
+	<xsl:template match="jw307:StopProduct/jw307:Einddatum" mode="TR018">
+		<xsl:call-template name="checkafter">
+			<xsl:with-param name="pOther" select="../jw307:Begindatum"/>
+			<xsl:with-param name="pRule">TR018</xsl:with-param>
+		</xsl:call-template>
+	</xsl:template>
+</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_1/rules/TR061.xsl b/xslt-validatie/jw/3_1/rules/TR061.xsl
new file mode 100644
index 0000000000000000000000000000000000000000..fb0146cdd1af471914786e52f4d5bf2787aae412
--- /dev/null
+++ b/xslt-validatie/jw/3_1/rules/TR061.xsl
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+				xmlns:jw301="http://www.istandaarden.nl/ijw/3_1/jw301/schema"
+>
+
+	<!-- iJw 3.0 TR052 version 2.4.3 (2021-09-29) -->
+
+	<xsl:import href="../common/basis.xsl"/>
+	<xsl:template match="*" mode="TR061"/>
+	<xsl:template match="*" mode="check">
+		<xsl:apply-templates select="*" mode="TR061"/>
+	</xsl:template>
+
+	<xsl:template match="jw301:Client/jw301:Contactgegevens" mode="TR061">
+		<xsl:if test="not(./jw301:Contact/jw301:Soort[text() = '01' or text() = '02' or text() = '03'])">
+			<xsl:call-template name="addError">
+				<xsl:with-param name="pElements" select="jw301:Contact"/>
+				<xsl:with-param name="pRule">
+					TR061
+				</xsl:with-param>
+			</xsl:call-template>
+		</xsl:if>
+	</xsl:template>
+
+</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_1/rules/TR101.xsl b/xslt-validatie/jw/3_1/rules/TR101.xsl
new file mode 100644
index 0000000000000000000000000000000000000000..2171cce0082893f3cfaa10f2bb7a1afa5232c734
--- /dev/null
+++ b/xslt-validatie/jw/3_1/rules/TR101.xsl
@@ -0,0 +1,1391 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+	xmlns:jw301="http://www.istandaarden.nl/ijw/3_1/jw301/schema"
+	xmlns:jw305="http://www.istandaarden.nl/ijw/3_1/jw305/schema"
+	xmlns:jw307="http://www.istandaarden.nl/ijw/3_1/jw307/schema"
+	xmlns:jw315="http://www.istandaarden.nl/ijw/3_1/jw315/schema"
+	xmlns:jw317="http://www.istandaarden.nl/ijw/3_1/jw317/schema"
+	xmlns:jw319="http://www.istandaarden.nl/ijw/3_1/jw319/schema"
+	xmlns:jw323="http://www.istandaarden.nl/ijw/3_1/jw323/schema"
+	xmlns:jw325="http://www.istandaarden.nl/ijw/3_1/jw325/schema"
+>
+	<!-- iJw 3.1 TR101 version 2.4.3 (2021-09-29) -->
+
+	<xsl:import href="../common/basis.xsl"/>
+	<xsl:template match="*" mode="TR101simple"/>
+	<xsl:template match="*" mode="TR101generic"/>
+	<xsl:template match="*" mode="TR101">
+		<xsl:apply-templates select="*" mode="TR101simple"/>
+		<xsl:apply-templates select="*" mode="TR101generic"/>
+	</xsl:template>
+	<xsl:template match="*" mode="check">
+		<xsl:apply-templates select="*" mode="TR101"/>
+	</xsl:template>
+
+	<!-- JW301 -->
+	<xsl:template match="jw301:Client" mode="TR101generic">
+		<xsl:variable name="vThis" select="." />
+		<xsl:variable name="vMatch0" select="*[local-name() = 'Bsn']/text()" />
+		<xsl:if test="$vMatch0">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw301:Client[*[local-name() = 'Bsn']/text() = $vMatch0]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw301:Client[*[local-name() = 'Bsn']/text() = $vMatch0]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="not($vMatch0)">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw301:Client[(not(*[local-name() = 'Bsn']))]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw301:Client[(not(*[local-name() = 'Bsn']))]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+	</xsl:template>
+
+	<xsl:template match="jw301:Contact" mode="TR101generic">
+		<xsl:variable name="vThis" select="." />
+		<xsl:variable name="vMatch0" select="*[local-name() = 'Soort']/text()" />
+		<xsl:if test="$vMatch0">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw301:Contact[*[local-name() = 'Soort']/text() = $vMatch0]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw301:Contact[*[local-name() = 'Soort']/text() = $vMatch0]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="not($vMatch0)">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw301:Contact[(not(*[local-name() = 'Soort']))]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw301:Contact[(not(*[local-name() = 'Soort']))]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+	</xsl:template>
+
+	<xsl:template match="jw301:Relatie" mode="TR101generic">
+		<xsl:variable name="vThis" select="." />
+		<xsl:variable name="vMatch0" select="*[local-name() = 'Nummer']/text()" />
+		<xsl:if test="$vMatch0">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw301:Relatie[*[local-name() = 'Nummer']/text() = $vMatch0]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw301:Relatie[*[local-name() = 'Nummer']/text() = $vMatch0]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="not($vMatch0)">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw301:Relatie[(not(*[local-name() = 'Nummer']))]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw301:Relatie[(not(*[local-name() = 'Nummer']))]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+	</xsl:template>
+
+	<xsl:template match="jw301:ToegewezenProduct" mode="TR101generic">
+		<xsl:variable name="vThis" select="." />
+		<xsl:variable name="vMatch0" select="*[local-name() = 'ToewijzingNummer']/text()" />
+		<xsl:if test="$vMatch0">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw301:ToegewezenProduct[*[local-name() = 'ToewijzingNummer']/text() = $vMatch0]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw301:ToegewezenProduct[*[local-name() = 'ToewijzingNummer']/text() = $vMatch0]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="not($vMatch0)">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw301:ToegewezenProduct[(not(*[local-name() = 'ToewijzingNummer']))]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw301:ToegewezenProduct[(not(*[local-name() = 'ToewijzingNummer']))]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+	</xsl:template>
+
+
+	<!-- JW305 -->
+	<xsl:template match="jw305:Client" mode="TR101generic">
+		<xsl:variable name="vThis" select="." />
+		<xsl:variable name="vMatch0" select="*[local-name() = 'Bsn']/text()" />
+		<xsl:if test="$vMatch0">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw305:Client[*[local-name() = 'Bsn']/text() = $vMatch0]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw305:Client[*[local-name() = 'Bsn']/text() = $vMatch0]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="not($vMatch0)">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw305:Client[(not(*[local-name() = 'Bsn']))]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw305:Client[(not(*[local-name() = 'Bsn']))]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+	</xsl:template>
+
+	<xsl:template match="jw305:StartProduct" mode="TR101generic">
+		<xsl:variable name="vThis" select="." />
+		<xsl:variable name="vMatch0" select="*[local-name() = 'Begindatum']/text()" />
+		<xsl:variable name="vMatch1" select="*[local-name() = 'Product']/*[local-name() = 'Categorie']/text()" />
+		<xsl:variable name="vMatch2" select="*[local-name() = 'Product']/*[local-name() = 'Code']/text()" />
+		<xsl:variable name="vMatch3" select="*[local-name() = 'ToewijzingNummer']/text()" />
+		<xsl:if test="$vMatch0 and $vMatch1 and $vMatch2 and $vMatch3">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw305:StartProduct[*[local-name() = 'Begindatum']/text() = $vMatch0 and *[local-name() = 'Product']/*[local-name() = 'Categorie']/text() = $vMatch1 and *[local-name() = 'Product']/*[local-name() = 'Code']/text() = $vMatch2 and *[local-name() = 'ToewijzingNummer']/text() = $vMatch3]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw305:StartProduct[*[local-name() = 'Begindatum']/text() = $vMatch0 and *[local-name() = 'Product']/*[local-name() = 'Categorie']/text() = $vMatch1 and *[local-name() = 'Product']/*[local-name() = 'Code']/text() = $vMatch2 and *[local-name() = 'ToewijzingNummer']/text() = $vMatch3]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="$vMatch0 and $vMatch1 and $vMatch2 and not($vMatch3)">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw305:StartProduct[*[local-name() = 'Begindatum']/text() = $vMatch0 and *[local-name() = 'Product']/*[local-name() = 'Categorie']/text() = $vMatch1 and *[local-name() = 'Product']/*[local-name() = 'Code']/text() = $vMatch2 and (not(*[local-name() = 'ToewijzingNummer']))]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw305:StartProduct[*[local-name() = 'Begindatum']/text() = $vMatch0 and *[local-name() = 'Product']/*[local-name() = 'Categorie']/text() = $vMatch1 and *[local-name() = 'Product']/*[local-name() = 'Code']/text() = $vMatch2 and (not(*[local-name() = 'ToewijzingNummer']))]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="$vMatch0 and $vMatch1 and not($vMatch2) and $vMatch3">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw305:StartProduct[*[local-name() = 'Begindatum']/text() = $vMatch0 and *[local-name() = 'Product']/*[local-name() = 'Categorie']/text() = $vMatch1 and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Code'])]) and *[local-name() = 'ToewijzingNummer']/text() = $vMatch3]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw305:StartProduct[*[local-name() = 'Begindatum']/text() = $vMatch0 and *[local-name() = 'Product']/*[local-name() = 'Categorie']/text() = $vMatch1 and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Code'])]) and *[local-name() = 'ToewijzingNummer']/text() = $vMatch3]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="$vMatch0 and $vMatch1 and not($vMatch2) and not($vMatch3)">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw305:StartProduct[*[local-name() = 'Begindatum']/text() = $vMatch0 and *[local-name() = 'Product']/*[local-name() = 'Categorie']/text() = $vMatch1 and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Code'])]) and (not(*[local-name() = 'ToewijzingNummer']))]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw305:StartProduct[*[local-name() = 'Begindatum']/text() = $vMatch0 and *[local-name() = 'Product']/*[local-name() = 'Categorie']/text() = $vMatch1 and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Code'])]) and (not(*[local-name() = 'ToewijzingNummer']))]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="$vMatch0 and not($vMatch1) and $vMatch2 and $vMatch3">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw305:StartProduct[*[local-name() = 'Begindatum']/text() = $vMatch0 and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Categorie'])]) and *[local-name() = 'Product']/*[local-name() = 'Code']/text() = $vMatch2 and *[local-name() = 'ToewijzingNummer']/text() = $vMatch3]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw305:StartProduct[*[local-name() = 'Begindatum']/text() = $vMatch0 and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Categorie'])]) and *[local-name() = 'Product']/*[local-name() = 'Code']/text() = $vMatch2 and *[local-name() = 'ToewijzingNummer']/text() = $vMatch3]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="$vMatch0 and not($vMatch1) and $vMatch2 and not($vMatch3)">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw305:StartProduct[*[local-name() = 'Begindatum']/text() = $vMatch0 and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Categorie'])]) and *[local-name() = 'Product']/*[local-name() = 'Code']/text() = $vMatch2 and (not(*[local-name() = 'ToewijzingNummer']))]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw305:StartProduct[*[local-name() = 'Begindatum']/text() = $vMatch0 and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Categorie'])]) and *[local-name() = 'Product']/*[local-name() = 'Code']/text() = $vMatch2 and (not(*[local-name() = 'ToewijzingNummer']))]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="$vMatch0 and not($vMatch1) and not($vMatch2) and $vMatch3">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw305:StartProduct[*[local-name() = 'Begindatum']/text() = $vMatch0 and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Categorie'])]) and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Code'])]) and *[local-name() = 'ToewijzingNummer']/text() = $vMatch3]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw305:StartProduct[*[local-name() = 'Begindatum']/text() = $vMatch0 and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Categorie'])]) and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Code'])]) and *[local-name() = 'ToewijzingNummer']/text() = $vMatch3]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="$vMatch0 and not($vMatch1) and not($vMatch2) and not($vMatch3)">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw305:StartProduct[*[local-name() = 'Begindatum']/text() = $vMatch0 and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Categorie'])]) and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Code'])]) and (not(*[local-name() = 'ToewijzingNummer']))]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw305:StartProduct[*[local-name() = 'Begindatum']/text() = $vMatch0 and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Categorie'])]) and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Code'])]) and (not(*[local-name() = 'ToewijzingNummer']))]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="not($vMatch0) and $vMatch1 and $vMatch2 and $vMatch3">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw305:StartProduct[(not(*[local-name() = 'Begindatum'])) and *[local-name() = 'Product']/*[local-name() = 'Categorie']/text() = $vMatch1 and *[local-name() = 'Product']/*[local-name() = 'Code']/text() = $vMatch2 and *[local-name() = 'ToewijzingNummer']/text() = $vMatch3]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw305:StartProduct[(not(*[local-name() = 'Begindatum'])) and *[local-name() = 'Product']/*[local-name() = 'Categorie']/text() = $vMatch1 and *[local-name() = 'Product']/*[local-name() = 'Code']/text() = $vMatch2 and *[local-name() = 'ToewijzingNummer']/text() = $vMatch3]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="not($vMatch0) and $vMatch1 and $vMatch2 and not($vMatch3)">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw305:StartProduct[(not(*[local-name() = 'Begindatum'])) and *[local-name() = 'Product']/*[local-name() = 'Categorie']/text() = $vMatch1 and *[local-name() = 'Product']/*[local-name() = 'Code']/text() = $vMatch2 and (not(*[local-name() = 'ToewijzingNummer']))]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw305:StartProduct[(not(*[local-name() = 'Begindatum'])) and *[local-name() = 'Product']/*[local-name() = 'Categorie']/text() = $vMatch1 and *[local-name() = 'Product']/*[local-name() = 'Code']/text() = $vMatch2 and (not(*[local-name() = 'ToewijzingNummer']))]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="not($vMatch0) and $vMatch1 and not($vMatch2) and $vMatch3">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw305:StartProduct[(not(*[local-name() = 'Begindatum'])) and *[local-name() = 'Product']/*[local-name() = 'Categorie']/text() = $vMatch1 and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Code'])]) and *[local-name() = 'ToewijzingNummer']/text() = $vMatch3]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw305:StartProduct[(not(*[local-name() = 'Begindatum'])) and *[local-name() = 'Product']/*[local-name() = 'Categorie']/text() = $vMatch1 and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Code'])]) and *[local-name() = 'ToewijzingNummer']/text() = $vMatch3]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="not($vMatch0) and $vMatch1 and not($vMatch2) and not($vMatch3)">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw305:StartProduct[(not(*[local-name() = 'Begindatum'])) and *[local-name() = 'Product']/*[local-name() = 'Categorie']/text() = $vMatch1 and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Code'])]) and (not(*[local-name() = 'ToewijzingNummer']))]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw305:StartProduct[(not(*[local-name() = 'Begindatum'])) and *[local-name() = 'Product']/*[local-name() = 'Categorie']/text() = $vMatch1 and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Code'])]) and (not(*[local-name() = 'ToewijzingNummer']))]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="not($vMatch0) and not($vMatch1) and $vMatch2 and $vMatch3">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw305:StartProduct[(not(*[local-name() = 'Begindatum'])) and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Categorie'])]) and *[local-name() = 'Product']/*[local-name() = 'Code']/text() = $vMatch2 and *[local-name() = 'ToewijzingNummer']/text() = $vMatch3]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw305:StartProduct[(not(*[local-name() = 'Begindatum'])) and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Categorie'])]) and *[local-name() = 'Product']/*[local-name() = 'Code']/text() = $vMatch2 and *[local-name() = 'ToewijzingNummer']/text() = $vMatch3]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="not($vMatch0) and not($vMatch1) and $vMatch2 and not($vMatch3)">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw305:StartProduct[(not(*[local-name() = 'Begindatum'])) and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Categorie'])]) and *[local-name() = 'Product']/*[local-name() = 'Code']/text() = $vMatch2 and (not(*[local-name() = 'ToewijzingNummer']))]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw305:StartProduct[(not(*[local-name() = 'Begindatum'])) and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Categorie'])]) and *[local-name() = 'Product']/*[local-name() = 'Code']/text() = $vMatch2 and (not(*[local-name() = 'ToewijzingNummer']))]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="not($vMatch0) and not($vMatch1) and not($vMatch2) and $vMatch3">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw305:StartProduct[(not(*[local-name() = 'Begindatum'])) and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Categorie'])]) and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Code'])]) and *[local-name() = 'ToewijzingNummer']/text() = $vMatch3]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw305:StartProduct[(not(*[local-name() = 'Begindatum'])) and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Categorie'])]) and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Code'])]) and *[local-name() = 'ToewijzingNummer']/text() = $vMatch3]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="not($vMatch0) and not($vMatch1) and not($vMatch2) and not($vMatch3)">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw305:StartProduct[(not(*[local-name() = 'Begindatum'])) and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Categorie'])]) and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Code'])]) and (not(*[local-name() = 'ToewijzingNummer']))]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw305:StartProduct[(not(*[local-name() = 'Begindatum'])) and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Categorie'])]) and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Code'])]) and (not(*[local-name() = 'ToewijzingNummer']))]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+	</xsl:template>
+
+
+	<!-- JW307 -->
+	<xsl:template match="jw307:Client" mode="TR101generic">
+		<xsl:variable name="vThis" select="." />
+		<xsl:variable name="vMatch0" select="*[local-name() = 'Bsn']/text()" />
+		<xsl:if test="$vMatch0">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw307:Client[*[local-name() = 'Bsn']/text() = $vMatch0]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw307:Client[*[local-name() = 'Bsn']/text() = $vMatch0]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="not($vMatch0)">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw307:Client[(not(*[local-name() = 'Bsn']))]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw307:Client[(not(*[local-name() = 'Bsn']))]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+	</xsl:template>
+
+	<xsl:template match="jw307:StopProduct" mode="TR101generic">
+		<xsl:variable name="vThis" select="." />
+		<xsl:variable name="vMatch0" select="*[local-name() = 'Begindatum']/text()" />
+		<xsl:variable name="vMatch1" select="*[local-name() = 'Einddatum']/text()" />
+		<xsl:variable name="vMatch2" select="*[local-name() = 'Product']/*[local-name() = 'Categorie']/text()" />
+		<xsl:variable name="vMatch3" select="*[local-name() = 'Product']/*[local-name() = 'Code']/text()" />
+		<xsl:variable name="vMatch4" select="*[local-name() = 'ToewijzingNummer']/text()" />
+		<xsl:if test="$vMatch0 and $vMatch1 and $vMatch2 and $vMatch3 and $vMatch4">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw307:StopProduct[*[local-name() = 'Begindatum']/text() = $vMatch0 and *[local-name() = 'Einddatum']/text() = $vMatch1 and *[local-name() = 'Product']/*[local-name() = 'Categorie']/text() = $vMatch2 and *[local-name() = 'Product']/*[local-name() = 'Code']/text() = $vMatch3 and *[local-name() = 'ToewijzingNummer']/text() = $vMatch4]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw307:StopProduct[*[local-name() = 'Begindatum']/text() = $vMatch0 and *[local-name() = 'Einddatum']/text() = $vMatch1 and *[local-name() = 'Product']/*[local-name() = 'Categorie']/text() = $vMatch2 and *[local-name() = 'Product']/*[local-name() = 'Code']/text() = $vMatch3 and *[local-name() = 'ToewijzingNummer']/text() = $vMatch4]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="$vMatch0 and $vMatch1 and $vMatch2 and $vMatch3 and not($vMatch4)">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw307:StopProduct[*[local-name() = 'Begindatum']/text() = $vMatch0 and *[local-name() = 'Einddatum']/text() = $vMatch1 and *[local-name() = 'Product']/*[local-name() = 'Categorie']/text() = $vMatch2 and *[local-name() = 'Product']/*[local-name() = 'Code']/text() = $vMatch3 and (not(*[local-name() = 'ToewijzingNummer']))]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw307:StopProduct[*[local-name() = 'Begindatum']/text() = $vMatch0 and *[local-name() = 'Einddatum']/text() = $vMatch1 and *[local-name() = 'Product']/*[local-name() = 'Categorie']/text() = $vMatch2 and *[local-name() = 'Product']/*[local-name() = 'Code']/text() = $vMatch3 and (not(*[local-name() = 'ToewijzingNummer']))]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="$vMatch0 and $vMatch1 and $vMatch2 and not($vMatch3) and $vMatch4">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw307:StopProduct[*[local-name() = 'Begindatum']/text() = $vMatch0 and *[local-name() = 'Einddatum']/text() = $vMatch1 and *[local-name() = 'Product']/*[local-name() = 'Categorie']/text() = $vMatch2 and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Code'])]) and *[local-name() = 'ToewijzingNummer']/text() = $vMatch4]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw307:StopProduct[*[local-name() = 'Begindatum']/text() = $vMatch0 and *[local-name() = 'Einddatum']/text() = $vMatch1 and *[local-name() = 'Product']/*[local-name() = 'Categorie']/text() = $vMatch2 and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Code'])]) and *[local-name() = 'ToewijzingNummer']/text() = $vMatch4]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="$vMatch0 and $vMatch1 and $vMatch2 and not($vMatch3) and not($vMatch4)">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw307:StopProduct[*[local-name() = 'Begindatum']/text() = $vMatch0 and *[local-name() = 'Einddatum']/text() = $vMatch1 and *[local-name() = 'Product']/*[local-name() = 'Categorie']/text() = $vMatch2 and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Code'])]) and (not(*[local-name() = 'ToewijzingNummer']))]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw307:StopProduct[*[local-name() = 'Begindatum']/text() = $vMatch0 and *[local-name() = 'Einddatum']/text() = $vMatch1 and *[local-name() = 'Product']/*[local-name() = 'Categorie']/text() = $vMatch2 and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Code'])]) and (not(*[local-name() = 'ToewijzingNummer']))]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="$vMatch0 and $vMatch1 and not($vMatch2) and $vMatch3 and $vMatch4">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw307:StopProduct[*[local-name() = 'Begindatum']/text() = $vMatch0 and *[local-name() = 'Einddatum']/text() = $vMatch1 and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Categorie'])]) and *[local-name() = 'Product']/*[local-name() = 'Code']/text() = $vMatch3 and *[local-name() = 'ToewijzingNummer']/text() = $vMatch4]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw307:StopProduct[*[local-name() = 'Begindatum']/text() = $vMatch0 and *[local-name() = 'Einddatum']/text() = $vMatch1 and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Categorie'])]) and *[local-name() = 'Product']/*[local-name() = 'Code']/text() = $vMatch3 and *[local-name() = 'ToewijzingNummer']/text() = $vMatch4]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="$vMatch0 and $vMatch1 and not($vMatch2) and $vMatch3 and not($vMatch4)">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw307:StopProduct[*[local-name() = 'Begindatum']/text() = $vMatch0 and *[local-name() = 'Einddatum']/text() = $vMatch1 and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Categorie'])]) and *[local-name() = 'Product']/*[local-name() = 'Code']/text() = $vMatch3 and (not(*[local-name() = 'ToewijzingNummer']))]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw307:StopProduct[*[local-name() = 'Begindatum']/text() = $vMatch0 and *[local-name() = 'Einddatum']/text() = $vMatch1 and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Categorie'])]) and *[local-name() = 'Product']/*[local-name() = 'Code']/text() = $vMatch3 and (not(*[local-name() = 'ToewijzingNummer']))]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="$vMatch0 and $vMatch1 and not($vMatch2) and not($vMatch3) and $vMatch4">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw307:StopProduct[*[local-name() = 'Begindatum']/text() = $vMatch0 and *[local-name() = 'Einddatum']/text() = $vMatch1 and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Categorie'])]) and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Code'])]) and *[local-name() = 'ToewijzingNummer']/text() = $vMatch4]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw307:StopProduct[*[local-name() = 'Begindatum']/text() = $vMatch0 and *[local-name() = 'Einddatum']/text() = $vMatch1 and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Categorie'])]) and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Code'])]) and *[local-name() = 'ToewijzingNummer']/text() = $vMatch4]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="$vMatch0 and $vMatch1 and not($vMatch2) and not($vMatch3) and not($vMatch4)">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw307:StopProduct[*[local-name() = 'Begindatum']/text() = $vMatch0 and *[local-name() = 'Einddatum']/text() = $vMatch1 and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Categorie'])]) and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Code'])]) and (not(*[local-name() = 'ToewijzingNummer']))]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw307:StopProduct[*[local-name() = 'Begindatum']/text() = $vMatch0 and *[local-name() = 'Einddatum']/text() = $vMatch1 and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Categorie'])]) and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Code'])]) and (not(*[local-name() = 'ToewijzingNummer']))]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="$vMatch0 and not($vMatch1) and $vMatch2 and $vMatch3 and $vMatch4">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw307:StopProduct[*[local-name() = 'Begindatum']/text() = $vMatch0 and (not(*[local-name() = 'Einddatum'])) and *[local-name() = 'Product']/*[local-name() = 'Categorie']/text() = $vMatch2 and *[local-name() = 'Product']/*[local-name() = 'Code']/text() = $vMatch3 and *[local-name() = 'ToewijzingNummer']/text() = $vMatch4]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw307:StopProduct[*[local-name() = 'Begindatum']/text() = $vMatch0 and (not(*[local-name() = 'Einddatum'])) and *[local-name() = 'Product']/*[local-name() = 'Categorie']/text() = $vMatch2 and *[local-name() = 'Product']/*[local-name() = 'Code']/text() = $vMatch3 and *[local-name() = 'ToewijzingNummer']/text() = $vMatch4]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="$vMatch0 and not($vMatch1) and $vMatch2 and $vMatch3 and not($vMatch4)">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw307:StopProduct[*[local-name() = 'Begindatum']/text() = $vMatch0 and (not(*[local-name() = 'Einddatum'])) and *[local-name() = 'Product']/*[local-name() = 'Categorie']/text() = $vMatch2 and *[local-name() = 'Product']/*[local-name() = 'Code']/text() = $vMatch3 and (not(*[local-name() = 'ToewijzingNummer']))]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw307:StopProduct[*[local-name() = 'Begindatum']/text() = $vMatch0 and (not(*[local-name() = 'Einddatum'])) and *[local-name() = 'Product']/*[local-name() = 'Categorie']/text() = $vMatch2 and *[local-name() = 'Product']/*[local-name() = 'Code']/text() = $vMatch3 and (not(*[local-name() = 'ToewijzingNummer']))]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="$vMatch0 and not($vMatch1) and $vMatch2 and not($vMatch3) and $vMatch4">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw307:StopProduct[*[local-name() = 'Begindatum']/text() = $vMatch0 and (not(*[local-name() = 'Einddatum'])) and *[local-name() = 'Product']/*[local-name() = 'Categorie']/text() = $vMatch2 and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Code'])]) and *[local-name() = 'ToewijzingNummer']/text() = $vMatch4]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw307:StopProduct[*[local-name() = 'Begindatum']/text() = $vMatch0 and (not(*[local-name() = 'Einddatum'])) and *[local-name() = 'Product']/*[local-name() = 'Categorie']/text() = $vMatch2 and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Code'])]) and *[local-name() = 'ToewijzingNummer']/text() = $vMatch4]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="$vMatch0 and not($vMatch1) and $vMatch2 and not($vMatch3) and not($vMatch4)">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw307:StopProduct[*[local-name() = 'Begindatum']/text() = $vMatch0 and (not(*[local-name() = 'Einddatum'])) and *[local-name() = 'Product']/*[local-name() = 'Categorie']/text() = $vMatch2 and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Code'])]) and (not(*[local-name() = 'ToewijzingNummer']))]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw307:StopProduct[*[local-name() = 'Begindatum']/text() = $vMatch0 and (not(*[local-name() = 'Einddatum'])) and *[local-name() = 'Product']/*[local-name() = 'Categorie']/text() = $vMatch2 and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Code'])]) and (not(*[local-name() = 'ToewijzingNummer']))]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="$vMatch0 and not($vMatch1) and not($vMatch2) and $vMatch3 and $vMatch4">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw307:StopProduct[*[local-name() = 'Begindatum']/text() = $vMatch0 and (not(*[local-name() = 'Einddatum'])) and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Categorie'])]) and *[local-name() = 'Product']/*[local-name() = 'Code']/text() = $vMatch3 and *[local-name() = 'ToewijzingNummer']/text() = $vMatch4]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw307:StopProduct[*[local-name() = 'Begindatum']/text() = $vMatch0 and (not(*[local-name() = 'Einddatum'])) and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Categorie'])]) and *[local-name() = 'Product']/*[local-name() = 'Code']/text() = $vMatch3 and *[local-name() = 'ToewijzingNummer']/text() = $vMatch4]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="$vMatch0 and not($vMatch1) and not($vMatch2) and $vMatch3 and not($vMatch4)">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw307:StopProduct[*[local-name() = 'Begindatum']/text() = $vMatch0 and (not(*[local-name() = 'Einddatum'])) and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Categorie'])]) and *[local-name() = 'Product']/*[local-name() = 'Code']/text() = $vMatch3 and (not(*[local-name() = 'ToewijzingNummer']))]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw307:StopProduct[*[local-name() = 'Begindatum']/text() = $vMatch0 and (not(*[local-name() = 'Einddatum'])) and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Categorie'])]) and *[local-name() = 'Product']/*[local-name() = 'Code']/text() = $vMatch3 and (not(*[local-name() = 'ToewijzingNummer']))]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="$vMatch0 and not($vMatch1) and not($vMatch2) and not($vMatch3) and $vMatch4">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw307:StopProduct[*[local-name() = 'Begindatum']/text() = $vMatch0 and (not(*[local-name() = 'Einddatum'])) and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Categorie'])]) and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Code'])]) and *[local-name() = 'ToewijzingNummer']/text() = $vMatch4]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw307:StopProduct[*[local-name() = 'Begindatum']/text() = $vMatch0 and (not(*[local-name() = 'Einddatum'])) and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Categorie'])]) and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Code'])]) and *[local-name() = 'ToewijzingNummer']/text() = $vMatch4]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="$vMatch0 and not($vMatch1) and not($vMatch2) and not($vMatch3) and not($vMatch4)">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw307:StopProduct[*[local-name() = 'Begindatum']/text() = $vMatch0 and (not(*[local-name() = 'Einddatum'])) and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Categorie'])]) and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Code'])]) and (not(*[local-name() = 'ToewijzingNummer']))]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw307:StopProduct[*[local-name() = 'Begindatum']/text() = $vMatch0 and (not(*[local-name() = 'Einddatum'])) and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Categorie'])]) and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Code'])]) and (not(*[local-name() = 'ToewijzingNummer']))]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="not($vMatch0) and $vMatch1 and $vMatch2 and $vMatch3 and $vMatch4">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw307:StopProduct[(not(*[local-name() = 'Begindatum'])) and *[local-name() = 'Einddatum']/text() = $vMatch1 and *[local-name() = 'Product']/*[local-name() = 'Categorie']/text() = $vMatch2 and *[local-name() = 'Product']/*[local-name() = 'Code']/text() = $vMatch3 and *[local-name() = 'ToewijzingNummer']/text() = $vMatch4]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw307:StopProduct[(not(*[local-name() = 'Begindatum'])) and *[local-name() = 'Einddatum']/text() = $vMatch1 and *[local-name() = 'Product']/*[local-name() = 'Categorie']/text() = $vMatch2 and *[local-name() = 'Product']/*[local-name() = 'Code']/text() = $vMatch3 and *[local-name() = 'ToewijzingNummer']/text() = $vMatch4]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="not($vMatch0) and $vMatch1 and $vMatch2 and $vMatch3 and not($vMatch4)">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw307:StopProduct[(not(*[local-name() = 'Begindatum'])) and *[local-name() = 'Einddatum']/text() = $vMatch1 and *[local-name() = 'Product']/*[local-name() = 'Categorie']/text() = $vMatch2 and *[local-name() = 'Product']/*[local-name() = 'Code']/text() = $vMatch3 and (not(*[local-name() = 'ToewijzingNummer']))]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw307:StopProduct[(not(*[local-name() = 'Begindatum'])) and *[local-name() = 'Einddatum']/text() = $vMatch1 and *[local-name() = 'Product']/*[local-name() = 'Categorie']/text() = $vMatch2 and *[local-name() = 'Product']/*[local-name() = 'Code']/text() = $vMatch3 and (not(*[local-name() = 'ToewijzingNummer']))]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="not($vMatch0) and $vMatch1 and $vMatch2 and not($vMatch3) and $vMatch4">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw307:StopProduct[(not(*[local-name() = 'Begindatum'])) and *[local-name() = 'Einddatum']/text() = $vMatch1 and *[local-name() = 'Product']/*[local-name() = 'Categorie']/text() = $vMatch2 and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Code'])]) and *[local-name() = 'ToewijzingNummer']/text() = $vMatch4]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw307:StopProduct[(not(*[local-name() = 'Begindatum'])) and *[local-name() = 'Einddatum']/text() = $vMatch1 and *[local-name() = 'Product']/*[local-name() = 'Categorie']/text() = $vMatch2 and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Code'])]) and *[local-name() = 'ToewijzingNummer']/text() = $vMatch4]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="not($vMatch0) and $vMatch1 and $vMatch2 and not($vMatch3) and not($vMatch4)">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw307:StopProduct[(not(*[local-name() = 'Begindatum'])) and *[local-name() = 'Einddatum']/text() = $vMatch1 and *[local-name() = 'Product']/*[local-name() = 'Categorie']/text() = $vMatch2 and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Code'])]) and (not(*[local-name() = 'ToewijzingNummer']))]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw307:StopProduct[(not(*[local-name() = 'Begindatum'])) and *[local-name() = 'Einddatum']/text() = $vMatch1 and *[local-name() = 'Product']/*[local-name() = 'Categorie']/text() = $vMatch2 and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Code'])]) and (not(*[local-name() = 'ToewijzingNummer']))]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="not($vMatch0) and $vMatch1 and not($vMatch2) and $vMatch3 and $vMatch4">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw307:StopProduct[(not(*[local-name() = 'Begindatum'])) and *[local-name() = 'Einddatum']/text() = $vMatch1 and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Categorie'])]) and *[local-name() = 'Product']/*[local-name() = 'Code']/text() = $vMatch3 and *[local-name() = 'ToewijzingNummer']/text() = $vMatch4]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw307:StopProduct[(not(*[local-name() = 'Begindatum'])) and *[local-name() = 'Einddatum']/text() = $vMatch1 and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Categorie'])]) and *[local-name() = 'Product']/*[local-name() = 'Code']/text() = $vMatch3 and *[local-name() = 'ToewijzingNummer']/text() = $vMatch4]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="not($vMatch0) and $vMatch1 and not($vMatch2) and $vMatch3 and not($vMatch4)">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw307:StopProduct[(not(*[local-name() = 'Begindatum'])) and *[local-name() = 'Einddatum']/text() = $vMatch1 and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Categorie'])]) and *[local-name() = 'Product']/*[local-name() = 'Code']/text() = $vMatch3 and (not(*[local-name() = 'ToewijzingNummer']))]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw307:StopProduct[(not(*[local-name() = 'Begindatum'])) and *[local-name() = 'Einddatum']/text() = $vMatch1 and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Categorie'])]) and *[local-name() = 'Product']/*[local-name() = 'Code']/text() = $vMatch3 and (not(*[local-name() = 'ToewijzingNummer']))]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="not($vMatch0) and $vMatch1 and not($vMatch2) and not($vMatch3) and $vMatch4">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw307:StopProduct[(not(*[local-name() = 'Begindatum'])) and *[local-name() = 'Einddatum']/text() = $vMatch1 and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Categorie'])]) and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Code'])]) and *[local-name() = 'ToewijzingNummer']/text() = $vMatch4]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw307:StopProduct[(not(*[local-name() = 'Begindatum'])) and *[local-name() = 'Einddatum']/text() = $vMatch1 and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Categorie'])]) and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Code'])]) and *[local-name() = 'ToewijzingNummer']/text() = $vMatch4]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="not($vMatch0) and $vMatch1 and not($vMatch2) and not($vMatch3) and not($vMatch4)">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw307:StopProduct[(not(*[local-name() = 'Begindatum'])) and *[local-name() = 'Einddatum']/text() = $vMatch1 and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Categorie'])]) and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Code'])]) and (not(*[local-name() = 'ToewijzingNummer']))]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw307:StopProduct[(not(*[local-name() = 'Begindatum'])) and *[local-name() = 'Einddatum']/text() = $vMatch1 and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Categorie'])]) and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Code'])]) and (not(*[local-name() = 'ToewijzingNummer']))]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="not($vMatch0) and not($vMatch1) and $vMatch2 and $vMatch3 and $vMatch4">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw307:StopProduct[(not(*[local-name() = 'Begindatum'])) and (not(*[local-name() = 'Einddatum'])) and *[local-name() = 'Product']/*[local-name() = 'Categorie']/text() = $vMatch2 and *[local-name() = 'Product']/*[local-name() = 'Code']/text() = $vMatch3 and *[local-name() = 'ToewijzingNummer']/text() = $vMatch4]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw307:StopProduct[(not(*[local-name() = 'Begindatum'])) and (not(*[local-name() = 'Einddatum'])) and *[local-name() = 'Product']/*[local-name() = 'Categorie']/text() = $vMatch2 and *[local-name() = 'Product']/*[local-name() = 'Code']/text() = $vMatch3 and *[local-name() = 'ToewijzingNummer']/text() = $vMatch4]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="not($vMatch0) and not($vMatch1) and $vMatch2 and $vMatch3 and not($vMatch4)">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw307:StopProduct[(not(*[local-name() = 'Begindatum'])) and (not(*[local-name() = 'Einddatum'])) and *[local-name() = 'Product']/*[local-name() = 'Categorie']/text() = $vMatch2 and *[local-name() = 'Product']/*[local-name() = 'Code']/text() = $vMatch3 and (not(*[local-name() = 'ToewijzingNummer']))]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw307:StopProduct[(not(*[local-name() = 'Begindatum'])) and (not(*[local-name() = 'Einddatum'])) and *[local-name() = 'Product']/*[local-name() = 'Categorie']/text() = $vMatch2 and *[local-name() = 'Product']/*[local-name() = 'Code']/text() = $vMatch3 and (not(*[local-name() = 'ToewijzingNummer']))]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="not($vMatch0) and not($vMatch1) and $vMatch2 and not($vMatch3) and $vMatch4">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw307:StopProduct[(not(*[local-name() = 'Begindatum'])) and (not(*[local-name() = 'Einddatum'])) and *[local-name() = 'Product']/*[local-name() = 'Categorie']/text() = $vMatch2 and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Code'])]) and *[local-name() = 'ToewijzingNummer']/text() = $vMatch4]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw307:StopProduct[(not(*[local-name() = 'Begindatum'])) and (not(*[local-name() = 'Einddatum'])) and *[local-name() = 'Product']/*[local-name() = 'Categorie']/text() = $vMatch2 and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Code'])]) and *[local-name() = 'ToewijzingNummer']/text() = $vMatch4]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="not($vMatch0) and not($vMatch1) and $vMatch2 and not($vMatch3) and not($vMatch4)">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw307:StopProduct[(not(*[local-name() = 'Begindatum'])) and (not(*[local-name() = 'Einddatum'])) and *[local-name() = 'Product']/*[local-name() = 'Categorie']/text() = $vMatch2 and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Code'])]) and (not(*[local-name() = 'ToewijzingNummer']))]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw307:StopProduct[(not(*[local-name() = 'Begindatum'])) and (not(*[local-name() = 'Einddatum'])) and *[local-name() = 'Product']/*[local-name() = 'Categorie']/text() = $vMatch2 and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Code'])]) and (not(*[local-name() = 'ToewijzingNummer']))]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="not($vMatch0) and not($vMatch1) and not($vMatch2) and $vMatch3 and $vMatch4">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw307:StopProduct[(not(*[local-name() = 'Begindatum'])) and (not(*[local-name() = 'Einddatum'])) and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Categorie'])]) and *[local-name() = 'Product']/*[local-name() = 'Code']/text() = $vMatch3 and *[local-name() = 'ToewijzingNummer']/text() = $vMatch4]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw307:StopProduct[(not(*[local-name() = 'Begindatum'])) and (not(*[local-name() = 'Einddatum'])) and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Categorie'])]) and *[local-name() = 'Product']/*[local-name() = 'Code']/text() = $vMatch3 and *[local-name() = 'ToewijzingNummer']/text() = $vMatch4]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="not($vMatch0) and not($vMatch1) and not($vMatch2) and $vMatch3 and not($vMatch4)">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw307:StopProduct[(not(*[local-name() = 'Begindatum'])) and (not(*[local-name() = 'Einddatum'])) and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Categorie'])]) and *[local-name() = 'Product']/*[local-name() = 'Code']/text() = $vMatch3 and (not(*[local-name() = 'ToewijzingNummer']))]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw307:StopProduct[(not(*[local-name() = 'Begindatum'])) and (not(*[local-name() = 'Einddatum'])) and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Categorie'])]) and *[local-name() = 'Product']/*[local-name() = 'Code']/text() = $vMatch3 and (not(*[local-name() = 'ToewijzingNummer']))]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="not($vMatch0) and not($vMatch1) and not($vMatch2) and not($vMatch3) and $vMatch4">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw307:StopProduct[(not(*[local-name() = 'Begindatum'])) and (not(*[local-name() = 'Einddatum'])) and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Categorie'])]) and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Code'])]) and *[local-name() = 'ToewijzingNummer']/text() = $vMatch4]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw307:StopProduct[(not(*[local-name() = 'Begindatum'])) and (not(*[local-name() = 'Einddatum'])) and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Categorie'])]) and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Code'])]) and *[local-name() = 'ToewijzingNummer']/text() = $vMatch4]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="not($vMatch0) and not($vMatch1) and not($vMatch2) and not($vMatch3) and not($vMatch4)">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw307:StopProduct[(not(*[local-name() = 'Begindatum'])) and (not(*[local-name() = 'Einddatum'])) and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Categorie'])]) and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Code'])]) and (not(*[local-name() = 'ToewijzingNummer']))]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw307:StopProduct[(not(*[local-name() = 'Begindatum'])) and (not(*[local-name() = 'Einddatum'])) and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Categorie'])]) and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Code'])]) and (not(*[local-name() = 'ToewijzingNummer']))]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+	</xsl:template>
+
+
+	<!-- JW315 -->
+	<xsl:template match="jw315:AangevraagdProduct" mode="TR101generic">
+		<xsl:variable name="vThis" select="." />
+		<xsl:variable name="vMatch0" select="*[local-name() = 'ReferentieAanbieder']/text()" />
+		<xsl:if test="$vMatch0">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw315:AangevraagdProduct[*[local-name() = 'ReferentieAanbieder']/text() = $vMatch0]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw315:AangevraagdProduct[*[local-name() = 'ReferentieAanbieder']/text() = $vMatch0]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="not($vMatch0)">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw315:AangevraagdProduct[(not(*[local-name() = 'ReferentieAanbieder']))]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw315:AangevraagdProduct[(not(*[local-name() = 'ReferentieAanbieder']))]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+	</xsl:template>
+
+	<xsl:template match="jw315:Client" mode="TR101generic">
+		<xsl:variable name="vThis" select="." />
+		<xsl:variable name="vMatch0" select="*[local-name() = 'Bsn']/text()" />
+		<xsl:if test="$vMatch0">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw315:Client[*[local-name() = 'Bsn']/text() = $vMatch0]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw315:Client[*[local-name() = 'Bsn']/text() = $vMatch0]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="not($vMatch0)">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw315:Client[(not(*[local-name() = 'Bsn']))]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw315:Client[(not(*[local-name() = 'Bsn']))]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+	</xsl:template>
+
+
+	<!-- JW317 -->
+	<xsl:template match="jw317:Client" mode="TR101generic">
+		<xsl:variable name="vThis" select="." />
+		<xsl:variable name="vMatch0" select="*[local-name() = 'Bsn']/text()" />
+		<xsl:if test="$vMatch0">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw317:Client[*[local-name() = 'Bsn']/text() = $vMatch0]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw317:Client[*[local-name() = 'Bsn']/text() = $vMatch0]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="not($vMatch0)">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw317:Client[(not(*[local-name() = 'Bsn']))]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw317:Client[(not(*[local-name() = 'Bsn']))]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+	</xsl:template>
+
+	<xsl:template match="jw317:NieuwProduct" mode="TR101generic">
+		<xsl:variable name="vThis" select="." />
+		<xsl:variable name="vMatch0" select="*[local-name() = 'GewensteIngangsdatum']/text()" />
+		<xsl:variable name="vMatch1" select="*[local-name() = 'Product']/*[local-name() = 'Categorie']/text()" />
+		<xsl:variable name="vMatch2" select="*[local-name() = 'Product']/*[local-name() = 'Code']/text()" />
+		<xsl:if test="$vMatch0 and $vMatch1 and $vMatch2">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw317:NieuwProduct[*[local-name() = 'GewensteIngangsdatum']/text() = $vMatch0 and *[local-name() = 'Product']/*[local-name() = 'Categorie']/text() = $vMatch1 and *[local-name() = 'Product']/*[local-name() = 'Code']/text() = $vMatch2]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw317:NieuwProduct[*[local-name() = 'GewensteIngangsdatum']/text() = $vMatch0 and *[local-name() = 'Product']/*[local-name() = 'Categorie']/text() = $vMatch1 and *[local-name() = 'Product']/*[local-name() = 'Code']/text() = $vMatch2]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="$vMatch0 and $vMatch1 and not($vMatch2)">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw317:NieuwProduct[*[local-name() = 'GewensteIngangsdatum']/text() = $vMatch0 and *[local-name() = 'Product']/*[local-name() = 'Categorie']/text() = $vMatch1 and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Code'])])]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw317:NieuwProduct[*[local-name() = 'GewensteIngangsdatum']/text() = $vMatch0 and *[local-name() = 'Product']/*[local-name() = 'Categorie']/text() = $vMatch1 and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Code'])])]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="$vMatch0 and not($vMatch1) and $vMatch2">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw317:NieuwProduct[*[local-name() = 'GewensteIngangsdatum']/text() = $vMatch0 and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Categorie'])]) and *[local-name() = 'Product']/*[local-name() = 'Code']/text() = $vMatch2]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw317:NieuwProduct[*[local-name() = 'GewensteIngangsdatum']/text() = $vMatch0 and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Categorie'])]) and *[local-name() = 'Product']/*[local-name() = 'Code']/text() = $vMatch2]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="$vMatch0 and not($vMatch1) and not($vMatch2)">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw317:NieuwProduct[*[local-name() = 'GewensteIngangsdatum']/text() = $vMatch0 and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Categorie'])]) and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Code'])])]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw317:NieuwProduct[*[local-name() = 'GewensteIngangsdatum']/text() = $vMatch0 and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Categorie'])]) and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Code'])])]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="not($vMatch0) and $vMatch1 and $vMatch2">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw317:NieuwProduct[(not(*[local-name() = 'GewensteIngangsdatum'])) and *[local-name() = 'Product']/*[local-name() = 'Categorie']/text() = $vMatch1 and *[local-name() = 'Product']/*[local-name() = 'Code']/text() = $vMatch2]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw317:NieuwProduct[(not(*[local-name() = 'GewensteIngangsdatum'])) and *[local-name() = 'Product']/*[local-name() = 'Categorie']/text() = $vMatch1 and *[local-name() = 'Product']/*[local-name() = 'Code']/text() = $vMatch2]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="not($vMatch0) and $vMatch1 and not($vMatch2)">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw317:NieuwProduct[(not(*[local-name() = 'GewensteIngangsdatum'])) and *[local-name() = 'Product']/*[local-name() = 'Categorie']/text() = $vMatch1 and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Code'])])]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw317:NieuwProduct[(not(*[local-name() = 'GewensteIngangsdatum'])) and *[local-name() = 'Product']/*[local-name() = 'Categorie']/text() = $vMatch1 and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Code'])])]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="not($vMatch0) and not($vMatch1) and $vMatch2">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw317:NieuwProduct[(not(*[local-name() = 'GewensteIngangsdatum'])) and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Categorie'])]) and *[local-name() = 'Product']/*[local-name() = 'Code']/text() = $vMatch2]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw317:NieuwProduct[(not(*[local-name() = 'GewensteIngangsdatum'])) and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Categorie'])]) and *[local-name() = 'Product']/*[local-name() = 'Code']/text() = $vMatch2]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="not($vMatch0) and not($vMatch1) and not($vMatch2)">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw317:NieuwProduct[(not(*[local-name() = 'GewensteIngangsdatum'])) and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Categorie'])]) and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Code'])])]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw317:NieuwProduct[(not(*[local-name() = 'GewensteIngangsdatum'])) and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Categorie'])]) and (not(*[local-name() = 'Product']) or *[local-name() = 'Product' and not(*[local-name() = 'Code'])])]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+	</xsl:template>
+
+	<xsl:template match="jw317:OngewijzigdProduct" mode="TR101generic">
+		<xsl:variable name="vThis" select="." />
+		<xsl:variable name="vMatch0" select="*[local-name() = 'ToewijzingNummer']/text()" />
+		<xsl:if test="$vMatch0">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw317:OngewijzigdProduct[*[local-name() = 'ToewijzingNummer']/text() = $vMatch0]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw317:OngewijzigdProduct[*[local-name() = 'ToewijzingNummer']/text() = $vMatch0]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="not($vMatch0)">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw317:OngewijzigdProduct[(not(*[local-name() = 'ToewijzingNummer']))]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw317:OngewijzigdProduct[(not(*[local-name() = 'ToewijzingNummer']))]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+	</xsl:template>
+
+	<xsl:template match="jw317:TeWijzigenProduct" mode="TR101generic">
+		<xsl:variable name="vThis" select="." />
+		<xsl:variable name="vMatch0" select="*[local-name() = 'ToewijzingNummer']/text()" />
+		<xsl:if test="$vMatch0">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw317:TeWijzigenProduct[*[local-name() = 'ToewijzingNummer']/text() = $vMatch0]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw317:TeWijzigenProduct[*[local-name() = 'ToewijzingNummer']/text() = $vMatch0]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="not($vMatch0)">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw317:TeWijzigenProduct[(not(*[local-name() = 'ToewijzingNummer']))]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw317:TeWijzigenProduct[(not(*[local-name() = 'ToewijzingNummer']))]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+	</xsl:template>
+
+	<xsl:template match="jw317:Verzoek" mode="TR101generic">
+		<xsl:variable name="vThis" select="." />
+		<xsl:variable name="vMatch0" select="*[local-name() = 'ReferentieAanbieder']/text()" />
+		<xsl:if test="$vMatch0">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw317:Verzoek[*[local-name() = 'ReferentieAanbieder']/text() = $vMatch0]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw317:Verzoek[*[local-name() = 'ReferentieAanbieder']/text() = $vMatch0]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="not($vMatch0)">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw317:Verzoek[(not(*[local-name() = 'ReferentieAanbieder']))]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw317:Verzoek[(not(*[local-name() = 'ReferentieAanbieder']))]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+	</xsl:template>
+
+
+	<!-- JW319 -->
+	<xsl:template match="jw319:Antwoord" mode="TR101generic">
+		<xsl:variable name="vThis" select="." />
+		<xsl:variable name="vMatch0" select="*[local-name() = 'ReferentieAanbieder']/text()" />
+		<xsl:variable name="vMatch1" select="*[local-name() = 'VerzoekAntwoord']/text()" />
+		<xsl:if test="$vMatch0 and $vMatch1">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw319:Antwoord[*[local-name() = 'ReferentieAanbieder']/text() = $vMatch0 and *[local-name() = 'VerzoekAntwoord']/text() = $vMatch1]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw319:Antwoord[*[local-name() = 'ReferentieAanbieder']/text() = $vMatch0 and *[local-name() = 'VerzoekAntwoord']/text() = $vMatch1]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="$vMatch0 and not($vMatch1)">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw319:Antwoord[*[local-name() = 'ReferentieAanbieder']/text() = $vMatch0 and (not(*[local-name() = 'VerzoekAntwoord']))]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw319:Antwoord[*[local-name() = 'ReferentieAanbieder']/text() = $vMatch0 and (not(*[local-name() = 'VerzoekAntwoord']))]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="not($vMatch0) and $vMatch1">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw319:Antwoord[(not(*[local-name() = 'ReferentieAanbieder'])) and *[local-name() = 'VerzoekAntwoord']/text() = $vMatch1]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw319:Antwoord[(not(*[local-name() = 'ReferentieAanbieder'])) and *[local-name() = 'VerzoekAntwoord']/text() = $vMatch1]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="not($vMatch0) and not($vMatch1)">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw319:Antwoord[(not(*[local-name() = 'ReferentieAanbieder'])) and (not(*[local-name() = 'VerzoekAntwoord']))]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw319:Antwoord[(not(*[local-name() = 'ReferentieAanbieder'])) and (not(*[local-name() = 'VerzoekAntwoord']))]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+	</xsl:template>
+
+	<xsl:template match="jw319:Woonplaatsbeginsel" mode="TR101generic">
+		<xsl:variable name="vThis" select="." />
+		<xsl:variable name="vMatch0" select="*[local-name() = 'Gemeente']/text()" />
+		<xsl:if test="$vMatch0">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw319:Woonplaatsbeginsel[*[local-name() = 'Gemeente']/text() = $vMatch0]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw319:Woonplaatsbeginsel[*[local-name() = 'Gemeente']/text() = $vMatch0]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="not($vMatch0)">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw319:Woonplaatsbeginsel[(not(*[local-name() = 'Gemeente']))]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw319:Woonplaatsbeginsel[(not(*[local-name() = 'Gemeente']))]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+	</xsl:template>
+
+
+	<!-- JW323 -->
+	<xsl:template match="jw323:Client" mode="TR101generic">
+		<xsl:variable name="vThis" select="." />
+		<xsl:variable name="vMatch0" select="*[local-name() = 'Bsn']/text()" />
+		<xsl:if test="$vMatch0">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw323:Client[*[local-name() = 'Bsn']/text() = $vMatch0]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw323:Client[*[local-name() = 'Bsn']/text() = $vMatch0]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="not($vMatch0)">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw323:Client[(not(*[local-name() = 'Bsn']))]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw323:Client[(not(*[local-name() = 'Bsn']))]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+	</xsl:template>
+
+	<xsl:template match="jw323:Declaratie" mode="TR101generic">
+		<xsl:variable name="vThis" select="." />
+		<xsl:variable name="vMatch0" select="*[local-name() = 'DeclaratieNummer']/text()" />
+		<xsl:if test="$vMatch0">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw323:Declaratie[*[local-name() = 'DeclaratieNummer']/text() = $vMatch0]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw323:Declaratie[*[local-name() = 'DeclaratieNummer']/text() = $vMatch0]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="not($vMatch0)">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw323:Declaratie[(not(*[local-name() = 'DeclaratieNummer']))]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw323:Declaratie[(not(*[local-name() = 'DeclaratieNummer']))]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+	</xsl:template>
+
+	<xsl:template match="jw323:Prestatie" mode="TR101generic">
+		<xsl:variable name="vThis" select="." />
+		<xsl:variable name="vMatch0" select="*[local-name() = 'ProductReferentie']/*[local-name() = 'ReferentieNummer']/text()" />
+		<xsl:variable name="vMatch1" select="*[local-name() = 'ProductReferentie']/*[local-name() = 'VorigReferentieNummer']/text()" />
+		<xsl:if test="$vMatch0 and $vMatch1">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw323:Prestatie[*[local-name() = 'ProductReferentie']/*[local-name() = 'ReferentieNummer']/text() = $vMatch0 and *[local-name() = 'ProductReferentie']/*[local-name() = 'VorigReferentieNummer']/text() = $vMatch1]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw323:Prestatie[*[local-name() = 'ProductReferentie']/*[local-name() = 'ReferentieNummer']/text() = $vMatch0 and *[local-name() = 'ProductReferentie']/*[local-name() = 'VorigReferentieNummer']/text() = $vMatch1]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="$vMatch0 and not($vMatch1)">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw323:Prestatie[*[local-name() = 'ProductReferentie']/*[local-name() = 'ReferentieNummer']/text() = $vMatch0 and (not(*[local-name() = 'ProductReferentie']) or *[local-name() = 'ProductReferentie' and not(*[local-name() = 'VorigReferentieNummer'])])]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw323:Prestatie[*[local-name() = 'ProductReferentie']/*[local-name() = 'ReferentieNummer']/text() = $vMatch0 and (not(*[local-name() = 'ProductReferentie']) or *[local-name() = 'ProductReferentie' and not(*[local-name() = 'VorigReferentieNummer'])])]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="not($vMatch0) and $vMatch1">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw323:Prestatie[(not(*[local-name() = 'ProductReferentie']) or *[local-name() = 'ProductReferentie' and not(*[local-name() = 'ReferentieNummer'])]) and *[local-name() = 'ProductReferentie']/*[local-name() = 'VorigReferentieNummer']/text() = $vMatch1]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw323:Prestatie[(not(*[local-name() = 'ProductReferentie']) or *[local-name() = 'ProductReferentie' and not(*[local-name() = 'ReferentieNummer'])]) and *[local-name() = 'ProductReferentie']/*[local-name() = 'VorigReferentieNummer']/text() = $vMatch1]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="not($vMatch0) and not($vMatch1)">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw323:Prestatie[(not(*[local-name() = 'ProductReferentie']) or *[local-name() = 'ProductReferentie' and not(*[local-name() = 'ReferentieNummer'])]) and (not(*[local-name() = 'ProductReferentie']) or *[local-name() = 'ProductReferentie' and not(*[local-name() = 'VorigReferentieNummer'])])]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw323:Prestatie[(not(*[local-name() = 'ProductReferentie']) or *[local-name() = 'ProductReferentie' and not(*[local-name() = 'ReferentieNummer'])]) and (not(*[local-name() = 'ProductReferentie']) or *[local-name() = 'ProductReferentie' and not(*[local-name() = 'VorigReferentieNummer'])])]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+	</xsl:template>
+
+
+	<!-- JW325 -->
+	<xsl:template match="jw325:Client" mode="TR101generic">
+		<xsl:variable name="vThis" select="." />
+		<xsl:variable name="vMatch0" select="*[local-name() = 'Bsn']/text()" />
+		<xsl:if test="$vMatch0">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw325:Client[*[local-name() = 'Bsn']/text() = $vMatch0]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw325:Client[*[local-name() = 'Bsn']/text() = $vMatch0]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="not($vMatch0)">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw325:Client[(not(*[local-name() = 'Bsn']))]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw325:Client[(not(*[local-name() = 'Bsn']))]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+	</xsl:template>
+
+	<xsl:template match="jw325:DeclaratieAntwoord" mode="TR101generic">
+		<xsl:variable name="vThis" select="." />
+		<xsl:variable name="vMatch0" select="*[local-name() = 'DeclaratieNummer']/text()" />
+		<xsl:if test="$vMatch0">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw325:DeclaratieAntwoord[*[local-name() = 'DeclaratieNummer']/text() = $vMatch0]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw325:DeclaratieAntwoord[*[local-name() = 'DeclaratieNummer']/text() = $vMatch0]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="not($vMatch0)">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw325:DeclaratieAntwoord[(not(*[local-name() = 'DeclaratieNummer']))]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw325:DeclaratieAntwoord[(not(*[local-name() = 'DeclaratieNummer']))]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+	</xsl:template>
+
+	<xsl:template match="jw325:Prestatie" mode="TR101generic">
+		<xsl:variable name="vThis" select="." />
+		<xsl:variable name="vMatch0" select="*[local-name() = 'ProductReferentie']/*[local-name() = 'ReferentieNummer']/text()" />
+		<xsl:variable name="vMatch1" select="*[local-name() = 'ProductReferentie']/*[local-name() = 'VorigReferentieNummer']/text()" />
+		<xsl:if test="$vMatch0 and $vMatch1">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw325:Prestatie[*[local-name() = 'ProductReferentie']/*[local-name() = 'ReferentieNummer']/text() = $vMatch0 and *[local-name() = 'ProductReferentie']/*[local-name() = 'VorigReferentieNummer']/text() = $vMatch1]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw325:Prestatie[*[local-name() = 'ProductReferentie']/*[local-name() = 'ReferentieNummer']/text() = $vMatch0 and *[local-name() = 'ProductReferentie']/*[local-name() = 'VorigReferentieNummer']/text() = $vMatch1]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="$vMatch0 and not($vMatch1)">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw325:Prestatie[*[local-name() = 'ProductReferentie']/*[local-name() = 'ReferentieNummer']/text() = $vMatch0 and (not(*[local-name() = 'ProductReferentie']) or *[local-name() = 'ProductReferentie' and not(*[local-name() = 'VorigReferentieNummer'])])]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw325:Prestatie[*[local-name() = 'ProductReferentie']/*[local-name() = 'ReferentieNummer']/text() = $vMatch0 and (not(*[local-name() = 'ProductReferentie']) or *[local-name() = 'ProductReferentie' and not(*[local-name() = 'VorigReferentieNummer'])])]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="not($vMatch0) and $vMatch1">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw325:Prestatie[(not(*[local-name() = 'ProductReferentie']) or *[local-name() = 'ProductReferentie' and not(*[local-name() = 'ReferentieNummer'])]) and *[local-name() = 'ProductReferentie']/*[local-name() = 'VorigReferentieNummer']/text() = $vMatch1]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw325:Prestatie[(not(*[local-name() = 'ProductReferentie']) or *[local-name() = 'ProductReferentie' and not(*[local-name() = 'ReferentieNummer'])]) and *[local-name() = 'ProductReferentie']/*[local-name() = 'VorigReferentieNummer']/text() = $vMatch1]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+		<xsl:if test="not($vMatch0) and not($vMatch1)">
+			<xsl:variable name="vFollowingSiblings" select="following-sibling::jw325:Prestatie[(not(*[local-name() = 'ProductReferentie']) or *[local-name() = 'ProductReferentie' and not(*[local-name() = 'ReferentieNummer'])]) and (not(*[local-name() = 'ProductReferentie']) or *[local-name() = 'ProductReferentie' and not(*[local-name() = 'VorigReferentieNummer'])])]"/>
+			<xsl:if test="not($vFollowingSiblings)">
+				<xsl:variable name="vPrecedingSiblings" select="preceding-sibling::jw325:Prestatie[(not(*[local-name() = 'ProductReferentie']) or *[local-name() = 'ProductReferentie' and not(*[local-name() = 'ReferentieNummer'])]) and (not(*[local-name() = 'ProductReferentie']) or *[local-name() = 'ProductReferentie' and not(*[local-name() = 'VorigReferentieNummer'])])]"/>
+				<xsl:if test="$vPrecedingSiblings">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select=". | $vThis | $vPrecedingSiblings"/>
+						<xsl:with-param name="pRule">TR101</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:if>
+	</xsl:template>
+
+</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_1/rules/TR134.xsl b/xslt-validatie/jw/3_1/rules/TR134.xsl
new file mode 100644
index 0000000000000000000000000000000000000000..a47446c8bb6d916448f6dc17e70d4e6df63f3dc9
--- /dev/null
+++ b/xslt-validatie/jw/3_1/rules/TR134.xsl
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+				xmlns:ijw="http://www.istandaarden.nl/ijw/3_1/basisschema/schema"
+				xmlns:jw301="http://www.istandaarden.nl/ijw/3_1/jw301/schema"
+				xmlns:jw305="http://www.istandaarden.nl/ijw/3_1/jw305/schema"
+				xmlns:jw307="http://www.istandaarden.nl/ijw/3_1/jw307/schema"
+				xmlns:jw315="http://www.istandaarden.nl/ijw/3_1/jw315/schema"
+				xmlns:jw323="http://www.istandaarden.nl/ijw/3_1/jw323/schema"
+				xmlns:jw325="http://www.istandaarden.nl/ijw/3_1/jw325/schema"
+>
+
+	<!-- iJw 3.0 TR134 version 2.4.3 (2021-09-29) -->
+
+	<xsl:import href="../common/basis.xsl"/>
+	<xsl:template match="*" mode="TR134"/>
+	<xsl:template match="*" mode="check">
+		<xsl:apply-templates select="*" mode="TR134"/>
+	</xsl:template>
+
+	<xsl:template match="jw301:Beschikking/jw301:Afgiftedatum" mode="TR134">
+		<xsl:call-template name="TR134"/>
+	</xsl:template>
+
+	<xsl:template match="jw301:Client/jw301:Geboortedatum/ijw:Datum" mode="TR134">
+		<xsl:call-template name="TR134"/>
+	</xsl:template>
+
+	<xsl:template match="jw301:Relatie/jw301:Geboortedatum/ijw:Datum" mode="TR134">
+		<xsl:call-template name="TR134"/>
+	</xsl:template>
+
+	<xsl:template match="jw301:ToegewezenProduct/jw301:Toewijzingsdatum" mode="TR134">
+		<xsl:call-template name="TR134"/>
+	</xsl:template>
+
+	<xsl:template match="ijw:DeclaratiePeriode/ijw:Begindatum" mode="TR134">
+		<xsl:call-template name="TR134declaratie"/>
+	</xsl:template>
+
+	<xsl:template match="jw305:Client/jw305:Geboortedatum/ijw:Datum" mode="TR134">
+		<xsl:call-template name="TR134"/>
+	</xsl:template>
+
+	<xsl:template match="jw305:StartProduct/jw305:Begindatum" mode="TR134">
+		<xsl:call-template name="TR134"/>
+	</xsl:template>
+
+	<xsl:template match="jw307:Client/jw307:Geboortedatum/ijw:Datum" mode="TR134">
+		<xsl:call-template name="TR134"/>
+	</xsl:template>
+
+	<xsl:template match="jw307:StopProduct/jw307:Einddatum" mode="TR134">
+		<xsl:call-template name="TR134"/>
+	</xsl:template>
+
+	<xsl:template match="jw315:Client/jw315:Geboortedatum/ijw:Datum" mode="TR134">
+		<xsl:call-template name="TR134"/>
+	</xsl:template>
+
+	<xsl:template match="jw323:DeclaratiePeriode/ijw:Begindatum" mode="TR134">
+		<xsl:call-template name="TR134"/>
+	</xsl:template>
+
+	<xsl:template match="jw323:ProductPeriode/ijw:Begindatum" mode="TR134">
+		<xsl:call-template name="TR134"/>
+	</xsl:template>
+
+	<xsl:template match="jw325:ProductPeriode/ijw:Begindatum" mode="TR134">
+		<xsl:call-template name="TR134"/>
+	</xsl:template>
+
+	<xsl:template name="TR134">
+		<xsl:param name="pThis" select="."/>
+		<xsl:call-template name="checkafter">
+			<xsl:with-param name="pThis"
+							select="ancestor-or-self::*[local-name() = 'Bericht']/*[local-name() = 'Header']/*[local-name() = 'BerichtIdentificatie']/*[local-name() = 'Dagtekening']"/>
+			<xsl:with-param name="pOther" select="$pThis"/>
+			<xsl:with-param name="pRule">TR134</xsl:with-param>
+		</xsl:call-template>
+	</xsl:template>
+
+	<xsl:template name="TR134declaratie">
+		<xsl:param name="pThis" select="."/>
+		<xsl:call-template name="checkafter">
+			<xsl:with-param name="pThis"
+							select="ancestor-or-self::*[local-name() = 'Bericht']/*[local-name() = 'Header']/*[local-name() = 'DeclaratieFactuurIdentificatie']/*[local-name() = 'FactuurDagtekening']"/>
+			<xsl:with-param name="pOther" select="$pThis"/>
+			<xsl:with-param name="pRule">TR134</xsl:with-param>
+		</xsl:call-template>
+	</xsl:template>
+
+</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_1/rules/TR137.xsl b/xslt-validatie/jw/3_1/rules/TR137.xsl
new file mode 100644
index 0000000000000000000000000000000000000000..c69b6060549c23670c508be2ef8da702c20d2139
--- /dev/null
+++ b/xslt-validatie/jw/3_1/rules/TR137.xsl
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+				xmlns:ijw="http://www.istandaarden.nl/ijw/3_1/basisschema/schema"
+				xmlns:jw323="http://www.istandaarden.nl/ijw/3_1/jw323/schema"
+				xmlns:jw325="http://www.istandaarden.nl/ijw/3_1/jw325/schema"
+>
+
+	<!-- iJw 3.0 TR137 version 2.4.3 (2021-09-29) -->
+
+	<xsl:import href="../common/basis.xsl"/>
+	<xsl:template match="*" mode="TR137"/>
+	<xsl:template match="*" mode="check">
+		<xsl:apply-templates select="*" mode="TR137"/>
+	</xsl:template>
+
+	<xsl:template match="jw323:DeclaratiePeriode" mode="TR137">
+		<xsl:call-template name="TR137"/>
+	</xsl:template>
+
+	<xsl:template match="jw323:ProductPeriode" mode="TR137">
+		<xsl:call-template name="TR137"/>
+	</xsl:template>
+
+	<xsl:template match="jw325:ProductPeriode" mode="TR137">
+		<xsl:call-template name="TR137"/>
+	</xsl:template>
+
+	<xsl:template name="TR137">
+		<xsl:call-template name="checkafter">
+			<xsl:with-param name="pThis" select="ijw:Einddatum"/>
+			<xsl:with-param name="pOther" select="ijw:Begindatum"/>
+			<xsl:with-param name="pRule">TR137</xsl:with-param>
+		</xsl:call-template>
+		<xsl:call-template name="checkafter">
+			<xsl:with-param name="pThis"
+							select="ancestor-or-self::*[local-name() = 'Bericht']/*[local-name() = 'Header']/*[local-name() = 'DeclaratieFactuurIdentificatie']/*[local-name() = 'FactuurDagtekening'] |
+				ancestor-or-self::*[local-name() = 'Bericht']/*[local-name() = 'Header']/*[local-name() = 'BerichtIdentificatie']/*[local-name() = 'Dagtekening']"/>
+			<xsl:with-param name="pOther" select="ijw:Einddatum"/>
+			<xsl:with-param name="pRule">TR137</xsl:with-param>
+		</xsl:call-template>
+	</xsl:template>
+</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_1/rules/TR302.xsl b/xslt-validatie/jw/3_1/rules/TR302.xsl
new file mode 100644
index 0000000000000000000000000000000000000000..f1b40f19ff71b59bdacc6da184bf1d61cc1fa3f2
--- /dev/null
+++ b/xslt-validatie/jw/3_1/rules/TR302.xsl
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+				xmlns:ijw="http://www.istandaarden.nl/ijw/3_1/basisschema/schema"
+				xmlns:jw301="http://www.istandaarden.nl/ijw/3_1/jw301/schema"
+>
+
+	<!-- iJw 3.0 TR302 version 2.4.3 (2021-09-29) -->
+
+	<xsl:import href="../common/basis.xsl"/>
+	<xsl:template match="*" mode="TR302"/>
+	<xsl:template match="*" mode="check">
+		<xsl:apply-templates select="*" mode="TR302"/>
+	</xsl:template>
+
+	<xsl:template match="jw301:ToegewezenProduct" mode="TR302">
+		<xsl:call-template name="tr302"/>
+	</xsl:template>
+
+	<xsl:template name="tr302">
+		<xsl:param name="pThis" select="."/>
+		<xsl:param name="pList" select="preceding-sibling::*"/>
+
+		<xsl:variable name="vIgnoreSelf">
+			<xsl:call-template name="ignoreForTR302"/>
+		</xsl:variable>
+
+		<xsl:if test="$vIgnoreSelf != 'true'">
+			<xsl:for-each select="$pList">
+				<xsl:if test="(
+	                 	(
+					 		($pThis/jw301:Product/ijw:Code and current()/jw301:Product/ijw:Code and $pThis/jw301:Product/ijw:Code = current()/jw301:Product/ijw:Code) and
+	                 		($pThis/jw301:Product/ijw:Categorie and current()/jw301:Product/ijw:Categorie and $pThis/jw301:Product/ijw:Categorie = current()/jw301:Product/ijw:Categorie)
+	                 	) or
+	                 	(
+	                 		(not($pThis/jw301:Product/ijw:Code) or not(current()/jw301:Product/ijw:Code)) and
+	                 		($pThis/jw301:Product/ijw:Categorie and current()/jw301:Product/ijw:Categorie and $pThis/jw301:Product/ijw:Categorie = current()/jw301:Product/ijw:Categorie)
+	                 	) or
+	                 	(
+	                 		(not($pThis/jw301:Product/ijw:Code) and not($pThis/jw301:Product/ijw:Categorie)) or
+	                 		(not(current()/jw301:Product/ijw:Code) and not(current()/jw301:Product/ijw:Categorie))
+	                 	)
+	                 )">
+					<xsl:variable name="isOverlay">
+						<xsl:call-template name="isPeriodOverlay">
+							<xsl:with-param name="pThis" select="$pThis"/>
+							<xsl:with-param name="pOther" select="current()"/>
+						</xsl:call-template>
+					</xsl:variable>
+					<xsl:if test="$isOverlay = 'true'">
+						<xsl:call-template name="addError">
+							<xsl:with-param name="pElements" select="$pThis | current()"/>
+							<xsl:with-param name="pRule">TR302</xsl:with-param>
+						</xsl:call-template>
+					</xsl:if>
+				</xsl:if>
+			</xsl:for-each>
+		</xsl:if>
+	</xsl:template>
+
+	<xsl:template name="ignoreForTR302">
+		<xsl:param name="pThis" select="."/>
+		<xsl:choose>
+			<xsl:when
+					test="(jw301:RedenWijziging/text() = '01' or jw301:RedenWijziging/text() = '13') and jw301:Einddatum/. and normalize-space(jw301:Einddatum/text()) != ''">
+				<xsl:choose>
+					<xsl:when
+							test="translate(jw301:Ingangsdatum/text(), '-', '') = translate(jw301:Einddatum/text(), '-', '')">
+						<xsl:value-of select="true()"/>
+					</xsl:when>
+					<xsl:otherwise>
+						<xsl:value-of select="false()"/>
+					</xsl:otherwise>
+				</xsl:choose>
+			</xsl:when>
+			<xsl:otherwise>
+				<xsl:value-of select="false()"/>
+			</xsl:otherwise>
+		</xsl:choose>
+	</xsl:template>
+</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_1/rules/TR315.xsl b/xslt-validatie/jw/3_1/rules/TR315.xsl
new file mode 100644
index 0000000000000000000000000000000000000000..5dddbcc741f147c57640ac27ce31fff38d85976a
--- /dev/null
+++ b/xslt-validatie/jw/3_1/rules/TR315.xsl
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+				xmlns:ijw="http://www.istandaarden.nl/ijw/3_1/basisschema/schema"
+				xmlns:jw323="http://www.istandaarden.nl/ijw/3_1/jw323/schema"
+>
+
+	<!-- iJw 3.0 TR315 version 2.4.3 (2021-09-29) -->
+
+	<xsl:import href="../common/basis.xsl"/>
+	<xsl:template match="*" mode="TR315"/>
+	<xsl:template match="*" mode="check">
+		<xsl:apply-templates select="*" mode="TR315"/>
+	</xsl:template>
+
+	<xsl:template match="jw323:ProductReferentie" mode="TR315">
+		<xsl:variable name="vVorigReferentieNummer" select="normalize-space(ijw:VorigReferentieNummer/text())"/>
+		<xsl:variable name="vSelf" select="ijw:VorigReferentieNummer"/>
+
+		<xsl:for-each select="
+				ancestor-or-self::jw323:Prestatie/preceding-sibling::jw323:Prestatie/jw323:ProductReferentie/ijw:VorigReferentieNummer[text() = $vVorigReferentieNummer] |
+				ancestor-or-self::jw323:Client/preceding-sibling::jw323:Client/jw323:Prestaties/jw323:Prestatie/jw323:ProductReferentie/ijw:VorigReferentieNummer[text() = $vVorigReferentieNummer]
+				">
+			<xsl:call-template name="checkvalue">
+				<xsl:with-param name="pValues">!#</xsl:with-param>
+				<xsl:with-param name="pRule">TR315</xsl:with-param>
+				<xsl:with-param name="pExtra" select="$vSelf"/>
+			</xsl:call-template>
+		</xsl:for-each>
+	</xsl:template>
+
+</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_1/rules/TR316.xsl b/xslt-validatie/jw/3_1/rules/TR316.xsl
new file mode 100644
index 0000000000000000000000000000000000000000..b5e4efb96ce60d1c464b4c5832f0763a3b64c4f8
--- /dev/null
+++ b/xslt-validatie/jw/3_1/rules/TR316.xsl
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+				xmlns:ijw="http://www.istandaarden.nl/ijw/3_1/basisschema/schema"
+				xmlns:jw323="http://www.istandaarden.nl/ijw/3_1/jw323/schema"
+>
+
+	<!-- iWw 3.0 TR316 version 2.4.3 (2021-09-29) -->
+
+	<xsl:import href="../common/basis.xsl"/>
+	<xsl:template match="*" mode="TR316"/>
+	<xsl:template match="*" mode="check">
+		<xsl:apply-templates select="*" mode="TR316"/>
+	</xsl:template>
+
+	<xsl:template match="jw323:ProductReferentie" mode="TR316">
+		<xsl:variable name="vReferentieNummer" select="normalize-space(ijw:ReferentieNummer/text())"/>
+		<xsl:variable name="vVorigReferentieNummer" select="normalize-space(ijw:VorigReferentieNummer/text())"/>
+		<xsl:variable name="vReferentie" select="ijw:ReferentieNummer"/>
+		<xsl:variable name="vVorigReferentie" select="ijw:VorigReferentieNummer"/>
+
+		<xsl:for-each select="
+				ancestor-or-self::jw323:Prestatie/preceding-sibling::jw323:Prestatie/jw323:ProductReferentie/ijw:ReferentieNummer[text() = $vVorigReferentieNummer] |
+				ancestor-or-self::jw323:Client/preceding-sibling::jw323:Client/jw323:Prestaties/jw323:Prestatie/jw323:ProductReferentie/ijw:ReferentieNummer[text() = $vVorigReferentieNummer]
+				">
+			<xsl:call-template name="checkvalue">
+				<xsl:with-param name="pValues">!#</xsl:with-param>
+				<xsl:with-param name="pRule">TR316</xsl:with-param>
+				<xsl:with-param name="pExtra" select="$vVorigReferentie"/>
+			</xsl:call-template>
+		</xsl:for-each>
+
+		<xsl:for-each select="
+				ancestor-or-self::jw323:Prestatie/preceding-sibling::jw323:Prestatie/jw323:ProductReferentie/ijw:VorigReferentieNummer[text() = $vReferentieNummer] |
+				ancestor-or-self::jw323:Client/preceding-sibling::jw323:Client/jw323:Prestaties/jw323:Prestatie/jw323:ProductReferentie/ijw:VorigReferentieNummer[text() = $vReferentieNummer]
+				">
+			<xsl:call-template name="checkvalue">
+				<xsl:with-param name="pValues">!#</xsl:with-param>
+				<xsl:with-param name="pRule">TR316</xsl:with-param>
+				<xsl:with-param name="pExtra" select="$vReferentie"/>
+			</xsl:call-template>
+		</xsl:for-each>
+
+		<xsl:if test="$vReferentieNummer = $vVorigReferentieNummer">
+			<xsl:call-template name="addError">
+				<xsl:with-param name="pRule">TR316</xsl:with-param>
+				<xsl:with-param name="pElements" select="ijw:ReferentieNummer | ijw:VorigReferentieNummer"/>
+			</xsl:call-template>
+		</xsl:if>
+	</xsl:template>
+
+</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_1/rules/TR319.xsl b/xslt-validatie/jw/3_1/rules/TR319.xsl
new file mode 100644
index 0000000000000000000000000000000000000000..dba1647391d7ee0536efb80b3db46087e205f0f4
--- /dev/null
+++ b/xslt-validatie/jw/3_1/rules/TR319.xsl
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+				xmlns:ijw="http://www.istandaarden.nl/ijw/3_1/basisschema/schema"
+				xmlns:jw323="http://www.istandaarden.nl/ijw/3_1/jw323/schema"
+>
+
+	<!-- iJw 3.0 TR319 version 2.4.3 (2021-09-29) -->
+
+	<xsl:import href="../common/basis.xsl"/>
+	<xsl:template match="*" mode="TR319"/>
+	<xsl:template match="*" mode="check">
+		<xsl:apply-templates select="*" mode="TR319"/>
+	</xsl:template>
+
+	<xsl:template match="jw323:Prestatie" mode="TR319">
+		<xsl:call-template name="checkafter">
+			<xsl:with-param name="pThis"
+							select="ancestor-or-self::jw323:Declaratie/jw323:DeclaratiePeriode/ijw:Einddatum"/>
+			<xsl:with-param name="pOther" select="jw323:ProductPeriode/ijw:Begindatum"/>
+			<xsl:with-param name="pRule">TR319</xsl:with-param>
+		</xsl:call-template>
+		<xsl:call-template name="checkafter">
+			<xsl:with-param name="pThis"
+							select="ancestor-or-self::jw323:Declaratie/jw323:DeclaratiePeriode/ijw:Einddatum"/>
+			<xsl:with-param name="pOther" select="jw323:ProductPeriode/ijw:Einddatum"/>
+			<xsl:with-param name="pRule">TR319</xsl:with-param>
+		</xsl:call-template>
+	</xsl:template>
+
+</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_1/rules/TR335.xsl b/xslt-validatie/jw/3_1/rules/TR335.xsl
new file mode 100644
index 0000000000000000000000000000000000000000..53fc9de8fa60b9db14885013abde3bcef004c6a0
--- /dev/null
+++ b/xslt-validatie/jw/3_1/rules/TR335.xsl
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+				xmlns:ijw="http://www.istandaarden.nl/ijw/3_1/basisschema/schema"
+				xmlns:jw323="http://www.istandaarden.nl/ijw/3_1/jw323/schema"
+>
+
+	<!-- iJw 3.0 TR335 version 2.4.3 (2021-09-29) -->
+
+	<xsl:import href="../common/basis.xsl"/>
+	<xsl:template match="*" mode="TR335"/>
+	<xsl:template match="*" mode="check">
+		<xsl:apply-templates select="*" mode="TR335"/>
+	</xsl:template>
+
+	<xsl:template match="jw323:Prestatie/jw323:ProductPeriode/ijw:Einddatum" mode="TR335">
+		<xsl:call-template name="checkDateRelation">
+			<xsl:with-param name="pDate" select="ancestor-or-self::jw323:Declaratie/jw323:DeclaratieDagtekening"/>
+			<xsl:with-param name="pRelation">monthsAfter</xsl:with-param>
+			<xsl:with-param name="pExtra">-60</xsl:with-param>
+			<xsl:with-param name="pRule">TR335</xsl:with-param>
+		</xsl:call-template>
+	</xsl:template>
+
+</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_0/rules/TR342.xsl b/xslt-validatie/jw/3_1/rules/TR342.xsl
similarity index 66%
rename from xslt-validatie/jw/3_0/rules/TR342.xsl
rename to xslt-validatie/jw/3_1/rules/TR342.xsl
index 8b97ebb9d8a0603c2d4d3fab65df749725d27d16..8957a2d2a73b0742e4cfc60e5c170bad3f969811 100644
--- a/xslt-validatie/jw/3_0/rules/TR342.xsl
+++ b/xslt-validatie/jw/3_1/rules/TR342.xsl
@@ -1,10 +1,10 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-	xmlns:ijw="http://www.istandaarden.nl/ijw/3_0/basisschema/schema"
-	xmlns:jw325="http://www.istandaarden.nl/ijw/3_0/jw325/schema"
-	>
+				xmlns:ijw="http://www.istandaarden.nl/ijw/3_1/basisschema/schema"
+				xmlns:jw325="http://www.istandaarden.nl/ijw/3_1/jw325/schema"
+>
 
-	<!-- iJw 3.0 TR342 version 2.2.8 (2021-01-25) -->
+	<!-- iJw 3.0 TR342 version 2.4.3 (2021-09-29) -->
 
 	<xsl:import href="../common/basis.xsl"/>
 	<xsl:template match="*" mode="TR342"/>
@@ -14,8 +14,10 @@
 
 	<xsl:template match="jw325:DeclaratieAntwoord" mode="TR342">
 		<!-- Bereken SaldoIngediendeBedragregel -->
-		<xsl:variable name="IngediendTotaalDebet" select="sum(./jw325:Clienten/jw325:Client/jw325:Prestaties/jw325:Prestatie/jw325:IngediendBedrag[./ijw:DebetCredit/text() = 'D']/ijw:Bedrag)"/>
-		<xsl:variable name="IngediendTotaalCredit" select="sum(./jw325:Clienten/jw325:Client/jw325:Prestaties/jw325:Prestatie/jw325:IngediendBedrag[./ijw:DebetCredit/text() = 'C']/ijw:Bedrag)"/>
+		<xsl:variable name="IngediendTotaalDebet"
+					  select="sum(./jw325:Clienten/jw325:Client/jw325:Prestaties/jw325:Prestatie/jw325:IngediendBedrag[./ijw:DebetCredit/text() = 'D']/ijw:Bedrag)"/>
+		<xsl:variable name="IngediendTotaalCredit"
+					  select="sum(./jw325:Clienten/jw325:Client/jw325:Prestaties/jw325:Prestatie/jw325:IngediendBedrag[./ijw:DebetCredit/text() = 'C']/ijw:Bedrag)"/>
 		<xsl:variable name="SaldoIngediendeBedragregel" select="$IngediendTotaalDebet - $IngediendTotaalCredit"/>
 
 		<!-- Maak van ToegekendTotaalBedrag een negatief getal als ToegekendDebetCredit waarde C heeft -->
@@ -24,7 +26,9 @@
 				<xsl:when test="./jw325:TotaalToegekendBedrag/ijw:DebetCredit/text() = 'C' ">
 					<xsl:value-of select='number(./jw325:TotaalToegekendBedrag/ijw:TotaalBedrag/text()) * -1'/>
 				</xsl:when>
-				<xsl:otherwise><xsl:value-of select='number(./jw325:TotaalToegekendBedrag/ijw:TotaalBedrag/text())'/></xsl:otherwise>
+				<xsl:otherwise>
+					<xsl:value-of select='number(./jw325:TotaalToegekendBedrag/ijw:TotaalBedrag/text())'/>
+				</xsl:otherwise>
 			</xsl:choose>
 		</xsl:variable>
 
@@ -34,22 +38,26 @@
 				<xsl:when test="./jw325:TotaalIngediendBedrag/ijw:DebetCredit/text() = 'C' ">
 					<xsl:value-of select="number(./jw325:TotaalIngediendBedrag/ijw:TotaalBedrag/text()) * -1"/>
 				</xsl:when>
-				<xsl:otherwise><xsl:value-of select="number(./jw325:TotaalIngediendBedrag/ijw:TotaalBedrag/text())"/></xsl:otherwise>
+				<xsl:otherwise>
+					<xsl:value-of select="number(./jw325:TotaalIngediendBedrag/ijw:TotaalBedrag/text())"/>
+				</xsl:otherwise>
 			</xsl:choose>
 		</xsl:variable>
 
 		<!-- Bepaal verschil F:= IngediendTotaalBedrag minus ToegekendTotaalBedrag-->
-		
+
 		<xsl:variable name="VerschilHeaderTotalen" select="$IngediendTotaalBedragDC - $ToegekendTotaalBedragDC"/>
 
 		<!-- Controleren of verschil E overeenkomt met verschil F bedragen -->
 		<xsl:choose>
-			<xsl:when test="count(ancestor-or-self::jw325:DeclaratieAntwoord/jw325:RetourCodes/*[local-name() = 'RetourCode'][text() != '0200' and text() != '8001']) = 0">
+			<xsl:when
+					test="count(ancestor-or-self::jw325:DeclaratieAntwoord/jw325:RetourCodes/*[local-name() = 'RetourCode'][text() != '0200' and text() != '8001']) = 0">
 				<xsl:if test="normalize-space($SaldoIngediendeBedragregel) != normalize-space($VerschilHeaderTotalen)">
 					<xsl:call-template name="addError">
 						<xsl:with-param name="pRule">TR342</xsl:with-param>
 						<xsl:with-param name="pCode">0001</xsl:with-param>
-						<xsl:with-param name="pElements" select="jw325:TotaalToegekendBedrag | jw325:TotaalIngediendBedrag "/>
+						<xsl:with-param name="pElements"
+										select="jw325:TotaalToegekendBedrag | jw325:TotaalIngediendBedrag "/>
 					</xsl:call-template>
 				</xsl:if>
 			</xsl:when>
@@ -58,7 +66,7 @@
 					<xsl:call-template name="addError">
 						<xsl:with-param name="pRule">TR342</xsl:with-param>
 						<xsl:with-param name="pCode">0001</xsl:with-param>
-						<xsl:with-param name="pElements" select="jw325:TotaalToegekendBedrag" />
+						<xsl:with-param name="pElements" select="jw325:TotaalToegekendBedrag"/>
 					</xsl:call-template>
 				</xsl:if>
 			</xsl:otherwise>
diff --git a/xslt-validatie/jw/3_1/rules/TR352.xsl b/xslt-validatie/jw/3_1/rules/TR352.xsl
new file mode 100644
index 0000000000000000000000000000000000000000..09069acef4ed2261560c1a7928db4579d95ffecb
--- /dev/null
+++ b/xslt-validatie/jw/3_1/rules/TR352.xsl
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+				xmlns:jw317="http://www.istandaarden.nl/ijw/3_1/jw317/schema"
+>
+
+	<!-- iJw 3.0 TR352 version 2.4.3 (2021-09-29) -->
+
+	<xsl:import href="../common/basis.xsl"/>
+	<xsl:template match="*" mode="TR352"/>
+	<xsl:template match="*" mode="check">
+		<xsl:apply-templates select="*" mode="TR352"/>
+	</xsl:template>
+
+	<xsl:template match="jw317:Verzoek" mode="TR352">
+		<xsl:call-template name="checkvalue">
+			<xsl:with-param name="pThis"
+							select="jw317:OngewijzigdeProducten/jw317:OngewijzigdProduct | jw317:TeWijzigenProducten/jw317:TeWijzigenProduct"/>
+			<xsl:with-param name="pValues">#</xsl:with-param>
+			<xsl:with-param name="pExtra" select="."/>
+			<xsl:with-param name="pRule">TR352</xsl:with-param>
+		</xsl:call-template>
+	</xsl:template>
+
+</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_1/rules/TR353.xsl b/xslt-validatie/jw/3_1/rules/TR353.xsl
new file mode 100644
index 0000000000000000000000000000000000000000..17b600b5148a2243e2eb85a59b8353bb6628ee5d
--- /dev/null
+++ b/xslt-validatie/jw/3_1/rules/TR353.xsl
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+				xmlns:jw317="http://www.istandaarden.nl/ijw/3_1/jw317/schema"
+>
+
+	<!-- iJw 3.0 TR353 version 2.4.3 (2021-09-29) -->
+
+	<xsl:import href="../common/basis.xsl"/>
+	<xsl:template match="*" mode="TR353"/>
+	<xsl:template match="*" mode="check">
+		<xsl:apply-templates select="*" mode="TR353"/>
+	</xsl:template>
+
+	<xsl:template match="jw317:Verzoek" mode="TR353">
+		<xsl:call-template name="checkvalue">
+			<xsl:with-param name="pThis"
+							select="jw317:TeWijzigenProducten/jw317:TeWijzigenProduct | jw317:NieuweProducten/jw317:NieuwProduct"/>
+			<xsl:with-param name="pValues">#</xsl:with-param>
+			<xsl:with-param name="pExtra" select="."/>
+			<xsl:with-param name="pRule">TR353</xsl:with-param>
+		</xsl:call-template>
+	</xsl:template>
+
+</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_1/rules/TR358.xsl b/xslt-validatie/jw/3_1/rules/TR358.xsl
new file mode 100644
index 0000000000000000000000000000000000000000..320a73e3bc92653e8c90338bf09f3edba2145962
--- /dev/null
+++ b/xslt-validatie/jw/3_1/rules/TR358.xsl
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+				xmlns:ijw="http://www.istandaarden.nl/ijw/3_1/basisschema/schema"
+				xmlns:jw323="http://www.istandaarden.nl/ijw/3_1/jw323/schema"
+>
+
+	<!-- iJw 3.0 TR358 version 2.4.3 (2021-09-29) -->
+
+	<xsl:import href="../common/basis.xsl"/>
+	<xsl:template match="*" mode="TR358"/>
+	<xsl:template match="*" mode="check">
+		<xsl:apply-templates select="*" mode="TR358"/>
+	</xsl:template>
+
+	<xsl:template match="jw323:TotaalIngediendBedrag" mode="TR358">
+		<xsl:variable name="vTotaalDebet"
+					  select="sum(ancestor-or-self::jw323:Declaratie/jw323:Clienten/jw323:Client/jw323:Prestaties/jw323:Prestatie/jw323:IngediendBedrag[ijw:DebetCredit/text() = 'D']/ijw:Bedrag)"/>
+		<xsl:variable name="vTotaalCredit"
+					  select="sum(ancestor-or-self::jw323:Declaratie/jw323:Clienten/jw323:Client/jw323:Prestaties/jw323:Prestatie/jw323:IngediendBedrag[ijw:DebetCredit/text() = 'C']/ijw:Bedrag)"/>
+
+		<xsl:variable name="vSaldo" select="$vTotaalDebet - $vTotaalCredit"/>
+
+		<!-- Controleren of BtwTotaalBedrag overeenkomt met saldo BtwBedragen -->
+		<xsl:call-template name="checkimplication">
+			<xsl:with-param name="pThis" select="ijw:DebetCredit"/>
+			<xsl:with-param name="pValue1">D</xsl:with-param>
+			<xsl:with-param name="pOther" select="ijw:TotaalBedrag"/>
+			<xsl:with-param name="pValue2">
+				<xsl:call-template name="formatNumber">
+					<xsl:with-param name="pValue" select="$vSaldo"/>
+				</xsl:call-template>
+			</xsl:with-param>
+			<xsl:with-param name="pExtra"
+							select="ancestor-or-self::jw323:Declaratie/jw323:Clienten/jw323:Client/jw323:Prestaties/jw323:Prestatie/jw323:IngediendBedrag"/>
+			<xsl:with-param name="pRule">TR358</xsl:with-param>
+		</xsl:call-template>
+
+		<!-- In het geval van Credit moet het bedrag negatief worden gemaakt -->
+		<xsl:call-template name="checkimplication">
+			<xsl:with-param name="pThis" select="ijw:DebetCredit"/>
+			<xsl:with-param name="pValue1">C</xsl:with-param>
+			<xsl:with-param name="pOther" select="ijw:TotaalBedrag"/>
+			<xsl:with-param name="pValue2">
+				<xsl:call-template name="formatNumber">
+					<xsl:with-param name="pValue" select="0 - 1 * $vSaldo"/>
+				</xsl:call-template>
+			</xsl:with-param>
+			<xsl:with-param name="pExtra"
+							select="ancestor-or-self::jw323:Declaratie/jw323:Clienten/jw323:Client/jw323:Prestaties/jw323:Prestatie/jw323:IngediendBedrag"/>
+			<xsl:with-param name="pRule">TR358</xsl:with-param>
+		</xsl:call-template>
+	</xsl:template>
+
+</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_1/rules/TR377.xsl b/xslt-validatie/jw/3_1/rules/TR377.xsl
new file mode 100644
index 0000000000000000000000000000000000000000..3b6dfae4a28b94c463a999910735b8670422c82d
--- /dev/null
+++ b/xslt-validatie/jw/3_1/rules/TR377.xsl
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+				xmlns:jw319="http://www.istandaarden.nl/ijw/3_1/jw319/schema"
+>
+
+	<!-- iJw 3.0 TR377 version 2.4.3 (2021-09-29) -->
+
+	<xsl:import href="../common/basis.xsl"/>
+	<xsl:template match="*" mode="TR377"/>
+	<xsl:template match="*" mode="check">
+		<xsl:apply-templates select="*" mode="TR377"/>
+	</xsl:template>
+
+	<xsl:template match="jw319:RedenAfwijzingVerzoek" mode="TR377">
+		<xsl:call-template name="checkimplication">
+			<xsl:with-param name="pValue1">8</xsl:with-param>
+			<xsl:with-param name="pOther" select="../jw319:Woonplaatsbeginsel"/>
+			<xsl:with-param name="pValue2">#</xsl:with-param>
+			<xsl:with-param name="pRule">TR377</xsl:with-param>
+		</xsl:call-template>
+	</xsl:template>
+</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_1/rules/TR378.xsl b/xslt-validatie/jw/3_1/rules/TR378.xsl
new file mode 100644
index 0000000000000000000000000000000000000000..bf86e120547b57d35056c5d3b31d6ebb29f4b7d4
--- /dev/null
+++ b/xslt-validatie/jw/3_1/rules/TR378.xsl
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+				xmlns:jw301="http://www.istandaarden.nl/ijw/3_1/jw301/schema"
+				xmlns:jw305="http://www.istandaarden.nl/ijw/3_1/jw305/schema"
+				xmlns:jw307="http://www.istandaarden.nl/ijw/3_1/jw307/schema"
+				xmlns:jw315="http://www.istandaarden.nl/ijw/3_1/jw315/schema"
+				xmlns:jw317="http://www.istandaarden.nl/ijw/3_1/jw317/schema"
+				xmlns:jw319="http://www.istandaarden.nl/ijw/3_1/jw319/schema"
+				xmlns:jw323="http://www.istandaarden.nl/ijw/3_1/jw323/schema"
+				xmlns:jw325="http://www.istandaarden.nl/ijw/3_1/jw325/schema"
+>
+	<!-- iJw 3.0 TR378 version 2.4.3 (2021-09-29) -->
+
+	<xsl:import href="../common/basis.xsl"/>
+	<xsl:template match="*" mode="TR378"/>
+	<xsl:template match="*" mode="check">
+		<xsl:apply-templates select="*" mode="TR378"/>
+	</xsl:template>
+
+	<xsl:template match="jw301:Afzender" mode="TR378">
+		<xsl:call-template name="checkGemeenteCode">
+			<xsl:with-param name="pRule">TR378</xsl:with-param>
+		</xsl:call-template>
+	</xsl:template>
+	<xsl:template match="jw305:Ontvanger" mode="TR378">
+		<xsl:call-template name="checkGemeenteCode">
+			<xsl:with-param name="pRule">TR378</xsl:with-param>
+		</xsl:call-template>
+	</xsl:template>
+	<xsl:template match="jw307:Ontvanger" mode="TR378">
+		<xsl:call-template name="checkGemeenteCode">
+			<xsl:with-param name="pRule">TR378</xsl:with-param>
+		</xsl:call-template>
+	</xsl:template>
+	<xsl:template match="jw315:Ontvanger" mode="TR378">
+		<xsl:call-template name="checkGemeenteCode">
+			<xsl:with-param name="pRule">TR378</xsl:with-param>
+		</xsl:call-template>
+	</xsl:template>
+	<xsl:template match="jw317:Ontvanger" mode="TR378">
+		<xsl:call-template name="checkGemeenteCode">
+			<xsl:with-param name="pRule">TR378</xsl:with-param>
+		</xsl:call-template>
+	</xsl:template>
+	<xsl:template match="jw319:Afzender" mode="TR378">
+		<xsl:call-template name="checkGemeenteCode">
+			<xsl:with-param name="pRule">TR378</xsl:with-param>
+		</xsl:call-template>
+	</xsl:template>
+	<xsl:template match="jw319:Gemeente" mode="TR378">
+		<xsl:call-template name="checkGemeenteCode">
+			<xsl:with-param name="pRule">TR378</xsl:with-param>
+		</xsl:call-template>
+	</xsl:template>
+	<xsl:template match="jw323:Ontvanger" mode="TR378">
+		<xsl:call-template name="checkGemeenteCode">
+			<xsl:with-param name="pRule">TR378</xsl:with-param>
+		</xsl:call-template>
+	</xsl:template>
+	<xsl:template match="jw325:Afzender" mode="TR378">
+		<xsl:call-template name="checkGemeenteCode">
+			<xsl:with-param name="pRule">TR378</xsl:with-param>
+		</xsl:call-template>
+	</xsl:template>
+
+</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_1/rules/TR380.xsl b/xslt-validatie/jw/3_1/rules/TR380.xsl
new file mode 100644
index 0000000000000000000000000000000000000000..6fe974ebd3a0b9357d1b89651c99c1fa3bf56a79
--- /dev/null
+++ b/xslt-validatie/jw/3_1/rules/TR380.xsl
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+				xmlns:jw317="http://www.istandaarden.nl/ijw/3_1/jw317/schema"
+>
+
+	<!-- iJw 3.0 TR380 version 2.4.3 (2021-09-29) -->
+
+	<xsl:import href="../common/basis.xsl"/>
+	<xsl:template match="*" mode="TR380"/>
+	<xsl:template match="*" mode="check">
+		<xsl:apply-templates select="*" mode="TR380"/>
+	</xsl:template>
+
+	<xsl:template match="jw317:NieuwProduct/jw317:GewensteIngangsdatum" mode="TR380">
+		<xsl:call-template name="checkafterstrict">
+			<xsl:with-param name="pOther"
+							select="ancestor-or-self::*[local-name() = 'Bericht']/*[local-name() = 'Header']/*[local-name() = 'BerichtIdentificatie']/*[local-name() = 'Dagtekening']"/>
+			<xsl:with-param name="pRule">TR380</xsl:with-param>
+		</xsl:call-template>
+	</xsl:template>
+
+</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_1/rules/TR383.xsl b/xslt-validatie/jw/3_1/rules/TR383.xsl
new file mode 100644
index 0000000000000000000000000000000000000000..b740f50f000c54238080c94cc50f424052a0b850
--- /dev/null
+++ b/xslt-validatie/jw/3_1/rules/TR383.xsl
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+				xmlns:jw315="http://www.istandaarden.nl/ijw/3_1/jw315/schema"
+>
+
+	<!-- iJw 3.0 TR383 version 2.4.3 (2021-09-29) -->
+
+	<xsl:import href="../common/basis.xsl"/>
+	<xsl:template match="*" mode="TR383"/>
+	<xsl:template match="*" mode="check">
+		<xsl:apply-templates select="*" mode="TR383"/>
+	</xsl:template>
+
+	<xsl:template match="jw315:AangevraagdProduct" mode="TR383">
+		<xsl:variable name="vVorigReferentieAanbieder" select="normalize-space(jw315:ReferentieAanbieder/text())"/>
+		<xsl:variable name="vSelf" select="jw315:VorigReferentieNummer"/>
+
+		<xsl:for-each select="
+		ancestor-or-self::jw315:AangevraagdProduct/preceding-sibling::jw315:AangevraagdProduct/jw315:ReferentieAanbieder[text() = $vVorigReferentieAanbieder]
+		">
+			<xsl:call-template name="checkvalue">
+				<xsl:with-param name="pValues">!#</xsl:with-param>
+				<xsl:with-param name="pRule">TR383</xsl:with-param>
+				<xsl:with-param name="pExtra" select="$vSelf"/>
+			</xsl:call-template>
+		</xsl:for-each>
+	</xsl:template>
+</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_1/rules/TR386.xsl b/xslt-validatie/jw/3_1/rules/TR386.xsl
new file mode 100644
index 0000000000000000000000000000000000000000..9b91deb93842de91e831ede0c952c65d9dd04067
--- /dev/null
+++ b/xslt-validatie/jw/3_1/rules/TR386.xsl
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+				xmlns:ijw="http://www.istandaarden.nl/ijw/3_1/basisschema/schema"
+				xmlns:jw315="http://www.istandaarden.nl/ijw/3_1/jw315/schema"
+>
+
+	<!-- ijw 3.0 TR386 version 2.4.3 (2021-09-29) -->
+
+	<xsl:import href="../common/basis.xsl"/>
+	<xsl:template match="*" mode="TR386"/>
+	<xsl:template match="*" mode="check">
+		<xsl:apply-templates select="*" mode="TR386"/>
+	</xsl:template>
+
+	<xsl:template match="jw315:AangevraagdProduct" mode="TR386">
+		<xsl:call-template name="TR386"/>
+	</xsl:template>
+
+	<xsl:template name="TR386">
+		<xsl:param name="pThis" select="."/>
+		<xsl:param name="pList" select="preceding-sibling::*"/>
+
+		<xsl:for-each select="$pList">
+
+			<xsl:if test="(
+	            	(
+				 		($pThis/jw315:Product/ijw:Code and current()/jw315:Product/ijw:Code and $pThis/jw315:Product/ijw:Code = current()/jw315:Product/ijw:Code) and
+	             		($pThis/jw315:Product/ijw:Categorie and current()/jw315:Product/ijw:Categorie and $pThis/jw315:Product/ijw:Categorie = current()/jw315:Product/ijw:Categorie)
+	            	) or
+	            	(
+	             		(not($pThis/jw315:Product/ijw:Code) or not(current()/jw315:Product/ijw:Code)) and
+	            		($pThis/jw315:Product/ijw:Categorie and current()/jw315:Product/ijw:Categorie and $pThis/jw315:Product/ijw:Categorie = current()/jw315:Product/ijw:Categorie)
+	            	) or
+	            	(
+	             		(not($pThis/jw315:Product/ijw:Code) and not($pThis/jw315:Product/ijw:Categorie)) or
+	             		(not(current()/jw315:Product/ijw:Code) and not(current()/jw315:Product/ijw:Categorie))
+	            	)
+	            )">
+				<xsl:variable name="isOverlay">
+					<xsl:call-template name="isPeriodOverlay">
+						<xsl:with-param name="pThis" select="$pThis"/>
+						<xsl:with-param name="pOther" select="current()"/>
+					</xsl:call-template>
+				</xsl:variable>
+				<xsl:if test="$isOverlay = 'true'">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select="$pThis | current()"/>
+						<xsl:with-param name="pRule">TR386</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:for-each>
+	</xsl:template>
+</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_1/rules/TR409.xsl b/xslt-validatie/jw/3_1/rules/TR409.xsl
new file mode 100644
index 0000000000000000000000000000000000000000..2fffaf05df16f4b344bf7e6698999e3fc6137610
--- /dev/null
+++ b/xslt-validatie/jw/3_1/rules/TR409.xsl
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0"
+				xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+				xmlns:jw319="http://www.istandaarden.nl/ijw/3_1/jw319/schema"
+>
+
+	<!-- iJw 3.0 TR409 version 2.4.3 (2021-09-29) -->
+
+	<xsl:import href="../common/basis.xsl"/>
+	<xsl:template match="*" mode="TR409"/>
+	<xsl:template match="*" mode="check">
+		<xsl:apply-templates select="*" mode="TR409"/>
+	</xsl:template>
+
+	<xsl:template match="jw319:RedenAfwijzingVerzoek" mode="TR409">
+		<xsl:call-template name="checkimplication">
+			<xsl:with-param name="pValue1">!8</xsl:with-param>
+			<xsl:with-param name="pOther" select="../jw319:Woonplaatsbeginsel"/>
+			<xsl:with-param name="pValue2">!#</xsl:with-param>
+			<xsl:with-param name="pRule">TR409</xsl:with-param>
+		</xsl:call-template>
+	</xsl:template>
+</xsl:stylesheet>
diff --git a/xslt-validatie/jw/3_1/rules/TR410.xsl b/xslt-validatie/jw/3_1/rules/TR410.xsl
new file mode 100644
index 0000000000000000000000000000000000000000..fbf0f08d42fd97326d10a2b525f6a0292ea729a9
--- /dev/null
+++ b/xslt-validatie/jw/3_1/rules/TR410.xsl
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+				xmlns:ijw="http://www.istandaarden.nl/ijw/3_1/basisschema/schema"
+				xmlns:jw317="http://www.istandaarden.nl/ijw/3_1/jw317/schema"
+>
+
+	<!-- ijw 3.0 TR410 version 2.4.3 (2021-09-29) -->
+
+	<xsl:import href="../common/basis.xsl"/>
+	<xsl:template match="*" mode="TR410"/>
+	<xsl:template match="*" mode="check">
+		<xsl:apply-templates select="*" mode="TR410"/>
+	</xsl:template>
+
+	<xsl:template match="jw317:NieuwProduct" mode="TR410">
+		<xsl:call-template name="TR410"/>
+	</xsl:template>
+
+	<xsl:template name="TR410">
+		<xsl:param name="pThis" select="."/>
+		<xsl:param name="pList" select="preceding-sibling::*"/>
+
+		<xsl:for-each select="$pList">
+			<xsl:if test="(
+	            	(
+						($pThis/jw317:Product/ijw:Code and current()/jw317:Product/ijw:Code and $pThis/jw317:Product/ijw:Code = current()/jw317:Product/ijw:Code) and
+	            		($pThis/jw317:Product/ijw:Categorie and current()/jw317:Product/ijw:Categorie and $pThis/jw317:Product/ijw:Categorie = current()/jw317:Product/ijw:Categorie)
+	            	) or
+	            	(
+	            		(not($pThis/jw317:Product/ijw:Code) or not(current()/jw317:Product/ijw:Code)) and
+	            		($pThis/jw317:Product/ijw:Categorie and current()/jw317:Product/ijw:Categorie and $pThis/jw317:Product/ijw:Categorie = current()/jw317:Product/ijw:Categorie)
+	            	) or
+	            	(
+	            		(not($pThis/jw317:Product/ijw:Code) and not($pThis/jw317:Product/ijw:Categorie)) or
+	            		(not(current()/jw317:Product/ijw:Code) and not(current()/jw317:Product/ijw:Categorie))
+	            	)
+	        	)">
+				<xsl:variable name="isOverlay">
+					<xsl:call-template name="isPeriodOverlay">
+						<xsl:with-param name="pThis" select="$pThis"/>
+						<xsl:with-param name="pOther" select="current()"/>
+					</xsl:call-template>
+				</xsl:variable>
+				<xsl:if test="$isOverlay = 'true'">
+					<xsl:call-template name="addError">
+						<xsl:with-param name="pElements" select="$pThis | current()"/>
+						<xsl:with-param name="pRule">TR410</xsl:with-param>
+					</xsl:call-template>
+				</xsl:if>
+			</xsl:if>
+		</xsl:for-each>
+	</xsl:template>
+</xsl:stylesheet>