Math.NET Numerics
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

845 lines
33 KiB

<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.1">
<xsl:output indent="yes" />
<xsl:key name="index" match="/reflection/apis/api" use="@id" />
<xsl:template match="/">
<cDocMLDocument>
<content>
<assemblies>
<xsl:apply-templates select="/reflection/assemblies/assembly" />
</assemblies>
<namespaces>
<xsl:apply-templates select="/reflection/apis/api[apidata/@group='namespace']" />
</namespaces>
</content>
<idMap>
<xsl:for-each select="/reflection/apis/api[apidata/@group='namespace']">
<entity namespaceName="{apidata/@name}" typeName="" memberName="" commentId="{@id}" textId="" />
</xsl:for-each>
<xsl:for-each select="/reflection/apis/api[apidata/@group='type']">
<entity namespaceName="{key('index',containers/namespace/@api)/apidata/@name}" typeName="{apidata/@name}" memberName="" commentId="{@id}" textId="" />
</xsl:for-each>
<xsl:for-each select="/reflection/apis/api[apidata/@group='member']">
<entity namespaceName="{key('index',containers/namespace/@api)/apidata/@name}" typeName="{key('index',containers/type/@api)/apidata/@name}" memberName="{apidata/@name}" commentId="{@id}" textId="" />
</xsl:for-each>
</idMap>
<rMap>
<type namespace="System" name="Object" commentId="T:Sytem.Object">
<xsl:attribute name="external">
<xsl:choose>
<xsl:when test="/reflection/apis/api[@id='T:System.Object']">false</xsl:when>
<xsl:otherwise>true</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<type namespace="System" name="ValueType" commentId="T:System.ValueType">
<xsl:attribute name="external">
<xsl:choose>
<xsl:when test="/reflection/apis/api[@id='T:System.ValueType']">false</xsl:when>
<xsl:otherwise>true</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<xsl:for-each select="/reflection/apis/api[apidata/@subgroup='structure']">
<type namespace="{key('index',containers/namespace/@api)/apidata/@name}" name="{apidata/@name}" commentId="{@id}" external="false" />
</xsl:for-each>
</type>
<xsl:for-each select="/reflection/apis/api[apidata/@subgroup='class']">
<xsl:if test="not(@id='T:System.Object' or @id='T:System.ValueType')">
<type namespace="{key('index',containers/namespace/@api)/apidata/@name}" name="{apidata/@name}" commentId="{@id}" external="false" />
</xsl:if>
</xsl:for-each>
</type>
</rMap>
</cDocMLDocument>
</xsl:template>
<!-- utility templates -->
<xsl:template name="writeIdentity">
<xsl:param name="namespaceName" />
<xsl:param name="typeName" />
<xsl:param name="memberName" />
<xsl:param name="commentId" select="@id|@api" />
<xsl:param name="textId" />
<identity namespaceName="{$namespaceName}" typeName="{$typeName}" memberName="{$memberName}" commentId="{$commentId}" textId="{$textId}" />
</xsl:template>
<xsl:template name="writeTypeIdentity">
<xsl:call-template name="writeIdentity">
<xsl:with-param name="namespaceName" select="key('index',containers/namespace/@api)/apidata/@name" />
<xsl:with-param name="typeName" select="apidata/@name" />
</xsl:call-template>
</xsl:template>
<xsl:template name="writeMemberIdentity">
<xsl:call-template name="writeIdentity">
<xsl:with-param name="namespaceName" select="key('index',containers/namespace/@api)/apidata/@name" />
<xsl:with-param name="typeName" select="key('index',containers/type/@api)/apidata/@name" />
<xsl:with-param name="memberName" select="apidata/@name" />
</xsl:call-template>
</xsl:template>
<xsl:template name="writeSource">
<xsl:param name="assembly" select="containers/library/@assembly" />
<xsl:param name="module" select="containers/library/@module" />
<source assembly="{$assembly}" module="{$module}" />
</xsl:template>
<xsl:template name="writeTypeAttributes">
<xsl:param name="visibility" select="string('Public')" />
<xsl:param name="classLayout" select="string('AutoLayout')" />
<xsl:param name="abstract">
<xsl:choose>
<xsl:when test="typedata/@abstract">
<xsl:value-of select="typedata/@abstract" />
</xsl:when>
<xsl:otherwise>
<xsl:text>false</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:param>
<xsl:param name="sealed">
<xsl:choose>
<xsl:when test="typedata/@sealed">
<xsl:value-of select="typedata/@sealed" />
</xsl:when>
<xsl:otherwise>
<xsl:text>false</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:param>
<xsl:param name="specialName" select="string('false')" />
<attributes visibility="{$visibility}" classLayout="{$classLayout}" abstract="{$abstract}" sealed="{$sealed}" specialName="{$specialName}" import="false" stringFormat="Ansi" beforeFieldInitialization="false" runtimeSpecialName="false" />
</xsl:template>
<xsl:template name="writeMemberAccess">
<xsl:param name="visibility" select="string('Public')" />
<xsl:param name="static">
<xsl:choose>
<xsl:when test="memberdata/@static">
<xsl:value-of select="memberdata/@static" />
</xsl:when>
<xsl:otherwise>
<xsl:text>false</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:param>
<xsl:param name="declaringType" select="containers/type/@api" />
<xsl:param name="specialName" select="string('false')" />
<xsl:param name="runtimeSpecialName" select="string('false')"/>
<xsl:param name="hasDefaultValue" select="string('false')" />
<xsl:param name="hasMarshallingInformation" select="string('false')" />
<xsl:param name="hasRelativeVirtualAddress" select="string('false')" />
<xsl:param name="isInitializedOnly" select="fielddata/@initonly" />
<xsl:param name="isLiteral" select="fielddata/@literal" />
<xsl:param name="isNotSerialized" select="string('false')" />
<access visibility="{$visibility}" static="{$static}" declaringType="{$declaringType}" specialName="{$specialName}" runtimeSpecialName="{$runtimeSpecialName}" hasDefaultValue="{$hasDefaultValue}" hasMarshallingInformation="{$hasMarshallingInformation}" hasRelativeVirtualAddress="{$hasRelativeVirtualAddress}" isInitializedOnly="{$isInitializedOnly}" isLiteral="{$isLiteral}" isNotSerialized="{$isNotSerialized}" isPInvokeImplementation="false" />
</xsl:template>
<xsl:template name="writeMethodAccess">
<xsl:param name="visibility" select="string('Public')" />
<xsl:param name="static">
<xsl:choose>
<xsl:when test="memberdata/@static">
<xsl:value-of select="memberdata/@static" />
</xsl:when>
<xsl:otherwise>
<xsl:text>false</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:param>
<xsl:param name="declaringType" select="containers/type/@api" />
<xsl:param name="specialName">
<xsl:choose>
<xsl:when test="memberdata/@special">
<xsl:value-of select="memberdata/@special" />
</xsl:when>
<xsl:otherwise>
<xsl:text>false</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:param>
<xsl:param name="runtimeSpecialName" select="string('false')"/>
<xsl:param name="abstract">
<xsl:choose>
<xsl:when test="proceduredata/@abstract">
<xsl:value-of select="proceduredata/@abstract" />
</xsl:when>
<xsl:otherwise>
<xsl:text>false</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:param>
<xsl:param name="virtual">
<xsl:choose>
<xsl:when test="proceduredata/@virtual">
<xsl:value-of select="proceduredata/@virtual" />
</xsl:when>
<xsl:otherwise>
<xsl:text>false</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:param>
<xsl:param name="final">
<xsl:choose>
<xsl:when test="proceduredata/@final">
<xsl:value-of select="proceduredata/@final" />
</xsl:when>
<xsl:otherwise>
<xsl:text>false</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:param>
<xsl:param name="vtable" select="string('reuseSlot')" />
<xsl:param name="callingConvention" select="string('HasThis')" />
<xsl:param name="pInvokeImplementation" select="string('false')" />
<xsl:param name="hideBySignature" select="string('true')" />
<xsl:param name="hasSecurity" select="string('false')" />
<xsl:param name="requiresSecurityObject" select="string('false')" />
<xsl:param name="isUnmanagedExport" select="string('false')" />
<access visibility="{$visibility}" static="{$static}" declaringType="{$declaringType}" specialName="{$specialName}" runtimeSpecialName="{$runtimeSpecialName}" abstract="{$abstract}" virtual="{$virtual}" final="{$final}" vtable="{$vtable}" callingConvention="{$callingConvention}" pInvokeImplementation="{$pInvokeImplementation}" hideBySignature="{$hideBySignature}" hasSecurity="{$hasSecurity}" requiresSecurityObject="{$requiresSecurityObject}" isUnmanagedExport="{$isUnmanagedExport}" />
</xsl:template>
<xsl:template name="writePropertyAccess">
<xsl:param name="visibility" select="string('Public')" />
<xsl:param name="static">
<xsl:choose>
<xsl:when test="memberdata/@static">
<xsl:value-of select="memberdata/@static" />
</xsl:when>
<xsl:otherwise>
<xsl:text>false</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:param>
<xsl:param name="declaringType" select="containers/type/@api" />
<xsl:param name="specialName">
<xsl:choose>
<xsl:when test="memberdata/@special">
<xsl:value-of select="memberdata/@special" />
</xsl:when>
<xsl:otherwise>
<xsl:text>false</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:param>
<xsl:param name="runtimeSpecialName" select="string('false')"/>
<xsl:param name="abstract">
<xsl:choose>
<xsl:when test="proceduredata/@abstract">
<xsl:value-of select="proceduredata/@abstract" />
</xsl:when>
<xsl:otherwise>
<xsl:text>false</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:param>
<xsl:param name="virtual">
<xsl:choose>
<xsl:when test="proceduredata/@virtual">
<xsl:value-of select="proceduredata/@virtual" />
</xsl:when>
<xsl:otherwise>
<xsl:text>false</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:param>
<xsl:param name="final">
<xsl:choose>
<xsl:when test="proceduredata/@final">
<xsl:value-of select="proceduredata/@final" />
</xsl:when>
<xsl:otherwise>
<xsl:text>false</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:param>
<xsl:param name="readable" select="propertydata/@get" />
<xsl:param name="writeable" select="string('false')" />
<xsl:param name="hasDefaultValue" select="string('false')" />
<access visibility="{$visibility}" static="{$static}" declaringType="{$declaringType}" specialName="{$specialName}" runtimeSpecialName="{$runtimeSpecialName}" abstract="{$abstract}" virtual="{$virtual}" final="{$final}" readable="{$readable}" writeable="{$writeable}" hasDefaultValue="{$hasDefaultValue}" />
</xsl:template>
<xsl:template name="writeEventAccess">
<xsl:param name="visibility" select="string('Public')" />
<xsl:param name="static">
<xsl:choose>
<xsl:when test="memberdata/@static">
<xsl:value-of select="memberdata/@static" />
</xsl:when>
<xsl:otherwise>
<xsl:text>false</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:param>
<xsl:param name="declaringType" select="containers/type/@api" />
<xsl:param name="specialName">
<xsl:choose>
<xsl:when test="memberdata/@special">
<xsl:value-of select="memberdata/@special" />
</xsl:when>
<xsl:otherwise>
<xsl:text>false</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:param>
<xsl:param name="runtimeSpecialName" select="string('false')"/>
<xsl:param name="abstract">
<xsl:choose>
<xsl:when test="proceduredata/@abstract">
<xsl:value-of select="proceduredata/@abstract" />
</xsl:when>
<xsl:otherwise>
<xsl:text>false</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:param>
<xsl:param name="virtual">
<xsl:choose>
<xsl:when test="proceduredata/@virtual">
<xsl:value-of select="proceduredata/@virtual" />
</xsl:when>
<xsl:otherwise>
<xsl:text>false</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:param>
<xsl:param name="final">
<xsl:choose>
<xsl:when test="proceduredata/@final">
<xsl:value-of select="proceduredata/@final" />
</xsl:when>
<xsl:otherwise>
<xsl:text>false</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:param>
<access visibility="{$visibility}" static="{$static}" declaringType="{$declaringType}" specialName="{$specialName}" runtimeSpecialName="{$runtimeSpecialName}" abstract="{$abstract}" virtual="{$virtual}" final="{$final}" />
</xsl:template>
<xsl:template name="writeConstructorAccess">
<xsl:param name="visibility" select="string('Public')" />
<xsl:param name="static">
<xsl:choose>
<xsl:when test="memberdata/@static">
<xsl:value-of select="memberdata/@static" />
</xsl:when>
<xsl:otherwise>
<xsl:text>false</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:param>
<xsl:param name="declaringType" select="containers/type/@api" />
<xsl:param name="specialName">
<xsl:choose>
<xsl:when test="memberdata/@special">
<xsl:value-of select="memberdata/@special" />
</xsl:when>
<xsl:otherwise>
<xsl:text>false</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:param>
<xsl:param name="runtimeSpecialName" select="string('false')"/>
<access visibility="{$visibility}" static="{$static}" declaringType="{$declaringType}" specialName="{$specialName}" runtimeSpecialName="{$runtimeSpecialName}" />
</xsl:template>
<xsl:template name="writeMemberInheritance">
<xsl:choose>
<xsl:when test="overrides">
<inheritance doesOverride="true" isInherited="false" doesHide="false">
<baseMember name="{key('index',overrides/member/@api)/apidata/@name}" commentId="{overrides/member/@api}">
<type name="{key('index',overrides/member/type/@api)/apidata/@name}" namespace="{key('index',key('index',overrides/member/type/@api)/containers/namespace/@api)/apidata/@name}" commentId="{overrides/member/type/@api}" />
</baseMember>
</inheritance>
</xsl:when>
<xsl:otherwise>
<inheritance doesOverride="false" isInherited="false" doesHide="false">
<baseMember name="{apidata/@name}" commentId="{@id}">
<type name="{key('index',containers/type/@api)/apidata/@name}" namespace="{key('index',containers/namespace/@api)/apidata/@name}" commentId="{containers/type/@api}" />
</baseMember>
</inheritance>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="writeImplementedInterfaces">
<implementedInterfaces>
<xsl:for-each select="implements/type">
<interface name="{key('index',@api)/apidata/@name}" namespace="{key('index',key('index',@api)/containers/namespace/@api)/apidata/@name}" commentId="{@api}" >
<xsl:if test="specialization">
<parameters>
<xsl:for-each select="specialization/*">
<parameter pointerIndirections="0" byRef="false" pinned="false" sentinel="false">
<xsl:apply-templates select="(descendant-or-self::type | descendant-or-self::template)[1]" />
</parameter>
</xsl:for-each>
</parameters>
</xsl:if>
</interface>
</xsl:for-each>
</implementedInterfaces>
</xsl:template>
<xsl:template name="writeMembers">
<xsl:param name="type" select="@id" />
<members>
<!--
<fields />
<constructors />
<methods />
<properties />
<events />
-->
<fields>
<xsl:apply-templates select="(key('index',elements/element/@api) | elements/element)[apidata/@subgroup='field' and containers/type/@api=$type]" />
</fields>
<constructors>
<xsl:apply-templates select="key('index',elements/element/@api)[apidata/@subgroup='constructor']" />
</constructors>
<methods>
<xsl:apply-templates select="(key('index',elements/element/@api) | elements/element)[apidata/@subgroup='method' and containers/type/@api=$type]" />
</methods>
<properties>
<xsl:apply-templates select="(key('index',elements/element/@api) | elements/element)[apidata/@subgroup='property' and containers/type/@api=$type]" />
</properties>
<events>
<xsl:apply-templates select="(key('index',elements/element/@api) | elements/element)[apidata/@subgroup='event' and containers/type/@api=$type]" />
</events>
</members>
</xsl:template>
<xsl:template name="writeCustomAttributes">
<customAttributes />
</xsl:template>
<xsl:template name="writeParameters">
<parameters>
<xsl:for-each select="parameters/parameter">
<parameter name="{@name}" in="false" out="false" optional="false" retval="false" params="false">
<parameterTypeReference pointerIndirections="0" byRef="false" pinned="false" sentinel="false">
<xsl:apply-templates select="(.//type | .//template)[1]" />
</parameterTypeReference>
</parameter>
</xsl:for-each>
</parameters>
</xsl:template>
<xsl:template name="writeReturnValue">
<returnValue pointerIndirections="0" byRef="false" pinned="false" sentinel="false">
<xsl:choose>
<xsl:when test="returns">
<xsl:apply-templates select="(returns//type | returns//template)[1]" />
</xsl:when>
<xsl:otherwise>
<typeReference name="Void" namespace="System" commentId="T:System.Void" />
<customModifiers />
<arrayDefinitions />
</xsl:otherwise>
</xsl:choose>
</returnValue>
</xsl:template>
<xsl:template name="writeValue">
<value pointerIndirections="0" byRef="false" pinned="false" sentinel="false">
<xsl:choose>
<xsl:when test="returns">
<xsl:apply-templates select="(returns//type | returns//template)[1]" />
</xsl:when>
<xsl:otherwise>
<typeReference name="Void" namespace="System" commentId="T:System.Void" />
<customModifiers />
<arrayDefinitions />
</xsl:otherwise>
</xsl:choose>
</value>
</xsl:template>
<xsl:template match="type">
<typeReference name="" namespace="" commentId="{@api}" />
<customModifiers />
<arrayDefinitions />
</xsl:template>
<xsl:template match="template">
<typeReference name="{@name}" index="{@index}" target="Type" />
<customModifiers />
<arrayDefinitions />
</xsl:template>
<xsl:template match="templates">
<genericTypeParameters>
<xsl:for-each select="template">
<genericTypeParameter name="{@name}">
<constraints />
</genericTypeParameter>
</xsl:for-each>
</genericTypeParameters>
</xsl:template>
<!-- api entities -->
<xsl:template match="assembly">
<assembly>
<attributes name="{@name}" hashAlgorithm="SHA" culture="" sideBySideCompatible="true" retargetable="false" enableJitCompileTracking="false" enableJitCompileOptimizer="false" />
<version majorVersion="2" minorVersion="0" buildNumber="0" revisionNumber="0" />
<operatingSystems />
<processors />
<xsl:call-template name="writeCustomAttributes" />
<modules />
<assemblyReferences />
<files />
<manifestResources />
</assembly>
</xsl:template>
<xsl:template match="api[apidata/@group='namespace']">
<namespace>
<frameworks />
<xsl:call-template name="writeIdentity">
<xsl:with-param name="namespaceName" select="apidata/@name" />
</xsl:call-template>
<xsl:call-template name="writeSource" />
<comments />
<xsl:call-template name="writeCustomAttributes" />
<xsl:apply-templates select="key('index',elements/element/@api)[apidata/@subgroup='enumeration']" />
<xsl:apply-templates select="key('index',elements/element/@api)[apidata/@subgroup='structure']" />
<xsl:apply-templates select="key('index',elements/element/@api)[apidata/@subgroup='delegate']" />
<xsl:apply-templates select="key('index',elements/element/@api)[apidata/@subgroup='interface']" />
<xsl:apply-templates select="key('index',elements/element/@api)[apidata/@subgroup='class']" />
</namespace>
</xsl:template>
<xsl:template match="api[apidata/@group='type' and apidata/@subgroup='class']">
<class>
<frameworks />
<xsl:call-template name="writeTypeIdentity" />
<xsl:call-template name="writeSource" />
<xsl:call-template name="writeTypeAttributes" />
<inheritance>
<baseType name="Object" namespace="System" commentId="T:System.Object" />
<xsl:call-template name="writeImplementedInterfaces" />
</inheritance>
<xsl:apply-templates select="templates" />
<comments />
<xsl:call-template name="writeCustomAttributes" />
<xsl:call-template name="writeMembers">
<xsl:with-param name="type" select="@id" />
</xsl:call-template>
<PermissionSetAttributes />
</class>
</xsl:template>
<xsl:template match="api[apidata/@group='type' and apidata/@subgroup='structure']">
<structure>
<frameworks />
<xsl:call-template name="writeTypeIdentity" />
<xsl:call-template name="writeSource" />
<xsl:call-template name="typeIdentity" />
<xsl:call-template name="writeTypeAttributes">
<xsl:with-param name="classLayout">SequentialLayout</xsl:with-param>
</xsl:call-template>
<inheritance>
<baseType name="ValueType" namespace="System" commentId="T:System.ValueType" />
<xsl:call-template name="writeImplementedInterfaces" />
</inheritance>
<xsl:apply-templates select="templates" />
<comments />
<xsl:call-template name="writeCustomAttributes" />
<xsl:call-template name="writeMembers" />
</structure>
</xsl:template>
<xsl:template match="api[apidata/@group='type' and apidata/@subgroup='enumeration']">
<enumeration>
<frameworks />
<xsl:call-template name="writeTypeIdentity" />
<xsl:call-template name="writeSource" />
<xsl:call-template name="writeTypeAttributes" />
<inheritance>
<baseType name="Enum" namespace="System" commentId="T:System.Enum" />
<implementedInterfaces />
</inheritance>
<comments />
<xsl:call-template name="writeCustomAttributes" />
<xsl:call-template name="writeMembers" />
</enumeration>
</xsl:template>
<xsl:template match="api[apidata/@group='type' and apidata/@subgroup='delegate']">
<delegate>
<frameworks />
<xsl:call-template name="writeTypeIdentity" />
<xsl:call-template name="writeSource" />
<xsl:call-template name="writeTypeAttributes" />
<inheritance>
<baseType name="MulticastDelegate" namespace="System" commentId="T:System.MulticastDelegate" />
<implementedInterfaces />
</inheritance>
<comments />
<xsl:call-template name="writeCustomAttributes" />
<xsl:call-template name="writeMembers" />
<xsl:call-template name="writeParameters" />
<xsl:call-template name="writeReturnValue" />
</delegate>
</xsl:template>
<xsl:template match="api[apidata/@group='type' and apidata/@subgroup='interface']">
<interface>
<frameworks />
<xsl:call-template name="writeTypeIdentity" />
<xsl:call-template name="writeSource" />
<xsl:call-template name="writeTypeAttributes" />
<inheritance>
<baseType name="" namespace="" commentId="" />
<implementedInterfaces />
</inheritance>
<xsl:apply-templates select="templates" />
<comments />
<xsl:call-template name="writeCustomAttributes" />
<xsl:call-template name="writeMembers" />
</interface>
</xsl:template>
<!-- member entries -->
<xsl:template match="*[apidata/@group='member' and apidata/@subgroup='field']">
<field>
<frameworks />
<xsl:call-template name="writeMemberIdentity" />
<xsl:call-template name="writeSource" />
<comments />
<xsl:call-template name="writeCustomAttributes" />
<xsl:variable name="type" select="key('index',containers/type/@api)" />
<inheritance doesOverride="false" isInherited="false" doesHide="false">
<baseMember name="{apidata/@name}" commentId="{@id}">
<type name="{key('index',containers/type/@api)/apidata/@name}" namespace="{key('index',containers/namespace/@api)/apidata/@name}" commentId="{containers/type/@api}" />
</baseMember>
</inheritance>
<xsl:call-template name="writeMemberAccess" />
<value pointerIndirections="0" byRef="false" pinned="false" sentinel="false">
<typeReference name="{key('index',containers/type/@api)/apidata/@name}" namespace="{key('index',containers/namespace/@api)/apidata/@name}" commentId="{containers/type/@api}" />
<customModifiers />
<arrayDefinitions />
</value>
</field>
</xsl:template>
<xsl:template match="*[apidata/@group='member' and apidata/@subgroup='method']">
<method>
<xsl:attribute name="isOverload">
<xsl:choose>
<xsl:when test="memberdata/@overload='true'">
<xsl:text>true</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>false</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<xsl:attribute name="hasVarArgs">
<xsl:text>false</xsl:text>
</xsl:attribute>
<xsl:attribute name="isExplicitInterfaceImpl">
<xsl:text>false</xsl:text>
</xsl:attribute>
<frameworks />
<xsl:call-template name="writeMemberIdentity" />
<xsl:call-template name="writeSource" />
<xsl:call-template name="writeMethodAccess" />
<xsl:call-template name="writeMemberInheritance" />
<xsl:call-template name="writeCustomAttributes" />
<PermissionSetAttributes />
<xsl:call-template name="writeParameters" />
<xsl:call-template name="writeReturnValue" />
<explicitImplRefs />
<comments />
</method>
</xsl:template>
<xsl:template match="*[apidata/@group='member' and apidata/@subgroup='property']">
<property>
<xsl:attribute name="isOverload">
<xsl:choose>
<xsl:when test="memberdata/@overload='true'">
<xsl:text>true</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>false</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<frameworks />
<xsl:call-template name="writeMemberIdentity" />
<xsl:call-template name="writeSource" />
<comments />
<xsl:call-template name="writeCustomAttributes" />
<xsl:call-template name="writeMemberInheritance" />
<xsl:if test="propertydata/@get='true'">
<propertyGet>
<method isOverload="false" hasVarArgs="false" isExplicitInterfaceImpl="false">
<frameworks />
<xsl:call-template name="writeMemberIdentity">
<!-- <xsl:with-param name="memberName" select="concat('get_',apidata/@name)" /> -->
</xsl:call-template>
<xsl:call-template name="writeSource" />
<xsl:call-template name="writeMethodAccess" />
<xsl:call-template name="writeMemberInheritance" />
<xsl:call-template name="writeCustomAttributes" />
<PermissionSetAttributes />
<xsl:call-template name="writeParameters" />
<xsl:call-template name="writeReturnValue" />
<explicitImplRefs />
<comments />
</method>
</propertyGet>
</xsl:if>
<xsl:if test="propertydata/@set='true'">
</xsl:if>
<xsl:call-template name="writePropertyAccess" />
<xsl:call-template name="writeParameters" />
<xsl:call-template name="writeValue" />
</property>
</xsl:template>
<xsl:template match="*[apidata/@group='member' and apidata/@subgroup='event']">
<event>
<frameworks />
<xsl:call-template name="writeMemberIdentity" />
<xsl:call-template name="writeSource" />
<comments />
<xsl:call-template name="writeCustomAttributes" />
<xsl:call-template name="writeMemberInheritance" />
<eventAdd>
<method isOverload="false" hasVarArgs="false" isExplicitInterfaceImpl="false">
<frameworks />
<xsl:call-template name="writeMemberIdentity" />
<xsl:call-template name="writeSource" />
<xsl:call-template name="writeMethodAccess" />
<xsl:call-template name="writeMemberInheritance" />
<xsl:call-template name="writeCustomAttributes" />
<PermissionSetAttributes />
<xsl:call-template name="writeParameters" />
<xsl:call-template name="writeReturnValue" />
<explicitImplRefs />
<comments />
</method>
</eventAdd>
<eventRemove>
<method isOverload="false" hasVarArgs="false" isExplicitInterfaceImpl="false">
<frameworks />
<xsl:call-template name="writeMemberIdentity" />
<xsl:call-template name="writeSource" />
<xsl:call-template name="writeMethodAccess" />
<xsl:call-template name="writeMemberInheritance" />
<xsl:call-template name="writeCustomAttributes" />
<PermissionSetAttributes />
<xsl:call-template name="writeParameters" />
<xsl:call-template name="writeReturnValue" />
<explicitImplRefs />
<comments />
</method>
</eventRemove>
<xsl:call-template name="writeEventAccess" />
<eventHandler name="" namespace="" commentId="{eventhandler/type/@api}" />
</event>
</xsl:template>
<xsl:template match="*[apidata/@group='member' and apidata/@subgroup='constructor']">
<constructor>
<xsl:attribute name="isOverload">
<xsl:choose>
<xsl:when test="false()"><xsl:text>true</xsl:text></xsl:when>
<xsl:otherwise><xsl:text>false</xsl:text></xsl:otherwise>
</xsl:choose>
</xsl:attribute>
<frameworks />
<xsl:call-template name="writeMemberIdentity" />
<xsl:call-template name="writeSource" />
<xsl:call-template name="writeConstructorAccess" />
<xsl:call-template name="writeMemberInheritance" />
<xsl:call-template name="writeParameters" />
<xsl:call-template name="writeCustomAttributes" />
<PermissionSetAttributes />
<comments />
</constructor>
</xsl:template>
<xsl:template match="attribute">
<CustomAttribute>
<TypeRef name="{key('index',type/@api)/apidata/@name}" namespace="{key('index',key('index',type/@api)/containers/containingNamespace/@api)/apidata/@name}" commendId="{type/@api}" />
<CustomAttributeNamedValues />
<CustomattributeConstructor />
</CustomAttribute>
</xsl:template>
<xsl:template name="typeIdentity">
<identity namespaceName="{key('index',containers/namespace/@api)/apidata/@name}" typeName="{apidata/@name}" memberName="" commentId="{@id}" textId="" />
</xsl:template>
<xsl:template name="memberIdentity">
<identity namespaceName="{key('index',containers/namespace/@api)/apidata/@name}" typeName="{key('index',containers/type/@api)/apidata/@name}" memberName="{apidata/@name}" commentId="{@id}" textId="" />
</xsl:template>
<xsl:template name="source">
<source assembly="{containers/library/@assembly}" module="{containers/library/@module}.dll" />
</xsl:template>
<xsl:template match="templates">
<genericTypeParameters>
<xsl:for-each select="template">
<genericTypeParameter name="{@name}">
<constraints />
</genericTypeParameter>
</xsl:for-each>
</genericTypeParameters>
</xsl:template>
<xsl:template name="typeReference">
<xsl:attribute name="pointerIndirections">
<xsl:value-of select="count(pointerTo)" />
</xsl:attribute>
<xsl:attribute name="byRef">
<xsl:value-of select="type/@ref" />
</xsl:attribute>
<xsl:attribute name="pinned">
<xsl:text>false</xsl:text>
</xsl:attribute>
<typeReference name="{key('index',.//type[1]/@api)/apidata/@name}" namespace="{key('index',key('index',.//type[1]/@api)/containers/namespace/@api)/apidata/@name}" commendId="{.//type[1]/@api}" />
<customModifiers />
<arrayDefinitions>
<xsl:if test="arrayOf">
<xsl:attribute name="rank">
<xsl:value-of select="arrayOf/@rank" />
</xsl:attribute>
<dimensions />
</xsl:if>
</arrayDefinitions>
</xsl:template>
<xsl:template name="visibility">
<xsl:param name="visibility" />
<xsl:attribute name="visibility">
<xsl:choose>
<xsl:when test="$visibility='public'">
<xsl:text>Public</xsl:text>
</xsl:when>
<xsl:when test="$visibility='family'">
<xsl:text>Family</xsl:text>
</xsl:when>
</xsl:choose>
</xsl:attribute>
</xsl:template>
</xsl:stylesheet>