From 8d8d02ef89574fca4daee916feb9b806047d4e50 Mon Sep 17 00:00:00 2001
From: Michael Westergaard <michael@westergaard.eu>
Date: Thu, 30 Sep 2021 09:01:29 +0200
Subject: [PATCH] iJw 3.1

---
 README.md                                     |    2 +-
 xslt-validatie/common/2_0/basis.xsl           |   22 +-
 xslt-validatie/jw/3_0/JW303.xsl               |   75 -
 xslt-validatie/jw/3_0/JW304.xsl               |   69 -
 xslt-validatie/jw/3_0/JW319.xsl               |   33 -
 xslt-validatie/jw/3_0/all_merged.xsl          |    1 -
 xslt-validatie/jw/3_0/condities/CD005.xsl     |   31 -
 xslt-validatie/jw/3_0/condities/CD007.xsl     |   32 -
 xslt-validatie/jw/3_0/condities/CD009.xsl     |   22 -
 xslt-validatie/jw/3_0/condities/CD025.xsl     |   31 -
 xslt-validatie/jw/3_0/condities/CD034.xsl     |   23 -
 xslt-validatie/jw/3_0/condities/CD041.xsl     |   35 -
 xslt-validatie/jw/3_0/condities/CD043.xsl     |   24 -
 xslt-validatie/jw/3_0/condities/CD055.xsl     |   68 -
 xslt-validatie/jw/3_0/condities/CD056.xsl     |   47 -
 xslt-validatie/jw/3_0/condities/CD058.xsl     |   34 -
 xslt-validatie/jw/3_0/condities/CD059.xsl     |   36 -
 xslt-validatie/jw/3_0/condities/CD060.xsl     |   58 -
 xslt-validatie/jw/3_0/condities/CD062.xsl     |   26 -
 xslt-validatie/jw/3_0/condities/CD068.xsl     |   24 -
 xslt-validatie/jw/3_0/condities/CD076.xsl     |   52 -
 xslt-validatie/jw/3_0/condities/CD077.xsl     |   42 -
 xslt-validatie/jw/3_0/condities/CD078.xsl     |   42 -
 xslt-validatie/jw/3_0/condities/CD079.xsl     |   38 -
 xslt-validatie/jw/3_0/condities/CD080.xsl     |   64 -
 xslt-validatie/jw/3_0/condities/CD081.xsl     |   64 -
 xslt-validatie/jw/3_0/condities/CD088.xsl     |   24 -
 xslt-validatie/jw/3_0/constraints/CS002.xsl   |   20 -
 xslt-validatie/jw/3_0/constraints/CS003.xsl   |   59 -
 xslt-validatie/jw/3_0/constraints/CS023.xsl   |  116 --
 xslt-validatie/jw/3_0/constraints/CS050.xsl   |   38 -
 xslt-validatie/jw/3_0/constraints/CS058.xsl   |   29 -
 xslt-validatie/jw/3_0/constraints/CS089.xsl   |   31 -
 xslt-validatie/jw/3_0/constraints/CS102.xsl   |   22 -
 xslt-validatie/jw/3_0/constraints/CS103.xsl   |   38 -
 xslt-validatie/jw/3_0/constraints/CS104.xsl   |   56 -
 xslt-validatie/jw/3_0/constraints/CS108.xsl   |   60 -
 xslt-validatie/jw/3_0/constraints/CS323.xsl   |   23 -
 xslt-validatie/jw/3_0/constraints/CS324.xsl   |   22 -
 xslt-validatie/jw/3_0/constraints/CS327.xsl   |   41 -
 xslt-validatie/jw/3_0/constraints/CS328.xsl   |   32 -
 xslt-validatie/jw/3_0/constraints/CS330.xsl   |   46 -
 xslt-validatie/jw/3_0/constraints/CS331.xsl   |   34 -
 xslt-validatie/jw/3_0/rules/TR006.xsl         |   34 -
 xslt-validatie/jw/3_0/rules/TR018.xsl         |   20 -
 xslt-validatie/jw/3_0/rules/TR061.xsl         |   26 -
 xslt-validatie/jw/3_0/rules/TR101.xsl         |  286 ----
 xslt-validatie/jw/3_0/rules/TR302.xsl         |   84 -
 xslt-validatie/jw/3_0/rules/TR312.xsl         |   44 -
 xslt-validatie/jw/3_0/rules/TR313.xsl         |   48 -
 xslt-validatie/jw/3_0/rules/TR314.xsl         |   35 -
 xslt-validatie/jw/3_0/rules/TR315.xsl         |   48 -
 xslt-validatie/jw/3_0/rules/TR316.xsl         |   88 --
 xslt-validatie/jw/3_0/rules/TR317.xsl         |   28 -
 xslt-validatie/jw/3_0/rules/TR319.xsl         |   46 -
 xslt-validatie/jw/3_0/rules/TR320.xsl         |   64 -
 xslt-validatie/jw/3_0/rules/TR335.xsl         |   24 -
 xslt-validatie/jw/3_0/rules/TR345.xsl         |   25 -
 xslt-validatie/jw/3_0/rules/TR352.xsl         |   24 -
 xslt-validatie/jw/3_0/rules/TR353.xsl         |   24 -
 xslt-validatie/jw/3_0/rules/TR358.xsl         |   44 -
 xslt-validatie/jw/{3_0 => 3_1}/JW301.xsl      |   34 +-
 xslt-validatie/jw/{3_0 => 3_1}/JW305.xsl      |   22 +-
 xslt-validatie/jw/{3_0 => 3_1}/JW307.xsl      |   22 +-
 xslt-validatie/jw/{3_0 => 3_1}/JW315.xsl      |   46 +-
 xslt-validatie/jw/{3_0 => 3_1}/JW317.xsl      |   46 +-
 xslt-validatie/jw/3_1/JW319.xsl               |   47 +
 xslt-validatie/jw/{3_0 => 3_1}/JW323.xsl      |   44 +-
 xslt-validatie/jw/{3_0 => 3_1}/JW325.xsl      |   32 +-
 xslt-validatie/jw/{3_0 => 3_1}/all.xsl        |   96 +-
 xslt-validatie/jw/3_1/all_merged.xsl          |    1 +
 .../jw/{3_0 => 3_1}/common/basis.xsl          |  103 +-
 xslt-validatie/jw/3_1/condities/CD005.xsl     |   27 +
 xslt-validatie/jw/3_1/condities/CD007.xsl     |   23 +
 xslt-validatie/jw/3_1/condities/CD009.xsl     |   22 +
 xslt-validatie/jw/3_1/condities/CD025.xsl     |   23 +
 xslt-validatie/jw/3_1/condities/CD034.xsl     |   24 +
 xslt-validatie/jw/3_1/condities/CD041.xsl     |   47 +
 xslt-validatie/jw/3_1/condities/CD043.xsl     |   24 +
 xslt-validatie/jw/3_1/condities/CD060.xsl     |   36 +
 .../jw/{3_0 => 3_1}/condities/CD066.xsl       |   23 +-
 .../jw/{3_0 => 3_1}/condities/CD067.xsl       |   23 +-
 xslt-validatie/jw/3_1/condities/CD068.xsl     |   25 +
 .../jw/{3_0 => 3_1}/condities/CD075.xsl       |   35 +-
 xslt-validatie/jw/3_1/condities/CD076.xsl     |   53 +
 xslt-validatie/jw/3_1/condities/CD077.xsl     |   51 +
 xslt-validatie/jw/3_1/condities/CD078.xsl     |   51 +
 xslt-validatie/jw/3_1/condities/CD079.xsl     |   49 +
 xslt-validatie/jw/3_1/condities/CD080.xsl     |   28 +
 .../jw/{3_0 => 3_1}/condities/CD085.xsl       |   18 +-
 .../jw/{3_0 => 3_1}/condities/CD086.xsl       |   17 +-
 .../jw/{3_0 => 3_1}/condities/CD087.xsl       |   17 +-
 xslt-validatie/jw/3_1/condities/CD095.xsl     |   28 +
 xslt-validatie/jw/3_1/condities/CD096.xsl     |   41 +
 xslt-validatie/jw/3_1/constraints/CS002.xsl   |   19 +
 xslt-validatie/jw/3_1/constraints/CS003.xsl   |   59 +
 xslt-validatie/jw/3_1/constraints/CS050.xsl   |   30 +
 xslt-validatie/jw/3_1/constraints/CS058.xsl   |   28 +
 xslt-validatie/jw/3_1/constraints/CS089.xsl   |   23 +
 .../jw/{3_0 => 3_1}/constraints/CS100.xsl     |    8 +-
 .../TR097.xsl => 3_1/constraints/CS139.xsl}   |   18 +-
 .../jw/{3_0 => 3_1}/constraints/CS318.xsl     |   13 +-
 .../jw/{3_0 => 3_1}/constraints/CS325.xsl     |   10 +-
 xslt-validatie/jw/3_1/constraints/CS335.xsl   |   23 +
 xslt-validatie/jw/3_1/constraints/CS336.xsl   |   21 +
 xslt-validatie/jw/3_1/constraints/CS337.xsl   |   28 +
 xslt-validatie/jw/3_1/constraints/CS338.xsl   |   51 +
 xslt-validatie/jw/3_1/constraints/CS339.xsl   |   25 +
 .../TR368.xsl => 3_1/constraints/CS340.xsl}   |   28 +-
 xslt-validatie/jw/3_1/constraints/CS343.xsl   |   28 +
 .../jw/{3_0 => 3_1}/rules/TR002.xsl           |   11 +-
 xslt-validatie/jw/3_1/rules/TR006.xsl         |   34 +
 xslt-validatie/jw/3_1/rules/TR018.xsl         |   20 +
 xslt-validatie/jw/3_1/rules/TR061.xsl         |   25 +
 xslt-validatie/jw/3_1/rules/TR101.xsl         | 1391 +++++++++++++++++
 xslt-validatie/jw/3_1/rules/TR134.xsl         |   92 ++
 xslt-validatie/jw/3_1/rules/TR137.xsl         |   42 +
 xslt-validatie/jw/3_1/rules/TR302.xsl         |   80 +
 xslt-validatie/jw/3_1/rules/TR315.xsl         |   31 +
 xslt-validatie/jw/3_1/rules/TR316.xsl         |   51 +
 xslt-validatie/jw/3_1/rules/TR319.xsl         |   30 +
 xslt-validatie/jw/3_1/rules/TR335.xsl         |   24 +
 .../jw/{3_0 => 3_1}/rules/TR342.xsl           |   32 +-
 xslt-validatie/jw/3_1/rules/TR352.xsl         |   24 +
 xslt-validatie/jw/3_1/rules/TR353.xsl         |   24 +
 xslt-validatie/jw/3_1/rules/TR358.xsl         |   54 +
 xslt-validatie/jw/3_1/rules/TR377.xsl         |   22 +
 xslt-validatie/jw/3_1/rules/TR378.xsl         |   66 +
 xslt-validatie/jw/3_1/rules/TR380.xsl         |   22 +
 xslt-validatie/jw/3_1/rules/TR383.xsl         |   28 +
 xslt-validatie/jw/3_1/rules/TR386.xsl         |   54 +
 xslt-validatie/jw/3_1/rules/TR409.xsl         |   23 +
 xslt-validatie/jw/3_1/rules/TR410.xsl         |   53 +
 133 files changed, 3516 insertions(+), 2985 deletions(-)
 delete mode 100644 xslt-validatie/jw/3_0/JW303.xsl
 delete mode 100644 xslt-validatie/jw/3_0/JW304.xsl
 delete mode 100644 xslt-validatie/jw/3_0/JW319.xsl
 delete mode 100644 xslt-validatie/jw/3_0/all_merged.xsl
 delete mode 100644 xslt-validatie/jw/3_0/condities/CD005.xsl
 delete mode 100644 xslt-validatie/jw/3_0/condities/CD007.xsl
 delete mode 100644 xslt-validatie/jw/3_0/condities/CD009.xsl
 delete mode 100644 xslt-validatie/jw/3_0/condities/CD025.xsl
 delete mode 100644 xslt-validatie/jw/3_0/condities/CD034.xsl
 delete mode 100644 xslt-validatie/jw/3_0/condities/CD041.xsl
 delete mode 100644 xslt-validatie/jw/3_0/condities/CD043.xsl
 delete mode 100644 xslt-validatie/jw/3_0/condities/CD055.xsl
 delete mode 100644 xslt-validatie/jw/3_0/condities/CD056.xsl
 delete mode 100644 xslt-validatie/jw/3_0/condities/CD058.xsl
 delete mode 100644 xslt-validatie/jw/3_0/condities/CD059.xsl
 delete mode 100644 xslt-validatie/jw/3_0/condities/CD060.xsl
 delete mode 100644 xslt-validatie/jw/3_0/condities/CD062.xsl
 delete mode 100644 xslt-validatie/jw/3_0/condities/CD068.xsl
 delete mode 100644 xslt-validatie/jw/3_0/condities/CD076.xsl
 delete mode 100644 xslt-validatie/jw/3_0/condities/CD077.xsl
 delete mode 100644 xslt-validatie/jw/3_0/condities/CD078.xsl
 delete mode 100644 xslt-validatie/jw/3_0/condities/CD079.xsl
 delete mode 100644 xslt-validatie/jw/3_0/condities/CD080.xsl
 delete mode 100644 xslt-validatie/jw/3_0/condities/CD081.xsl
 delete mode 100644 xslt-validatie/jw/3_0/condities/CD088.xsl
 delete mode 100644 xslt-validatie/jw/3_0/constraints/CS002.xsl
 delete mode 100644 xslt-validatie/jw/3_0/constraints/CS003.xsl
 delete mode 100644 xslt-validatie/jw/3_0/constraints/CS023.xsl
 delete mode 100644 xslt-validatie/jw/3_0/constraints/CS050.xsl
 delete mode 100644 xslt-validatie/jw/3_0/constraints/CS058.xsl
 delete mode 100644 xslt-validatie/jw/3_0/constraints/CS089.xsl
 delete mode 100644 xslt-validatie/jw/3_0/constraints/CS102.xsl
 delete mode 100644 xslt-validatie/jw/3_0/constraints/CS103.xsl
 delete mode 100644 xslt-validatie/jw/3_0/constraints/CS104.xsl
 delete mode 100644 xslt-validatie/jw/3_0/constraints/CS108.xsl
 delete mode 100644 xslt-validatie/jw/3_0/constraints/CS323.xsl
 delete mode 100644 xslt-validatie/jw/3_0/constraints/CS324.xsl
 delete mode 100644 xslt-validatie/jw/3_0/constraints/CS327.xsl
 delete mode 100644 xslt-validatie/jw/3_0/constraints/CS328.xsl
 delete mode 100644 xslt-validatie/jw/3_0/constraints/CS330.xsl
 delete mode 100644 xslt-validatie/jw/3_0/constraints/CS331.xsl
 delete mode 100644 xslt-validatie/jw/3_0/rules/TR006.xsl
 delete mode 100644 xslt-validatie/jw/3_0/rules/TR018.xsl
 delete mode 100644 xslt-validatie/jw/3_0/rules/TR061.xsl
 delete mode 100644 xslt-validatie/jw/3_0/rules/TR101.xsl
 delete mode 100644 xslt-validatie/jw/3_0/rules/TR302.xsl
 delete mode 100644 xslt-validatie/jw/3_0/rules/TR312.xsl
 delete mode 100644 xslt-validatie/jw/3_0/rules/TR313.xsl
 delete mode 100644 xslt-validatie/jw/3_0/rules/TR314.xsl
 delete mode 100644 xslt-validatie/jw/3_0/rules/TR315.xsl
 delete mode 100644 xslt-validatie/jw/3_0/rules/TR316.xsl
 delete mode 100644 xslt-validatie/jw/3_0/rules/TR317.xsl
 delete mode 100644 xslt-validatie/jw/3_0/rules/TR319.xsl
 delete mode 100644 xslt-validatie/jw/3_0/rules/TR320.xsl
 delete mode 100644 xslt-validatie/jw/3_0/rules/TR335.xsl
 delete mode 100644 xslt-validatie/jw/3_0/rules/TR345.xsl
 delete mode 100644 xslt-validatie/jw/3_0/rules/TR352.xsl
 delete mode 100644 xslt-validatie/jw/3_0/rules/TR353.xsl
 delete mode 100644 xslt-validatie/jw/3_0/rules/TR358.xsl
 rename xslt-validatie/jw/{3_0 => 3_1}/JW301.xsl (73%)
 rename xslt-validatie/jw/{3_0 => 3_1}/JW305.xsl (66%)
 rename xslt-validatie/jw/{3_0 => 3_1}/JW307.xsl (68%)
 rename xslt-validatie/jw/{3_0 => 3_1}/JW315.xsl (56%)
 rename xslt-validatie/jw/{3_0 => 3_1}/JW317.xsl (52%)
 create mode 100644 xslt-validatie/jw/3_1/JW319.xsl
 rename xslt-validatie/jw/{3_0 => 3_1}/JW323.xsl (55%)
 rename xslt-validatie/jw/{3_0 => 3_1}/JW325.xsl (50%)
 rename xslt-validatie/jw/{3_0 => 3_1}/all.xsl (63%)
 create mode 100644 xslt-validatie/jw/3_1/all_merged.xsl
 rename xslt-validatie/jw/{3_0 => 3_1}/common/basis.xsl (63%)
 create mode 100644 xslt-validatie/jw/3_1/condities/CD005.xsl
 create mode 100644 xslt-validatie/jw/3_1/condities/CD007.xsl
 create mode 100644 xslt-validatie/jw/3_1/condities/CD009.xsl
 create mode 100644 xslt-validatie/jw/3_1/condities/CD025.xsl
 create mode 100644 xslt-validatie/jw/3_1/condities/CD034.xsl
 create mode 100644 xslt-validatie/jw/3_1/condities/CD041.xsl
 create mode 100644 xslt-validatie/jw/3_1/condities/CD043.xsl
 create mode 100644 xslt-validatie/jw/3_1/condities/CD060.xsl
 rename xslt-validatie/jw/{3_0 => 3_1}/condities/CD066.xsl (54%)
 rename xslt-validatie/jw/{3_0 => 3_1}/condities/CD067.xsl (54%)
 create mode 100644 xslt-validatie/jw/3_1/condities/CD068.xsl
 rename xslt-validatie/jw/{3_0 => 3_1}/condities/CD075.xsl (56%)
 create mode 100644 xslt-validatie/jw/3_1/condities/CD076.xsl
 create mode 100644 xslt-validatie/jw/3_1/condities/CD077.xsl
 create mode 100644 xslt-validatie/jw/3_1/condities/CD078.xsl
 create mode 100644 xslt-validatie/jw/3_1/condities/CD079.xsl
 create mode 100644 xslt-validatie/jw/3_1/condities/CD080.xsl
 rename xslt-validatie/jw/{3_0 => 3_1}/condities/CD085.xsl (54%)
 rename xslt-validatie/jw/{3_0 => 3_1}/condities/CD086.xsl (57%)
 rename xslt-validatie/jw/{3_0 => 3_1}/condities/CD087.xsl (57%)
 create mode 100644 xslt-validatie/jw/3_1/condities/CD095.xsl
 create mode 100644 xslt-validatie/jw/3_1/condities/CD096.xsl
 create mode 100644 xslt-validatie/jw/3_1/constraints/CS002.xsl
 create mode 100644 xslt-validatie/jw/3_1/constraints/CS003.xsl
 create mode 100644 xslt-validatie/jw/3_1/constraints/CS050.xsl
 create mode 100644 xslt-validatie/jw/3_1/constraints/CS058.xsl
 create mode 100644 xslt-validatie/jw/3_1/constraints/CS089.xsl
 rename xslt-validatie/jw/{3_0 => 3_1}/constraints/CS100.xsl (82%)
 rename xslt-validatie/jw/{3_0/rules/TR097.xsl => 3_1/constraints/CS139.xsl} (79%)
 rename xslt-validatie/jw/{3_0 => 3_1}/constraints/CS318.xsl (63%)
 rename xslt-validatie/jw/{3_0 => 3_1}/constraints/CS325.xsl (88%)
 create mode 100644 xslt-validatie/jw/3_1/constraints/CS335.xsl
 create mode 100644 xslt-validatie/jw/3_1/constraints/CS336.xsl
 create mode 100644 xslt-validatie/jw/3_1/constraints/CS337.xsl
 create mode 100644 xslt-validatie/jw/3_1/constraints/CS338.xsl
 create mode 100644 xslt-validatie/jw/3_1/constraints/CS339.xsl
 rename xslt-validatie/jw/{3_0/rules/TR368.xsl => 3_1/constraints/CS340.xsl} (59%)
 create mode 100644 xslt-validatie/jw/3_1/constraints/CS343.xsl
 rename xslt-validatie/jw/{3_0 => 3_1}/rules/TR002.xsl (64%)
 create mode 100644 xslt-validatie/jw/3_1/rules/TR006.xsl
 create mode 100644 xslt-validatie/jw/3_1/rules/TR018.xsl
 create mode 100644 xslt-validatie/jw/3_1/rules/TR061.xsl
 create mode 100644 xslt-validatie/jw/3_1/rules/TR101.xsl
 create mode 100644 xslt-validatie/jw/3_1/rules/TR134.xsl
 create mode 100644 xslt-validatie/jw/3_1/rules/TR137.xsl
 create mode 100644 xslt-validatie/jw/3_1/rules/TR302.xsl
 create mode 100644 xslt-validatie/jw/3_1/rules/TR315.xsl
 create mode 100644 xslt-validatie/jw/3_1/rules/TR316.xsl
 create mode 100644 xslt-validatie/jw/3_1/rules/TR319.xsl
 create mode 100644 xslt-validatie/jw/3_1/rules/TR335.xsl
 rename xslt-validatie/jw/{3_0 => 3_1}/rules/TR342.xsl (66%)
 create mode 100644 xslt-validatie/jw/3_1/rules/TR352.xsl
 create mode 100644 xslt-validatie/jw/3_1/rules/TR353.xsl
 create mode 100644 xslt-validatie/jw/3_1/rules/TR358.xsl
 create mode 100644 xslt-validatie/jw/3_1/rules/TR377.xsl
 create mode 100644 xslt-validatie/jw/3_1/rules/TR378.xsl
 create mode 100644 xslt-validatie/jw/3_1/rules/TR380.xsl
 create mode 100644 xslt-validatie/jw/3_1/rules/TR383.xsl
 create mode 100644 xslt-validatie/jw/3_1/rules/TR386.xsl
 create mode 100644 xslt-validatie/jw/3_1/rules/TR409.xsl
 create mode 100644 xslt-validatie/jw/3_1/rules/TR410.xsl

