Eyal Redler wrote:Regarding Mellel's xml documentation. Here's a link.
http://www.redlers.com/melleldevelopers.html, it's actually been there for a few years.
I'm afraid we don't have more formal description for Mellel's xml. How would a DTD help you? Same for a namespace: How would that make for a better format?
Thank you for the response Eyal. I had not seen the XML documentation, since it is only referenced in a "Developer" link in the sidebar of the Mellel info page; it is not referenced from either the Support or Download pages as one would expect.
However, there are a few problems with that document. Firstly, it dates from August 2007, which coincides with Mellel 2.2.7. There have been a number of features added to Mellel since its creation, such as:
- Bookmarks
- Cross–references
- Floating images
- TOC options to allow some Auto–Titles to be listed separately
- Ability to "insert before" added to Auto–Titles
- Image features, such as transparency and page backgrounds
These are a few of the new features that Mellel currently supports, but which are not referenced in that document.
Secondly, while the document may assist in decoding Mellel's XML format, it does not document it. Terms such as "attribute" are used incorrectly to refer to elements, and there is no information given as to the document's structure, such as which elements may be parents to others, which are required, which only appear as children of certain elements, &c. This document may assist one in trying to recreate a Mellel document from a corrupted file, it does not give direction as how one might construct a Mellel document by hand.
With regard to a DTD: although well–formed XML does not require a document type declaration (DTD),
valid XML does. A DTD follows an XML document's prolog, and may either be declared inline or include a URI to where the DTD is located. The DTD specifies the "markup vocabulary" that is used in a particular document. A DTD can also be used by XML processing software to validate markup. This latter feature would be necessary to ensure that any hand–crafted (or otherwise produced Mellel document) is compliant.
As to namespacing: neither valid nor well–formed XML requires namespacing, the practice safeguards against collisions of elements. This may happen if portions of a Mellel document are used in an XHTML document, such as through use of an XSLT; if both markup vocabularies share an element name, namespacing allows the processing engine (web browser, &c.) to make sure that each element retains its restrictions as indicated in the DTD.
Especially given the previous lack of communication from the developers—especially concerning the nature of keeping Mellel documents accessible should updates to Mellel cease—the need for a proper mechanism to read and manipulate Mellel's XML documents is obvious. An incomplete documentation nearly 3 years old, left to languish, is not a solution to a very real problem. Also, this has been the first time that the developers have specifically pointed the community to this XML documentation that I recall, even though the information has been requested numerous times in the past.
Hopefully this will help to illustrate why Mellel ought to adopt
valid XML for its document format, as well as publish a proper DTD of its markup vocabulary.