Topic Specialization Step 4-2: Create Templates For Specialized Elements

For the FAQ Question specialization, we need to modify the presentation of <faq-question-statement> and <faq-answer>. We don't need to do anything special for <faq-question> because we just want the normal topic processing. Thus we need match templates for <faq-question-statement> and <faq-question>. In addition, we will create a no-op template for <faq-question> just to demonstrate how to have a custom template and still use the base Toolkit-supplied processing, even though we don't need it, at least based on our current formatting specifications.

For DITA processing, match statements always have the same basic form, which is:
<xsl:template match="*[contains(@class, ' module/typename ')]">

Note the space characters before and after the module/typename pair.

This pattern for match expressions ensures that elements are always processed in terms of their specialization hierarchy and not their local tagnames. You can, of course, combine the "*[...]" matches together to match on elements in context, just as you would if you were using tagnames in the match statement.

For FAQ question create these three template instructions:
  <!-- ===========================================================
    HTML generation templates for the FAQ Question DITA topic
    specialization.
    
    Copyright (c) 2010 Your Name Here
    
    =========================================================== -->
  
<xsl:template match="*[contains(@class, ' faq-question/faq-question ')]">
</xsl:template>
  
<xsl:template match="*[contains(@class, ' faq-question/faq-question-statement ')]" >
</xsl:template>

<xsl:template match="*[contains(@class, ' faq-question/faq-answer ')]">
</xsl:template>

</xsl:stylesheet>