Andrew Thompson said:
Note that XML was originally designed to hold data and
objects *as opposed to* representation/rendering of that
data - 'how it will look'.
Um, I believe that's incorrect. One of XML design goals as
stated in XML 1.0 4E, 1.1 is:
XML shall support a wide variety of applications.
XML, essentially, is pure syntax with no semantics. What
semantics of a particular XML application are aimed at
expressing is up to the people who designed that
application. It might be semantic document markup
(DocBook), presentational document markup (XSL-FO),
something that would take a Semantic Web zealot[*] to
describe properly (RDF/XML), a program in Turing-complete
programming language (XSLT), remote method invocation
(SOAP), vector graphics (SVG) or pretty much anything else
that could be represented as a tree.
Rendering instructions for the data in XML might be
encoded into an XSLT File.
You're probably thinking of XSL-FO (which is an XML
application itself). XSLT problem domain is a bit wider,
it's a fairly powerful document transformation language, -
although, indeed, one of the primary use cases considered
when the spec was being developed was transformation of
random XML documents to XSL-FO. Oh, and XSLT is an XML
application as well. *shrug*
Trying to shove a WYSIWYG document into 'XML' seems
contrary to what XML is for.
XSL-FO is an XML application that is, in short,
presentational markup for paged media. Apache FOP is a FOSS
XSL-FO processor oft-used to convert XSL-FO documents
(usually generated from something else) to PDF documents. I
haven't heard of anyone doing it the other way 'round
(PDF -> XSL-FO), but Google might have.
[*] meaning no disrespect to Semantic Web zealots