summaryrefslogtreecommitdiffstats
path: root/tools/Sandcastle/Presentation/hana/transforms/xamlSyntax.xsl
diff options
context:
space:
mode:
Diffstat (limited to 'tools/Sandcastle/Presentation/hana/transforms/xamlSyntax.xsl')
-rw-r--r--tools/Sandcastle/Presentation/hana/transforms/xamlSyntax.xsl491
1 files changed, 0 insertions, 491 deletions
diff --git a/tools/Sandcastle/Presentation/hana/transforms/xamlSyntax.xsl b/tools/Sandcastle/Presentation/hana/transforms/xamlSyntax.xsl
deleted file mode 100644
index 4362a26..0000000
--- a/tools/Sandcastle/Presentation/hana/transforms/xamlSyntax.xsl
+++ /dev/null
@@ -1,491 +0,0 @@
-<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
- xmlns:MSHelp="http://msdn.microsoft.com/mshelp"
- xmlns:mshelp="http://msdn.microsoft.com/mshelp"
- xmlns:ddue="http://ddue.schemas.microsoft.com/authoring/2003/5"
- xmlns:xlink="http://www.w3.org/1999/xlink"
- xmlns:msxsl="urn:schemas-microsoft-com:xslt"
- >
-
- <xsl:import href="globalTemplates.xsl"/>
-
- <xsl:variable name="showNonXamlAssemblyBoilerplate" select="'false'" />
-
- <!-- XAML Syntax -->
-
- <xsl:template name="XamlSyntaxBlock">
- <!-- Branch based on pagetype -->
- <xsl:choose>
- <!-- Display boilerplate for pagetypes that cannot be used in XAML,
- unless there's an authored XAML text section, which is used in place of the boilerplate. -->
- <xsl:when test="$subgroup='method' or
- $subgroup='constructor' or
- $subgroup='interface' or
- $subgroup='delegate' or
- $subgroup='field'">
- <xsl:call-template name="nonXamlMembersXamlSyntax"/>
- </xsl:when>
-
- <!-- class and struct -->
- <xsl:when test="$subgroup='class' or
- $subgroup='structure'">
- <xsl:call-template name="classOrStructXamlSyntax"/>
- </xsl:when>
-
- <!-- enumeration -->
- <xsl:when test="$subgroup='enumeration'">
- <xsl:call-template name="enumerationXamlSyntax"/>
- </xsl:when>
-
- <!-- property -->
- <xsl:when test="$subgroup='property' or $subsubgroup='attachedProperty'">
- <xsl:call-template name="propertyXamlSyntax"/>
- </xsl:when>
-
- <!-- event -->
- <xsl:when test="$subgroup='event' or $subsubgroup='attachedEvent'">
- <xsl:call-template name="eventXamlSyntax"/>
- </xsl:when>
-
- </xsl:choose>
- </xsl:template>
-
- <!-- XAML syntax for CLASS and STRUCT topics. This is the logic:
- if authored OESyntax,
- display it
- else if autogen OESyntax (AND no authored XAML section),
- display it.
- if authored AttrUsage,
- display it
- if authored XAML section,
- display it
- if no (authored OESyntax OR authored AttrUsage OR authored XAML section),
- display autogen boilerplate
- display XAML Values section, if any
- -->
- <xsl:template name="classOrStructXamlSyntax">
- <!-- Object Element Usage
- //ddue:section[starts-with(@address,'xamlValues')]
- //ddue:section[starts-with(@address,'xamlTextUsage')]
- //ddue:section[starts-with(@address,'xamlAttributeUsage')]
- //ddue:section[starts-with(@address,'xamlPropertyElementUsage')]
- //ddue:section[starts-with(@address,'xamlImplicitCollectionUsage')]
- //ddue:section[starts-with(@address,'xamlObjectElementUsage')]
- //ddue:section[starts-with(@address,'dependencyPropertyInfo')]
- //ddue:section[starts-with(@address,'routedEventInfo')]
- -->
- <xsl:choose>
- <!-- Show the authored Object Element Usage, if any. -->
- <xsl:when test="//ddue:section[starts-with(@address,'xamlObjectElementUsage')]">
- <xsl:for-each select="//ddue:section[starts-with(@address,'xamlObjectElementUsage')][1]">
- <xsl:call-template name="ShowAuthoredXamlSyntax"/>
- </xsl:for-each>
- </xsl:when>
- <!-- Else if no authored xamlTextUsage section, show the autogenerated Object Element Usage, if any. -->
- <xsl:when test="not(//ddue:section[starts-with(@address,'xamlTextUsage')])">
- <xsl:call-template name="ShowAutogeneratedXamlSyntax">
- <xsl:with-param name="autogenContent">
- <xsl:copy-of select="div[@class='xamlObjectElementUsageHeading']"/>
- </xsl:with-param>
- </xsl:call-template>
- </xsl:when>
- </xsl:choose>
- <!-- Implicit Collection Usage - show authored section, if any. -->
- <xsl:for-each select="//ddue:section[starts-with(@address,'xamlImplicitCollectionUsage')][1]">
- <xsl:call-template name="ShowAuthoredXamlSyntax"/>
- </xsl:for-each>
- <!-- Attribute Usage - show authored section, if any. -->
- <xsl:for-each select="//ddue:section[starts-with(@address,'xamlAttributeUsage')][1]">
- <xsl:call-template name="ShowAuthoredXamlSyntax"/>
- </xsl:for-each>
- <!-- XAML Text section - show authored section, if any. -->
- <xsl:for-each select="//ddue:section[starts-with(@address,'xamlTextUsage')][1]">
- <xsl:call-template name="ShowAuthoredXamlSyntax"/>
- </xsl:for-each>
- <!-- Autogen - show autogen boilerplate, if no authored xaml sections to override it. -->
- <xsl:if test="not(//ddue:section[starts-with(@address,'xamlObjectElementUsage')] or //ddue:section[starts-with(@address,'xamlImplicitCollectionUsage')] or //ddue:section[starts-with(@address,'xamlAttributeUsage')] or //ddue:section[starts-with(@address,'xamlTextUsage')])">
- <xsl:call-template name="ShowXamlSyntaxBoilerplate">
- <xsl:with-param name="param0">
- <xsl:copy-of select="."/>
- </xsl:with-param>
- </xsl:call-template>
- </xsl:if>
- <!-- Show the authored XAML Values section, if any. -->
- <xsl:call-template name="showXamlValuesSection"/>
- </xsl:template>
-
- <!-- XAML syntax for ENUMERATION topics. This is the logic:
- if authored AttrUsage,
- display it
- if authored XAML section,
- display it
- if no (authored AttrUsage OR authored XAML section),
- display autogen AttrUsage or boilerplate.
- display XAML Values section, if any
- -->
- <xsl:template name="enumerationXamlSyntax">
- <!-- Attribute Usage - show authored section, if any. -->
- <xsl:for-each select="//ddue:section[starts-with(@address,'xamlAttributeUsage')][1]">
- <xsl:call-template name="ShowAuthoredXamlSyntax"/>
- </xsl:for-each>
- <!-- XAML Text section - show authored section, if any. -->
- <xsl:for-each select="//ddue:section[starts-with(@address,'xamlTextUsage')][1]">
- <xsl:call-template name="ShowAuthoredXamlSyntax"/>
- </xsl:for-each>
- <!-- Autogen - show enum syntax boilerplate, if no authored xaml sections to override it. -->
- <xsl:choose>
- <xsl:when test="$showNonXamlAssemblyBoilerplate='false' and div[@class='nonXamlAssemblyBoilerplate']"/>
- <xsl:when test="not(//ddue:section[starts-with(@address,'xamlAttributeUsage')] or //ddue:section[starts-with(@address,'xamlTextUsage')])">
- <span codeLanguage="XAML">
- <table>
- <tr>
- <th>
- <include item="xamlAttributeUsageHeading" />
- </th>
- </tr>
- <tr>
- <td>
- <pre xml:space="preserve"><xsl:text/><include item="enumerationOverviewXamlSyntax"/></pre>
- </td>
- </tr>
- </table>
- </span>
- </xsl:when>
- </xsl:choose>
- <!-- Show the authored XAML Values section, if any. -->
- <xsl:call-template name="showXamlValuesSection"/>
- </xsl:template>
-
- <!-- XAML syntax for PROPERTY topics. This is the logic:
- if authored OESyntax,
- display it
- if authored PEUsage,
- display it
- else if autogen PEUsage (AND no authored XAML section),
- display it
- if authored AttrUsage,
- display it
- else if autogen AttrUsage (AND no authored XAML section),
- display it
- if authored XAML section,
- display it
- if no (authored OESyntax OR authored PEUsage OR authored AttrUsage OR authored XAML section),
- display autogen boilerplate
- -->
- <xsl:template name="propertyXamlSyntax">
- <!-- Object Element Usage - show authored section, if any. -->
- <xsl:for-each select="//ddue:section[starts-with(@address,'xamlObjectElementUsage')][1]">
- <xsl:call-template name="ShowAuthoredXamlSyntax"/>
- </xsl:for-each>
- <!-- Property Element Usage -->
- <xsl:choose>
- <!-- Show the authored Property Element Usage, if any. -->
- <xsl:when test="//ddue:section[starts-with(@address,'xamlPropertyElementUsage')]">
- <xsl:for-each select="//ddue:section[starts-with(@address,'xamlPropertyElementUsage')][1]">
- <xsl:call-template name="ShowAuthoredXamlSyntax"/>
- </xsl:for-each>
- </xsl:when>
- <!-- Else if no authored xamlTextUsage section, show the autogenerated Property Element Usage, if any. -->
- <xsl:when test="not(//ddue:section[starts-with(@address,'xamlTextUsage')])">
- <xsl:call-template name="ShowAutogeneratedXamlSyntax">
- <xsl:with-param name="autogenContent">
- <xsl:copy-of select="div[@class='xamlPropertyElementUsageHeading' or @class='xamlContentElementUsageHeading']"/>
- </xsl:with-param>
- </xsl:call-template>
- </xsl:when>
- </xsl:choose>
- <!-- Attribute Usage -->
- <xsl:choose>
- <!-- Show the authored Attribute Usage, if any. -->
- <xsl:when test="//ddue:section[starts-with(@address,'xamlAttributeUsage')]">
- <xsl:for-each select="//ddue:section[starts-with(@address,'xamlAttributeUsage')][1]">
- <xsl:call-template name="ShowAuthoredXamlSyntax"/>
- </xsl:for-each>
- </xsl:when>
- <!-- Else if no authored xamlTextUsage section, show the autogenerated Attribute Usage, if any. -->
- <xsl:when test="not(//ddue:section[starts-with(@address,'xamlTextUsage')])">
- <xsl:call-template name="ShowAutogeneratedXamlSyntax">
- <xsl:with-param name="autogenContent">
- <xsl:copy-of select="div[@class='xamlAttributeUsageHeading']"/>
- </xsl:with-param>
- </xsl:call-template>
- </xsl:when>
- </xsl:choose>
- <!-- XAML Text section - show authored section, if any. -->
- <xsl:for-each select="//ddue:section[starts-with(@address,'xamlTextUsage')][1]">
- <xsl:call-template name="ShowAuthoredXamlSyntax"/>
- </xsl:for-each>
- <!-- Autogen - show autogen boilerplate, if no authored xaml sections to override it. -->
- <xsl:if test="not(//ddue:section[starts-with(@address,'xamlObjectElementUsage')] or //ddue:section[starts-with(@address,'xamlPropertyElementUsage')] or //ddue:section[starts-with(@address,'xamlAttributeUsage')] or //ddue:section[starts-with(@address,'xamlTextUsage')])">
- <xsl:call-template name="ShowXamlSyntaxBoilerplate">
- <xsl:with-param name="param0">
- <xsl:copy-of select="div/*"/>
- </xsl:with-param>
- </xsl:call-template>
- </xsl:if>
- <!-- Show the authored XAML Values section, if any. -->
- <xsl:call-template name="showXamlValuesSection"/>
- </xsl:template>
-
- <!-- XAML syntax for EVENT topics. This is the logic:
- if authored AttrUsage,
- display it
- if authored XAML section,
- display it
- if no (authored AttrUsage OR authored XAML section),
- display autogen AttrUsage or boilerplate.
- display XAML Values section, if any
- -->
- <xsl:template name="eventXamlSyntax">
- <!-- Attribute Usage - show authored section, if any. -->
- <xsl:for-each select="//ddue:section[starts-with(@address,'xamlAttributeUsage')][1]">
- <xsl:call-template name="ShowAuthoredXamlSyntax"/>
- </xsl:for-each>
- <!-- XAML Text section - show authored section, if any. -->
- <xsl:for-each select="//ddue:section[starts-with(@address,'xamlTextUsage')][1]">
- <xsl:call-template name="ShowAuthoredXamlSyntax"/>
- </xsl:for-each>
- <!-- Autogen - show autogen syntax or boilerplate, if no authored xaml sections to override it. -->
- <xsl:if test="not(//ddue:section[starts-with(@address,'xamlAttributeUsage')] or //ddue:section[starts-with(@address,'xamlTextUsage')])">
- <!-- If XamlSyntax component generated an Attribute Usage block, this template will show it. -->
- <xsl:call-template name="ShowAutogeneratedXamlSyntax">
- <xsl:with-param name="autogenContent">
- <xsl:copy-of select="div[@class='xamlAttributeUsageHeading']"/>
- </xsl:with-param>
- </xsl:call-template>
- <!-- If XamlSyntax component generated a boilerplate block, this template will show it. -->
- <xsl:call-template name="ShowXamlSyntaxBoilerplate">
- <xsl:with-param name="param0">
- <xsl:copy-of select="div/*"/>
- </xsl:with-param>
- </xsl:call-template>
- </xsl:if>
- <!-- Show the authored XAML Values section, if any. -->
- <xsl:call-template name="showXamlValuesSection"/>
- </xsl:template>
-
- <!-- XAML syntax for members that cannot be used in XAML: interface, delegate, method, field, constructor.
- If there's an authored XAML section, show it. Otherwise, use the standard boilerplate. -->
- <xsl:template name="nonXamlMembersXamlSyntax">
- <xsl:choose>
- <!-- XAML Text section - show authored section, if any. -->
- <xsl:when test="//ddue:section[starts-with(@address,'xamlTextUsage')]">
- <xsl:for-each select="//ddue:section[starts-with(@address,'xamlTextUsage')][1]">
- <xsl:call-template name="ShowAuthoredXamlSyntax"/>
- </xsl:for-each>
- </xsl:when>
- <!-- Autogen - show autogen boilerplate, if no authored xaml sections to override it. -->
- <xsl:otherwise>
- <xsl:call-template name="ShowXamlSyntaxBoilerplate"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:template>
-
- <!-- Displays one of the standard XAML boilerplate strings. -->
- <xsl:template name="ShowXamlSyntaxBoilerplate">
- <xsl:param name="param0"/>
- <xsl:variable name="boilerplateId">
- <xsl:choose>
- <!-- don't show boilerplate for apis that are not in xaml assemblies -->
- <xsl:when test="$showNonXamlAssemblyBoilerplate='false' and div[@class='nonXamlAssemblyBoilerplate']"/>
- <xsl:otherwise>
- <xsl:value-of select="div/@class[not(.='xamlAttributeUsageHeading' or
- .='xamlObjectElementUsageHeading' or
- .='xamlContentElementUsageHeading' or
- .='xamlPropertyElementUsageHeading' or
- .='xamlXmlnsUri')]"/>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <xsl:if test="$boilerplateId!=''">
- <span codeLanguage="XAML">
- <table>
- <tr>
- <th>
- <include item="xamlSyntaxBoilerplateHeading" />
- </th>
- </tr>
- <tr>
- <td>
- <pre xml:space="preserve"><span class="message"><xsl:text/><include item="{$boilerplateId}">
- <xsl:choose>
- <xsl:when test="$param0!=''">
- <parameter>
- <xsl:copy-of select="msxsl:node-set($param0)"/>
- </parameter>
- </xsl:when>
- <!-- make sure we at least pass in an empty param because some boilerplates expect them -->
- <xsl:otherwise>
- <parameter/>
- </xsl:otherwise>
- </xsl:choose>
- </include></span></pre>
- </td>
- </tr>
- </table>
- </span>
- </xsl:if>
- </xsl:template>
-
- <!-- Displays an authored XAML syntax section -->
- <xsl:template name="ShowAuthoredXamlSyntax">
- <xsl:if test="ddue:content[normalize-space(.)!='']">
- <xsl:variable name="headingID">
- <xsl:choose>
- <xsl:when test="starts-with(@address,'xamlObjectElementUsage')">xamlObjectElementUsageHeading</xsl:when>
- <xsl:when test="starts-with(@address,'xamlImplicitCollectionUsage')">xamlImplicitCollectionUsageHeading</xsl:when>
- <xsl:when test="starts-with(@address,'xamlPropertyElementUsage')">
- <xsl:choose>
- <xsl:when test="//div[@class='xamlContentElementUsageHeading']">xamlContentElementUsageHeading</xsl:when>
- <xsl:otherwise>xamlPropertyElementUsageHeading</xsl:otherwise>
- </xsl:choose>
- </xsl:when>
- <xsl:when test="starts-with(@address,'xamlAttributeUsage')">xamlAttributeUsageHeading</xsl:when>
- <xsl:when test="starts-with(@address,'xamlTextUsage')">xamlSyntaxBoilerplateHeading</xsl:when>
- </xsl:choose>
- </xsl:variable>
- <span codeLanguage="XAML">
- <table>
- <tr>
- <th>
- <include item="{$headingID}" />
- </th>
- </tr>
- <xsl:choose>
- <xsl:when test="$headingID='xamlSyntaxBoilerplateHeading'">
- <tr>
- <td>
- <xsl:apply-templates select="ddue:content"/>
- </td>
- </tr>
- </xsl:when>
- <xsl:otherwise>
- <tr>
- <td>
- <pre xml:space="preserve"><xsl:choose>
- <xsl:when test="ddue:content/ddue:code"><xsl:apply-templates select="ddue:content/ddue:code[1]/node()" /></xsl:when>
- <xsl:when test="ddue:content/ddue:para"><xsl:apply-templates select="ddue:content/ddue:para"/></xsl:when>
- </xsl:choose></pre>
- </td>
- </tr>
- </xsl:otherwise>
- </xsl:choose>
- </table>
- </span>
- </xsl:if>
- </xsl:template>
-
- <!-- Displays the autogenerated XAML syntax for pagetypes other than enumerations -->
- <xsl:template name="ShowAutogeneratedXamlSyntax">
- <xsl:param name="autogenContent"/>
- <xsl:if test="count(msxsl:node-set($autogenContent))>0">
- <xsl:for-each select="msxsl:node-set($autogenContent)/div">
- <xsl:variable name="headingID">
- <xsl:value-of select="@class"/>
- </xsl:variable>
- <span codeLanguage="XAML">
- <table>
- <tr>
- <th>
- <include item="{$headingID}" />
- </th>
- </tr>
- <tr>
- <td>
- <pre xml:space="preserve"><xsl:text/><xsl:copy-of select="node()"/></pre>
- </td>
- </tr>
- </table>
- </span>
- </xsl:for-each>
- </xsl:if>
- </xsl:template>
-
- <!-- Display the XAML Values section. -->
- <xsl:template name="showXamlValuesSection">
- <xsl:for-each select="//ddue:section[starts-with(@address,'xamlValues')]">
- <span codeLanguage="XAML">
- <p/>
- <xsl:call-template name="subSection">
- <xsl:with-param name="title">
- <include item="xamlValuesSectionHeading" />
- </xsl:with-param>
- <xsl:with-param name="content">
- <xsl:apply-templates select="ddue:content"/>
- </xsl:with-param>
- </xsl:call-template>
- </span>
- </xsl:for-each>
- </xsl:template>
-
- <!-- these xaml sections are captured in the xaml syntax processing, so this template prevents them from showing up twice -->
- <xsl:template match="//ddue:section[starts-with(@address,'xamlValues') or
- starts-with(@address,'xamlTextUsage') or
- starts-with(@address,'xamlAttributeUsage') or
- starts-with(@address,'xamlPropertyElementUsage') or
- starts-with(@address,'xamlImplicitCollectionUsage') or
- starts-with(@address,'xamlObjectElementUsage') or
- starts-with(@address,'dependencyPropertyInfo') or
- starts-with(@address,'routedEventInfo')]"/>
-
- <!-- the authored dependency Property Information section -->
- <xsl:template match="ddue:section[starts-with(@address,'dependencyPropertyInfo')]" mode="section">
- <xsl:call-template name="section">
- <xsl:with-param name="toggleSwitch" select="'dependencyPropertyInfo'"/>
- <xsl:with-param name="title">
- <include item="dependencyPropertyInfoHeading" />
- </xsl:with-param>
- <xsl:with-param name="content">
- <xsl:apply-templates select="ddue:content" />
- </xsl:with-param>
- </xsl:call-template>
- </xsl:template>
-
- <!-- the authored routed event Information section -->
- <xsl:template match="ddue:section[starts-with(@address,'routedEventInfo')]" mode="section">
- <xsl:call-template name="section">
- <xsl:with-param name="toggleSwitch" select="'routedEventInfo'"/>
- <xsl:with-param name="title">
- <include item="routedEventInfoHeading" />
- </xsl:with-param>
- <xsl:with-param name="content">
- <xsl:apply-templates select="ddue:content" />
- </xsl:with-param>
- </xsl:call-template>
- </xsl:template>
-
- <!-- Show XAML xmlns for apis that support XAML -->
- <xsl:template name="xamlXmlnsInfo">
- <xsl:variable name="hasAuthoredXamlSyntax" select="boolean(//ddue:sections/ddue:section[
- starts-with(@address,'xamlTextUsage') or
- starts-with(@address,'xamlAttributeUsage') or
- starts-with(@address,'xamlPropertyElementUsage') or
- starts-with(@address,'xamlImplicitCollectionUsage') or
- starts-with(@address,'xamlObjectElementUsage')])" />
- <xsl:variable name="hasAutogeneratedXamlSyntax" select="boolean(/document/syntax/div[@codeLanguage='XAML']/div[
- @class='xamlAttributeUsageHeading' or
- @class='xamlObjectElementUsageHeading' or
- @class='xamlContentElementUsageHeading' or
- @class='xamlPropertyElementUsageHeading'])" />
- <!-- All topics that have authored or autogen'd xaml syntax get an "XMLNS for XAML" line in the Requirements section.
- Topics with boilerplate xaml syntax, e.g. "Not applicable", do NOT get this line. -->
- <xsl:if test="$hasAuthoredXamlSyntax or $hasAutogeneratedXamlSyntax">
- <br/>
- <include item="xamlXmlnsRequirementsLayout">
- <parameter>
- <xsl:choose>
- <xsl:when test="/document/syntax/div[@codeLanguage='XAML']/div[@class='xamlXmlnsUri']">
- <xsl:for-each select="/document/syntax/div[@codeLanguage='XAML']/div[@class='xamlXmlnsUri']">
- <xsl:if test="position()!=1"><xsl:text>, </xsl:text></xsl:if>
- <xsl:value-of select="."/>
- </xsl:for-each>
- </xsl:when>
- <xsl:otherwise>
- <include item="unmappedXamlXmlns"/>
- </xsl:otherwise>
- </xsl:choose>
- </parameter>
- </include>
- </xsl:if>
- </xsl:template>
-
-</xsl:stylesheet>