Office Suite History By B. Smith
Bryan Smith is writing a history of office suites, including a little bit about the current ODF vs OOXML controversy. I do not know whether he is just recording his recollections, or if he is actually researching the things he writes. In any case, it is good to have more input into what has happened in the past and what is happening now in the present. I suggest checking back over time, so that we can all see it as it progresses.
In a nutshell, XML was the answer the World Wide Web Consortium (W3C) gave to vendors who constantly complained about the slowness of their standardization process. XML is essential a set of standards for creating vendor standards for their implementations. XML has nothing to do with interoperability. It merely says how you should format your tags, how you should document your definitions, how you will define your schema, etc… Most “complete XML” documents are those that have a base “content” block (typically its own file), with one or more style blocks (or possible style templates), another block for modifications to the schema/templates, and then any base support definitions, templates, schema, etc… (which may or may not be included)
I very much disagree. XML was the W3C's answer to the "tag-soup" of HTML. Each browser maker had its own non-standard tags that were implemented in various sites. There were some sites where users had to either be using browser X or go away. In addition, sites were designed without separating the content and the presentation (the part that determines how the site looks), where the intent of HTML had always been that markup would be semantic, or based on the actual meaning of the content. They had tried with HTML 4 to begin reinforcing the idea of separation of presentation from content, but HTML was too forgiving of things like improperly nested tags and proprietary tags. In response, XML was designed to be strict in rejecting non-standard tags for the specific vocabulary (that is, markup language) that it defined, and to forcibly keep presentation out of the semantic markup of the document. In a round-about way, XML was designed to make it easy to create XHTML.
These things are not just my own ideas or recollections. The W3C's own documents support this interpretation.
The design goals for XML are:
- XML shall be straightforwardly usable over the Internet.
- XML shall support a wide variety of applications.
- XML shall be compatible with SGML.
- It shall be easy to write programs which process XML documents.
- The number of optional features in XML is to be kept to the absolute minimum, ideally zero.
- XML documents should be human-legible and reasonably clear.
This specification, together with associated standards (Unicode and ISO/IEC 10646 for characters, Internet RFC 3066 for language identification tags, ISO 639 for language name codes, and ISO 3166 for country name codes), provides all the information necessary to understand XML Version 1.0 and construct computer programs to process it.
This is not explicitly saying that interoperability is the purpose, but it is still clear to anyone reading the text. Easy to write tools that process (read, write, modify) XML documents and easy for humans to read XML documents, for example, requires that it be clear that XML documents (and documents in XML-derived languages or formats such as MathML, SVG, XHTML, and ODF) should be readable and writable using a wide variety of tools, by a wide variety of vendors. In my opinion, this was one of the reasons for adopting namespaces. With namespaces, a document from the (X)HTML namespace can contain subsections that belong to the SVG and MathML namespaces. A file in ODF format makes use of namespaces in order to reuse such standards as (XML-based) SVG and MathML, so that multiple vendors can implement it. This is in accordance with the express and implied intent of XML. On the other hand, misusing XML to block off access by outside vendors, as OOXML seems to be doing, means that such non-standards as VML are used instead of standards. OOXML also uses binary blobs and all sorts of "legacy" features, which are mostly mistakes that were made in older versions of Microsoft's office applications.