OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

dita-s1000d-discuss message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: DITA specialization mechanism, revisited


Hi All,

The main strength of DITA is its extensibility. One of the benefits of
DITA specialization is that it allows the reuse of processing code (e.g.
XSLT stylesheets) across specializations through a fall back mechanism to
base types. The lack of specialization in S1000D is cited as one of its
main drawbacks. However the combination of XML Schema 1.1 substitution and
inheritance, XPath 2.0, and XSLT 2.0 can provide a very robust
extensibility mechanism for S1000D.

Extensibility can be achieved in XML Schema using a variety of techniques
including:

1.Wild cards via the xsd:any element

2.Subtype polymorphism via extension or restriction of a base type

3.Runtime polymorphism via xsi:type

4.Element substitution with or without abstract head elements.

Let’s analyze how the later could be an alternative to the DITA
specialization mechanism. Assume that we need to create a specialization
of <ElementA>. We can declare <ElementA> as follows:

<xsd:element name='ElementA' type='ElementAType'/>

If we want to create <ElementB> and <ElementC> as specializations of
<ElementA>, we would do the following:

<xsd:element name='ElementB' substitutionGroup='ElementA'
type='ElementBType'/>

<xsd:element name='ElementC' substitutionGroup='ElementA'
type='ElementCType'/>

<ElementA> is the head of the substitution group and can be substituted
with <ElementB> or <ElementC >. <ElementB> and <ElementC> must be of type
<ElementAType> or a type derived from <ElementAType> by restriction or
extension. <ElementB> and <ElementC> must also be declared as global
elements, which is a best practice in component reuse.

XML Schema 1.0 has a limitation in complex type restriction that made it
difficult to use it for DITA specializations. That limitation has been
fixed in XML Schema 1.1.

One of the benefits of using XML Schema to model XML vocabularies (as
opposed to DTDs or even RelaxNG), is that it is currently the “center of
the universe” in the standardization space: XForms, XPath 2.0, XSLT 2.0,
XQuery 1.0, WSDL, and other standards and tools depend on it. Therefore
DTDs are a dead end in information design. One the problem with the DITA
specialization mechanism is that it is DTD-centric, although an XML Schema
version of DITA is also available.

The next question is how can we achieve XSLT code reuse (fall back) across
specializations “ŕ la DITA”? Consider the following schema aware XSLT 2.0
template with an XPath 2.0 pattern:

<xsl:template match='schema-element(s:ElementA)'>
	<b><xsl:value-of select='.'/></b>
</xsl:template>

schema-element(s:ElementA) matches any element that is annotated as an
instance of the type defined by the schema element declaration <ElementA>,
and whose name is either ElementA or the name of another element in its
substitution group. Therefore, the XSLT 2.0 pattern will also match
<ElementB> and <ElementC>. XQuery also supports schema-aware processing
and queries.

The adoption of the XML 1.1 substitution mechanism could require a
refactoring of both DITA and S1000D content models. However, I believe
that the combination of XML 1.1 and schema-aware XSLT 2.0 allows us to
achieve the benefits of specialization without resorting to DITA’s complex
and elaborate scheme for achieving the same result with DTDs and XSLT 1.0.

One way to facilitate interoperability between S1000D and DITA is to use
S1000D element names and semantics when creating DITA specializations for
domains such as the machine industry. The fact that the DITA Machine
Industry SC (see
http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=dita-machine-industry)
is not using that approach should be a cause for concern. In fact, S1000D
can handle the requirements of the machine industry (manufacturing system
engineering, engine and machine construction, power plant equipments,
etc.) with elegance.

Best regards,

Joel Amoussou
http://www.efasoft.com




[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]