I've been assigned the task of choosing a set of technologies to replace a bunch of Excel spread sheets and e-mail. My team has thought of two, XML & XSLT with JavaScript, but there may be others out there that we find more suited to the project. I understand that I need to be specific for this post to stick, so I'll try to give as much detail as I can, without breaking my confidentiality agreements.
The work flow, as it is today is that Marketing talks to a customer and fills out a spread sheet with a customer's requirements. Some of the fields on the spread sheet contain fields that should only have certain values. Some fields should only have certain values based on the values in prior fields. Some fields should be filled in only if prior fields were filled in. Marketing sends this spread sheet to an architect.
The architect validates the values and dependencies the fields that marketing filled in. The architect fills in other fields and based on some rules, and some domain knowledge. The architect may or may not need fill out all of the fields he's responsible for based on what marketing gave him. The architect creates two spread sheets and mails them to a second architect for review and feedback. Once validated the architect mails the spread sheets to a technician.
The technician plugs in the data from the spreadsheets into a small web application that spits out c structures that are used in the e-prom of some hardware that is being manufactured.
The architect is spending way to much time with the spread sheets and would like to automate the process as much as possible. He's prototyped his concept with XML and XSLT. I see room for YAML. This could be a RoR/MySQL app, or any web app. We're not looking for feed back on the webapplication framework to be used. We're looking for suggestions on the possible underlying technologies that can be used to represent one document as it is passed from marketing through the architect and his reviewer and on to the technician where it is converted to c structures. It would be best if the document were human readable, could be easily validated, could contain fields whose existence and values are dependent on other fields. And finally the document should be able to be easily converted to c-structures at the end of the day.
What technologies/data representations would you suggest for this project?