| {{# def.definitions }} | 
| {{# def.errors }} | 
| {{# def.setupKeyword }} | 
| {{# def.setupNextLevel }} | 
|   | 
| {{ | 
|   var $currentBaseId = $it.baseId | 
|     , $prevValid = 'prevValid' + $lvl | 
|     , $passingSchemas = 'passingSchemas' + $lvl; | 
| }} | 
|   | 
| var {{=$errs}} = errors | 
|   , {{=$prevValid}} = false | 
|   , {{=$valid}} = false | 
|   , {{=$passingSchemas}} = null; | 
|   | 
| {{# def.setCompositeRule }} | 
|   | 
| {{~ $schema:$sch:$i }} | 
|   {{? {{# def.nonEmptySchema:$sch }} }} | 
|     {{ | 
|       $it.schema = $sch; | 
|       $it.schemaPath = $schemaPath + '[' + $i + ']'; | 
|       $it.errSchemaPath = $errSchemaPath + '/' + $i; | 
|     }} | 
|   | 
|     {{# def.insertSubschemaCode }} | 
|   {{??}} | 
|     var {{=$nextValid}} = true; | 
|   {{?}} | 
|   | 
|   {{? $i }} | 
|     if ({{=$nextValid}} && {{=$prevValid}}) { | 
|       {{=$valid}} = false; | 
|       {{=$passingSchemas}} = [{{=$passingSchemas}}, {{=$i}}]; | 
|     } else { | 
|     {{ $closingBraces += '}'; }} | 
|   {{?}} | 
|   | 
|     if ({{=$nextValid}}) { | 
|       {{=$valid}} = {{=$prevValid}} = true; | 
|       {{=$passingSchemas}} = {{=$i}}; | 
|     } | 
| {{~}} | 
|   | 
| {{# def.resetCompositeRule }} | 
|   | 
| {{= $closingBraces }} | 
|   | 
| if (!{{=$valid}}) { | 
|   {{# def.extraError:'oneOf' }} | 
| } else { | 
|   {{# def.resetErrors }} | 
| {{? it.opts.allErrors }} } {{?}} |