It looks like XmlTools mostly duplicates functionality that already exists in `IO.XmlOps`. What's the difference?