diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/impl/BooleanBoundary.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/impl/BooleanBoundary.java
index 634f867459b0c6bfb88e0ce51fcd20cce26cfdf5..b8ba1308f5adfa4634dc6e9ba24b9cf9847db777 100644
--- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/impl/BooleanBoundary.java
+++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/impl/BooleanBoundary.java
@@ -31,14 +31,12 @@ public class BooleanBoundary extends AbstractGrowingBoundary<Boolean> {
     if (text.trim().isEmpty()) {
       lowerBound = getMinValue();
       upperBound = getMaxValue();
-    }
-    if (TRUE_STRING.equals(text.toLowerCase())) {
+    } else if (TRUE_STRING.equals(text.toLowerCase())) {
       lowerBound = upperBound = getMaxValue();
-    }
-    if (FALSE_STRING.equals(text.toLowerCase())) {
+    } else if (FALSE_STRING.equals(text.toLowerCase())) {
       lowerBound = upperBound = getMinValue();
     } else {
-      throw new BoundaryParseException("Boolean value cloud not be parsed. " + text);
+      throw new BoundaryParseException("Boolean value cloud not be parsed: " + text);
     }
   }
 }
diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/impl/DateBoundary.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/impl/DateBoundary.java
index 9075ea9475ad775111ef60f0450540814ac644b0..3ffd379c1201b0e0ee08b18d202ee444bf731f26 100644
--- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/impl/DateBoundary.java
+++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/impl/DateBoundary.java
@@ -96,7 +96,7 @@ public class DateBoundary extends AbstractGrowingBoundary<LocalDateTime> {
         throw new IllegalArgumentException();
       }
     } catch (Exception e) {
-      throw new BoundaryParseException("Date value " + text + " couldn't be parsed.");
+      throw new BoundaryParseException("Date value " + this.getText() + " couldn't be parsed.");
     }
   }
 }
diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/impl/DoubleBoundary.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/impl/DoubleBoundary.java
index 7dfc6f21c60ba2ca97bf4f7691334c02344d7074..3d1acde6ee8464482951d0c812ec5c93868faeaf 100644
--- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/impl/DoubleBoundary.java
+++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/impl/DoubleBoundary.java
@@ -62,7 +62,8 @@ public class DoubleBoundary extends AbstractGrowingBoundary<Double> {
       }
     } catch (Exception e) {
       throw new BoundaryParseException(
-          String.format("Parsing boundary failed: %s. Exception: %s", text, e.getMessage()));
+          String.format(
+              "Parsing Double boundary failed: %s. Exception: %s", this.getText(), e.getMessage()));
     }
   }
 }
diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/impl/IntegerBoundary.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/impl/IntegerBoundary.java
index 18156bf2aeb9e7793666167f97f9ccae1ee4f8be..b2d5a7905edaa1c587a4bce5b64c09e8bd4c0963 100644
--- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/impl/IntegerBoundary.java
+++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/impl/IntegerBoundary.java
@@ -62,7 +62,9 @@ public class IntegerBoundary extends AbstractGrowingBoundary<Integer> {
       }
     } catch (Exception e) {
       throw new BoundaryParseException(
-          String.format("Parsing boundary failed: %s. Exception: %s", text, e.getMessage()));
+          String.format(
+              "Parsing Integer boundary failed: %s. Exception: %s",
+              this.getText(), e.getMessage()));
     }
     simplifyBound();
   }
diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/impl/InvalidBoundary.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/impl/InvalidBoundary.java
new file mode 100644
index 0000000000000000000000000000000000000000..31a98ec19c0021fa91656fddd5b9fc79d8771461
--- /dev/null
+++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/impl/InvalidBoundary.java
@@ -0,0 +1,36 @@
+package de.unikoblenz.fgbks.base.utils.boundary.impl;
+
+import de.unikoblenz.fgbks.base.utils.boundary.Boundary;
+import de.unikoblenz.fgbks.base.utils.boundary.checker.BoundaryCheckType;
+import de.unikoblenz.fgbks.core.dmn.domain.vdmn.VTypeRef;
+
+public class InvalidBoundary implements Boundary {
+
+  private static InvalidBoundary instance = new InvalidBoundary();
+
+  private InvalidBoundary() {}
+
+  public static InvalidBoundary getInstance() {
+    return instance;
+  }
+
+  @Override
+  public VTypeRef getTypeRef() {
+    return null;
+  }
+
+  @Override
+  public String getText() {
+    return "null";
+  }
+
+  @Override
+  public boolean checkWith(BoundaryCheckType checkType, Boundary other) {
+    return false;
+  }
+
+  @Override
+  public int compareTo(Boundary o) {
+    return 0;
+  }
+}
diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/impl/LongBoundary.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/impl/LongBoundary.java
index f449c3058a42577b4afc87f14edfa2bded477c7d..162c040494c46f934649e15bcb15ec3619374152 100644
--- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/impl/LongBoundary.java
+++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/impl/LongBoundary.java
@@ -62,7 +62,8 @@ public class LongBoundary extends AbstractGrowingBoundary<Long> {
       }
     } catch (Exception e) {
       throw new BoundaryParseException(
-          String.format("Parsing boundary failed: %s. Exception: %s", text, e.getMessage()));
+          String.format(
+              "Parsing Long boundary failed: %s. Exception: %s", this.getText(), e.getMessage()));
     }
     simplifyBound();
   }
diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/impl/StringBoundary.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/impl/StringBoundary.java
index 84b4254ad217bf43259b606fc0eb4c2b96418928..2041c38d8e998ecba2f2aa1c968c6889eac85cba 100644
--- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/impl/StringBoundary.java
+++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/base/utils/boundary/impl/StringBoundary.java
@@ -2,6 +2,7 @@ package de.unikoblenz.fgbks.base.utils.boundary.impl;
 
 import de.unikoblenz.fgbks.base.utils.boundary.AbstractBoundary;
 import de.unikoblenz.fgbks.base.utils.boundary.Boundary;
+import de.unikoblenz.fgbks.base.utils.boundary.BoundaryParseException;
 import de.unikoblenz.fgbks.base.utils.boundary.checker.BoundaryCheck;
 import de.unikoblenz.fgbks.base.utils.boundary.checker.BoundaryCheckType;
 import java.util.Arrays;
