Engineering application using XML, XSLT, SVG & MathML (maybe)


I am exploring whether XML related technologies provide enough functionality to help me develop a non-trivial engineering application, and whether their support is mature enough. Briefly, here is what the application needs to do (nothing to do with the web, at least for now):

-Design a water tank given the capacity required and the maximum permissible filled weight etc. We have to find the diameter of the tank, wall thickness, material used etc. I have a C++ program to do this. But the results are to be presented in two forms: as a report detailing the calculations, formulae, standards used etc AND an engineering drawing of the tank, detailing (say) the X-section at various points, reinforcements in the material etc.

Now the conundrums:
I am thinking that since it is the same data that is presented in two different ways, I can modify my program to output an XML file (using a private schema) and I can convert this with XSLT to either HTML, MathML or SVG. But I haven't ever coded XML before, so I want to know if all this is feasible and whether the technologies are mature enough to be able to cope with all this. And what would the best platforms to parse/display/print the XML be. I have some misgivings about whether SVG provides enough functionality to cope with non-trivial drawings that involve scaling/rotation/translation of entities (I read an SVG tutorial at IBM's website, and they said that they can't use SVG to generate even a simple pie chart from 3 data sets as it doesn't support mathematical functions). Also, I don't know a priori what size of paper I would be printing on. Is it possible to query the display size from whichever application is going to display SVG/HTML/MathML and format my output accordingly ? Oh, and finally, does MathML support mixed mode output, like:

Solution to this quadratic equation = [formula here] = 5.4

Any help would be greatly appreciated. Also, I promise that if I ever get it working I will post some test cases as tutorials/examples.

Received on Wednesday, 28 February 2001 11:10:42 UTC