Introducing input XML Formatters.

XmlOutputFormatters will be in a separate PR.
should these be `IReadOnlyList<>`?