diff --git a/src/caoscrawler/validator.py b/src/caoscrawler/validator.py
index 1663aa460ba817d63dce5aa2e5d814935f622be5..5610470389580d8f11c9782a63023da1c98f5ef8 100644
--- a/src/caoscrawler/validator.py
+++ b/src/caoscrawler/validator.py
@@ -71,25 +71,20 @@ def representer_ordereddict(dumper, data):
     return dumper.represent_data(dict(data))
 
 
-def convert_record(record: db.Record):
+def apply_schema_patches(pobj: dict):
     """
-    Convert a record into a form suitable for validation with jsonschema.
-
-    Uses high_level_api.convert_to_python_object
-
     Changes applied:
     - properties are moved vom subitem "proeprties" to top-level.
     - The following keys are deleted: parents, role, name, description, metadata, properties
-
-    Arguments:
-    ----------
-    record: db.Record
-      The record that is supposed to be converted.
     """
-    pobj = convert_to_python_object(record).serialize()
-
+    if "properties" not in pobj:
+        # this is probably a file
+        return pobj
     for prop in pobj["properties"]:
-        pobj[prop] = pobj["properties"][prop]
+        if isinstance(pobj["properties"][prop], dict):
+            pobj[prop] = apply_schema_patches(pobj["properties"][prop])
+        else:
+            pobj[prop] = pobj["properties"][prop]
 
     for keyd in ("parents", "role", "name",
                  "description", "metadata", "properties"):
@@ -99,6 +94,23 @@ def convert_record(record: db.Record):
     return pobj
 
 
+def convert_record(record: db.Record):
+    """
+    Convert a record into a form suitable for validation with jsonschema.
+
+    Uses high_level_api.convert_to_python_object
+    Afterwards apply_schema_patches is called recursively to refactor the dictionary
+    to match the current form of the jsonschema.
+
+    Arguments:
+    ----------
+    record: db.Record
+      The record that is supposed to be converted.
+    """
+    pobj = convert_to_python_object(record).serialize()
+    return apply_schema_patches(pobj)
+
+
 def validate(records: list[db.Record], schemas: list[dict]) -> list[tuple[bool, list]]:
     """
     Validate a list of records against a list of possible JSON schemas.