Most programming languages provide high-level libraries for processing XML input. These tools can be generally grouped into one of two categories:
- DOM-based tools read the entire XML file to construct an in-memory data structure corresponding to "the entire XML file."
- Event-based (SAX...) tools read the XML file sequentially and call specified subroutines at strategic intervals, but never construct a data-structure.