Good luck getting all of the references and variable values for a BOM in Dispatch. If it can be done, I'd love to see it.
If you want to allow users to create an XML BOM output you can hack it in the workflow. Just create a single state with a transition going in and then auto heading right back where it came from. Run the XML out in the transition. Depending on how many states you want to run this from, it make a workflow look like spaghetti junction but it will work and you can control when and who can do it.
Your other option is to write an add-in that makes it available in a RMB option.
Sorry about the late responce.
I ended up using Steve's suggestion on creating a single state with the transition exporting the XML.
It already looked like spaghetti