[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: Simplest Namespace That Could Possibly Work
There may be a blindly simple way to solve the 1.0 namespace issue: Have a namespace-bound schema that defines only the DITA class attribute. This would: - Satisfy my requirements for having documents be unambiguously bound to the DITA specification - Bring the DITA class attribute, which is the key to all DITA-specific processing (because it enables recognition of element types derived from DITA) - Otherwise avoid all namespace issues related to specialization, schema organization, and so on. Given this approach, the only change would be to the class attributes themselves, to wit: DITA as submitted to OASIS: <!ATTLIST topic %global-atts; class CDATA "- topic/topic "> <!ATTLIST title %global-atts; class CDATA "- topic/title "> DITA with namespaced class: <!ENTITY % ditabase-ns-decl 'xmlns:dita CDATA #FIXED "http://dita.oasis-open.org/1.0/packages/ditabase" ' > <!ATTLIST topic %global-atts; dita:class CDATA #FIXED "- topic/topic" %ditabase-ns-decl; > <!ATTLIST title %global-atts; dita:class CDATA #FIXED "- topic/title" %ditabase-ns-decl; > A DTD-based document instance would be visually indistinguishable from an existing one, although the parsed document would obviously differ in having "dita:class" intead of "class" and would have the namespace decls: <?xml version="1.0"?> <!DOCTYPE topic SYSTEM "uri-of-dita-DTD-declaration-set"> <topic id="topic-01"> A schema-valid document could look like this: <?xml version="1.0"?> <topic xmlns:dita="http://dita.oasis-open.org/1.0/packages/ditabase" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation= "http://dita.oasis-open.org/1.0/packages/ditabase uri-to-ditabase-schema " xsi:noNamespaceSchemaLocation="uri-to-existing-DITA-schemas" id="topic-01" > A minimal document (no schema or DOCTYPE declaration would look like this: <?xml version="1.0"?> <topic xmlns:dita="http://dita.oasis-open.org/1.0/packages/ditabase" id="topic-01" > Note that all three of these documents are 100% clear about being DITA documents by dint of the fact that all declare the ditabase namespace, but their processing and validation mechanism is otherwise completely unchanged from current DITA practice. Existing DITA-aware processors would need only add an OR clause to their "class" attribute check in order to accomdate both legacy DITA instances and OASIS DITA 1.0 instances, e.g: <xsl:template match="*[(contains(@class, ' topic/topic ') OR (contains(@dita:class, ' topic/topic ')" > All other processing would be unchanged (because no other names would be different). Cheers, E. -- W. Eliot Kimber Professional Services Innodata Isogen 9390 Research Blvd, #410 Austin, TX 78759 (512) 372-8122 eliot@innodata-isogen.com www.innodata-isogen.com
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]