A generic swappable back-end for XML parsing