{"record":{"id":"19f6dbe5572504e5","repo":"pentaho/pentaho-kettle","slug":"xsdvalidator-exception-errorresultfieldmissing","errorCode":null,"errorMessage":"XsdValidator.Exception.ErrorResultFieldMissing","messagePattern":"XsdValidator\\.Exception\\.ErrorResultFieldMissing","errorType":"exception","errorClass":"KettleStepException","httpStatus":null,"severity":"error","filePath":"plugins/xml/core/src/main/java/org/pentaho/di/trans/steps/xsdvalidator/XsdValidator.java","lineNumber":103,"sourceCode":"\n      // Check if XML stream is given\n      if ( meta.getXMLStream() != null ) {\n        // Try to get XML Field index\n        data.xmlindex = getInputRowMeta().indexOfValue( meta.getXMLStream() );\n        // Let's check the Field\n        if ( data.xmlindex < 0 ) {\n          // The field is unreachable !\n          logError( BaseMessages.getString( PKG, \"XsdValidator.Log.ErrorFindingField\" ) + \"[\" + meta.getXMLStream()\n              + \"]\" );\n          throw new KettleStepException( BaseMessages.getString( PKG, \"XsdValidator.Exception.CouldnotFindField\", meta\n              .getXMLStream() ) );\n        }\n\n        // Let's check that Result Field is given\n        if ( meta.getResultfieldname() == null ) {\n          // Result field is missing !\n          logError( BaseMessages.getString( PKG, \"XsdValidator.Log.ErrorResultFieldMissing\" ) );\n          throw new KettleStepException( BaseMessages.getString( PKG, \"XsdValidator.Exception.ErrorResultFieldMissing\" ) );\n        }\n\n        // Is XSD file is provided?\n        if ( meta.getXSDSource().equals( meta.SPECIFY_FILENAME ) ) {\n          if ( meta.getXSDFilename() == null ) {\n            logError( BaseMessages.getString( PKG, \"XsdValidator.Log.ErrorXSDFileMissing\" ) );\n            throw new KettleStepException( BaseMessages.getString( PKG, \"XsdValidator.Exception.ErrorXSDFileMissing\" ) );\n          } else {\n            // Is XSD file exists ?\n            FileObject xsdfile = null;\n            try {\n              xsdfile = KettleVFS.getInstance( getTransMeta().getBowl() ).getFileObject( environmentSubstitute( meta.getXSDFilename() ), getTransMeta() );\n              if ( !xsdfile.exists() ) {\n                logError( BaseMessages.getString( PKG, \"XsdValidator.Log.Error.XSDFileNotExists\" ) );\n                throw new KettleStepException( BaseMessages.getString( PKG, \"XsdValidator.Exception.XSDFileNotExists\" ) );\n              }\n\n            } catch ( Exception e ) {","sourceCodeStart":85,"sourceCodeEnd":121,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/plugins/xml/core/src/main/java/org/pentaho/di/trans/steps/xsdvalidator/XsdValidator.java#L85-L121","documentation":"XsdValidator.processRow requires a result field name in which to store the validation outcome (true/false). If meta.getResultfieldname() is null, it logs and throws this localized KettleStepException. This is a step configuration error detected at runtime before any row processing.","triggerScenarios":"processRow on the first row when the 'Result fieldname' was never set in the XSD Validator step dialog (empty/blank field name).","commonSituations":"Freshly added XSD Validator step configured with only the XML and XSD fields but the result field left blank; result field cleared during a dialog edit.","solutions":["Open the XSD Validator step and set the 'Result fieldname' (e.g. result)","Re-save and re-run the transformation","Verify with the step's check/test that the configuration is complete"],"exampleFix":"// before\n<Resultfieldname/>\n// after\n<Resultfieldname>validation_result</Resultfieldname>","handlingStrategy":"validation","validationCode":"if (meta.getResultfieldname() == null || meta.getResultfieldname().isEmpty()) throw new IllegalStateException(\"XSD Validator result fieldname not set\");","typeGuard":"boolean resultFieldSet = meta.getResultfieldname() != null && !meta.getResultfieldname().trim().isEmpty();","tryCatchPattern":"try { step.init(); step.processRow(); } catch (KettleStepException e) { log.error(\"Configure the XSD Validator result fieldname\", e); }","preventionTips":["Fill in all required dialog fields before saving the step","Use the step's check results to catch blank required settings","Standardize result field names across transformations","Review step config when copying steps between transformations"],"tags":["kettle","xsd","validation","config"],"backgroundTag":"missing-required-argument","analyzedSha":"f3058517a153da500bf4551f46d79b91bf8ec552","analyzedAt":"2026-09-13T14:04:16.340Z","contentChangedAt":"2026-09-13T14:04:16.340Z","schemaVersion":2},"datasetVersion":"2026-09-20T23:17:15.980Z"}