diff --git a/README.md b/README.md
index 47a7f96..1299ff8 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 ef2e532..3b3c375 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 c7c1728..0000000
--- 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 6c607d7..0000000
--- 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 2603335..0000000
--- 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 32a5a4b..0000000
--- 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 c8efbfb..0000000
--- 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 7703359..0000000
--- 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 93da704..0000000
--- 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 371d613..0000000
--- 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 9381bb5..0000000
--- 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 eaf60bd..0000000
--- 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 ce0c4be..0000000
--- 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 7659289..0000000
--- 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 c1ba27b..0000000
--- 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 6b10cac..0000000
--- 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 1322b76..0000000
--- 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 26baa21..0000000
--- 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 5aadabb..0000000
--- 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 9b31d3f..0000000
--- 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 9100799..0000000
--- 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 4879a2c..0000000
--- 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 060704e..0000000
--- 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 e373eff..0000000
--- 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 2afadc2..0000000
--- 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 c330b35..0000000
--- 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 f6a7a60..0000000
--- 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 9a2b4be..0000000
--- 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 73b4e25..0000000
--- 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 15167bf..0000000
--- 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 1b849bf..0000000
--- 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 731719a..0000000
--- 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 8ccc0c6..0000000
--- 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 7e9083d..0000000
--- 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 2c18c56..0000000
--- 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 a8c2efe..0000000
--- 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 4460ec6..0000000
--- 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 94f32cc..0000000
--- 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 a1168d7..0000000
--- 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 62e7cf8..0000000
--- 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 b577319..0000000
--- 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 e90ba5d..0000000
--- 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 3af2c7d..0000000
--- 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 ae85acd..0000000
--- 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 9123a3a..0000000
--- 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 0a20a44..0000000
--- 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 d1ac802..0000000
--- 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 1718ce0..0000000
--- 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 3cbee9c..0000000
--- 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 3b5a310..0000000
--- 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 a54b242..0000000
--- 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 0fe2e8e..0000000
--- 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 ba0702e..0000000
--- 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 f4553c9..0000000
--- 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 a20f0f9..0000000
--- 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 a742690..0000000
--- 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 63f51fb..0000000
--- 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 a7711a0..0000000
--- 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 a456e8e..0000000
--- 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 a2a6c1a..0000000
--- 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 e9e9edb..0000000
--- 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 ea15b73..442cb00 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 d186af2..017c6cb 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 09ee56f..93c8bbb 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 85964d7..04f0e6b 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 a2670c6..c14ee69 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 0000000..205e789
--- /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 17a9574..854dc01 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 02d993d..0900c30 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 2bdab0a..4400da6 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 0000000..74baab9
--- /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 b7b918f..a265b13 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 0000000..1bb375e
--- /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 0000000..6c6be22
--- /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 0000000..54e4063
--- /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 0000000..deabf32
--- /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 0000000..bf4ba4d
--- /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 0000000..377bf77
--- /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 0000000..218b558
--- /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 0000000..b6a6b6a
--- /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 3ed50e9..4ab79b8 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 bf81a7f..8d2507d 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 0000000..ccb9efb
--- /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 d724a4b..d6f8b15 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 0000000..1f9ce5b
--- /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 0000000..305fc2c
--- /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 0000000..7dcd4e5
--- /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 0000000..26e5670
--- /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 0000000..927a810
--- /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 532d746..7921308 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 8653439..357c768 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 ef814ff..917d930 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 0000000..1782d6c
--- /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 0000000..9f6352d
--- /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 0000000..59af48f
--- /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 0000000..2cf106e
--- /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 0000000..0fa362f
--- /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 0000000..97ac7b5
--- /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 0000000..9e7b6c2
--- /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 d412381..f15ce93 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 863382b..faced57 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 6a8982b..db3befd 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 029a2ed..87e21b5 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 0000000..dd3fd9f
--- /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 0000000..49b2bd8
--- /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 0000000..d65065c
--- /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 0000000..7543cd7
--- /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 0000000..0365716
--- /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 8f855bb..b2e7ae1 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 0000000..ffa5f83
--- /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 3d6651b..b4143a8 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 0000000..7d6e728
--- /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 0000000..a8a4140
--- /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 0000000..fb0146c
--- /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 0000000..2171cce
--- /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 0000000..a47446c
--- /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 0000000..c69b606
--- /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 0000000..f1b40f1
--- /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 0000000..5dddbcc
--- /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 0000000..b5e4efb
--- /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 0000000..dba1647
--- /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 0000000..53fc9de
--- /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 8b97ebb..8957a2d 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 0000000..09069ac
--- /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 0000000..17b600b
--- /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 0000000..320a73e
--- /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 0000000..3b6dfae
--- /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 0000000..bf86e12
--- /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 0000000..6fe974e
--- /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 0000000..b740f50
--- /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 0000000..9b91deb
--- /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 0000000..2fffaf0
--- /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 0000000..fbf0f08
--- /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>
-- 
GitLab