1. A method for generating metadata from a data file, the method comprising the steps of: parsing a data file including data nodes arranged in a hierarchal structure by sequentially processing the data nodes to generate parsing events; calling back at least one parsing event to a scanner; processing by the scanner the at least one parsing event by calling at least one corresponding function; and generating metadata from the processed at least one parsing event preserving the hierarchal structure of the data nodes.