0

次のコードがあります。

L2SchemaHandler handler = getSchemaHandler();        

// validate
XMLFormatValidator validator = new XMLFormatValidator(handler.elements, handler.types, handler.root);    

InputStream schemaInput = new FileInputStream(new File(xmlFilePath));

SAXParserFactory spfactory = SAXParserFactory.newInstance();
spfactory.setFeature("http://xml.org/sax/features/namespaces", true);

SAXParser parser = spfactory.newSAXParser();

//this line gives the null pointer Exception
parser.parse(schemaInput, validator);

report.addAll(validator.getReport());
this.objectsList = validator.getObjectList();
// When we know objects are valid, get duplicate objects from db
if(report.isEmpty())
    duplicateObjectsMap    = validateObjectID(validator.getObjects(),report);
    // here we need to check whether object id's exists in db
if(report.isEmpty()){//if no errors have occurred
   //        if(validateObjectID(validator.getObjects(),report))
        validateObjectsFromFile(validator.getObjects(), report , msgreport);
}

マークされた行は、Null ポインター Exception whileparserを与え、null 値ではないオブジェクトschemaInputを含みます。validator

この行で null ポインター例外が発生するのはなぜですか?

4

1 に答える 1

0

検証パーサーを使用するには、次の変更を行います。

spfactory.setValidating(true);

デフォルトでは、この値は false に設定されています。

于 2012-06-12T12:14:00.190 に答える