extensible xml parser