Yes, you can certainly do this using MultiChain streams. If you configure the blockchain parameters appropriately, each stream item can contain up 64 MB of data. For XML it's probably worth running the data through a gzip/zip compression algorithm before embedding it in the chain, as XML tends to be highly repetitive and you can save a lot of space that way.