TechWhirl (TECHWR-L) is a resource for technical writing and technical communications professionals of all experience levels and in all industries to share their experiences and acquire information.
For two decades, technical communicators have turned to TechWhirl to ask and answer questions about the always-changing world of technical communications, such as tools, skills, career paths, methodologies, and emerging industries. The TechWhirl Archives and magazine, created for, by and about technical writers, offer a wealth of knowledge to everyone with an interest in any aspect of technical communications.
>As a start, tell me if I've got this right. Suppose you wanted to create an
>XML document, send it to somebody else, and be sure they would be able to
>see it in the way you wanted them to see it. This is the procedure you
>1. Create a DTD containing some rules defined by XML.
>2. Create a tagging language conforming to the DTD.
>3. Create an application program that will convert text formatted according
>to the tagging language into a form suitable for viewing it on a particular
>platform under a particular operating system.
>4. Create the document.
>5. Format it according to the tagging language.
>6. Send the document to someone else.
>7. Also send the DTD.
>8. Also send the application program.
>9. The recipient passes the document through an XML parser to check
>compliance with your DTD.
>10. The recipient passes your document through your application program.
>11. The recipients views your document.
>Is that how it to works?
With very minor corrections, yes. Steps 1 and 2 are the same thing. Most of
the tools you use for step 3 are more or less cross platform.
Okay, so how come I say this is correct and Simon says it isn't. Because
when I speak about "XML" I speak strictly about the XML language defined by
the XML spec. When Simon says "XML" he means the whole family of XML related
specifications, which includes XLL, XSL, XML-data, and an number of others.
The proponents of this family of standards seem to believe it must be taken
as a whole. Remember, though, that only XML is presently a standard. The
rest are proposals that are still being worked on. And those proposals are
to create facilities that are already provided by mature products with long
track records. I do believe very strongly in the potential of XML. I am not
ready to accept the hype surrounding the related standards, and I am not
willing to use "XML" to refer to the whole grab bag.
When Simon responds to your point:
>> 5. Format it according to the tagging language.
>Write a style sheet in XSL; XSL is very like CSS (the Cascading Style
>Sheets used for HTML).
He misses the point. This is the stage where you tag your data with the tags
you have defined in your tagging language. This is not "formatting" in the
sense of preparing for presentation, though it is giving the material form
in the sense of giving it structure. (In this arena, format <>
When he says:
>> 8. Also send the application program.
>No. Not needed. They can use a web browser or whatever else they
>want. There will be converters to a whole range of other formats.
He again misses the point that writing a style sheet in XSL is writing a
processing application. And, yes, you have to ship the processing
application with the document if you want it to be translated on the
browser. The browser in this case is acting as an application hosting
environment for XSL, just as it does for Java. Note that you could just as
easily build your display processor in Java as in XSL. Java is here today,
and a complete programming language, two things you can't say of XSL. I've
heard both Java and XML proponents say "XML gives Java something to do".
Simon is correct that you do not need a DTD with XML, but this is somewhat
misleading. What it really means is that the standard does not require a DTD
in order for a document to "count" as XML. In other words, they punted
responsibility for figuring out the the structure of the document to the
processing application. This is quite a fair thing to do. But notice, while
SGML "requires" a DTD, it requires it only the formal sense that you are not
supposed to call your document "SGML" is you don't include one. You can
process an SGML document without a DTD. HTML is an SGML-based language, but
the browsers make no use of the DTD. Indeed, if you did ship the HTML DTD
with you pages, I suspect most browsers would choke on it.
The reason that DTDs are a formal requirement in SGML is that SGML allows
morphological variation in tags. The same tag can look different in
different places, or even be missing entirely, and the parser needs the DTD
to recognize these differences.
But whether you have a DTD or not, you must have a definition of your
language, and that definition must be expressed in your processing
application. In XSL terms, you have to write a rule for every tag in your
language if you want them to be styled correctly.
While I say that your interpretation of the steps involved is essentially
correct, I don't think it is appropriate way to go in most cases. Why ship
the XML file and a display program to a browser that already understands a
perfectly good display language (HTML/CSS). In most cases what people should
be doing is this:
1. Define an XML based tagging language that words for your internal
2. Create information using that language.
3. Write an application that converts that information in that language to
* Put the created pages from your web site.
* Run you application as a web server extension (e.g. CGI) and create
HTML/CSS on the fly. This allows you to do customization based on user input
and to detect the user's browser and format your HTML/CSS appropriately for
the particular browser.
Manager, Corporate Communications
OmniMark Technologies Corporation
1400 Blair Place
Canada, K1J 9B8
Email mbaker -at- omnimark -dot- com