@@ -28,19 +29,26 @@ public class StringBoundary extends AbstractBoundary<String> {
   @Override
   protected void parse(String text) {
     matchNoneOfValues = false;
-    matchAny = Validate.notNull(text).isEmpty();
-    if (!matchAny) {
-      matchNoneOfValues = text.toLowerCase().startsWith("not");
-      text = text.replace('(', '\0').replace(')', '\0').trim();
-      if (matchNoneOfValues) {
-        text = text.replaceFirst("not", "").trim();
-      }
-      values = text.split(",");
-      valuesHashes = new int[values.length];
-      for (int i = 0; i < values.length; i++) {
-        values[i] = values[i].replace('"', '\0').trim();
-        valuesHashes[i] = Objects.hashCode(values[i]);
+    matchAny = false;
+    try {
+      matchAny = Validate.notNull(text).isEmpty();
+      if (matchAny) {
+        values = new String[0];
+      } else {
+        matchNoneOfValues = text.toLowerCase().startsWith("not");
+        text = text.replace('(', '\0').replace(')', '\0').trim();
+        if (matchNoneOfValues) {
+          text = text.replaceFirst("not", "").trim();
+        }
+        values = text.split(",");
+        valuesHashes = new int[values.length];
+        for (int i = 0; i < values.length; i++) {
+          values[i] = values[i].replace('"', '\0').trim();
+          valuesHashes[i] = Objects.hashCode(values[i]);
+        }
       }
+    } catch (Exception e) {
+      throw new BoundaryParseException("String value is not valid: " + this.getText());
     }
   }
 
@@ -51,7 +59,7 @@ public class StringBoundary extends AbstractBoundary<String> {
 
   @Override
   protected HashMap<BoundaryCheckType, BoundaryCheck> getChecker() {
-    return null;
+    return new HashMap<>();
   }
 
   @Override
diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/VTypeRef.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/VTypeRef.java
index c01c662eae205e6bb473f0e7c68e6485a9f8c2e1..bd284bf3bab50e3611f014ba20868f761843f693 100644
--- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/VTypeRef.java
+++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/domain/vdmn/VTypeRef.java
@@ -5,6 +5,7 @@ import de.unikoblenz.fgbks.base.utils.boundary.impl.BooleanBoundary;
 import de.unikoblenz.fgbks.base.utils.boundary.impl.DateBoundary;
 import de.unikoblenz.fgbks.base.utils.boundary.impl.DoubleBoundary;
 import de.unikoblenz.fgbks.base.utils.boundary.impl.IntegerBoundary;
+import de.unikoblenz.fgbks.base.utils.boundary.impl.InvalidBoundary;
 import de.unikoblenz.fgbks.base.utils.boundary.impl.LongBoundary;
 import de.unikoblenz.fgbks.base.utils.boundary.impl.StringBoundary;
 import java.time.LocalDateTime;
@@ -52,9 +53,8 @@ public enum VTypeRef {
     try {
       return Optional.of(boundaryClass.getDeclaredConstructor(String.class).newInstance(text));
     } catch (Exception ignored) {
-      // nothing
+      return Optional.of(InvalidBoundary.getInstance());
     }
-    return Optional.empty();
   }
 
   VTypeRef(String name, Class<?> javaClass, Class<? extends Boundary> boundaryClass) {
diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/impl/InputValueSyntaxVerifier.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/impl/InputValueSyntaxVerifier.java
new file mode 100644
index 0000000000000000000000000000000000000000..fc690546cbdd848834bce6a27f88552ddafcf345
--- /dev/null
+++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/impl/InputValueSyntaxVerifier.java
@@ -0,0 +1,39 @@
+package de.unikoblenz.fgbks.core.dmn.verification.verifier.impl;
+
+import de.unikoblenz.fgbks.base.utils.boundary.impl.InvalidBoundary;
+import de.unikoblenz.fgbks.core.dmn.domain.vdmn.VDmnInputValue;
+import de.unikoblenz.fgbks.core.dmn.domain.vdmn.VTypeRef;
+import de.unikoblenz.fgbks.core.dmn.verification.result.VerificationResultEntry.VerificationClassification;
+import de.unikoblenz.fgbks.core.dmn.verification.result.VerificationResultEntryElement;
+import de.unikoblenz.fgbks.core.dmn.verification.verifier.AbstractVerifier;
+import de.unikoblenz.fgbks.core.dmn.verification.verifier.DmnVerifier;
+import de.unikoblenz.fgbks.core.dmn.verification.verifier.config.DefaultConfiguration;
+import de.unikoblenz.fgbks.core.dmn.verification.verifier.types.InputValueSyntaxVerification;
+
+@DmnVerifier(
+    verifierType = InputValueSyntaxVerification.class,
+    verifierConfig = DefaultConfiguration.class)
+public class InputValueSyntaxVerifier extends AbstractVerifier {
+
+  @Override
+  protected void doVerification() {
+    dmnObjectContainer.getvDmnDefinition().getDmnDecisions().stream()
+        .flatMap(
+            d ->
+                d.getDmnDecisionTable().getRules().stream()
+                    .flatMap(r -> r.getDmnInputValues().stream()))
+        .forEach(v -> check(v));
+  }
+
+  private void check(VDmnInputValue inputValue) {
+    // no Date, because of extra DateVerifier
+    if (inputValue.getDmnColumn().getTypeRef() != VTypeRef.DATE
+        && inputValue.getBoundary() instanceof InvalidBoundary) {
+      vref.addElement(VerificationResultEntryElement.create(inputValue));
+      vref.addToEntry(
+          VerificationClassification.FATAL_ERROR,
+          "Input value is not valid: " + inputValue.getText());
+      System.out.println(inputValue.getText() + " IS INVALID SYNTAX");
+    }
+  }
+}
diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/types/EmptyOutputVerification.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/types/EmptyOutputVerification.java
index 6866dfed8d00a011c3f00beb60f36aef9f7bdec2..b34199f759a289bea89214af2e4bba6620693ebb 100644
--- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/types/EmptyOutputVerification.java
+++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/types/EmptyOutputVerification.java
@@ -2,16 +2,17 @@ package de.unikoblenz.fgbks.core.dmn.verification.verifier.types;
 
 import de.unikoblenz.fgbks.base.domain.Description;
 import de.unikoblenz.fgbks.base.domain.Name;
+import javax.validation.constraints.NotNull;
 
 public class EmptyOutputVerification extends AbstractVerificationType {
 
   @Override
-  public VerificationTypeClassification getClassification() {
+  public @NotNull VerificationTypeClassification getClassification() {
     return VerificationTypeClassification.SYNTAX_LEVEL_VERIFICATION;
   }
 
   @Override
-  public Name getName() {
+  public @NotNull Name getName() {
     return new Name("Empty output check");
   }
 
diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/types/IdenticalBusinessRuleVerification.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/types/IdenticalBusinessRuleVerification.java
index 647f92db3b04d915f4771ad034626513f63cee41..cb5dcebd494434a5aef53566de54e8dc6730f9d6 100644
--- a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/types/IdenticalBusinessRuleVerification.java
+++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/types/IdenticalBusinessRuleVerification.java
@@ -1,24 +1,25 @@
 package de.unikoblenz.fgbks.core.dmn.verification.verifier.types;
 
-import static de.unikoblenz.fgbks.core.dmn.verification.verifier.types.VerificationTypeClassification.*;
+import static de.unikoblenz.fgbks.core.dmn.verification.verifier.types.VerificationTypeClassification.DECISION_LOGIC_LEVEL_VERIFICATION;
 
 import de.unikoblenz.fgbks.base.domain.Description;
 import de.unikoblenz.fgbks.base.domain.Name;
+import javax.validation.constraints.NotNull;
 
 public class IdenticalBusinessRuleVerification extends AbstractVerificationType {
 
   @Override
-  public VerificationTypeClassification getClassification() {
+  public @NotNull VerificationTypeClassification getClassification() {
     return DECISION_LOGIC_LEVEL_VERIFICATION;
   }
 
   @Override
-  public Name getName() {
+  public @NotNull Name getName() {
     return new Name(this.getClass().getSimpleName());
   }
 
   @Override
-  public Description getDescription() {
+  public @NotNull Description getDescription() {
     return new Description("test");
   }
 }
diff --git a/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/types/InputValueSyntaxVerification.java b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/types/InputValueSyntaxVerification.java
new file mode 100644
index 0000000000000000000000000000000000000000..fb9aeeac682945c6b8b3cbe6d980277ecc5921f0
--- /dev/null
+++ b/dmnverifierapi/src/main/java/de/unikoblenz/fgbks/core/dmn/verification/verifier/types/InputValueSyntaxVerification.java
@@ -0,0 +1,23 @@
+package de.unikoblenz.fgbks.core.dmn.verification.verifier.types;
+
+import de.unikoblenz.fgbks.base.domain.Description;
+import de.unikoblenz.fgbks.base.domain.Name;
+import javax.validation.constraints.NotNull;
+
+public class InputValueSyntaxVerification extends AbstractVerificationType {
+
+  @Override
+  public @NotNull VerificationTypeClassification getClassification() {
+    return VerificationTypeClassification.SYNTAX_LEVEL_VERIFICATION;
+  }
+
+  @Override
+  public @NotNull Name getName() {
+    return new Name(this.getClass().getSimpleName());
+  }
+
+  @Override
+  public @NotNull Description getDescription() {
+    return new Description("Check values for syntactical correctness.");
+  }
+}