--- /dev/null
+{{# def.definitions }}
+{{# def.errors }}
+{{# def.setupKeyword }}
+{{# def.$data }}
+
+{{
+ var $i = 'i' + $lvl
+ , $vSchema = 'schema' + $lvl;
+}}
+
+{{? !$isData }}
+ var {{=$vSchema}} = validate.schema{{=$schemaPath}};
+{{?}}
+var {{=$valid}};
+
+{{?$isData}}{{# def.check$dataIsArray }}{{?}}
+
+{{=$valid}} = false;
+
+for (var {{=$i}}=0; {{=$i}}<{{=$vSchema}}.length; {{=$i}}++)
+ if (equal({{=$data}}, {{=$vSchema}}[{{=$i}}])) {
+ {{=$valid}} = true;
+ break;
+ }
+
+{{? $isData }} } {{?}}
+
+{{# def.checkError:'enum' }}
+
+{{? $breakOnError }} else { {{?}}