miniSql

128.00 KiB
6136600 » zgc123@gmail.com
11/19/2023 创建
MZÿÿ¸@€º´	Í!¸LÍ!This program cannot be run in DOS mode.

$PELMDkLà!Ð þâ @ @¨âS   H.textà Р`.rsrcà@@.reloc ð@BàâHô§´:€@rg0s
}	rp(
o
*0(
to
+*0(
to
+*0(
to
+*0(
to
+*0(
to
+*0
rp
+*0s(
*0*
r
p(
(
r-p(
rp(
}(
o
o
r7p{rWp(
(
((
&(rap(
(
&(rsp(
(
&(r‡p(
(
&(r“p(
(
&(rŸp(
(
&(r«p(
(
&Þ
r»ps
z
X
rp(
(
(

	(
	s 
s!
}{o"
Þ,o#
ÜÞ
	,	($
ÜX
rOp(
({(
t(>rwpo%
X
r‘p(
{rÉp(
X
rëp(
{r#p(
X
rEp(
{rp(r§p(
{rçp(
X
rp(
{rKp(rÎp(&
o'
o(
+%o)
t	o,		(
o*
-ÒÞu0

,
o#
ÜrÖp(
{rp(r;p(&
o'


o(
+o)
t
(o*
-ßÞu0

,
o#
ÜdrEp(
*@[’í
5,FAT
d2–â%0Š-rWps+
z,38oo,
ripo-
o.

o/
(o0
-8@o6-8/{	o1
,8{	o2
(rop~3
o4
YE
"+(rp
+(r‹p
+ r›p
+r¥p
+r¯p
+r½p
+rËp~3
	o4
rwpo%
rÛpo'
o(

8@
o)
t	o49!rpo,
r	po-
o.
rprpo5
(6
rpÐ9(7
o8
r=p(&
o9
-'rpÐ;(7
o8
r=p(&
o9
,s{rCpr_p(&
o9
u8,rpo.
(6
r­po9
		,'	o,
rïpo-
o.
rûprÿpo5
o*

,
o,,
(

o*
:´þÿÿÞ
u0,o#
Ü{(*ASf0P-rps+
zripo:

o5(r#p~3
o4
rËp~3
r7po4
rIp~3
rcpo:
o4
rwpo%
rmpo'
o(
+Fo)
t8
rp	o.
(6
o*,o,,(
o*
-±Þu0,o#
Üo,
rpo-
,:rpo.
(6
o*		,	o,

,	
(
{(*‰SÜ0à(;
s<
}s<
}s<
}s<
}s<
}s<
}{r£p(
(;
{rÃp(
((;
{rãp(
2(;
{rp(
<(;
{r/p(
P(;
{rKp(
d(;
*0{rWp(
(
o=
*0Ns>

rop~3
(o4
r‡p~3
(o4
r¥p~3
(o4
+*05((

(?
s@
{oA
Þ
,o#
Ü**
0ßr»p}rp}rp}rp}rp}rp}rp(B
(C
rÙp
(D
(E
ŒB¢(F
(G
r	p(H
(I
(J
(K
(L
(M
(N
(O
(P
(Q
(R
(S
(T
*0{
+*0}(U
*0{
+*0}(U
*0{
+*0}(U
*0{
+*0}(U
*0{
+*0}(U
*0{
+*0}(U
*0{
+*0}(U
*0–	s
}"(Z
}#}$o,rW	p} rü	p}!+Io[
E+0r
p} rb
p}!+rl
p} rb
p}!+("rÐ
po'

o(
8Ìo)
t
o,
ripo-
o.
{"(7o\
rà
po'

	o(
8Zo)
t
o,
ripo-
o.
rî
prprpr$pr2prDpÞo]
%	9	(^
		rî
p.8	rp.M	rp.i	r$p.w	r2p;‚	rDp;›8»{"{"o_
o\
8{"o,
rcpo-
o.
o\
+x{"(4o\
+a{"(<o\
+J{"o,
rcpo-
o.
o\
+%{"o,
rcpo-
o.
o\
+o*
:šþÿÿÞu0

,
o#
Üo*
:(þÿÿÞu0

,
o#
Ü*A4ðm]¡ß€0{ 
+*0{!
+*0
{#
+*0{$
+*0(#o
+*0Rrpo0
-
rp(6
("rCpr=p(&
o9

-+o`
rÿpoa
+*0ö
ob
2oc
:.~3
8Õrpod
,rprpo5
ob
	2,o/
