Introducing input XML Formatters.

XmlOutputFormatters will be in a separate PR.
Yes, will add that (if we are going ahead with that approach) in a separate PR.