{"record":{"id":"d7a803cecc376aa9","repo":"pentaho/pentaho-kettle","slug":"unable-to-load-job-entry-of-type-xsdvalidator-from-xml-node","errorCode":null,"errorMessage":"Unable to load job entry of type 'xsdvalidator' from XML node","messagePattern":"Unable to load job entry of type 'xsdvalidator' from XML node","errorType":"exception","errorClass":"KettleXMLException","httpStatus":null,"severity":"error","filePath":"plugins/xml/core/src/main/java/org/pentaho/di/job/entries/xsdvalidator/JobEntryXSDValidator.java","lineNumber":120,"sourceCode":"\n    retval.append( super.getXML() );\n    retval.append( \"      \" ).append( XMLHandler.addTagValue( \"xmlfilename\", xmlfilename ) );\n    retval.append( \"      \" ).append( XMLHandler.addTagValue( \"xsdfilename\", xsdfilename ) );\n    retval.append( \"      \" ).append( XMLHandler.addTagValue( \"allowExternalEntities\", allowExternalEntities ) );\n\n    return retval.toString();\n  }\n\n  public void loadXML( Node entrynode, List<DatabaseMeta> databases, List<SlaveServer> slaveServers, Repository rep,\n      IMetaStore metaStore ) throws KettleXMLException {\n    try {\n      super.loadXML( entrynode, databases, slaveServers );\n      xmlfilename = XMLHandler.getTagValue( entrynode, \"xmlfilename\" );\n      xsdfilename = XMLHandler.getTagValue( entrynode, \"xsdfilename\" );\n      allowExternalEntities = YES.equalsIgnoreCase( XMLHandler.getTagValue( entrynode, \"allowExternalEntities\" ) );\n\n    } catch ( KettleXMLException xe ) {\n      throw new KettleXMLException( \"Unable to load job entry of type 'xsdvalidator' from XML node\", xe );\n    }\n  }\n\n  public void loadRep( Repository rep, IMetaStore metaStore, ObjectId id_jobentry, List<DatabaseMeta> databases,\n      List<SlaveServer> slaveServers ) throws KettleException {\n    try {\n      xmlfilename = rep.getJobEntryAttributeString( id_jobentry, \"xmlfilename\" );\n      xsdfilename = rep.getJobEntryAttributeString( id_jobentry, \"xsdfilename\" );\n      allowExternalEntities =\n        Boolean.parseBoolean( rep.getJobEntryAttributeString( id_jobentry, \"allowExternalEntities\" ) );\n    } catch ( KettleException dbe ) {\n      throw new KettleException( \"Unable to load job entry of type 'xsdvalidator' from the repository for id_jobentry=\"\n          + id_jobentry, dbe );\n    }\n  }\n\n  public void saveRep( Repository rep, IMetaStore metaStore, ObjectId id_job ) throws KettleException {\n    try {","sourceCodeStart":102,"sourceCodeEnd":138,"githubUrl":"https://github.com/pentaho/pentaho-kettle/blob/f3058517a153da500bf4551f46d79b91bf8ec552/plugins/xml/core/src/main/java/org/pentaho/di/job/entries/xsdvalidator/JobEntryXSDValidator.java#L102-L138","documentation":"JobEntryXSDValidator.loadXML rethrows KettleXMLException when the job entry cannot be deserialized from its XML <entry> node. It wraps failures in XMLHandler tag reads or super.loadXML, keeping the original cause.","triggerScenarios":"Loading a .kjb job whose <entry type='xsdvalidator'> node is malformed or unreadable via XMLHandler.getTagValue / super.loadXML.","commonSituations":"Hand-edited or corrupted .kjb files; job XML written by a newer PDI version containing unexpected structure; encoding issues in the job file.","solutions":["Inspect the wrapped cause exception for the exact XML parsing problem","Re-export or re-save the job from Spoon to regenerate valid XML","Check the <entry> node contains the expected xsdvalidator fields","Verify the file encoding is valid UTF-8"],"exampleFix":null,"handlingStrategy":"try-catch","validationCode":null,"typeGuard":null,"tryCatchPattern":"try {\n  entry.loadXML( entrynode, databases, slaveServers );\n} catch ( KettleXMLException e ) {\n  logError( \"xsdvalidator entry load failed: \" + e.getCause(), e );\n  throw e;\n}","preventionTips":["Edit jobs only through Spoon, not by hand-editing .kjb files","Keep PDI versions consistent between authors and runners","Back up job files before editing","Validate .kjb XML well-formedness after external processing"],"tags":["pdi","xml-deserialization","job-entry","kettle-xml-exception"],"backgroundTag":"json-unmarshal-failed","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"}