rPpo0
:»o/
r`po0
:¥
rpr‚pÞoe
%,/(^
rp.
r‚p.
+(9
+(8
+-~3
8)o/
rˆpo0
,*o/
r”po0
-(#o(6
8ìr®p(6
8Ûr¶prpr¼prÂpr‚prÈpÞoe
%9¤(^
r¶p.*rp.Lr¼p.srÂp.sr‚p.krÈp.c+k( o/
rÿprpo5
(!(&
+I( o/
rÿprpo5
rÎp(!(f
+~3
+(:+~3
+*0¿ob
/8­oc
:@‰ob
	2&o/
rPpo0
-'o/
r`po0
-{"o_

,+[räpog
%2Yoe
+'rìpog
%2Yoe
+	o/
rÿpoh
Xo/
+*0(*(;
+*0(*(7
+*0woc
:3rpo0
-+Yrpo0
-
rp(6
("rCpr=p(&
o9

-("rðpr=p(&
o9

+*0Voc
:3r‚po0
-
+8r‚po0
-
r‚p(6
("rpr=p(&
o9

+*0;-
8/oi
r6p(j
,
8(;,
8rNpÐK(7
o8
r=p(&
o9
,4rpÐL(7
o8
r=p(&
o9
,
8³
8¬rNpÐM(7
o8
r=p(&
o9
,.rpÐL(7
o8
r=p(&
o9
,
+\
+XrNpÐN(7
o8
r=p(&
o9
,
+.rpÐO(7
o8
r€p(&
o9
,
+
+*0(*(,
+*0(-þ
+*0(-þ
+*0(-þ
+*0(-þ
+*0(-þ
+*0(?
(k

+*0$rpÐQ(7
o8
rÆp(&
o9
u8
,
o.
8çrpÐ9(7
o8
rÆp(&
o9
u8,
o.
8­rpÐ;(7
o8
rÆp(&
o9
u8,
o.
+vrpÐR(7
o8
rÆp(&
o9
u8
	,
	o.
+?rpÐS(7
o8
rÆp(&
o9
u8,o.
++*0sl

r
po9
,(om
rp(n
,om
oo
&.op
&rÉ
po9
,!om
rp(n
,om
oo
&+o,
rcpo-
o.
oo
&(op
&rzpo'

+2	1	,op
&	oq
t
r	po:
oo
&	X
	or
2Å)op
&os
rŽp-+(3r¤p(&
+*0I-	8;
(;,#r°p-+(3r¤p(&
	8oi
r6p(j
,?o,
ripo-
o.
o/
r¾p-+(3r¤p(&
	8ºrNpÐK(7
o8
r=p(&
o9
,ZrpÐL(7
o8
rÆp(&
o9
u8
	,-	o.
rÌp-+(3r¤p(&
	8:rNpÐM(7
o8
r=p(&
o9
,]rpÐL(7
o8
rÆp(&
o9
u8,.o.
rÚp-+(3r¤p(&
	8·(=
,	8¤rNpÐN(7
o8
r=p(&
o9
,?o,
ripo-
o.
o/
rìp-+(3r¤p(&
	+?o,
ripo-
o.
o/
rp-+(3r¤p(&
	+	*0-~3

8(;
,rprp(&

8ãrpÐL(7
o8
rÆp(&
o9
u8,|rNpÐK(7
o8
r=p(&
o9
,rpo.
rp(&

+xrNpÐM(7
o8
r=p(&
o9
,rpo.
rp(&

+:rpÐO(7
o8
rp(&
o9
u8,	o.

+
+	*0(+
,(5++*0(*(6
+*0Àräpog
%2Yoe
rbp(6

+%rìpog
%2
Yoe

+o/

rÿpoh
oe
Xo/

2( ¢rÿprpo5
¢rnp¢	¢rzp¢(!¢(t
+*0i-+`rNpÐU(7
o8
r=p(&
o9
,6rpÐV(7
o8
rÆp(&
o9
u8
,	o.
++*0 rpÐW(7
o8
rÆp(&
o9

-o,
rcpo-
o.
+^r†pÐO(7
o8
r€p(&
o9
-o,
rcpo-
o.
+om
r°pom
r¶p(f
+*0Er¼po9
u8
,+o.
rp(n
,r{po.
(3(6
++*0ª~%%
(u
~%ov
+Oo)
t
o"39o#o[
ŒIo[
ŒI(w
,o#oo3Þ?o*
-¨Þu0,o#
Üs~%ox
&Þ	(y
Ü*\t•¡0sz
€%*A<?xml version="1.0" encoding="utf-8" ?>
<!--
// NAnt - A .NET build tool
// Copyright (C) 2001-2003 Gerry Shaw
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
//
// Ian MacLean (ian@maclean.ms)
// Scott Hernandez (ScottHernandez-at-Hotmail....com)
// Gert Driesen (gert.driesen@ardatis.com)
-->

<xsl:stylesheet xmlns="http://www.w3.org/1999/xhtml" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:NAntUtil="urn:NAntUtil" exclude-result-prefixes="NAntUtil" version="1.0">
    <xsl:include href="tags.xslt" />
    <xsl:include href="common.xslt" />
    <xsl:include href="nant-attributes.xslt" />

    <xsl:output 
        method="xml" 
        indent="yes" 
        encoding="utf-8" 
        version="1.0"  
        doctype-public="-//W3C//DTD XHTML 1.1//EN" 
        doctype-system="http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" 
        omit-xml-declaration="yes"
        standalone="yes"
        />

    <xsl:param name="productName"></xsl:param>
    <xsl:param name="productVersion"></xsl:param>
    <xsl:param name="productUrl"></xsl:param>

    <!-- The class we are documenting this time. This value will be passed in by the caller. argv[] equivalent. Default value is used for testing -->
    <xsl:param name="class-id">T:NAnt.Core.Types.FileSet</xsl:param>

    <!-- helper values for adjusting the paths -->
    <xsl:param name="refType">Type</xsl:param>

    <xsl:template match="/">
        <html xmlns="http://www.w3.org/1999/xhtml">
            <xsl:comment> Documenting <xsl:value-of select="$class-id" /> </xsl:comment>
            <xsl:choose>
                <xsl:when test="$refType = 'Enum'"><xsl:apply-templates select="//enumeration[@id = $class-id]" mode="EnumDoc" /></xsl:when>
                <xsl:otherwise><xsl:apply-templates select="//class[@id = $class-id]" mode="TypeDoc" /></xsl:otherwise>
            </xsl:choose>
        </html>
    </xsl:template>

    <xsl:template match="class" mode="TypeDoc">
        <xsl:variable name="name">
            <xsl:choose>
                <xsl:when test="attribute/property[@name = 'Name']">&lt;<xsl:value-of select="attribute/property[@name = 'Name']/@value" />&gt;</xsl:when>
                <xsl:otherwise><xsl:value-of select="@name" /></xsl:otherwise>
            </xsl:choose> 
        </xsl:variable>
        <xsl:variable name="parentPage">
            <xsl:choose>
                <xsl:when test="$refType = 'Task'">../tasks/index.html</xsl:when>
                <xsl:when test="$refType = 'Type'">../types/index.html</xsl:when>
                <xsl:when test="$refType = 'Filter'">../filters/index.html</xsl:when>
                <xsl:when test="$refType = 'Element'"></xsl:when>
            </xsl:choose>
        </xsl:variable>
        <head>
            <meta http-equiv="Content-Language" content="en-ca" />
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
            <link rel="stylesheet" type="text/css" href="../style.css" />
            <title><xsl:value-of select="$name" /><xsl:text> </xsl:text><xsl:value-of select="$refType" /></title>
        </head>
        <body>
            <table width="100%" border="0" cellspacing="0" cellpadding="2" class="NavBar">
                <tr>
                    <td class="NavBar-Cell">
                        <xsl:element name="a">
                            <xsl:attribute name="href"><xsl:value-of select="$productUrl" /></xsl:attribute>
                            <b><xsl:value-of select="$productName" /></b>
                        </xsl:element>
                        <img alt="->" src="../images/arrow.gif" />
                        <a href="../index.html">Help</a>
                        <img alt="->" src="../images/arrow.gif" />
                        <xsl:choose>
                            <xsl:when test="string-length($parentPage) > 0">
                                <a href="{$parentPage}"><xsl:value-of select="$refType" /> Reference</a>
                            </xsl:when>
                            <xsl:otherwise>
                                <span><xsl:value-of select="$refType" /> Reference</span>
                            </xsl:otherwise>
                        </xsl:choose>
                        <img alt="->" src="../images/arrow.gif" /><xsl:text> </xsl:text>
                        <xsl:value-of select="$name" />
                    </td>
                    <td class="NavBar-Cell" align="right">
                        v<xsl:value-of select="$productVersion" />
                    </td>
                </tr>
            </table>
            <h1><xsl:value-of select="$name" /></h1>
            <xsl:if test="ancestor-or-self::node()/documentation/preliminary | /ndoc/preliminary">
                <xsl:call-template name="preliminary-section"/>
            </xsl:if>
            <xsl:apply-templates select="." />
            <h3>Requirements</h3>
            <div style="margin-left: 20px;">
                <b>Assembly:</b><xsl:text> </xsl:text><xsl:value-of select="ancestor::assembly/@name" /> (<xsl:value-of select="ancestor::assembly/@version" />)
            </div>
            <xsl:call-template name="seealso-section" />
        </body>
    </xsl:template>

    <!-- match class tag for info about a type -->
    <xsl:template match="class">
        <!-- output whether type is deprecated -->
        <xsl:variable name="ObsoleteAttribute" select="attribute[@name = 'System.ObsoleteAttribute']" />
        <xsl:if test="count($ObsoleteAttribute) > 0">
            <p>
                <i>(Deprecated)</i>
            </p>
        </xsl:if>
        
        <p><xsl:apply-templates select="documentation/summary" mode="slashdoc" /></p>
        <!-- Remarks -->
        <xsl:apply-templates select="documentation/remarks" mode="slashdoc" />

        <xsl:variable name="properties" select="property[attribute/@name = 'NAnt.Core.Attributes.TaskAttributeAttribute']" />
        <xsl:if test="count($properties) != 0">
            <h3>Parameters</h3>
            <div class="table">
                <table>
                    <tr>
                        <th>Attribute</th>
                        <th style="text-align: center;">Type</th>
                        <th>Description</th>
                        <th style="text-align: center;">Required</th>
                    </tr>
                    <xsl:apply-templates select="$properties" mode="TypeDoc">
                        <!-- sort order: any property declared from the documented class, then by required, last by name-->
                        <xsl:sort select="boolean(@declaringType)" />
                        <xsl:sort select="attribute[@name = 'NAnt.Core.Attributes.TaskAttributeAttribute']/property[@name = 'Required']/@value" order="descending" />
                        <xsl:sort select="attribute[@name = 'NAnt.Core.Attributes.TaskAttributeAttribute']/property[@name = 'Name']/@value" />
                    </xsl:apply-templates>
                </table>
            </div>
        </xsl:if>

        <xsl:variable name="FrameworkProperties" select="property[attribute/@name = 'NAnt.Core.Attributes.FrameworkConfigurableAttribute']" />
        <xsl:if test="count($FrameworkProperties) != 0">
            <h3>Framework-configurable parameters</h3>
            <div class="table">
                <table>
                    <tr>
                        <th>Attribute</th>
                        <th style="text-align: center;">Type</th>
                        <th>Description</th>
                        <th style="text-align: center;">Required</th>
                    </tr>
                    <xsl:apply-templates select="$FrameworkProperties" mode="TypeDoc">
                        <xsl:sort select="attribute[@name = 'NAnt.Core.Attributes.FrameworkConfigurableAttribute']/property[@name = 'Name']/@value" />
                    </xsl:apply-templates>
                </table>
            </div>
        </xsl:if>

        <!-- nested elements -->
        <xsl:variable name="arrays" select="property[attribute/@name = 'NAnt.Core.Attributes.BuildElementArrayAttribute' ]" />
        <xsl:variable name="colls" select="property[attribute/@name = 'NAnt.Core.Attributes.BuildElementCollectionAttribute' ]" />
        <xsl:variable name="elements" select="property[attribute/@name = 'NAnt.Core.Attributes.BuildElementAttribute' ]" />
        <xsl:variable name="orderedElements" select="method[attribute/@name = 'NAnt.Core.Attributes.BuildElementAttribute' ]" />

        <xsl:if test="count($arrays) != 0 or count($elements) != 0 or count($colls) != 0 or count($orderedElements) != 0">
            <h3>Nested Elements:</h3>
            <xsl:apply-templates select="child::*/attribute" mode="NestedElements">
                <xsl:sort select="property[@name='Required' and @value='True']" />
            </xsl:apply-templates>
        </xsl:if>

        <!-- Example -->
        <xsl:if test="count(documentation/example) != 0">
            <h3>Examples</h3>
            <ul class="examples">
                <xsl:apply-templates select="documentation/example" mode="slashdoc" />
            </ul>
        </xsl:if>
    </xsl:template>

    <!-- returns the summary doc string for a given class property (called from the property templates )-->
    <xsl:template match="class/property" mode="docstring">
        <xsl:choose>
            <xsl:when test="@declaringType">
                <xsl:variable name="ObsoleteAttribute" select="//class[@id = concat('T:', current()/@declaringType)]/*[@name = current()/@name]/attribute[@name = 'System.ObsoleteAttribute']" />
                <xsl:if test="count($ObsoleteAttribute) > 0">
                    <i>Deprecated.</i>
                    <xsl:text> </xsl:text>
                </xsl:if>
                <xsl:apply-templates select="//class[@id = concat('T:', current()/@declaringType)]/*[@name = current()/@name]/documentation/summary" mode="slashdoc" />
            </xsl:when>
            <xsl:otherwise>
                <xsl:variable name="ObsoleteAttribute" select="attribute[@name = 'System.ObsoleteAttribute']" />
                <xsl:if test="count($ObsoleteAttribute) > 0">
                    <i>Deprecated.</i>
                    <xsl:text> </xsl:text>
                </xsl:if>
                <xsl:apply-templates select="documentation/summary" mode="slashdoc" />
            </xsl:otherwise>
        </xsl:choose>
    </xsl:template>

    <!-- returns the summary doc string for a given class method -->
    <xsl:template match="class/method" mode="docstring">
        <xsl:choose>
            <xsl:when test="@declaringType">
                <xsl:variable name="ObsoleteAttribute" select="//class[@id = concat('T:', current()/@declaringType)]/*[@name = current()/@name]/attribute[@name = 'System.ObsoleteAttribute']" />
                <xsl:if test="count($ObsoleteAttribute) > 0">
                    <i>Deprecated.</i>
                    <xsl:text> </xsl:text>
                </xsl:if>
                <xsl:apply-templates select="//class[@id = concat('T:', current()/@declaringType)]/*[@name = current()/@name]/documentation/summary" mode="slashdoc" />
            </xsl:when>
            <xsl:otherwise>
                <xsl:variable name="ObsoleteAttribute" select="attribute[@name = 'System.ObsoleteAttribute']" />
                <xsl:if test="count($ObsoleteAttribute) > 0">
                    <i>Deprecated.</i>
                    <xsl:text> </xsl:text>
                </xsl:if>
                <xsl:apply-templates select="documentation/summary" mode="slashdoc" />
            </xsl:otherwise>
        </xsl:choose>
    </xsl:template>

    <xsl:template match="enumeration" mode="EnumDoc">
        <xsl:variable name="name"><xsl:value-of select="@name" /></xsl:variable>
        <xsl:variable name="parentPage">../index.html</xsl:variable>
        <head>
            <meta http-equiv="Content-Language" content="en-ca" />
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
            <link rel="stylesheet" type="text/css" href="../style.css" />
            <title><xsl:value-of select="$name" /> enum</title>
        </head>
        <body>
            <table width="100%" border="0" cellspacing="0" cellpadding="2" class="NavBar">
                <tr>
                    <td class="NavBar-Cell">
                        <xsl:element name="a">
                            <xsl:attribute name="href"><xsl:value-of select="$productUrl" /></xsl:attribute>
                            <b><xsl:value-of select="$productName" /></b>
                        </xsl:element>
                        <img alt="->" src="../images/arrow.gif" />
                        <a href="../index.html">Help</a>
                        <img alt="->" src="../images/arrow.gif" />
                        <span><xsl:value-of select="$refType" /> Reference</span>
                        <img alt="->" src="../images/arrow.gif" /><xsl:text> </xsl:text>
                        <xsl:value-of select="$name" />
                    </td>
                    <td class="NavBar-Cell" align="right">
                        v<xsl:value-of select="$productVersion" />
                    </td>
                </tr>
            </table>
            <h1><xsl:value-of select="$name" /></h1>
            <xsl:if test="ancestor-or-self::node()/documentation/preliminary | /ndoc/preliminary">
                <xsl:call-template name="preliminary-section"/>
            </xsl:if>
            <xsl:apply-templates select="." />
            <h3>Requirements</h3>
            <div style="margin-left: 20px;">
                <b>Assembly:</b><xsl:text> </xsl:text><xsl:value-of select="ancestor::assembly/@name" /> (<xsl:value-of select="ancestor::assembly/@version" />)
            </div>
            <xsl:call-template name="seealso-section" />
        </body>
    </xsl:template>

    <!-- match enumeration tag for info about an enum type -->
    <xsl:template match="enumeration">
        <!-- output whether type is deprecated -->
        <xsl:variable name="ObsoleteAttribute" select="attribute[@name = 'System.ObsoleteAttribute']" />
        <xsl:if test="count($ObsoleteAttribute) > 0">
            <p>
                <i>(Deprecated)</i>
            </p>
        </xsl:if>
        
        <p><xsl:apply-templates select="documentation/summary" mode="slashdoc" /></p>
        <!-- Remarks -->
        <xsl:apply-templates select="documentation/remarks" mode="slashdoc" />

        <xsl:variable name="fields" select="field" />
        <xsl:if test="count($fields) != 0">
            <h3>Fields</h3>
            <div class="table">
                <table>
                    <tr>
                        <th>Field</th>
                        <th>Description</th>
                    </tr>
                    <xsl:apply-templates select="$fields" mode="EnumDoc">
                        <xsl:sort select="@name" />
                    </xsl:apply-templates>
                </table>
            </div>
        </xsl:if>
    </xsl:template>

    <!-- returns the summary doc string for a given enumeration field -->
    <xsl:template match="enumeration/field" mode="docstring">
        <xsl:variable name="ObsoleteAttribute" select="attribute[@name = 'System.ObsoleteAttribute']" />
        <xsl:if test="count($ObsoleteAttribute) > 0">
            <i>Deprecated.</i>
            <xsl:text> </xsl:text>
        </xsl:if>
        <xsl:apply-templates select="documentation/summary" mode="slashdoc" />
    </xsl:template>

    <!-- match enumeration field -->
    <xsl:template match="enumeration/field" mode="EnumDoc">
        <xsl:element name="tr">
            <xsl:element name="td">
                <xsl:attribute name="valign">top</xsl:attribute>
                <xsl:value-of select="@name" />
            </xsl:element>
            <td>
                <xsl:apply-templates mode="docstring" select="." />
            </td>
        </xsl:element>
    </xsl:template>
</xsl:stylesheet>
á<?xml version="1.0" encoding="utf-8" ?>
<!--
// NAnt - A .NET build tool
// Copyright (C) 2001-2003 Gerry Shaw
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
//
// Ian MacLean (ian@maclean.ms)
// Scott Hernandez (ScottHernandez-at-Hotmail....com)
-->

<xsl:stylesheet xmlns="http://www.w3.org/1999/xhtml" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:NAntUtil="urn:NAntUtil" exclude-result-prefixes="NAntUtil" version="1.0">
    <xsl:include href="tags.xslt" />
    <xsl:include href="common.xslt" />
    <xsl:include href="nant-attributes.xslt" />

    <xsl:output 
        method="xml" 
        indent="yes" 
        encoding="utf-8" 
        version="1.0"  
        doctype-public="-//W3C//DTD XHTML 1.1//EN" 
        doctype-system="http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" 
        omit-xml-declaration="yes"
        standalone="yes"
        />
    
    <xsl:param name="productName"></xsl:param>
    <xsl:param name="productVersion"></xsl:param>
    <xsl:param name="productUrl"></xsl:param>    
    <xsl:param name="method-id"></xsl:param>
    <xsl:param name="functionName"></xsl:param>
    <xsl:param name="refType">Function</xsl:param>

    <xsl:template match="/">
        <html xmlns="http://www.w3.org/1999/xhtml">
            <xsl:comment> Documenting <xsl:value-of select="$functionName" /> </xsl:comment>
            <xsl:apply-templates select="//method[@id=$method-id]" mode="FunctionDoc" />
        </html>
    </xsl:template>

    <xsl:template match="method" mode="FunctionDoc">
        <xsl:variable name="Prefix" select="../attribute[@name='NAnt.Core.Attributes.FunctionSetAttribute']/property[@name='Prefix']/@value" />
        <xsl:variable name="Name" select="attribute[@name='NAnt.Core.Attributes.FunctionAttribute']/property[@name='Name']/@value" />
        <xsl:variable name="name"><xsl:value-of select="$Prefix" />::<xsl:value-of select="$Name" /></xsl:variable>
        <head>
            <meta http-equiv="Content-Language" content="en-ca" />
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
            <link rel="stylesheet" type="text/css" href="../style.css" />
            <title><xsl:value-of select="$name" /> Function</title>
        </head>
        <body>
            <table width="100%" border="0" cellspacing="0" cellpadding="2" class="NavBar">
                <tr>
                    <td class="NavBar-Cell">
                        <xsl:element name="a">
                            <xsl:attribute name="href"><xsl:value-of select="$productUrl" /></xsl:attribute>
                            <b><xsl:value-of select="$productName" /></b>
                        </xsl:element>
                        <img alt="->" src="../images/arrow.gif" />
                        <a href="../index.html">Help</a>
                        <img alt="->" src="../images/arrow.gif" />
                        <a href="index.html">Function Reference</a>
                        <img alt="->" src="../images/arrow.gif" /><xsl:text> </xsl:text>
                        <xsl:value-of select="$name" />
                    </td>
                    <td class="NavBar-Cell" align="right">
                        v<xsl:value-of select="$productVersion" />
                    </td>
                </tr>
            </table>

            <h1><xsl:value-of select="$name" /></h1>
            <xsl:if test="ancestor-or-self::node()/documentation/preliminary | /ndoc/preliminary">
                <xsl:call-template name="preliminary-section"/>
            </xsl:if>

            <!-- output whether type is deprecated -->
            <xsl:variable name="ObsoleteAttribute" select="attribute[@name = 'System.ObsoleteAttribute']" />
            <xsl:if test="count($ObsoleteAttribute) > 0">
                <p>
                    <i>(Deprecated)</i>
                </p>
            </xsl:if>

            <p><xsl:apply-templates select="documentation/summary" mode="slashdoc" /></p>

            <h3>Usage</h3>
            <code>
                 <xsl:call-template name="get-a-href-with-name">
                    <xsl:with-param name="cref" select="concat('T:', @returnType)" />
                </xsl:call-template>
                <xsl:text> </xsl:text>
                <xsl:value-of select="$name" />(<xsl:for-each select="parameter"><xsl:if test="position() != 1">, </xsl:if><span class="parameter"><xsl:value-of select="@name" /></span></xsl:for-each>)
            </code>
            <p/>

            <xsl:if test="count(parameter) != 0">
                <h3>Parameters</h3>
                <div class="table">
                    <table>
                        <tr>
                            <th>Name</th>
                            <th>Type</th>
                            <th>Description</th>
                        </tr>
                        <xsl:for-each select="parameter">
                            <tr>
                                <td><xsl:value-of select="@name" /></td>
                                <td>
                                    <xsl:call-template name="get-a-href-with-name">
                                        <xsl:with-param name="cref" select="concat('T:', @type)" />
                                    </xsl:call-template>
                                </td>
                                <xsl:variable name="paramname" select="@name" />
                                <td><xsl:apply-templates select="../documentation/param[@name=$paramname]/node()" mode="slashdoc" /></td>
                            </tr>
                        </xsl:for-each>
                    </table>
                </div>
            </xsl:if>
            <xsl:if test="count(documentation/returns) != 0">
                <h3>Return Value</h3>
                <xsl:apply-templates select="documentation/returns/node()" mode="slashdoc" />
            </xsl:if>
            <xsl:call-template name="exceptions-section" />
            <xsl:if test="count(documentation/remarks) != 0">
                <h3>Remarks</h3>
                <xsl:apply-templates select="documentation/remarks" mode="slashdoc" />
            </xsl:if>
            <xsl:if test="count(documentation/example) != 0">
                <h3>Examples</h3>
                <ul class="examples">
                    <xsl:apply-templates select="documentation/example" mode="slashdoc" />
                </ul>
            </xsl:if>
            <h3>Requirements</h3>
            <div style="margin-left: 20px;">
                <b>Assembly:</b><xsl:text> </xsl:text><xsl:value-of select="ancestor::assembly/@name" /> (<xsl:value-of select="ancestor::assembly/@version" />)
            </div>
            <xsl:call-template name="seealso-section" />
        </body>
    </xsl:template>
    <xsl:template name="exceptions-section">
        <xsl:if test="documentation/exception">
            <h3>Exceptions</h3>
            The function will fail in any of the following circumstances:
            <div style="margin-left: 40px;">
                <ul>
                    <xsl:for-each select="documentation/exception">
                        <xsl:sort select="@name" />
                        <li>
                            <xsl:apply-templates select="./node()" mode="slashdoc" />
                            <xsl:if test="not(./node())">&#160;</xsl:if>
                        </li>
                    </xsl:for-each>
                </ul>
            </div>
        </xsl:if>
    </xsl:template>
</xsl:stylesheet>
ù7<?xml version="1.0" encoding="utf-8" ?>
<!--
// NAnt - A .NET build tool
// Copyright (C) 2003 Scott Hernandez
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
//
// Scott Hernandez (ScottHernandez-at-Hotmail....com)
-->

<xsl:stylesheet xmlns="http://www.w3.org/1999/xhtml"  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:NAntUtil="urn:NAntUtil" exclude-result-prefixes="NAntUtil" version="1.0">
    <!-- match attribute by names -->
    <xsl:template match="attribute[@name = 'NAnt.Core.Attributes.BuildElementAttribute' and ancestor::property]" mode="NestedElements">
        <xsl:comment>Element</xsl:comment>
        <xsl:call-template name="NestedElement">
            <xsl:with-param name="elementTypeParam" select="../@type" />
        </xsl:call-template>
    </xsl:template>

    <xsl:template match="attribute[@name = 'NAnt.Core.Attributes.BuildElementAttribute' and ancestor::method]" mode="NestedElements">
        <xsl:comment>Element</xsl:comment>
        <xsl:call-template name="NestedElement">
            <xsl:with-param name="elementTypeParam" select="../parameter[position()=1]/@type" />
        </xsl:call-template>
    </xsl:template>

    <xsl:template match="attribute[@name = 'NAnt.Core.Attributes.BuildElementArrayAttribute']" mode="NestedElements">
        <xsl:comment>Array</xsl:comment>
        <xsl:call-template name="NestedElementArray">
            <xsl:with-param name="elementTypeParam">
                <xsl:choose>
                    <xsl:when test="property[@name='ElementType']/@value != 'null'">
                        <xsl:value-of select="property[@name='ElementType']/@value" />
                    </xsl:when>
                    <xsl:otherwise>
                        <xsl:variable name="elementType" select="translate(translate(concat('T:', ../@type), '[]', ''), '+', '.')" />
                        <xsl:choose>
                            <!-- check if we're dealing with array of elements -->
                            <xsl:when test="NAntUtil:IsElement($elementType)">
                                <xsl:value-of select="../@type" />
                            </xsl:when>
                            <!-- check if we're dealing with strongly typed collection -->
                            <xsl:when test="count(NAntUtil:GetClassNode($elementType)/method[@name = 'Add' and @access = 'Public' and count(child::parameter) = 1]) > 0">
                                <xsl:value-of select="NAntUtil:GetClassNode($elementType)/method[@name = 'Add' and @access = 'Public' and count(child::parameter) = 1]/child::parameter[position() = 1]/@type" />
                            </xsl:when>
                        </xsl:choose>
                    </xsl:otherwise>
                </xsl:choose>
            </xsl:with-param>
        </xsl:call-template>
    </xsl:template>

    <xsl:template match="attribute[@name = 'NAnt.Core.Attributes.BuildElementCollectionAttribute']" mode="NestedElements">
        <xsl:comment>Collection</xsl:comment>
        <xsl:call-template name="NestedElementCollection">
            <xsl:with-param name="elementTypeParam">
                <xsl:choose>
                    <xsl:when test="property[@name='ElementType']/@value != 'null'">
                        <xsl:value-of select="property[@name='ElementType']/@value" />
                    </xsl:when>
                    <xsl:otherwise>
                        <xsl:variable name="elementType" select="translate(translate(concat('T:', ../@type), '[]', ''), '+', '.')" />
                        <xsl:choose>
                            <!-- check if we're dealing with array of elements -->
                            <xsl:when test="NAntUtil:IsElement($elementType)">
                                <xsl:value-of select="../@type" />
                            </xsl:when>
                            <!-- check if we're dealing with strongly typed collection -->
                            <xsl:when test="count(NAntUtil:GetClassNode($elementType)/method[@name = 'Add' and @access = 'Public' and count(child::parameter) = 1]) > 0">
                                <xsl:value-of select="NAntUtil:GetClassNode($elementType)/method[@name = 'Add' and @access = 'Public' and count(child::parameter) = 1]/child::parameter[position() = 1]/@type" />
                            </xsl:when>
                        </xsl:choose>
                    </xsl:otherwise>
                </xsl:choose>
            </xsl:with-param>
        </xsl:call-template>
    </xsl:template>

    <xsl:template name="NestedElementArray">
        <xsl:param name="elementTypeParam" select="'#'" />
        
        <xsl:variable name="elementType" select="translate(translate(concat('T:', $elementTypeParam), '[]', ''), '+', '.')" />
        <xsl:comment>NestedElementArray=<xsl:value-of select="$elementType" /></xsl:comment>
        
        <!-- only output link when element is global type -->
        <h4>
            <xsl:element name="a">
                <xsl:attribute name="id">
                    <xsl:value-of select="property[@name='Name']/@value" />
                </xsl:attribute>
            </xsl:element>
            <!-- only output link when element is global type -->
            <xsl:choose>
                <xsl:when test="NAntUtil:IsDataType($elementType)">
                    &lt;<a href="{NAntUtil:GetHRef($elementType)}"><xsl:value-of select="property[@name='Name']/@value" /></a>&gt;
                </xsl:when>
                <xsl:otherwise>
                    &lt;<xsl:value-of select="property[@name='Name']/@value" />&gt;
                </xsl:otherwise>
            </xsl:choose>
        </h4>

        <div class="nested-element">
            <!-- generates docs from summary xmldoc comments -->
            <xsl:apply-templates select=".." mode="docstring" />

            <xsl:variable name="typeNode" select="NAntUtil:GetClassNode($elementType)" />
            <xsl:if test="$typeNode and not(NAntUtil:IsDataType($elementType))">
                <xsl:apply-templates select="$typeNode" />
            </xsl:if>
        </div>

        <h4>
            <xsl:element name="a">
                <xsl:attribute name="id">
                    <xsl:value-of select="property[@name='Name']/@value" />
                </xsl:attribute>
            </xsl:element>
            <!-- only output link when element is global type -->
            <xsl:choose>
                <xsl:when test="NAntUtil:IsDataType($elementType)">
                    &lt;/<a href="{NAntUtil:GetHRef($elementType)}"><xsl:value-of select="property[@name='Name']/@value" /></a>&gt;
                </xsl:when>
                <xsl:otherwise>
                    &lt;/<xsl:value-of select="property[@name='Name']/@value" />&gt;
                </xsl:otherwise>
            </xsl:choose>
        </h4>
    </xsl:template>

    <xsl:template name="NestedElementCollection">
        <xsl:param name="elementTypeParam" select="'#'" />
        <xsl:variable name="childElementType" select="translate(translate(concat('T:', $elementTypeParam), '[]', ''), '+', '.')" />

        <xsl:variable name="childElementName">
            <xsl:value-of select="property[@name='ChildElementName']/@value" />
        </xsl:variable>

        <h4>
            <xsl:element name="a">
                <xsl:attribute name="id">
                    <xsl:value-of select="property[@name='Name']/@value" />
                </xsl:attribute>
            </xsl:element>
            &lt;<xsl:value-of select="property[@name='Name']/@value" />&gt;
        </h4>
        
        <div class="nested-element">
            <!-- generates docs from summary xmldoc comments -->
            <xsl:apply-templates select=".." mode="docstring" />

            <!-- put child element docs inline, if not derive from DataTypeBase -->
            <xsl:variable name="childTypeNode" select="NAntUtil:GetClassNode($childElementType)" />
            <xsl:choose>
                <xsl:when test="$childTypeNode and not(NAntUtil:IsDataType($childElementType))">
                    <h5>&lt;<xsl:value-of select="$childElementName" />&gt;</h5>
                    <div class="nested-element">
                        <xsl:apply-templates select="$childTypeNode" />
                    </div>
                    <h5>&lt;/<xsl:value-of select="$childElementName" />&gt;</h5>
                </xsl:when>
                <xsl:otherwise>
                    <h5>&lt;<a href="{NAntUtil:GetHRef($childElementType)}"><xsl:value-of select="$childElementName" /></a>/&gt;</h5>
                </xsl:otherwise>
            </xsl:choose>
        </div>
       
        <h4>&lt;/<xsl:value-of select="property[@name='Name']/@value" />&gt;</h4>
    </xsl:template>

    <xsl:template name="NestedElement">
        <xsl:param name="elementTypeParam" select="'#'" />
        <xsl:variable name="elementType" select="translate(translate(concat('T:', $elementTypeParam), '[]', ''), '+', '.')" />
        
        <!-- only output link when element is global type -->
        <h4>
            <xsl:element name="a">
                <xsl:attribute name="id">
                    <xsl:value-of select="property[@name='Name']/@value" />
                </xsl:attribute>
            </xsl:element>
            <!-- only output link when element is global type -->
            <xsl:choose>
                <xsl:when test="NAntUtil:IsDataType($elementType)">
                    &lt;<a href="{NAntUtil:GetHRef($elementType)}"><xsl:value-of select="property[@name='Name']/@value" /></a>&gt;
                </xsl:when>
                <xsl:otherwise>
                    &lt;<xsl:value-of select="property[@name='Name']/@value" />&gt;
                </xsl:otherwise>
            </xsl:choose>
        </h4>

        <div class="nested-element">
            <!-- generates docs from summary xmldoc comments -->
            <xsl:apply-templates select=".." mode="docstring" />

            <!-- 
                put the nested element class docs inline if the element does 
                not derive from DataTypeBase (meaning, is not a global type)
            -->
            <xsl:variable name="typeNode" select="NAntUtil:GetClassNode($elementType)" />
            <xsl:if test="$typeNode and not(NAntUtil:IsDataType($elementType))">
                <xsl:apply-templates select="$typeNode" />
            </xsl:if>
            <p />
        </div>

        <h4>
            <xsl:element name="a">
                <xsl:attribute name="id">
                    <xsl:value-of select="property[@name='Name']/@value" />
                </xsl:attribute>
            </xsl:element>
            <!-- only output link when element is global type -->
            <xsl:choose>
                <xsl:when test="NAntUtil:IsDataType($elementType)">
                    &lt;/<a href="{NAntUtil:GetHRef($elementType)}"><xsl:value-of select="property[@name='Name']/@value" /></a>&gt;
                </xsl:when>
                <xsl:otherwise>
                    &lt;/<xsl:value-of select="property[@name='Name']/@value" />&gt;
                </xsl:otherwise>
            </xsl:choose>
        </h4>
    </xsl:template>

    <!-- match TaskAttribute property tag -->
    <xsl:template match="class/property[attribute/@name = 'NAnt.Core.Attributes.TaskAttributeAttribute']" mode="TypeDoc">
        <xsl:variable name="Required" select="attribute/property[@name = 'Required']/@value" />
        <xsl:element name="tr">
            <xsl:element name="td">
                <xsl:attribute name="valign">top</xsl:attribute>
                <xsl:if test="$Required = 'True'">
                    <xsl:attribute name="class">required</xsl:attribute>
                </xsl:if>
                <xsl:value-of select="attribute/property[@name = 'Name']/@value" />
            </xsl:element>
            <td style="text-align: center;">
                <xsl:call-template name="get-a-href-with-name">
                    <xsl:with-param name="cref" select="concat('T:', @type)" />
                </xsl:call-template>
            </td>
            <td>
                <xsl:apply-templates mode="docstring" select="." />
                <xsl:if test="attribute/property[@name='ExpandProperties' and @value='False']">
                    <p style="font-weight: bold;">
                        This attribute's properties will not be automatically expanded!
                    </p>
                </xsl:if>
                
            </td>
            <td style="text-align: center;"><xsl:value-of select="string($Required)" /></td>
        </xsl:element>
    </xsl:template>
    
    <!-- match FrameworkConfigurable property tag -->
    <xsl:template match="class/property[attribute/@name = 'NAnt.Core.Attributes.FrameworkConfigurableAttribute']" mode="TypeDoc">
        <xsl:variable name="FrameworkConfigurableAttribute" select="attribute[@name = 'NAnt.Core.Attributes.FrameworkConfigurableAttribute']" />
        <xsl:variable name="Required" select="$FrameworkConfigurableAttribute/property[@name = 'Required']/@value" />
        <tr>
            <td valign="top"><xsl:value-of select="$FrameworkConfigurableAttribute/property[@name = 'Name']/@value" /></td>
            <td style="text-align: center;">
                <xsl:call-template name="get-a-href-with-name">
                    <xsl:with-param name="cref" select="concat('T:', @type)" />
                </xsl:call-template>
            </td>
            <td><xsl:apply-templates select="." mode="docstring" /></td>
            <td style="text-align: center;"><xsl:value-of select="string($Required)" /></td>
        </tr>
    </xsl:template>
</xsl:stylesheet>
E)<?xml version="1.0" encoding="utf-8" ?>
<!--
// NAnt - A .NET build tool
// Copyright (C) 2001-2003 Gerry Shaw
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
//
// Ian MacLean (ian@maclean.ms)
-->
<xsl:stylesheet xmlns="http://www.w3.org/1999/xhtml" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:NAntUtil="urn:NAntUtil" exclude-result-prefixes="NAntUtil"
    version="1.0">
    <xsl:include href="tags.xslt" />
    <xsl:include href="common.xslt" />
    
    <xsl:output 
        method="xml" 
        indent="yes" 
        encoding="utf-8" 
        version="1.0"  
        doctype-public="-//W3C//DTD XHTML 1.1//EN" 
        doctype-system="http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" 
        omit-xml-declaration="yes"
        standalone="yes"
        />

    <xsl:param name="productName"></xsl:param>
    <xsl:param name="productVersion"></xsl:param>
    <xsl:param name="productUrl"></xsl:param>

    <!-- 
    this stylesheet uses 'unique' trick published at:

    http://sources.redhat.com/ml/xsl-list/2001-06/msg00066.html

    we use it to traverse a unique list of categories ordered by name
    -->
    <xsl:key name="classCategory" match="class[attribute/@name='NAnt.Core.Attributes.FunctionSetAttribute']"
        use="attribute[@name='NAnt.Core.Attributes.FunctionSetAttribute']/property[@name='Category']/@value" />

    <xsl:template match="/">
        <html xmlns="http://www.w3.org/1999/xhtml">
            <head>
                <meta http-equiv="Content-Language" content="en-ca" />
                <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
                <meta name="description" content="Function Reference" />
                <link rel="stylesheet" type="text/css" href="../style.css" />
                <title>Function Reference</title>
            </head>
            <body>
                <table width="100%" border="0" cellspacing="0" cellpadding="2" class="NavBar">
                    <tr>
                        <td class="NavBar-Cell">
                            <xsl:element name="a">
                                <xsl:attribute name="href"><xsl:value-of select="$productUrl" /></xsl:attribute>
                                <b><xsl:value-of select="$productName" /></b>
                            </xsl:element>
                            <img alt="->" src="../images/arrow.gif" />
                            <a href="../index.html">Help</a>
                            <img alt="->" src="../images/arrow.gif" />
                            Function Reference
                        </td>
                        <td class="NavBar-Cell" align="right">
                            v<xsl:value-of select="$productVersion" />
                        </td>
                    </tr>
                </table>
                <h1>Function Reference</h1>
                <xsl:if test="ancestor-or-self::node()/documentation/preliminary | /ndoc/preliminary">
                    <xsl:call-template name="preliminary-section"/>
                </xsl:if>
                <!-- table of contents, only document functions in classes that pass NamespaceFilter -->
                <xsl:for-each select="//class[attribute/@name='NAnt.Core.Attributes.FunctionSetAttribute' and starts-with(substring(@id, 3, string-length(@id) - 2), NAntUtil:GetNamespaceFilter())]">
                    <xsl:sort select="number(attribute[@name='NAnt.Core.Attributes.FunctionSetAttribute']/property[@name='UserDocSortOrder']/@value)"
                        order="ascending" />
                    <xsl:sort select="attribute[@name='NAnt.Core.Attributes.FunctionSetAttribute']/property[@name='Category']/@value"
                        order="ascending" />
                    <xsl:variable name="this_cat" select="attribute[@name='NAnt.Core.Attributes.FunctionSetAttribute']/property[@name='Category']/@value" />
                    <!-- 'unique' - see above -->
                    <xsl:if test="generate-id()=generate-id(key('classCategory',attribute[@name='NAnt.Core.Attributes.FunctionSetAttribute']/property[@name='Category']/@value)[1])">
                        <a><xsl:attribute name="href">#<xsl:value-of select="NAntUtil:UrlEncode($this_cat)" /></xsl:attribute>
                            <xsl:value-of select="$this_cat" /> Functions</a>
                        <br />
                    </xsl:if>
                </xsl:for-each>
                <!-- only document functions in classes that pass NamespaceFilter -->
                <xsl:for-each select="//class[attribute/@name='NAnt.Core.Attributes.FunctionSetAttribute' and starts-with(substring(@id, 3, string-length(@id) - 2), NAntUtil:GetNamespaceFilter())]">
                    <xsl:sort select="number(attribute[@name='NAnt.Core.Attributes.FunctionSetAttribute']/property[@name='UserDocSortOrder']/@value)"
                        order="ascending" />
                    <xsl:sort select="attribute[@name='NAnt.Core.Attributes.FunctionSetAttribute']/property[@name='Category']/@value"
                        order="ascending" />
                    <xsl:variable name="this_cat" select="attribute[@name='NAnt.Core.Attributes.FunctionSetAttribute']/property[@name='Category']/@value" />
                    <!-- 'unique' - see above -->
                    <xsl:if test="generate-id()=generate-id(key('classCategory',attribute[@name='NAnt.Core.Attributes.FunctionSetAttribute']/property[@name='Category']/@value)[1])">
                        <a>
                            <xsl:attribute name="id">
                                <xsl:value-of select="NAntUtil:UrlEncode($this_cat)" />
                            </xsl:attribute>
                        </a>
                        <h3><xsl:value-of select="$this_cat" /> Functions</h3>
                        <div class="table">
                            <table>
                                <colgroup>
                                    <col style="white-space: nowrap;" />
                                    <col />
                                </colgroup>
                                <tr>
                                    <th>Name</th>
                                    <th>Summary</th>
                                </tr>
                                <!-- for each class having FunctionSet attribute with this category and passing NamespaceFilter, then for each method having Function attribute -->
                                <xsl:for-each select="//class[attribute[@name='NAnt.Core.Attributes.FunctionSetAttribute']/property[@name='Category']/@value=$this_cat and starts-with(substring(@id, 3, string-length(@id) - 2), NAntUtil:GetNamespaceFilter())]/method[attribute/@name='NAnt.Core.Attributes.FunctionAttribute']">
                                    <xsl:sort select="../attribute[@name='NAnt.Core.Attributes.FunctionSetAttribute']/property[@name='Prefix']/@value"
                                        order="ascending" />
                                    <xsl:sort select="attribute[@name='NAnt.Core.Attributes.FunctionAttribute']/property[@name='Name']/@value"
                                        order="ascending" />
                                    <xsl:apply-templates select="." />
                                </xsl:for-each>
                            </table>
                        </div>
                    </xsl:if>
                </xsl:for-each>
            </body>
        </html>
    </xsl:template>
    
    <xsl:template match="interface|enumeration" />
    
    <!-- match class tag -->
    <xsl:template match="method">
        <xsl:variable name="ObsoleteAttribute" select="attribute[@name='System.ObsoleteAttribute']" />
        <xsl:variable name="Prefix" select="../attribute[@name='NAnt.Core.Attributes.FunctionSetAttribute']/property[@name='Prefix']/@value" />
        <xsl:variable name="Name" select="attribute[@name='NAnt.Core.Attributes.FunctionAttribute']/property[@name='Name']/@value" />
        <xsl:variable name="Category" select="../attribute[@name='NAnt.Core.Attributes.FunctionSetAttribute']/property[@name='Category']/@value" />
        <xsl:choose>
            <!-- check if the task is deprecated -->
            <xsl:when test="count($ObsoleteAttribute) > 0">
                <xsl:variable name="IsErrorValue" select="$ObsoleteAttribute/property[@name = 'IsError']/@value" />
                <!-- only list function in index if IsError property of ObsoleteAttribute is not set to 'True' -->
                <xsl:if test="$IsErrorValue != 'True'">
                    <tr>
                        <!-- output function name in italics to indicate that its deprecated -->
                        <td>
                            <a>
                                <xsl:attribute name="href"><xsl:value-of select="string(NAntUtil:GetHRef(@id))" /></xsl:attribute>
                                <i><xsl:value-of select="$Prefix" />::<xsl:value-of select="$Name" /></i>
                            </a>
                        </td>
                        <td>
                            <xsl:apply-templates select="documentation/summary/node()" mode="slashdoc" />
                        </td>
                    </tr>
                </xsl:if>
            </xsl:when>
            <xsl:otherwise>
                <tr>
                    <td>
                        <a>
                            <xsl:attribute name="href"><xsl:value-of select="string(NAntUtil:GetHRef(@id))" /></xsl:attribute>
                            <xsl:value-of select="$Prefix" />::<xsl:value-of select="$Name" />
                        </a>
                    </td>
                    <td>
                        <xsl:apply-templates select="documentation/summary/node()" mode="slashdoc" />
                    </td>
                </tr>
            </xsl:otherwise>
        </xsl:choose>
    </xsl:template>
</xsl:stylesheet>
|<?xml version="1.0" encoding="utf-8" ?>
<!--
// NAnt - A .NET build tool
// Copyright (C) 2001-2003 Gerry Shaw
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
//
// Ian MacLean (ian@maclean.ms)
// Gerry Shaw (gerry_shaw@yahoo.com)
-->
<xsl:stylesheet xmlns="http://www.w3.org/1999/xhtml" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:NAntUtil="urn:NAntUtil" exclude-result-prefixes="NAntUtil" version="1.0">
    <xsl:include href="tags.xslt" />
    <xsl:include href="common.xslt" />

    <xsl:output 
        method="xml"
        indent="yes"
        encoding="utf-8"
        version="1.0"
        doctype-public="-//W3C//DTD XHTML 1.1//EN"
        doctype-system="http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"
        omit-xml-declaration="yes"
        standalone="yes"
        />

    <xsl:param name="productName"></xsl:param>
    <xsl:param name="productVersion"></xsl:param>
    <xsl:param name="productUrl"></xsl:param>

    <xsl:template match="/">
        <html xmlns="http://www.w3.org/1999/xhtml">
            <head>
                <meta http-equiv="Content-Language" content="en-ca" />
                <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
                <meta name="description" content="Task Reference" />
                <link rel="stylesheet" type="text/css" href="../style.css" />
                <title>Task Reference</title>
            </head>
            <body>
                <table width="100%" border="0" cellspacing="0" cellpadding="2" class="NavBar">
                    <tr>
                        <td class="NavBar-Cell">
                            <xsl:element name="a">
                                <xsl:attribute name="href"><xsl:value-of select="$productUrl" /></xsl:attribute>
                                <b><xsl:value-of select="$productName" /></b>
                            </xsl:element>
                            <img alt="->" src="../images/arrow.gif" />
                            <a href="../index.html">Help</a>
                            <img alt="->" src="../images/arrow.gif" />
                            Task Reference
                        </td>
                        <td class="NavBar-Cell" align="right">
                            v<xsl:value-of select="$productVersion" />
                        </td>
                    </tr>
                </table>
                <h1>Task Reference</h1>
                <xsl:if test="ancestor-or-self::node()/documentation/preliminary | /ndoc/preliminary">
                    <xsl:call-template name="preliminary-section"/>
                </xsl:if>
                <div class="table">
                    <table>
                        <colgroup>
                            <col />
                            <col />
                        </colgroup>
                        <tr>
                            <th>Task</th>
                            <th>Summary</th>
                        </tr>
                        <xsl:apply-templates select="//class[attribute/@name = 'NAnt.Core.Attributes.TaskNameAttribute']">
                            <xsl:sort select="attribute/property[@name = 'Name']/@value" />
                        </xsl:apply-templates>
                    </table>
                </div>
            </body>
        </html>
    </xsl:template>

    <xsl:template match="interface|enumeration" />

    <!-- match class tag -->
    <xsl:template match="class">
        <xsl:if test="starts-with(substring(@id, 3, string-length(@id) - 2), NAntUtil:GetNamespaceFilter()) and NAntUtil:IsTask(@id)">
            <xsl:variable name="ObsoleteAttribute" select="attribute[@name = 'System.ObsoleteAttribute']" />
            <xsl:choose>
                <!-- check if the task is deprecated -->
                <xsl:when test="count($ObsoleteAttribute) > 0">
                    <xsl:variable name="IsErrorValue" select="$ObsoleteAttribute/property[@name = 'IsError']/@value" />
                    <!-- only list task in index if IsError property of ObsoleteAttribute is not set to 'True' -->
                    <xsl:if test="$IsErrorValue != 'True'">
                        <xsl:element name="tr">
                            <!-- output task name in italics to indicate that its deprecated -->
                            <td>
                                <a>
                                    <xsl:attribute name="href"><xsl:value-of select="NAntUtil:UrlEncode(attribute[@name = 'NAnt.Core.Attributes.TaskNameAttribute']/property[@name='Name']/@value)" />.html</xsl:attribute>
                                    <i><xsl:value-of select="attribute/property[@name = 'Name']/@value" /></i>
                                </a>
                            </td>
                            <td>
                                <xsl:apply-templates select="documentation/summary/node()" mode="slashdoc" />
                            </td>
                        </xsl:element>
                    </xsl:if>
                </xsl:when>
                <xsl:otherwise>
                    <xsl:element name="tr">
                        <td>
                            <a>
                                <xsl:attribute name="href"><xsl:value-of select="NAntUtil:UrlEncode(attribute[@name = 'NAnt.Core.Attributes.TaskNameAttribute']/property[@name = 'Name']/@value)" />.html</xsl:attribute>
                                <xsl:value-of select="attribute/property[@name='Name']/@value" />
                            </a>
                        </td>
                        <td>
                            <xsl:apply-templates select="documentation/summary/node()" mode="slashdoc" />
                        </td>
                    </xsl:element>
                </xsl:otherwise>
            </xsl:choose>
        </xsl:if>
    </xsl:template>
</xsl:stylesheet>
<?xml version="1.0" encoding="utf-8" ?>
<!--
// NAnt - A .NET build tool
// Copyright (C) 2001-2003 Gerry Shaw
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
//
// Ian MacLean (ian@maclean.ms)
-->
<xsl:stylesheet xmlns="http://www.w3.org/1999/xhtml" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:NAntUtil="urn:NAntUtil" exclude-result-prefixes="NAntUtil" version="1.0"> 
    <xsl:include href="tags.xslt" />
    <xsl:include href="common.xslt" />

    <xsl:output 
        method="xml" 
        indent="yes" 
        encoding="utf-8" 
        version="1.0"  
        doctype-public="-//W3C//DTD XHTML 1.1//EN" 
        doctype-system="http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" 
        omit-xml-declaration="yes"
        standalone="yes"
        />

    <xsl:param name="productName"></xsl:param>
    <xsl:param name="productVersion"></xsl:param>
    <xsl:param name="productUrl"></xsl:param>

    <xsl:template match="/">
        <html xmlns="http://www.w3.org/1999/xhtml">
            <head>
                <meta http-equiv="Content-Language" content="en-ca" />
                <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
                <meta name="description" content="Data Type Reference" />
                <link rel="stylesheet" type="text/css" href="../style.css" />
                <title>Data Type Reference</title>
            </head>
            <body>
                <table width="100%" border="0" cellspacing="0" cellpadding="2" class="NavBar">
                    <tr>
                        <td class="NavBar-Cell">
                            <xsl:element name="a">
                                <xsl:attribute name="href"><xsl:value-of select="$productUrl" /></xsl:attribute>
                                <b><xsl:value-of select="$productName" /></b>
                            </xsl:element>
                            <img alt="->" src="../images/arrow.gif" />
                            <a href="../index.html">Help</a>
                            <img alt="->" src="../images/arrow.gif" />
                            Type Reference
                        </td>
                        <td class="NavBar-Cell" align="right">
                            v<xsl:value-of select="$productVersion" />
                        </td>
                    </tr>
                </table>
                <h1>Type Reference</h1>
                <xsl:if test="ancestor-or-self::node()/documentation/preliminary | /ndoc/preliminary">
                    <xsl:call-template name="preliminary-section"/>
                </xsl:if>
                <div class="table">
                    <table>
                        <tr>
                            <th>Type</th>
                            <th>Summary</th>
                        </tr>
                        <xsl:apply-templates select="//class[descendant::base/@id='T:NAnt.Core.DataTypeBase']">
                            <xsl:sort select="attribute/property[@name='Name']/@value" />
                        </xsl:apply-templates>
                    </table>
                </div>
            </body>
        </html>
    </xsl:template>
    
    <xsl:template match="interface|enumeration" />

    <!-- match class tag -->
    <xsl:template match="class">
        <!-- ensure type should actually be documented -->
        <xsl:if test="starts-with(substring(@id, 3, string-length(@id) - 2), NAntUtil:GetNamespaceFilter()) and NAntUtil:IsDataType(@id)">
            <xsl:variable name="ObsoleteAttribute" select="attribute[@name='System.ObsoleteAttribute']" />
            <xsl:choose>
                <!-- check if the task is deprecated -->
                <xsl:when test="count($ObsoleteAttribute) > 0">
                    <xsl:variable name="IsErrorValue" select="$ObsoleteAttribute/property[@name='IsError']/@value" />
                    <!-- only list type in index if IsError property of ObsoleteAttribute is not set to 'True' -->
                    <xsl:if test="$IsErrorValue != 'True'">
                        <tr>
                            <!-- output type name in italics to indicate that its deprecated -->
                            <td><a><xsl:attribute name="href"><xsl:value-of select="NAntUtil:UrlEncode(attribute/property[@name='Name']/@value)" />.html</xsl:attribute><i><xsl:value-of select="attribute[@name='NAnt.Core.Attributes.ElementNameAttribute']/property[@name='Name']/@value" /></i></a></td>
                            <td><xsl:apply-templates select="documentation/summary/node()" mode="slashdoc" /></td>
                        </tr>
                    </xsl:if>
                </xsl:when>
                <xsl:otherwise>
                    <tr>
                        <td><a><xsl:attribute name="href"><xsl:value-of select="NAntUtil:UrlEncode(attribute/property[@name='Name']/@value)" />.html</xsl:attribute><xsl:value-of select="attribute[@name='NAnt.Core.Attributes.ElementNameAttribute']/property[@name='Name']/@value" /></a></td>
                        <td><xsl:apply-templates select="documentation/summary/node()" mode="slashdoc" /></td>
                    </tr>
                </xsl:otherwise>
            </xsl:choose>
        </xsl:if>
    </xsl:template>
</xsl:stylesheet>
&<?xml version="1.0" encoding="utf-8" ?>
<!--
// NAnt - A .NET build tool
// Copyright (C) 2001-2003 Gerry Shaw
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
//
// Gert Driesen (gert.driesen@ardatis.com)
-->
<xsl:stylesheet xmlns="http://www.w3.org/1999/xhtml" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:NAntUtil="urn:NAntUtil" exclude-result-prefixes="NAntUtil" version="1.0"> 
    <xsl:include href="tags.xslt" />
    <xsl:include href="common.xslt" />

    <xsl:output 
        method="xml" 
        indent="yes" 
        encoding="utf-8" 
        version="1.0" 
        doctype-public="-//W3C//DTD XHTML 1.1//EN" 
        doctype-system="http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" 
        omit-xml-declaration="yes"
        standalone="yes"
        />

    <xsl:param name="productName"></xsl:param>
    <xsl:param name="productVersion"></xsl:param>
    <xsl:param name="productUrl"></xsl:param>

    <xsl:template match="/">
        <html xmlns="http://www.w3.org/1999/xhtml">
            <head>
                <meta http-equiv="Content-Language" content="en-ca" />
                <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
                <meta name="description" content="Filter Reference" />
                <link rel="stylesheet" type="text/css" href="../style.css" />
                <title>Filter Reference</title>
            </head>
            <body>
                <table width="100%" border="0" cellspacing="0" cellpadding="2" class="NavBar">
                    <tr>
                        <td class="NavBar-Cell">
                            <xsl:element name="a">
                                <xsl:attribute name="href"><xsl:value-of select="$productUrl" /></xsl:attribute>
                                <b><xsl:value-of select="$productName" /></b>
                            </xsl:element>
                            <img alt="->" src="../images/arrow.gif" />
                            <a href="../index.html">Help</a>
                            <img alt="->" src="../images/arrow.gif" />
                            Filter Reference
                        </td>
                        <td class="NavBar-Cell" align="right">
                            v<xsl:value-of select="$productVersion" />
                        </td>
                    </tr>
                </table>
                <h1>Filter Reference</h1>
                <xsl:if test="ancestor-or-self::node()/documentation/preliminary | /ndoc/preliminary">
                    <xsl:call-template name="preliminary-section"/>
                </xsl:if>
                <div class="table">
                    <table>
                        <tr>
                            <th>Filter</th>
                            <th>Summary</th>
                        </tr>
                        <xsl:apply-templates select="//class[descendant::base/@id='T:NAnt.Core.Filters.Filter']">
                            <xsl:sort select="attribute/property[@name='Name']/@value" />
                        </xsl:apply-templates>
                    </table>
                </div>
            </body>
        </html>
    </xsl:template>
    
    <xsl:template match="interface|enumeration" />

    <!-- match class tag -->
    <xsl:template match="class">
        <!-- ensure type should actually be documented -->
        <xsl:if test="starts-with(substring(@id, 3, string-length(@id) - 2), NAntUtil:GetNamespaceFilter()) and NAntUtil:IsFilter(@id)">
            <xsl:variable name="ObsoleteAttribute" select="attribute[@name='System.ObsoleteAttribute']" />
            <xsl:choose>
                <!-- check if the task is deprecated -->
                <xsl:when test="count($ObsoleteAttribute) > 0">
                    <xsl:variable name="IsErrorValue" select="$ObsoleteAttribute/property[@name='IsError']/@value" />
                    <!-- only list type in index if IsError property of ObsoleteAttribute is not set to 'True' -->
                    <xsl:if test="$IsErrorValue != 'True'">
                        <tr>
                            <!-- output type name in italics to indicate that its deprecated -->
                            <td><a><xsl:attribute name="href"><xsl:value-of select="NAntUtil:UrlEncode(attribute/property[@name='Name']/@value)" />.html</xsl:attribute><i><xsl:value-of select="attribute[@name='NAnt.Core.Attributes.ElementNameAttribute']/property[@name='Name']/@value" /></i></a></td>
                            <td><xsl:apply-templates select="documentation/summary/node()" mode="slashdoc" /></td>
                        </tr>
                    </xsl:if>
                </xsl:when>
                <xsl:otherwise>
                    <tr>
                        <td><a><xsl:attribute name="href"><xsl:value-of select="NAntUtil:UrlEncode(attribute/property[@name='Name']/@value)" />.html</xsl:attribute><xsl:value-of select="attribute[@name='NAnt.Core.Attributes.ElementNameAttribute']/property[@name='Name']/@value" /></a></td>
                        <td><xsl:apply-templates select="documentation/summary/node()" mode="slashdoc" /></td>
                    </tr>
                </xsl:otherwise>
            </xsl:choose>
        </xsl:if>
    </xsl:template>
</xsl:stylesheet>
þ=<?xml version="1.0" encoding="utf-8" ?>
<!--
// NAnt - A .NET build tool
// Copyright (C) 2001-2003 Gerry Shaw
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
//
// Ian MacLean (ian@maclean.ms)
// Gerry Shaw (gerry_shaw@yahoo.com)
// Gert Driesen (gert.driesen@ardatis.com)
// Scott Hernandez (ScottHernandez-at-Hotmail....com)
-->
<xsl:stylesheet version="1.0" xmlns="http://www.w3.org/1999/xhtml" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:doc="http://ndoc.sf.net/doc" xmlns:NAntUtil="urn:NAntUtil" exclude-result-prefixes="doc NAntUtil">
    <!--
     | Identity Template
     +-->
    <xsl:template match="node()|@*" mode="slashdoc">
        <xsl:copy>
            <xsl:apply-templates select="@*|node()" mode="slashdoc" />
        </xsl:copy>
    </xsl:template>

    <!--
     | Block Tags
     +-->
    <doc:template>
        <summary>A normal paragraph. This ends up being a <b>p</b> tag.
        (Did we really need the extra three letters?)</summary>
    </doc:template>

    <xsl:template match="para" mode="slashdoc" doc:group="block" doc:msdn="ms-help://MS.NETFrameworkSDK/csref/html/vclrfpara.htm">
        <p>
            <xsl:apply-templates select="./node()" mode="slashdoc" />
        </p>
    </xsl:template>

    <doc:template>
        <summary>Use the lang attribute to indicate that the text of the
        paragraph is only appropriate for a specific language.</summary>
    </doc:template>

    <xsl:template match="para[@lang]" mode="slashdoc" doc:group="block">
        <p>
            <span class="lang">
                <xsl:text>[</xsl:text>
                <xsl:call-template name="get-lang">
                    <xsl:with-param name="lang" select="@lang" />
                </xsl:call-template>
                <xsl:text>]</xsl:text>
            </span>
            <xsl:text>&#160;</xsl:text>
            <xsl:apply-templates select="./node()" mode="slashdoc" />
        </p>
    </xsl:template>

    <doc:template>
        <summary>Multiple lines of code.</summary>
    </doc:template>

    <xsl:template match="code" mode="slashdoc" doc:group="block" doc:msdn="ms-help://MS.NETFrameworkSDK/csref/html/vclrfcode.htm">
        <pre class="code">
            <xsl:apply-templates mode="slashdoc" />
        </pre>
    </xsl:template>

    <doc:template>
        <summary>Use the lang attribute to indicate that the code
        sample is only appropriate for a specific language.</summary>
    </doc:template>

    <xsl:template match="code[@lang]" mode="slashdoc" doc:group="block">
        <pre class="code">
            <span class="lang">
                <xsl:text>[</xsl:text>
                <xsl:call-template name="get-lang">
                    <xsl:with-param name="lang" select="@lang" />
                </xsl:call-template>
                <xsl:text>]</xsl:text>
            </span>
            <xsl:apply-templates mode="slashdoc" />
        </pre>
    </xsl:template>

    <doc:template>
        <summary>See <a href="ms-help://MS.NETFrameworkSDK/cpref/html/frlrfSystemXmlXmlDocumentClassLoadTopic.htm">XmlDocument.Load</a>
        for an example of a note.</summary>
    </doc:template>

    <xsl:template match="h3" mode="slashdoc" doc:group="block">
        <h3>
            <xsl:apply-templates select="./node()" mode="slashdoc" />
        </h3>
    </xsl:template>

    <xsl:template match="note" mode="slashdoc" doc:group="block">
        <p class="i2">
            <xsl:choose>
                <xsl:when test="@type='caution'">
                    <b>CAUTION:</b>
                </xsl:when>
                <xsl:when test="@type='inheritinfo'">
                    <b>Notes to Inheritors: </b>
                </xsl:when>
                <xsl:when test="@type='inotes'">
                    <b>Notes to Implementers: </b>
                </xsl:when>
                <xsl:otherwise>
                    <b>Note:</b>
                </xsl:otherwise>
            </xsl:choose>
            <xsl:text> </xsl:text>
            <xsl:apply-templates mode="slashdoc" />
        </p>
    </xsl:template>

    <xsl:template match="list[@type='bullet']" mode="slashdoc" doc:group="block" doc:msdn="ms-help://MS.NETFrameworkSDK/csref/html/vclrflist.htm">
        <ul style="list-style-type: disc;">
            <xsl:apply-templates select="item" mode="slashdoc" />
        </ul>
    </xsl:template>

    <xsl:template match="list[@type='bullet']/item" mode="slashdoc" doc:msdn="ms-help://MS.NETFrameworkSDK/csref/html/vclrflist.htm">
        <li>
            <xsl:apply-templates select="./node()" mode="slashdoc" />
        </li>
    </xsl:template>

    <xsl:template match="list[@type='bullet']/item/term" mode="slashdoc" doc:msdn="ms-help://MS.NETFrameworkSDK/csref/html/vclrflist.htm">
        <b><xsl:apply-templates select="./node()" mode="slashdoc" /> - </b>
    </xsl:template>

    <xsl:template match="list[@type='bullet']/item/description" mode="slashdoc" doc:msdn="ms-help://MS.NETFrameworkSDK/csref/html/vclrflist.htm">
        <xsl:apply-templates select="./node()" mode="slashdoc" />
    </xsl:template>

    <xsl:template match="list[@type='number']" mode="slashdoc" doc:group="block" doc:msdn="ms-help://MS.NETFrameworkSDK/csref/html/vclrflist.htm">
        <ol>
            <xsl:apply-templates select="item" mode="slashdoc" />
        </ol>
    </xsl:template>

    <xsl:template match="list[@type='number']/item" mode="slashdoc" doc:msdn="ms-help://MS.NETFrameworkSDK/csref/html/vclrflist.htm">
        <li>
            <xsl:apply-templates select="./node()" mode="slashdoc" />
        </li>
    </xsl:template>

    <xsl:template match="list[@type='number']/item/term" mode="slashdoc" doc:msdn="ms-help://MS.NETFrameworkSDK/csref/html/vclrflist.htm">
        <b><xsl:apply-templates select="./node()" mode="slashdoc" /> - </b>
    </xsl:template>

    <xsl:template match="list[@type='number']/item/description" mode="slashdoc" doc:msdn="ms-help://MS.NETFrameworkSDK/csref/html/vclrflist.htm">
        <xsl:apply-templates select="./node()" mode="slashdoc" />
    </xsl:template>

    <xsl:template match="list[@type='table']" mode="slashdoc" doc:group="block" doc:msdn="ms-help://MS.NETFrameworkSDK/csref/html/vclrflist.htm">
        <div class="table">
            <table>
                <xsl:apply-templates select="listheader" mode="slashdoc" />
                <xsl:apply-templates select="item" mode="slashdoc" />
            </table>
        </div>
    </xsl:template>

    <xsl:template match="list[@type='table']/listheader" mode="slashdoc" doc:msdn="ms-help://MS.NETFrameworkSDK/csref/html/vclrflist.htm">
        <tr>
            <xsl:apply-templates mode="slashdoc" />
        </tr>
    </xsl:template>

    <xsl:template match="list[@type='table']/listheader/term" mode="slashdoc" doc:msdn="ms-help://MS.NETFrameworkSDK/csref/html/vclrflist.htm">
        <th>
            <xsl:apply-templates select="./node()" mode="slashdoc" />
        </th>
    </xsl:template>

    <xsl:template match="list[@type='table']/listheader/description" mode="slashdoc" doc:msdn="ms-help://MS.NETFrameworkSDK/csref/html/vclrflist.htm">
        <th>
            <xsl:apply-templates select="./node()" mode="slashdoc" />
        </th>
    </xsl:template>

    <xsl:template match="list[@type='table']/item" mode="slashdoc" doc:msdn="ms-help://MS.NETFrameworkSDK/csref/html/vclrflist.htm">
        <tr>
            <xsl:apply-templates mode="slashdoc" />
        </tr>
    </xsl:template>

    <xsl:template match="list[@type='table']/item/term" mode="slashdoc" doc:msdn="ms-help://MS.NETFrameworkSDK/csref/html/vclrflist.htm">
        <td>
            <xsl:apply-templates select="./node()" mode="slashdoc" />
        </td>
    </xsl:template>

    <xsl:template match="list[@type='table']/item/description" mode="slashdoc" doc:msdn="ms-help://MS.NETFrameworkSDK/csref/html/vclrflist.htm">
        <td>
            <xsl:apply-templates select="./node()" mode="slashdoc" />
        </td>
    </xsl:template>

    <!--
     | Inline Tags
     +-->
    <xsl:template match="c" mode="slashdoc" doc:group="inline" doc:msdn="ms-help://MS.NETFrameworkSDK/csref/html/vclrfc.htm">
        <code>
            <xsl:apply-templates mode="slashdoc" />
        </code>
    </xsl:template>

    <xsl:template match="paramref[@name]" mode="slashdoc" doc:group="inline" doc:msdn="ms-help://MS.NETFrameworkSDK/csref/html/vclrfparamref.htm">
        <i>
            <xsl:value-of select="@name" />
        </i>
    </xsl:template>

    <xsl:template match="see[@cref]" mode="slashdoc" doc:group="inline" doc:msdn="ms-help://MS.NETFrameworkSDK/csref/html/vclrfsee.htm">
        <xsl:call-template name="get-a-href">
            <xsl:with-param name="cref" select="@cref" />
        </xsl:call-template>
        <xsl:choose>
            <!-- if this is a task add suffix task-->
            <xsl:when test="boolean(NAntUtil:IsTask(@cref))">
                <xsl:text> task</xsl:text>
            </xsl:when>
            <!-- if this is a functionset add suffix functions -->
            <xsl:when test="boolean(NAntUtil:IsFunctionSet(@cref))">
                <xsl:text> functions</xsl:text>
            </xsl:when>
        </xsl:choose>
    </xsl:template>

    <!-- get-a-href -->
    <xsl:template name="get-a-href">
        <xsl:param name="cref" />
        <xsl:variable name="href" select="string(NAntUtil:GetHRef($cref))" />
        <xsl:choose>
            <xsl:when test="$href = ''">
                <xsl:choose>
                    <!-- if this is a task add suffix task-->
                    <xsl:when test="boolean(NAntUtil:IsTask($cref))">
                        <code>
                            <xsl:value-of select="string(NAntUtil:GetTaskName($cref))" />
                        </code>
                    </xsl:when>
                    <xsl:otherwise>
                        <code>
                            <xsl:value-of select="string(NAntUtil:GetName($cref))" />
                        </code>
                    </xsl:otherwise>
                </xsl:choose>
            </xsl:when>
            <xsl:otherwise>
                <xsl:element name="a">
                    <xsl:attribute name="href">
                        <xsl:value-of select="$href" />
                    </xsl:attribute>
                    <xsl:choose>
                        <xsl:when test="node()">
                            <xsl:value-of select="." />
                        </xsl:when>
                        <xsl:otherwise>
                            <xsl:value-of select="string(NAntUtil:GetName($cref))" />
                        </xsl:otherwise>
                    </xsl:choose>
                </xsl:element>
            </xsl:otherwise>
        </xsl:choose>
    </xsl:template>

    <!-- get-a-href-with-name -->
    <xsl:template name="get-a-href-with-name">
        <xsl:param name="cref" />
        <xsl:variable name="type" select="substring($cref, 3, string-length($cref) - 2)" />
        <xsl:variable name="href">
            <xsl:choose>
                <xsl:when test="$type='System.Byte'"></xsl:when>
                <xsl:when test="$type='System.SByte'"></xsl:when>
                <xsl:when test="$type='System.Int16'"></xsl:when>
                <xsl:when test="$type='System.UInt16'"></xsl:when>
                <xsl:when test="$type='System.Int32'"></xsl:when>
                <xsl:when test="$type='System.UInt32'"></xsl:when>
                <xsl:when test="$type='System.Int64'"></xsl:when>
                <xsl:when test="$type='System.UInt64'"></xsl:when>
                <xsl:when test="$type='System.Single'"></xsl:when>
                <xsl:when test="$type='System.Double'"></xsl:when>
                <xsl:when test="$type='System.Decimal'"></xsl:when>
                <xsl:when test="$type='System.String'"></xsl:when>
                <xsl:when test="$type='System.Char'"></xsl:when>
                <xsl:when test="$type='System.Boolean'"></xsl:when>
                <xsl:when test="$type='System.IO.FileInfo'"></xsl:when>
                <xsl:when test="$type='System.IO.DirectoryInfo'"></xsl:when>
                <xsl:when test="$type='System.DateTime'"></xsl:when>
                <xsl:when test="$type='System.TimeSpan'"></xsl:when>
                <xsl:otherwise>
                    <xsl:if test="count(//enumeration[@id=$cref]) != 0 or starts-with(substring($cref, 3, string-length($cref) - 2), 'System.')">
                        <xsl:value-of select="string(NAntUtil:GetHRef($cref))" />
                    </xsl:if>
                </xsl:otherwise>
            </xsl:choose>
        </xsl:variable>
        <xsl:choose>
            <xsl:when test="$href=''">
                <xsl:call-template name="get-type-name">
                    <xsl:with-param name="type" select="substring($cref, 3, string-length($cref) - 2)" />
                </xsl:call-template>
            </xsl:when>
            <xsl:otherwise>
                <xsl:element name="a">
                    <xsl:attribute name="href">
                        <xsl:value-of select="$href" />
                    </xsl:attribute>
                    <xsl:call-template name="get-type-name">
                        <xsl:with-param name="type" select="substring($cref, 3, string-length($cref) - 2)" />
                    </xsl:call-template>
                </xsl:element>
            </xsl:otherwise>
        </xsl:choose>
    </xsl:template>

    <xsl:template match="see[@href]" mode="slashdoc" doc:group="inline">
        <a href="{@href}">
            <xsl:choose>
                <xsl:when test="node()">
                    <xsl:value-of select="." />
                </xsl:when>
                <xsl:otherwise>
                    <xsl:value-of select="@href" />
                </xsl:otherwise>
            </xsl:choose>
        </a>
    </xsl:template>

    <xsl:template match="see[@langword]" mode="slashdoc" doc:group="inline">
        <xsl:choose>
            <xsl:when test="@langword='null'">
                <xsl:text>a null reference (</xsl:text>
                <b>Nothing</b>
                <xsl:text> in Visual Basic)</xsl:text>
            </xsl:when>
            <xsl:when test="@langword='sealed'">
                <xsl:text>sealed (</xsl:text>
                <b>NotInheritable</b>
                <xsl:text> in Visual Basic)</xsl:text>
            </xsl:when>
            <xsl:when test="@langword='static'">
                <xsl:text>static (</xsl:text>
                <b>Shared</b>
                <xsl:text> in Visual Basic)</xsl:text>
            </xsl:when>
            <xsl:when test="@langword='abstract'">
                <xsl:text>abstract (</xsl:text>
                <b>MustInherit</b>
                <xsl:text> in Visual Basic)</xsl:text>
            </xsl:when>
            <xsl:when test="@langword='virtual'">
                <xsl:text>virtual (</xsl:text>
                <b>CanOverride</b>
                <xsl:text> in Visual Basic)</xsl:text>
            </xsl:when>
            <xsl:otherwise>
                <b>
                    <xsl:value-of select="@langword" />
                </b>
            </xsl:otherwise>
        </xsl:choose>
    </xsl:template>
</xsl:stylesheet>
Z<?xml version="1.0" encoding="utf-8" ?>
<!--
// NAnt - A .NET build tool
// Copyright (C) 2001-2003 Gerry Shaw
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
//
// Ian MacLean (ian@maclean.ms)
// Gerry Shaw (gerry_shaw@yahoo.com)
// Gert Driesen (gert.driesen@ardatis.com)
-->
<xsl:stylesheet version="1.0" xmlns="http://www.w3.org/1999/xhtml" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:NAntUtil="urn:NAntUtil" exclude-result-prefixes="NAntUtil">
    <xsl:template name="get-type-name">
        <xsl:param name="type" />
        <xsl:variable name="namespace">
            <xsl:value-of select="concat(../../@name, '.')" />
        </xsl:variable>
        <xsl:choose>
            <xsl:when test="contains($type, $namespace)">
                <xsl:value-of select="string(NAntUtil:GetName(concat('T:',$type)))" />
            </xsl:when>
            <xsl:otherwise>
                <xsl:call-template name="csharp-type">
                    <xsl:with-param name="runtime-type" select="$type" />
                </xsl:call-template>
            </xsl:otherwise>
        </xsl:choose>
    </xsl:template>

    <xsl:template name="csharp-type">
        <xsl:param name="runtime-type" />
        <xsl:variable name="old-type">
            <xsl:choose>
                <xsl:when test="contains($runtime-type, '[')">
                    <xsl:value-of select="substring-before($runtime-type, '[')" />
                </xsl:when>
                <xsl:when test="contains($runtime-type, '&amp;')">
                    <xsl:value-of select="substring-before($runtime-type, '&amp;')" />
                </xsl:when>
                <xsl:otherwise>
                    <xsl:value-of select="$runtime-type" />
                </xsl:otherwise>
            </xsl:choose>
        </xsl:variable>
        <xsl:variable name="new-type">
            <xsl:choose>
                <xsl:when test="$old-type='System.Byte'">byte</xsl:when>
                <xsl:when test="$old-type='Byte'">byte</xsl:when>
                <xsl:when test="$old-type='System.SByte'">sbyte</xsl:when>
                <xsl:when test="$old-type='SByte'">sbyte</xsl:when>
                <xsl:when test="$old-type='System.Int16'">short</xsl:when>
                <xsl:when test="$old-type='Int16'">short</xsl:when>
                <xsl:when test="$old-type='System.UInt16'">ushort</xsl:when>
                <xsl:when test="$old-type='UInt16'">ushort</xsl:when>
                <xsl:when test="$old-type='System.Int32'">int</xsl:when>
                <xsl:when test="$old-type='Int32'">int</xsl:when>
                <xsl:when test="$old-type='System.UInt32'">uint</xsl:when>
                <xsl:when test="$old-type='UInt32'">uint</xsl:when>
                <xsl:when test="$old-type='System.Int64'">long</xsl:when>
                <xsl:when test="$old-type='Int64'">long</xsl:when>
                <xsl:when test="$old-type='System.UInt64'">ulong</xsl:when>
                <xsl:when test="$old-type='UInt64'">ulong</xsl:when>
                <xsl:when test="$old-type='System.Single'">float</xsl:when>
                <xsl:when test="$old-type='Single'">float</xsl:when>
                <xsl:when test="$old-type='System.Double'">double</xsl:when>
                <xsl:when test="$old-type='Double'">double</xsl:when>
                <xsl:when test="$old-type='System.Decimal'">decimal</xsl:when>
                <xsl:when test="$old-type='Decimal'">decimal</xsl:when>
                <xsl:when test="$old-type='System.String'">string</xsl:when>
                <xsl:when test="$old-type='String'">string</xsl:when>
                <xsl:when test="$old-type='System.Char'">char</xsl:when>
                <xsl:when test="$old-type='Char'">char</xsl:when>
                <xsl:when test="$old-type='System.Boolean'">bool</xsl:when>
                <xsl:when test="$old-type='Boolean'">bool</xsl:when>
                <xsl:when test="$old-type='System.Void'">void</xsl:when>
                <xsl:when test="$old-type='Void'">void</xsl:when>
                <xsl:when test="$old-type='System.Object'">object</xsl:when>
                <xsl:when test="$old-type='Object'">object</xsl:when>
                <xsl:when test="$old-type='System.IO.FileInfo'">file</xsl:when>
                <xsl:when test="$old-type='System.IO.DirectoryInfo'">directory</xsl:when>
                <xsl:when test="$old-type='System.DateTime'">datetime</xsl:when>
                <xsl:when test="$old-type='System.TimeSpan'">timespan</xsl:when>
                <xsl:otherwise>
                    <xsl:value-of select="string(NAntUtil:GetName(concat('T:',$runtime-type)))" />
                </xsl:otherwise>
            </xsl:choose>
        </xsl:variable>
        <xsl:choose>
            <xsl:when test="contains($runtime-type, '[')">
                <xsl:value-of select="concat($new-type, '[', substring-after($runtime-type, '['))" />
            </xsl:when>
            <xsl:otherwise>
                <xsl:value-of select="$new-type" />
            </xsl:otherwise>
        </xsl:choose>
    </xsl:template>

    <!-- strip these elements, leave the text... -->
    <xsl:template match="summary" mode="slashdoc">
        <xsl:apply-templates mode="slashdoc" />
    </xsl:template>

    <xsl:template match="remarks" mode="slashdoc">
        <xsl:apply-templates mode="slashdoc" />
    </xsl:template>

    <xsl:template match="example" mode="slashdoc">
        <li>
            <xsl:apply-templates mode="slashdoc" />
        </li>
    </xsl:template>

    <xsl:template name="seealso-section">
        <xsl:if test="documentation//seealso">
            <h3>See Also</h3>
            <xsl:for-each select="documentation//seealso">
                <xsl:choose>
                    <xsl:when test="@cref">
                        <xsl:call-template name="get-a-href">
                            <xsl:with-param name="cref" select="@cref" />
                        </xsl:call-template>
                        <!-- if this is a functionset add suffix Functions -->
                        <xsl:if test="boolean(NAntUtil:IsFunctionSet(@cref))">
                            <xsl:text> Functions</xsl:text>
                        </xsl:if>
                    </xsl:when>
                    <xsl:when test="@href">
                        <a href="{@href}">
                            <xsl:value-of select="." />
                        </a>
                    </xsl:when>
                </xsl:choose>
                <xsl:if test="position()!= last()">
                    <xsl:text> | </xsl:text>
                </xsl:if>
            </xsl:for-each>
        </xsl:if>
    </xsl:template>

    <xsl:template name="preliminary-section">
        <p class="topicstatus">
            <xsl:choose>
                <xsl:when test="documentation/preliminary[text()]">
                    <xsl:value-of select="documentation/preliminary"/>
                </xsl:when>
                <xsl:when test="ancestor::node()/documentation/preliminary[text()]">
                    <xsl:value-of select="ancestor::node()/documentation/preliminary" />
                </xsl:when>
                <xsl:otherwise>
                    <xsl:text>[This is preliminary documentation and subject to change.]</xsl:text>
                </xsl:otherwise>
            </xsl:choose>
        </p>
    </xsl:template>
</xsl:stylesheet>
BSJBv1.0.3705ll#~Ø#Stringsè!¨#US2#GUID 2#BlobW¢	ú3X%?3z	
B-
ˆ£-
׈
ûwðǨ_#mð‚ð»û
n[ÞÍ
µ£
Σ
é£
£
(£
A£
\£
w£
£
©£
È£
å£
üˆ
1		
X	E	l	#{	#
²	ˆ¾	
ä	Ú	
ñ	ˆ
þ	£

£&
#
£
O
Ú	
Y
Ú	w
#‹
ˆ