diff --git a/src/xproc/publish.xpl b/src/xproc/publish.xpl
index 6b88fa327944673c670b92ee85954093af6b4949..23fe8484d36d96857f369fdb93383ce7e5a0f9b7 100644
--- a/src/xproc/publish.xpl
+++ b/src/xproc/publish.xpl
@@ -8,10 +8,22 @@
 
   <p:serialization port="result" indent="true"/>
 
+  <p:validate-with-schematron name="validate-kitodo">
+    <p:input port="source">
+      <p:pipe step="main" port="source"/>
+    </p:input>
+    <p:input port="schema">
+      <p:document href="../schema/kitodo.sch"/>
+    </p:input>
+    <p:input port="parameters">
+      <p:empty/>
+    </p:input>
+  </p:validate-with-schematron>
+
   <p:xslt name="normalize">
     <p:with-param name="objectId" select="$objectId"/>
     <p:input port="source">
-      <p:pipe step="main" port="source"/>
+      <p:pipe step="validate-kitodo" port="result"/>
     </p:input>
     <p:input port="stylesheet">
       <p:document href="../xslt/mets.xsl"/>