Paul Prescod wrote:
> That might be enough but I think that we could design something better.
The only other mechanism that seems likely would be some sort of
PI-based declaration, but the W3C has a firm statement against the use
of PIs in XML documents and I think we should respect that.
Thus, relying on namespaces is about all there is to work with. You
cannot rely on a DOCTYPE declaration (because there probably won't be
one) and you can't rely on a schemaLocation= attribute because there
doesn't need to be one.
In XML, only namespaces provide an unambiguous, reliable way to
distinguish the true type of a given element.
I specifically requested that all DITA-defined constructs require at
least one namespaced attribute in a DITA-defined namespace so that
general processors could reliably identify documents as containing
DITA-based content. The ditaarch:DITAArchVersion attribute is the result
of that request.
I could not think of any other way to do it, given the W3C prohibition
against PIs.
> 1. It's a little bit hard to find for computers because it isn't
> reliably on the root element (sometimes it is on a sub-element of the
> root element).
I don't think this is a compelling objection--it's easy enough to
examine an entire document for the namespace declarations within it. It
may be tedious but it's not hard. If anybody needs Java code to do this,
I can provide it :-)
> 2. It's hard to find for humans because it is not in the document
> instance but rather in the DTD or Schema.
It may or may not be in the document instance. One point of using
namespaces for identification is that it allows DTD-less and schema-less
documents to be reliably processed.
But I agree that this solution doesn't really help humans, but I'm not
sure that's that big of an issue, for the simple reason that in most
cases either you'll be using a software system which can tell you that
it is or is not a DITA document or you simply know that you're in a DITA
context. I think it will be the rare person who stumbles upon a bare XML
document and needs to know whether or not it is in fact DITA-based and
has no tools available to do it.
Of course we could easily implement and provide a "DITA recognizer" tool
that would serve. Hmmm.
> 3. The value seems to reflect the Open Toolkit version rather than
> the DITA Specification version.
If true, that needs to be fixed.
Cheers,
Eliot
--
W. Eliot Kimber
Professional Services
Innodata Isogen
9390 Research Blvd, #410
Austin, TX 78759
(512) 372-8155
www.innodata-isogen.com