4 Based on Mono's /monodoc/browser/mono-ecma.xsl file.
9 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
12 <xsl:output omit-xml-declaration="yes" />
14 <xsl:include href="stylesheet.xsl"/>
16 <xsl:param name="ext" select="'xml'"/>
17 <xsl:param name="namespace" select="''"/>
19 <xsl:variable name="max-types">50</xsl:variable>
21 <xsl:template match="Overview">
25 <xsl:value-of select="Title"/>
26 <xsl:if test="not($namespace='' or $namespace='all' or count(Types/Namespace)=1)">
27 <xsl:value-of select="': '"/>
28 <xsl:value-of select="$namespace"/>
33 <xsl:if test="not($namespace='' or $namespace='all')">
34 <a href="../index.{$ext}"><xsl:value-of select="Title"/></a>
40 <xsl:when test="not($namespace='' or $namespace='all')">
41 <xsl:call-template name="GetNamespaceName">
42 <xsl:with-param name="ns" select="$namespace" />
46 <xsl:value-of select="Title"/>
53 <xsl:if test="not($namespace='')">
54 <p style="font-weight: bold; border-bottom: thin solid black"><a href="../index.{$ext}"><xsl:value-of select="Assembly"/></a></p>
55 <xsl:for-each select="Types/Namespace">
56 <xsl:sort select="@Name"/>
58 <a href="../{@Name}/index.{$ext}">
59 <xsl:value-of select="@Name"/>
64 <xsl:if test="$namespace=''">
65 <div class="AssemblyRemarks" style="margin-top: 1em; margin-bottom: 1em">
66 <xsl:apply-templates select="Remarks" mode="notoppara"/>
73 <xsl:if test="$namespace=''">
74 <div class="AssemblyRemarks" style="margin-top: 1em; margin-bottom: 1em">
75 <xsl:apply-templates select="Remarks" mode="notoppara"/>
85 <xsl:when test="Types/Namespace[@Name=$namespace][count(Type)>0] and $namespace != ''">
86 <!-- show all types within namespace -->
87 <h2 class="Section"><xsl:call-template name="GetNamespaceName" /></h2>
88 <xsl:call-template name="CreateNamespaceDetails">
89 <xsl:with-param name="ns" select="Types/Namespace[@Name=$namespace]" />
92 <xsl:when test="count(Types//Type) < $max-types">
93 <!-- index; show all types -->
94 <xsl:for-each select="Types/Namespace">
95 <xsl:sort select="@Name"/>
96 <h2 class="Section"><xsl:call-template name="CreateNamespaceLink" /></h2>
97 <xsl:call-template name="CreateNamespaceDetails">
98 <xsl:with-param name="ns" select="." />
103 <!-- index; show only namespaces -->
104 <xsl:for-each select="Types/Namespace">
105 <xsl:sort select="@Name"/>
106 <h2 class="Section"><xsl:call-template name="CreateNamespaceLink" /></h2>
107 <p><xsl:apply-templates select="document(concat('ns-',@Name,'.xml'), .)/Namespace/Docs/summary" mode="notoppara"/></p>
117 <xsl:copy-of select="Copyright"/>
122 <xsl:template name="CreateNamespaceDetails">
123 <xsl:param name="ns" />
124 <p><xsl:apply-templates select="document(concat('ns-',$ns/@Name,'.xml'), .)/Namespace/Docs/remarks" mode="notoppara"/></p>
126 <table class="TypesListing" style="margin-top: 1em">
133 <xsl:for-each select="$ns/Type">
134 <xsl:sort select="@Name"/>
137 <xsl:variable name="path">
139 <xsl:when test="$namespace=parent::Namespace/@Name">.</xsl:when>
140 <xsl:otherwise><xsl:value-of select="parent::Namespace/@Name"/></xsl:otherwise>
144 <a href="{$path}/{@Name}.{$ext}">
146 <xsl:when test="@DisplayName != ''">
147 <xsl:value-of select="translate (@DisplayName, '+', '.')"/>
150 <xsl:value-of select="translate (@Name, '+', '.')"/>
156 <xsl:variable name="docdir">
158 <xsl:when test="parent::Namespace/@Name = ''">.</xsl:when>
160 <xsl:value-of select="parent::Namespace/@Name" />
164 <xsl:apply-templates select="document(concat($docdir, '/', @Name, '.xml'), .)/Type/Docs/summary" mode="notoppara"/>
172 <xsl:template name="GetNamespaceName">
173 <xsl:param name="ns" select="@Name" />
175 <xsl:when test="$ns = ''">
176 <xsl:text>Root</xsl:text>
179 <xsl:value-of select="$ns" />
182 <xsl:text> Namespace</xsl:text>
185 <xsl:template name="CreateNamespaceLink">
187 <xsl:when test="@Name =''">
188 <xsl:call-template name="GetNamespaceName" />
191 <a href="{@Name}/index.{$ext}"><xsl:call-template name="GetNamespaceName" /></a>