changeset 7:fa7a99c2d079

dox library templates and schemas
author sergey
date Wed, 14 May 2014 01:22:21 +0400
parents 2d1a0a75fc49
children 7d92a42f8e18
files config/Benzin.Web.Application.xml config/bootstrap.pm deploy.pl dox_task.pl schemas/doxygen/compound.xsd schemas/doxygen/csharp/base.xsl schemas/doxygen/csharp/briefsections.xsl schemas/doxygen/csharp/class.xsl schemas/doxygen/csharp/default.xsl schemas/doxygen/csharp/file.xsl schemas/doxygen/csharp/interface.xsl schemas/doxygen/csharp/labels.xml schemas/doxygen/csharp/member.xsl schemas/doxygen/csharp/namespace.xsl schemas/doxygen/csharp/struct.xsl schemas/form.types.xml schemas/locale/ru/form.types.s schemas/locale/ru/user.s schemas/login.xml schemas/user.xml shared_view/layout/default.tt view/layout/default/library.tt view/site/library.tt view/site/library/@Collection.tt view/site/library/_any/@Compound.tt view/site/library/_any/@Member.tt
diffstat 26 files changed, 4392 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/config/Benzin.Web.Application.xml	Mon May 12 18:05:30 2014 +0400
+++ b/config/Benzin.Web.Application.xml	Wed May 14 01:22:21 2014 +0400
@@ -8,7 +8,7 @@
 	</securityFactory>
 	<connections type="HASH">
 		<doxLibrary type="HASH">
-			<dsn>DBI:mysql:database=test;host=localhost;mysql_socket=/tmp/mysql-benzin.sock;mysql_enable_utf8=1
+			<dsn>DBI:mysql:database=test;host=localhost;mysql_socket=/tmp/mysql-implab.sock;mysql_enable_utf8=1
 			</dsn>
 			<user>root</user>
 			<password />
--- a/config/bootstrap.pm	Mon May 12 18:05:30 2014 +0400
+++ b/config/bootstrap.pm	Wed May 14 01:22:21 2014 +0400
@@ -3,3 +3,4 @@
 use lib File::Spec->catdir($IMPL::Config::AppBase, '../Impl/Lib');
 use lib File::Spec->catdir($IMPL::Config::AppBase, '../benzin/lib');
 
+1;
\ No newline at end of file
--- a/deploy.pl	Mon May 12 18:05:30 2014 +0400
+++ b/deploy.pl	Wed May 14 01:22:21 2014 +0400
@@ -1,11 +1,17 @@
 #!/usr/bin/perl -w
 use strict;
+use lib '.';
+use config;
+use config::bootstrap;
+use IMPL::require {
+    DoxModel => 'Benzin::Doxygen::Model'
+};
 
-my @dirs = qw(
-	doxygen-data
-	mysql-data
-);
+mkdir 'doxygen-data' unless -e 'doxygen-data';
 
-mkdir $_ foreach grep not(-e $_), @dirs;
+unless (-e 'mysql-data') {
+	mkdir 'mysql-data';
+	`mysql_install_db --datadir=./mysql-data`;
+}
 
-`mysql_install_db --datadir=./mysql-data`;
\ No newline at end of file
+DoxModel->Deploy($config::doxConnection);
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dox_task.pl	Wed May 14 01:22:21 2014 +0400
@@ -0,0 +1,20 @@
+#!/usr/bin/perl -w
+use lib '.';
+use config;
+use config::bootstrap;
+use strict;
+use IMPL::Config;
+
+use IMPL::require {
+	DoxygenTask => 'Benzin::Doxygen::MakedocTask',
+	DoxModel => 'Benzin::Doxygen::Model',
+	InlineFactory => 'IMPL::Object::InlineFactory'
+};
+
+my $task = DoxygenTask->new(
+	%config::doxSource
+);
+
+$task->DoWork();
+
+print "completed\n";
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/schemas/doxygen/compound.xsd	Wed May 14 01:22:21 2014 +0400
@@ -0,0 +1,936 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+  <xsd:element name="doxygen" type="DoxygenType"/>
+
+  <!-- Complex types -->
+
+  <xsd:complexType name="DoxygenType">
+    <xsd:sequence maxOccurs="unbounded">
+      <xsd:element name="compounddef" type="compounddefType" minOccurs="0" />
+    </xsd:sequence>
+    <xsd:attribute name="version" type="DoxVersionNumber" use="required" />
+  </xsd:complexType>
+
+  <xsd:complexType name="compounddefType">
+    <xsd:sequence>
+      <xsd:element name="compoundname" type="xsd:string"/>
+      <xsd:element name="title" type="xsd:string" minOccurs="0" />
+      <xsd:element name="basecompoundref" type="compoundRefType" minOccurs="0" maxOccurs="unbounded" />
+      <xsd:element name="derivedcompoundref" type="compoundRefType" minOccurs="0" maxOccurs="unbounded" />
+      <xsd:element name="includes" type="incType" minOccurs="0" maxOccurs="unbounded" />
+      <xsd:element name="includedby" type="incType" minOccurs="0" maxOccurs="unbounded" />
+      <xsd:element name="incdepgraph" type="graphType" minOccurs="0" />
+      <xsd:element name="invincdepgraph" type="graphType" minOccurs="0" />
+      <xsd:element name="innerdir" type="refType" minOccurs="0" maxOccurs="unbounded" />
+      <xsd:element name="innerfile" type="refType" minOccurs="0" maxOccurs="unbounded" />
+      <xsd:element name="innerclass" type="refType" minOccurs="0" maxOccurs="unbounded" />
+      <xsd:element name="innernamespace" type="refType" minOccurs="0" maxOccurs="unbounded" />
+      <xsd:element name="innerpage" type="refType" minOccurs="0" maxOccurs="unbounded" />
+      <xsd:element name="innergroup" type="refType" minOccurs="0" maxOccurs="unbounded" />
+      <xsd:element name="templateparamlist" type="templateparamlistType" minOccurs="0" />
+      <xsd:element name="sectiondef" type="sectiondefType" minOccurs="0" maxOccurs="unbounded" />
+      <xsd:element name="briefdescription" type="descriptionType" minOccurs="0" />
+      <xsd:element name="detaileddescription" type="descriptionType" minOccurs="0" />
+      <xsd:element name="inheritancegraph" type="graphType" minOccurs="0" />
+      <xsd:element name="collaborationgraph" type="graphType" minOccurs="0" />
+      <xsd:element name="programlisting" type="listingType" minOccurs="0" />
+      <xsd:element name="location" type="locationType" minOccurs="0" />
+      <xsd:element name="listofallmembers" type="listofallmembersType" minOccurs="0" />
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:string" />
+    <xsd:attribute name="kind" type="DoxCompoundKind" />
+    <xsd:attribute name="prot" type="DoxProtectionKind" />
+    <xsd:attribute name="final" type="DoxBool" use="optional"/>
+    <xsd:attribute name="sealed" type="DoxBool" use="optional"/>
+    <xsd:attribute name="abstract" type="DoxBool" use="optional"/>
+  </xsd:complexType>
+
+  <xsd:complexType name="listofallmembersType">
+    <xsd:sequence>
+      <xsd:element name="member" type="memberRefType" minOccurs="0" maxOccurs="unbounded" />
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <xsd:complexType name="memberRefType">
+    <xsd:sequence>
+      <xsd:element name="scope" />
+      <xsd:element name="name" />
+    </xsd:sequence>
+    <xsd:attribute name="refid" type="xsd:string" />
+    <xsd:attribute name="prot" type="DoxProtectionKind" />
+    <xsd:attribute name="virt" type="DoxVirtualKind" />
+    <xsd:attribute name="ambiguityscope" type="xsd:string" />
+  </xsd:complexType>
+
+  <xsd:complexType name="compoundRefType">
+    <xsd:simpleContent>
+      <xsd:extension base="xsd:string">
+        <xsd:attribute name="refid" type="xsd:string" use="optional" />
+        <xsd:attribute name="prot" type="DoxProtectionKind" />
+        <xsd:attribute name="virt" type="DoxVirtualKind" />
+      </xsd:extension>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+  <xsd:complexType name="reimplementType">
+    <xsd:simpleContent>
+      <xsd:extension base="xsd:string">
+        <xsd:attribute name="refid" type="xsd:string" />
+      </xsd:extension>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+  <xsd:complexType name="incType">
+    <xsd:simpleContent>
+      <xsd:extension base="xsd:string">
+        <xsd:attribute name="refid" type="xsd:string" />
+        <xsd:attribute name="local" type="DoxBool" />
+      </xsd:extension>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+  <xsd:complexType name="refType">
+    <xsd:simpleContent>
+      <xsd:extension base="xsd:string">
+        <xsd:attribute name="refid" type="xsd:string" />
+        <xsd:attribute name="prot" type="DoxProtectionKind" use="optional"/>
+      </xsd:extension>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+  <xsd:complexType name="refTextType">
+    <xsd:simpleContent>
+      <xsd:extension base="xsd:string">
+       <xsd:attribute name="refid" type="xsd:string" />
+       <xsd:attribute name="kindref" type="DoxRefKind" />
+       <xsd:attribute name="external" type="xsd:string" use="optional"/>
+       <xsd:attribute name="tooltip" type="xsd:string" use="optional"/>
+      </xsd:extension>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+  <xsd:complexType name="sectiondefType">
+    <xsd:sequence>
+      <xsd:element name="header" type="xsd:string" minOccurs="0" />
+      <xsd:element name="description" type="descriptionType" minOccurs="0" />
+      <xsd:element name="memberdef" type="memberdefType" maxOccurs="unbounded" />
+    </xsd:sequence>
+    <xsd:attribute name="kind" type="DoxSectionKind" />
+  </xsd:complexType>
+
+  <xsd:complexType name="memberdefType">
+    <xsd:sequence>
+      <xsd:element name="templateparamlist" type="templateparamlistType" minOccurs="0" />
+      <xsd:element name="type" type="linkedTextType" minOccurs="0" />
+      <xsd:element name="definition" minOccurs="0" />
+      <xsd:element name="argsstring" minOccurs="0" />
+      <xsd:element name="name" />
+      <xsd:element name="read" minOccurs="0" />
+      <xsd:element name="write" minOccurs="0" />
+      <xsd:element name="bitfield" minOccurs="0" />
+      <xsd:element name="reimplements" type="reimplementType" minOccurs="0" maxOccurs="unbounded" />
+      <xsd:element name="reimplementedby" type="reimplementType" minOccurs="0" maxOccurs="unbounded" />
+      <xsd:element name="param" type="paramType" minOccurs="0" maxOccurs="unbounded" />
+      <xsd:element name="enumvalue" type="enumvalueType" minOccurs="0" maxOccurs="unbounded" />
+      <xsd:element name="initializer" type="linkedTextType" minOccurs="0" />
+      <xsd:element name="exceptions" type="linkedTextType" minOccurs="0" />
+      <xsd:element name="briefdescription" type="descriptionType" minOccurs="0" />
+      <xsd:element name="detaileddescription" type="descriptionType" minOccurs="0" />
+      <xsd:element name="inbodydescription" type="descriptionType" minOccurs="0" />
+      <xsd:element name="location" type="locationType" />
+      <xsd:element name="references" type="referenceType" minOccurs="0" maxOccurs="unbounded" />
+      <xsd:element name="referencedby" type="referenceType" minOccurs="0" maxOccurs="unbounded" />
+    </xsd:sequence>
+    <xsd:attribute name="kind" type="DoxMemberKind" />
+    <xsd:attribute name="id" type="xsd:string" />
+    <xsd:attribute name="prot" type="DoxProtectionKind" />
+    <xsd:attribute name="static" type="DoxBool" />
+    <xsd:attribute name="const" type="DoxBool" />
+    <xsd:attribute name="explicit" type="DoxBool" />
+    <xsd:attribute name="inline" type="DoxBool" />
+    <xsd:attribute name="virt" type="DoxVirtualKind" />
+    <xsd:attribute name="volatile" type="DoxBool" />
+    <xsd:attribute name="mutable" type="DoxBool" />
+    <!-- Qt property -->
+    <xsd:attribute name="readable" type="DoxBool" use="optional"/>
+    <xsd:attribute name="writable" type="DoxBool" use="optional"/>
+    <!-- C++/CLI variable -->
+    <xsd:attribute name="initonly" type="DoxBool" use="optional"/>
+    <!-- C++/CLI and C# property -->
+    <xsd:attribute name="settable" type="DoxBool" use="optional"/>
+    <xsd:attribute name="gettable" type="DoxBool" use="optional"/>
+    <!-- C++/CLI function -->
+    <xsd:attribute name="final" type="DoxBool" use="optional"/>
+    <xsd:attribute name="sealed" type="DoxBool" use="optional"/>
+    <xsd:attribute name="new" type="DoxBool" use="optional"/>
+    <!-- C++/CLI event -->
+    <xsd:attribute name="add" type="DoxBool" use="optional"/>
+    <xsd:attribute name="remove" type="DoxBool" use="optional"/>
+    <xsd:attribute name="raise" type="DoxBool" use="optional"/>
+    <!-- Objective-C 2.0 protocol method -->
+    <xsd:attribute name="optional" type="DoxBool" use="optional"/>
+    <xsd:attribute name="required" type="DoxBool" use="optional"/>
+    <!-- Objective-C 2.0 property accessor -->
+    <xsd:attribute name="accessor" type="DoxAccessor" use="optional"/>
+    <!-- UNO IDL -->
+    <xsd:attribute name="attribute" type="DoxBool" use="optional"/>
+    <xsd:attribute name="property" type="DoxBool" use="optional"/>
+    <xsd:attribute name="readonly" type="DoxBool" use="optional"/>
+    <xsd:attribute name="bound" type="DoxBool" use="optional"/>
+    <xsd:attribute name="removable" type="DoxBool" use="optional"/>
+    <xsd:attribute name="contrained" type="DoxBool" use="optional"/>
+    <xsd:attribute name="transient" type="DoxBool" use="optional"/>
+    <xsd:attribute name="maybevoid" type="DoxBool" use="optional"/>
+    <xsd:attribute name="maybedefault" type="DoxBool" use="optional"/>
+    <xsd:attribute name="maybeambiguous" type="DoxBool" use="optional"/>
+
+  </xsd:complexType>
+
+  <xsd:complexType name="descriptionType" mixed="true">
+    <xsd:sequence>
+      <xsd:element name="title" type="xsd:string" minOccurs="0"/>	    
+      <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
+      <xsd:element name="sect1" type="docSect1Type" minOccurs="0" maxOccurs="unbounded" />
+      <xsd:element name="internal" type="docInternalType" minOccurs="0" />
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <xsd:complexType name="enumvalueType" mixed="true">
+    <xsd:sequence>
+      <xsd:element name="name" />
+      <xsd:element name="initializer" type="linkedTextType" minOccurs="0" />
+      <xsd:element name="briefdescription" type="descriptionType" minOccurs="0" />
+      <xsd:element name="detaileddescription" type="descriptionType" minOccurs="0" />
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:string" />
+    <xsd:attribute name="prot" type="DoxProtectionKind" />
+  </xsd:complexType>
+
+  <xsd:complexType name="templateparamlistType">
+    <xsd:sequence>
+      <xsd:element name="param" type="paramType" minOccurs="0" maxOccurs="unbounded" />
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <xsd:complexType name="paramType">
+    <xsd:sequence>
+      <xsd:element name="type" type="linkedTextType" minOccurs="0" />
+      <xsd:element name="declname" minOccurs="0" />
+      <xsd:element name="defname" minOccurs="0" />
+      <xsd:element name="array" minOccurs="0" />
+      <xsd:element name="defval" type="linkedTextType" minOccurs="0" />
+      <xsd:element name="briefdescription" type="descriptionType" minOccurs="0" />
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <xsd:complexType name="linkedTextType" mixed="true">
+    <xsd:sequence>
+    <xsd:element name="ref" type="refTextType" minOccurs="0" maxOccurs="unbounded" />
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <xsd:complexType name="graphType">
+    <xsd:sequence>
+      <xsd:element name="node" type="nodeType" maxOccurs="unbounded" />
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <xsd:complexType name="nodeType">
+    <xsd:sequence>
+      <xsd:element name="label" />
+      <xsd:element name="link" type="linkType" minOccurs="0" />
+      <xsd:element name="childnode" type="childnodeType" minOccurs="0" maxOccurs="unbounded" />
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:string" />
+  </xsd:complexType>
+
+  <xsd:complexType name="childnodeType">
+    <xsd:sequence>
+      <xsd:element name="edgelabel" minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="refid" type="xsd:string" />
+    <xsd:attribute name="relation" type="DoxGraphRelation" />
+  </xsd:complexType>
+
+  <xsd:complexType name="linkType">
+    <xsd:attribute name="refid" type="xsd:string" />
+    <xsd:attribute name="external" type="xsd:string" use="optional"/>
+  </xsd:complexType>
+
+  <xsd:complexType name="listingType">
+    <xsd:sequence>
+      <xsd:element name="codeline" type="codelineType" minOccurs="0" maxOccurs="unbounded" />
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <xsd:complexType name="codelineType">
+    <xsd:sequence>
+      <xsd:element name="highlight" type="highlightType" minOccurs="0" maxOccurs="unbounded" />
+    </xsd:sequence>
+    <xsd:attribute name="lineno" type="xsd:integer" />
+    <xsd:attribute name="refid" type="xsd:string" />
+    <xsd:attribute name="refkind" type="DoxRefKind" />
+    <xsd:attribute name="external" type="DoxBool" />
+  </xsd:complexType>
+
+  <xsd:complexType name="highlightType" mixed="true">
+    <xsd:choice minOccurs="0" maxOccurs="unbounded">
+      <xsd:element name="sp" />
+      <xsd:element name="ref" type="refTextType" />
+    </xsd:choice>
+    <xsd:attribute name="class" type="DoxHighlightClass" />
+  </xsd:complexType>
+
+  <xsd:complexType name="referenceType" mixed="true">
+    <xsd:attribute name="refid" type="xsd:string" />
+    <xsd:attribute name="compoundref" type="xsd:string" use="optional" />
+    <xsd:attribute name="startline" type="xsd:integer" />
+    <xsd:attribute name="endline" type="xsd:integer" />
+  </xsd:complexType>
+
+  <xsd:complexType name="locationType">
+    <xsd:attribute name="file" type="xsd:string" />
+    <xsd:attribute name="line" type="xsd:integer" />
+    <xsd:attribute name="column" type="xsd:integer" use="optional"/>
+    <xsd:attribute name="bodyfile" type="xsd:string" />
+    <xsd:attribute name="bodystart" type="xsd:integer" />
+    <xsd:attribute name="bodyend" type="xsd:integer" />
+  </xsd:complexType>
+
+  <xsd:complexType name="docSect1Type" mixed="true">
+    <xsd:sequence>
+      <xsd:element name="title" type="xsd:string" />	    
+      <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
+      <xsd:element name="sect2" type="docSect2Type" minOccurs="0" maxOccurs="unbounded" />
+      <xsd:element name="internal" type="docInternalS1Type" minOccurs="0" />
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:string" />
+  </xsd:complexType>
+
+  <xsd:complexType name="docSect2Type" mixed="true">
+    <xsd:sequence>
+      <xsd:element name="title" type="xsd:string" />	    
+      <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
+      <xsd:element name="sect3" type="docSect3Type" minOccurs="0" maxOccurs="unbounded" />
+      <xsd:element name="internal" type="docInternalS2Type" minOccurs="0" />
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:string" />
+  </xsd:complexType>
+
+  <xsd:complexType name="docSect3Type" mixed="true">
+    <xsd:sequence>
+      <xsd:element name="title" type="xsd:string" />	    
+      <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
+      <xsd:element name="sect4" type="docSect4Type" minOccurs="0" maxOccurs="unbounded" />
+      <xsd:element name="internal" type="docInternalS3Type" minOccurs="0" />
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:string" />
+  </xsd:complexType>
+
+  <xsd:complexType name="docSect4Type" mixed="true">
+    <xsd:sequence>
+      <xsd:element name="title" type="xsd:string" />	    
+      <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
+      <xsd:element name="internal" type="docInternalS4Type" minOccurs="0" />
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:string" />
+  </xsd:complexType>
+
+  <xsd:complexType name="docInternalType" mixed="true">
+    <xsd:sequence>
+      <xsd:element name="para"  type="docParaType"  minOccurs="0" maxOccurs="unbounded" />
+      <xsd:element name="sect1" type="docSect1Type" minOccurs="0" maxOccurs="unbounded" />
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <xsd:complexType name="docInternalS1Type" mixed="true">
+    <xsd:sequence>
+      <xsd:element name="para"  type="docParaType"  minOccurs="0" maxOccurs="unbounded" />
+      <xsd:element name="sect2" type="docSect2Type" minOccurs="0" maxOccurs="unbounded" />
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <xsd:complexType name="docInternalS2Type" mixed="true">
+    <xsd:sequence>
+      <xsd:element name="para"  type="docParaType"  minOccurs="0" maxOccurs="unbounded" />
+      <xsd:element name="sect3" type="docSect3Type" minOccurs="0" maxOccurs="unbounded" />
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <xsd:complexType name="docInternalS3Type" mixed="true">
+    <xsd:sequence>
+      <xsd:element name="para"  type="docParaType"  minOccurs="0" maxOccurs="unbounded" />
+      <xsd:element name="sect3" type="docSect4Type" minOccurs="0" maxOccurs="unbounded" />
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <xsd:complexType name="docInternalS4Type" mixed="true">
+    <xsd:sequence>
+      <xsd:element name="para"  type="docParaType"  minOccurs="0" maxOccurs="unbounded" />
+    </xsd:sequence>
+  </xsd:complexType>
+ 
+  <xsd:group name="docTitleCmdGroup">
+    <xsd:choice>
+      <xsd:element name="ulink" type="docURLLink" />
+      <xsd:element name="bold" type="docMarkupType" />
+      <xsd:element name="emphasis" type="docMarkupType" />
+      <xsd:element name="computeroutput" type="docMarkupType" />
+      <xsd:element name="subscript" type="docMarkupType" />
+      <xsd:element name="superscript" type="docMarkupType" />
+      <xsd:element name="center" type="docMarkupType" />
+      <xsd:element name="small" type="docMarkupType" />
+      <xsd:element name="htmlonly" type="xsd:string" />
+      <xsd:element name="manonly" type="xsd:string" />
+      <xsd:element name="xmlonly" type="xsd:string" />
+      <xsd:element name="rtfonly" type="xsd:string" />
+      <xsd:element name="latexonly" type="xsd:string" />
+      <xsd:element name="dot" type="xsd:string" />
+      <xsd:element name="msc" type="xsd:string" />
+      <xsd:element name="anchor" type="docAnchorType" />
+      <xsd:element name="formula" type="docFormulaType" />
+      <xsd:element name="ref" type="docRefTextType" />
+      <xsd:element name="copy" type="docEmptyType" />
+      <xsd:element name="trademark" type="docEmptyType" />
+      <xsd:element name="registered" type="docEmptyType" />
+      <xsd:element name="lsquo" type="docEmptyType" />
+      <xsd:element name="rsquo" type="docEmptyType" />
+      <xsd:element name="ldquo" type="docEmptyType" />
+      <xsd:element name="rdquo" type="docEmptyType" />
+      <xsd:element name="ndash" type="docEmptyType" />
+      <xsd:element name="mdash" type="docEmptyType" />
+      <xsd:element name="umlaut" type="docCharType" />
+      <xsd:element name="acute" type="docCharType" />
+      <xsd:element name="grave" type="docCharType" />
+      <xsd:element name="circ" type="docCharType" />
+      <xsd:element name="slash" type="docCharType" />
+      <xsd:element name="tilde" type="docCharType" />
+      <xsd:element name="cedil" type="docCharType" />
+      <xsd:element name="ring" type="docCharType" />
+      <xsd:element name="szlig" type="docEmptyType" />
+      <xsd:element name="nonbreakablespace" type="docEmptyType" />
+      <xsd:element name="aelig" type="docEmptyType" />
+      <xsd:element name="AElig" type="docEmptyType" />
+      <xsd:element name="Gamma" type="docEmptyType" />
+      <xsd:element name="Delta" type="docEmptyType" />
+      <xsd:element name="Theta" type="docEmptyType" />
+      <xsd:element name="Lambda" type="docEmptyType" />
+      <xsd:element name="Xi" type="docEmptyType" />
+      <xsd:element name="Pi" type="docEmptyType" />
+      <xsd:element name="Sigma" type="docEmptyType" />
+      <xsd:element name="Upsilon" type="docEmptyType" />
+      <xsd:element name="Phi" type="docEmptyType" />
+      <xsd:element name="Psi" type="docEmptyType" />
+      <xsd:element name="Omega" type="docEmptyType" />
+      <xsd:element name="alpha" type="docEmptyType" />
+      <xsd:element name="beta" type="docEmptyType" />
+      <xsd:element name="gamma" type="docEmptyType" />
+      <xsd:element name="delta" type="docEmptyType" />
+      <xsd:element name="epsilon" type="docEmptyType" />
+      <xsd:element name="zeta" type="docEmptyType" />
+      <xsd:element name="eta" type="docEmptyType" />
+      <xsd:element name="theta" type="docEmptyType" />
+      <xsd:element name="iota" type="docEmptyType" />
+      <xsd:element name="kappa" type="docEmptyType" />
+      <xsd:element name="lambda" type="docEmptyType" />
+      <xsd:element name="mu" type="docEmptyType" />
+      <xsd:element name="nu" type="docEmptyType" />
+      <xsd:element name="xi" type="docEmptyType" />
+      <xsd:element name="pi" type="docEmptyType" />
+      <xsd:element name="rho" type="docEmptyType" />
+      <xsd:element name="sigma" type="docEmptyType" />
+      <xsd:element name="tau" type="docEmptyType" />
+      <xsd:element name="upsilon" type="docEmptyType" />
+      <xsd:element name="phi" type="docEmptyType" />
+      <xsd:element name="chi" type="docEmptyType" />
+      <xsd:element name="psi" type="docEmptyType" />
+      <xsd:element name="omega" type="docEmptyType" />
+      <xsd:element name="sigmaf" type="docEmptyType" />
+      <xsd:element name="sect" type="docEmptyType" />
+      <xsd:element name="deg" type="docEmptyType" />
+      <xsd:element name="prime" type="docEmptyType" />
+      <xsd:element name="Prime" type="docEmptyType" />
+      <xsd:element name="infin" type="docEmptyType" />
+      <xsd:element name="empty" type="docEmptyType" />
+      <xsd:element name="plusmn" type="docEmptyType" />
+      <xsd:element name="times" type="docEmptyType" />
+      <xsd:element name="minus" type="docEmptyType" />
+      <xsd:element name="sdot" type="docEmptyType" />
+      <xsd:element name="part" type="docEmptyType" />
+      <xsd:element name="nabla" type="docEmptyType" />
+      <xsd:element name="radic" type="docEmptyType" />
+      <xsd:element name="perp" type="docEmptyType" />
+      <xsd:element name="sum" type="docEmptyType" />
+      <xsd:element name="int" type="docEmptyType" />
+      <xsd:element name="prod" type="docEmptyType" />
+      <xsd:element name="sim" type="docEmptyType" />
+      <xsd:element name="asymp" type="docEmptyType" />
+      <xsd:element name="ne" type="docEmptyType" />
+      <xsd:element name="equiv" type="docEmptyType" />
+      <xsd:element name="prop" type="docEmptyType" />
+      <xsd:element name="le" type="docEmptyType" />
+      <xsd:element name="ge" type="docEmptyType" />
+      <xsd:element name="larr" type="docEmptyType" />
+      <xsd:element name="rarr" type="docEmptyType" />
+      <xsd:element name="isin" type="docEmptyType" />
+      <xsd:element name="notin" type="docEmptyType" />
+      <xsd:element name="lceil" type="docEmptyType" />
+      <xsd:element name="rceil" type="docEmptyType" />
+      <xsd:element name="lfloor" type="docEmptyType" />
+      <xsd:element name="rfloor" type="docEmptyType" />
+    </xsd:choice>
+  </xsd:group>
+
+  <xsd:complexType name="docTitleType" mixed="true">
+    <xsd:group ref="docTitleCmdGroup" minOccurs="0" maxOccurs="unbounded" />
+  </xsd:complexType>
+
+  <xsd:group name="docCmdGroup">
+    <xsd:choice>
+      <xsd:group ref="docTitleCmdGroup"/>
+      <xsd:element name="linebreak" type="docEmptyType" />
+      <xsd:element name="hruler" type="docEmptyType" />
+      <xsd:element name="preformatted" type="docMarkupType" />
+      <xsd:element name="programlisting" type="listingType" />
+      <xsd:element name="verbatim" type="xsd:string" />
+      <xsd:element name="indexentry" type="docIndexEntryType" />
+      <xsd:element name="orderedlist" type="docListType" />
+      <xsd:element name="itemizedlist" type="docListType" />
+      <xsd:element name="simplesect" type="docSimpleSectType" />
+      <xsd:element name="title" type="docTitleType" />
+      <xsd:element name="variablelist" type="docVariableListType" />
+      <xsd:element name="table" type="docTableType" />
+      <xsd:element name="heading" type="docHeadingType" />
+      <xsd:element name="image" type="docImageType" />
+      <xsd:element name="dotfile" type="docFileType" />
+      <xsd:element name="mscfile" type="docFileType" />
+      <xsd:element name="diafile" type="docFileType" />
+      <xsd:element name="toclist" type="docTocListType" />
+      <xsd:element name="language" type="docLanguageType" />
+      <xsd:element name="parameterlist" type="docParamListType" />
+      <xsd:element name="xrefsect" type="docXRefSectType" />
+      <xsd:element name="copydoc" type="docCopyType" />
+      <xsd:element name="blockquote" type="docBlockQuoteType" />
+      <xsd:element name="parblock" type="docParBlockType" />
+    </xsd:choice>
+  </xsd:group>
+
+  <xsd:complexType name="docParaType" mixed="true">
+    <xsd:group ref="docCmdGroup" minOccurs="0" maxOccurs="unbounded" />
+  </xsd:complexType>
+
+  <xsd:complexType name="docMarkupType" mixed="true">
+    <xsd:group ref="docCmdGroup" minOccurs="0" maxOccurs="unbounded" />
+  </xsd:complexType>
+
+  <xsd:complexType name="docURLLink" mixed="true">
+    <xsd:group ref="docTitleCmdGroup" minOccurs="0" maxOccurs="unbounded" />
+    <xsd:attribute name="url" type="xsd:string" />
+  </xsd:complexType>
+
+  <xsd:complexType name="docAnchorType" mixed="true">
+    <xsd:attribute name="id" type="xsd:string" />
+  </xsd:complexType>
+
+  <xsd:complexType name="docFormulaType" mixed="true">
+    <xsd:attribute name="id" type="xsd:string" />
+  </xsd:complexType>
+
+  <xsd:complexType name="docIndexEntryType">
+    <xsd:sequence>
+      <xsd:element name="primaryie" type="xsd:string" />
+      <xsd:element name="secondaryie" type="xsd:string" />
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <xsd:complexType name="docListType">
+    <xsd:sequence>
+      <xsd:element name="listitem" type="docListItemType" maxOccurs="unbounded" />
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <xsd:complexType name="docListItemType">
+    <xsd:sequence>
+      <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <xsd:complexType name="docSimpleSectType">
+    <xsd:sequence>
+      <xsd:element name="title" type="docTitleType" minOccurs="0" />
+      <xsd:sequence minOccurs="0" maxOccurs="unbounded">
+        <xsd:element name="para" type="docParaType" minOccurs="1" maxOccurs="unbounded" />
+        <xsd:element name="simplesectsep" type="docEmptyType" minOccurs="0"/>
+      </xsd:sequence>
+    </xsd:sequence>
+    <xsd:attribute name="kind" type="DoxSimpleSectKind" />
+  </xsd:complexType>
+
+  <xsd:complexType name="docVarListEntryType">
+    <xsd:sequence>
+      <xsd:element name="term" type="docTitleType" />
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <xsd:group name="docVariableListGroup">
+    <xsd:sequence>
+      <xsd:element name="varlistentry" type="docVarListEntryType" />
+      <xsd:element name="listitem" type="docListItemType" />
+    </xsd:sequence>
+  </xsd:group>
+
+  <xsd:complexType name="docVariableListType">
+    <xsd:sequence>
+      <xsd:group ref="docVariableListGroup" maxOccurs="unbounded" />
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <xsd:complexType name="docRefTextType" mixed="true">
+    <xsd:group ref="docTitleCmdGroup" minOccurs="0" maxOccurs="unbounded" />
+    <xsd:attribute name="refid" type="xsd:string" />
+    <xsd:attribute name="kindref" type="DoxRefKind" />
+    <xsd:attribute name="external" type="xsd:string" />
+  </xsd:complexType>
+
+  <xsd:complexType name="docTableType">
+    <xsd:sequence>
+      <xsd:element name="row" type="docRowType" minOccurs="0" maxOccurs="unbounded" />
+      <xsd:element name="caption" type="docCaptionType" minOccurs="0" />
+    </xsd:sequence>
+    <xsd:attribute name="rows" type="xsd:integer" />
+    <xsd:attribute name="cols" type="xsd:integer" />
+  </xsd:complexType>
+
+  <xsd:complexType name="docRowType">
+    <xsd:sequence>
+      <xsd:element name="entry" type="docEntryType" minOccurs="0" maxOccurs="unbounded" />
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <xsd:complexType name="docEntryType">
+    <xsd:sequence>
+      <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
+    </xsd:sequence>
+    <xsd:attribute name="thead" type="DoxBool" />
+  </xsd:complexType>
+
+  <xsd:complexType name="docCaptionType" mixed="true">
+    <xsd:group ref="docTitleCmdGroup" minOccurs="0" maxOccurs="unbounded" />
+  </xsd:complexType>
+
+  <xsd:complexType name="docHeadingType" mixed="true">
+    <xsd:group ref="docTitleCmdGroup" minOccurs="0" maxOccurs="unbounded" />
+    <xsd:attribute name="level" type="xsd:integer" /> <!-- todo: range 1-6 -->
+  </xsd:complexType>
+
+  <xsd:complexType name="docImageType" mixed="true">
+    <xsd:group ref="docTitleCmdGroup" minOccurs="0" maxOccurs="unbounded" />
+    <xsd:attribute name="type" type="DoxImageKind" /> 
+    <xsd:attribute name="name" type="xsd:string" /> 
+    <xsd:attribute name="width" type="xsd:string" /> 
+    <xsd:attribute name="height" type="xsd:string" /> 
+  </xsd:complexType>
+
+  <xsd:complexType name="docFileType" mixed="true">
+    <xsd:group ref="docTitleCmdGroup" minOccurs="0" maxOccurs="unbounded" />
+    <xsd:attribute name="name" type="xsd:string" /> 
+  </xsd:complexType>
+
+  <xsd:complexType name="docTocItemType" mixed="true">
+    <xsd:group ref="docTitleCmdGroup" minOccurs="0" maxOccurs="unbounded" />
+    <xsd:attribute name="id" type="xsd:string" /> 
+  </xsd:complexType>
+
+  <xsd:complexType name="docTocListType">
+    <xsd:sequence>
+      <xsd:element name="tocitem" type="docTocItemType" minOccurs="0" maxOccurs="unbounded" />
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <xsd:complexType name="docLanguageType">
+    <xsd:sequence>
+      <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
+    </xsd:sequence>
+    <xsd:attribute name="langid" type="xsd:string" /> 
+  </xsd:complexType>
+
+  <xsd:complexType name="docParamListType">
+    <xsd:sequence>
+      <xsd:element name="parameteritem" type="docParamListItem" minOccurs="0" maxOccurs="unbounded" />
+    </xsd:sequence>
+    <xsd:attribute name="kind" type="DoxParamListKind" /> 
+  </xsd:complexType>
+
+  <xsd:complexType name="docParamListItem">
+    <xsd:sequence>
+      <xsd:element name="parameternamelist" type="docParamNameList" minOccurs="0" maxOccurs="unbounded" />
+      <xsd:element name="parameterdescription" type="descriptionType" />
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <xsd:complexType name="docParamNameList">
+    <xsd:sequence>
+      <xsd:element name="parametertype" type="docParamType" minOccurs="0" maxOccurs="unbounded" />
+      <xsd:element name="parametername" type="docParamName" minOccurs="0" maxOccurs="unbounded" />
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <xsd:complexType name="docParamType" mixed="true">
+    <xsd:sequence>
+      <xsd:element name="ref" type="refTextType" minOccurs="0" maxOccurs="1" />
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <xsd:complexType name="docParamName" mixed="true">
+    <xsd:sequence>
+      <xsd:element name="ref" type="refTextType" minOccurs="0" maxOccurs="1" />
+    </xsd:sequence>
+    <xsd:attribute name="direction" type="DoxParamDir" use="optional" />
+  </xsd:complexType>
+
+  <xsd:complexType name="docXRefSectType">
+    <xsd:sequence>
+      <xsd:element name="xreftitle" type="xsd:string" minOccurs="0" maxOccurs="unbounded" />
+      <xsd:element name="xrefdescription" type="descriptionType" />
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:string" /> 
+  </xsd:complexType>
+
+  <xsd:complexType name="docCopyType">
+    <xsd:sequence>
+      <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
+      <xsd:element name="sect1" type="docSect1Type" minOccurs="0" maxOccurs="unbounded" />
+      <xsd:element name="internal" type="docInternalType" minOccurs="0" />
+    </xsd:sequence>
+    <xsd:attribute name="link" type="xsd:string" /> 
+  </xsd:complexType>
+
+  <xsd:complexType name="docBlockQuoteType">
+    <xsd:sequence>
+      <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <xsd:complexType name="docParBlockType">
+    <xsd:sequence>
+      <xsd:element name="para" type="docParaType" minOccurs="0" maxOccurs="unbounded" />
+    </xsd:sequence>
+  </xsd:complexType>
+
+  <xsd:complexType name="docCharType">
+    <xsd:attribute name="char" type="DoxCharRange"/> 
+  </xsd:complexType>
+
+  <xsd:complexType name="docEmptyType"/>
+
+  <!-- Simple types -->
+
+  <xsd:simpleType name="DoxBool">
+    <xsd:restriction base="xsd:string">
+      <xsd:enumeration value="yes" />
+      <xsd:enumeration value="no" />
+    </xsd:restriction>
+  </xsd:simpleType>
+
+  <xsd:simpleType name="DoxGraphRelation">
+    <xsd:restriction base="xsd:string">
+      <xsd:enumeration value="include" />
+      <xsd:enumeration value="usage" />
+      <xsd:enumeration value="template-instance" />
+      <xsd:enumeration value="public-inheritance" />
+      <xsd:enumeration value="protected-inheritance" />
+      <xsd:enumeration value="private-inheritance" />
+    </xsd:restriction>
+  </xsd:simpleType>
+
+  <xsd:simpleType name="DoxRefKind">
+    <xsd:restriction base="xsd:string">
+      <xsd:enumeration value="compound" />
+      <xsd:enumeration value="member" />
+    </xsd:restriction>
+  </xsd:simpleType>
+
+  <xsd:simpleType name="DoxMemberKind">
+    <xsd:restriction base="xsd:string">
+      <xsd:enumeration value="define" />
+      <xsd:enumeration value="property" />
+      <xsd:enumeration value="event" />
+      <xsd:enumeration value="variable" />
+      <xsd:enumeration value="typedef" />
+      <xsd:enumeration value="enum" />
+      <xsd:enumeration value="function" />
+      <xsd:enumeration value="signal" />
+      <xsd:enumeration value="prototype" />
+      <xsd:enumeration value="friend" />
+      <xsd:enumeration value="dcop" />
+      <xsd:enumeration value="slot" />
+      <xsd:enumeration value="interface" />
+      <xsd:enumeration value="service" />
+    </xsd:restriction>
+  </xsd:simpleType>
+
+  <xsd:simpleType name="DoxProtectionKind">
+    <xsd:restriction base="xsd:string">
+      <xsd:enumeration value="public" />
+      <xsd:enumeration value="protected" />
+      <xsd:enumeration value="private" />
+      <xsd:enumeration value="package" />
+    </xsd:restriction>
+  </xsd:simpleType>
+
+  <xsd:simpleType name="DoxVirtualKind">
+    <xsd:restriction base="xsd:string">
+      <xsd:enumeration value="non-virtual" />
+      <xsd:enumeration value="virtual" />
+      <xsd:enumeration value="pure-virtual" />
+    </xsd:restriction>
+  </xsd:simpleType>
+
+  <xsd:simpleType name="DoxCompoundKind">
+    <xsd:restriction base="xsd:string">
+      <xsd:enumeration value="class" />
+      <xsd:enumeration value="struct" />
+      <xsd:enumeration value="union" />
+      <xsd:enumeration value="interface" />
+      <xsd:enumeration value="protocol" />
+      <xsd:enumeration value="category" />
+      <xsd:enumeration value="exception" />
+      <xsd:enumeration value="service" />
+      <xsd:enumeration value="singleton" />
+      <xsd:enumeration value="module" />
+      <xsd:enumeration value="type" />
+      <xsd:enumeration value="file" />
+      <xsd:enumeration value="namespace" />
+      <xsd:enumeration value="group" />
+      <xsd:enumeration value="page" />
+      <xsd:enumeration value="example" />
+      <xsd:enumeration value="dir" />
+    </xsd:restriction>
+  </xsd:simpleType>
+
+  <xsd:simpleType name="DoxSectionKind">
+    <xsd:restriction base="xsd:string">
+      <xsd:enumeration value="user-defined" />
+      <xsd:enumeration value="public-type" />
+      <xsd:enumeration value="public-func" />
+      <xsd:enumeration value="public-attrib" />
+      <xsd:enumeration value="public-slot" />
+      <xsd:enumeration value="signal" />
+      <xsd:enumeration value="dcop-func" />
+      <xsd:enumeration value="property" />
+      <xsd:enumeration value="event" />
+      <xsd:enumeration value="public-static-func" />
+      <xsd:enumeration value="public-static-attrib" />
+      <xsd:enumeration value="protected-type" />
+      <xsd:enumeration value="protected-func" />
+      <xsd:enumeration value="protected-attrib" />
+      <xsd:enumeration value="protected-slot" />
+      <xsd:enumeration value="protected-static-func" />
+      <xsd:enumeration value="protected-static-attrib" />
+      <xsd:enumeration value="package-type" />
+      <xsd:enumeration value="package-func" />
+      <xsd:enumeration value="package-attrib" />
+      <xsd:enumeration value="package-static-func" />
+      <xsd:enumeration value="package-static-attrib" />
+      <xsd:enumeration value="private-type" />
+      <xsd:enumeration value="private-func" />
+      <xsd:enumeration value="private-attrib" />
+      <xsd:enumeration value="private-slot" />
+      <xsd:enumeration value="private-static-func" />
+      <xsd:enumeration value="private-static-attrib" />
+      <xsd:enumeration value="friend" />
+      <xsd:enumeration value="related" />
+      <xsd:enumeration value="define" />
+      <xsd:enumeration value="prototype" />
+      <xsd:enumeration value="typedef" />
+      <xsd:enumeration value="enum" />
+      <xsd:enumeration value="func" />
+      <xsd:enumeration value="var" />
+    </xsd:restriction>
+  </xsd:simpleType>
+
+  <xsd:simpleType name="DoxHighlightClass">
+    <xsd:restriction base="xsd:string">
+      <xsd:enumeration value="comment" />
+      <xsd:enumeration value="normal" />
+      <xsd:enumeration value="preprocessor" />
+      <xsd:enumeration value="keyword" />
+      <xsd:enumeration value="keywordtype" />
+      <xsd:enumeration value="keywordflow" />
+      <xsd:enumeration value="stringliteral" />
+      <xsd:enumeration value="charliteral" />
+    </xsd:restriction>
+  </xsd:simpleType>
+
+  <xsd:simpleType name="DoxSimpleSectKind">
+    <xsd:restriction base="xsd:string">
+      <xsd:enumeration value="see" />
+      <xsd:enumeration value="return" />
+      <xsd:enumeration value="author" />
+      <xsd:enumeration value="authors" />
+      <xsd:enumeration value="version" />
+      <xsd:enumeration value="since" />
+      <xsd:enumeration value="date" />
+      <xsd:enumeration value="note" />
+      <xsd:enumeration value="warning" />
+      <xsd:enumeration value="pre" />
+      <xsd:enumeration value="post" />
+      <xsd:enumeration value="copyright" />
+      <xsd:enumeration value="invariant" />
+      <xsd:enumeration value="remark" />
+      <xsd:enumeration value="attention" />
+      <xsd:enumeration value="par" />
+      <xsd:enumeration value="rcs" />
+    </xsd:restriction>
+  </xsd:simpleType>
+
+  <xsd:simpleType name="DoxVersionNumber">
+    <xsd:restriction base="xsd:string">
+      <xsd:pattern value="\d+\.\d+.*" />
+    </xsd:restriction>
+  </xsd:simpleType>
+
+  <xsd:simpleType name="DoxImageKind">
+    <xsd:restriction base="xsd:string">
+      <xsd:enumeration value="html" />
+      <xsd:enumeration value="latex" />
+      <xsd:enumeration value="rtf" />
+    </xsd:restriction>
+  </xsd:simpleType>
+
+  <xsd:simpleType name="DoxParamListKind">
+    <xsd:restriction base="xsd:string">
+      <xsd:enumeration value="param" />
+      <xsd:enumeration value="retval" />
+      <xsd:enumeration value="exception" />
+      <xsd:enumeration value="templateparam" />
+    </xsd:restriction>
+  </xsd:simpleType>
+
+  <xsd:simpleType name="DoxCharRange">
+    <xsd:restriction base="xsd:string">
+      <xsd:pattern value="[aeiouncAEIOUNC]" />
+    </xsd:restriction>
+  </xsd:simpleType>
+
+  <xsd:simpleType name="DoxParamDir">
+    <xsd:restriction base="xsd:string">
+      <xsd:enumeration value="in"/>
+      <xsd:enumeration value="out"/>
+      <xsd:enumeration value="inout"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+
+  <xsd:simpleType name="DoxAccessor">
+    <xsd:restriction base="xsd:string">
+      <xsd:enumeration value="retain"/>
+      <xsd:enumeration value="copy"/>
+      <xsd:enumeration value="assign"/>
+      <xsd:enumeration value="weak"/>
+      <xsd:enumeration value="strong"/>
+      <xsd:enumeration value="unretained"/>
+    </xsd:restriction>
+  </xsd:simpleType>
+
+</xsd:schema>
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/schemas/doxygen/csharp/base.xsl	Wed May 14 01:22:21 2014 +0400
@@ -0,0 +1,2349 @@
+<?xml version="1.0" encoding="utf-8"?><xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+<xsl:template match="doxygen">
+<xsl:call-template name="DoxygenType"/>
+</xsl:template>
+<xsl:template name="DoxygenType">
+<xsl:apply-templates mode="DoxygenType"/>
+</xsl:template>
+<xsl:template match="compounddef" mode="DoxygenType">
+<xsl:call-template name="compounddefType"/>
+</xsl:template>
+<xsl:template name="compounddefType">
+<xsl:apply-templates mode="compounddefType"/>
+</xsl:template>
+<xsl:template match="compoundname" mode="compounddefType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="title" mode="compounddefType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="basecompoundref" mode="compounddefType">
+<xsl:call-template name="compoundRefType"/>
+</xsl:template>
+<xsl:template match="derivedcompoundref" mode="compounddefType">
+<xsl:call-template name="compoundRefType"/>
+</xsl:template>
+<xsl:template match="includes" mode="compounddefType">
+<xsl:call-template name="incType"/>
+</xsl:template>
+<xsl:template match="includedby" mode="compounddefType">
+<xsl:call-template name="incType"/>
+</xsl:template>
+<xsl:template match="incdepgraph" mode="compounddefType">
+<xsl:call-template name="graphType"/>
+</xsl:template>
+<xsl:template match="invincdepgraph" mode="compounddefType">
+<xsl:call-template name="graphType"/>
+</xsl:template>
+<xsl:template match="innerdir" mode="compounddefType">
+<xsl:call-template name="refType"/>
+</xsl:template>
+<xsl:template match="innerfile" mode="compounddefType">
+<xsl:call-template name="refType"/>
+</xsl:template>
+<xsl:template match="innerclass" mode="compounddefType">
+<xsl:call-template name="refType"/>
+</xsl:template>
+<xsl:template match="innernamespace" mode="compounddefType">
+<xsl:call-template name="refType"/>
+</xsl:template>
+<xsl:template match="innerpage" mode="compounddefType">
+<xsl:call-template name="refType"/>
+</xsl:template>
+<xsl:template match="innergroup" mode="compounddefType">
+<xsl:call-template name="refType"/>
+</xsl:template>
+<xsl:template match="templateparamlist" mode="compounddefType">
+<xsl:call-template name="templateparamlistType"/>
+</xsl:template>
+<xsl:template match="sectiondef" mode="compounddefType">
+<xsl:call-template name="sectiondefType"/>
+</xsl:template>
+<xsl:template match="briefdescription" mode="compounddefType">
+<xsl:call-template name="descriptionType"/>
+</xsl:template>
+<xsl:template match="detaileddescription" mode="compounddefType">
+<xsl:call-template name="descriptionType"/>
+</xsl:template>
+<xsl:template match="inheritancegraph" mode="compounddefType">
+<xsl:call-template name="graphType"/>
+</xsl:template>
+<xsl:template match="collaborationgraph" mode="compounddefType">
+<xsl:call-template name="graphType"/>
+</xsl:template>
+<xsl:template match="programlisting" mode="compounddefType">
+<xsl:call-template name="listingType"/>
+</xsl:template>
+<xsl:template match="location" mode="compounddefType">
+<xsl:call-template name="locationType"/>
+</xsl:template>
+<xsl:template match="listofallmembers" mode="compounddefType">
+<xsl:call-template name="listofallmembersType"/>
+</xsl:template>
+<xsl:template name="listofallmembersType">
+<xsl:apply-templates mode="listofallmembersType"/>
+</xsl:template>
+<xsl:template match="member" mode="listofallmembersType">
+<xsl:call-template name="memberRefType"/>
+</xsl:template>
+<xsl:template name="memberRefType">
+<xsl:apply-templates mode="memberRefType"/>
+</xsl:template>
+<xsl:template name="compoundRefType">
+<xsl:apply-templates mode="compoundRefType"/>
+</xsl:template>
+<xsl:template name="reimplementType">
+<xsl:apply-templates mode="reimplementType"/>
+</xsl:template>
+<xsl:template name="incType">
+<xsl:apply-templates mode="incType"/>
+</xsl:template>
+<xsl:template name="refType">
+<xsl:apply-templates mode="refType"/>
+</xsl:template>
+<xsl:template name="refTextType">
+<xsl:apply-templates mode="refTextType"/>
+</xsl:template>
+<xsl:template name="sectiondefType">
+<xsl:apply-templates mode="sectiondefType"/>
+</xsl:template>
+<xsl:template match="header" mode="sectiondefType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="description" mode="sectiondefType">
+<xsl:call-template name="descriptionType"/>
+</xsl:template>
+<xsl:template match="memberdef" mode="sectiondefType">
+<xsl:call-template name="memberdefType"/>
+</xsl:template>
+<xsl:template name="memberdefType">
+<xsl:apply-templates mode="memberdefType"/>
+</xsl:template>
+<xsl:template match="templateparamlist" mode="memberdefType">
+<xsl:call-template name="templateparamlistType"/>
+</xsl:template>
+<xsl:template match="type" mode="memberdefType">
+<xsl:call-template name="linkedTextType"/>
+</xsl:template>
+<xsl:template match="reimplements" mode="memberdefType">
+<xsl:call-template name="reimplementType"/>
+</xsl:template>
+<xsl:template match="reimplementedby" mode="memberdefType">
+<xsl:call-template name="reimplementType"/>
+</xsl:template>
+<xsl:template match="param" mode="memberdefType">
+<xsl:call-template name="paramType"/>
+</xsl:template>
+<xsl:template match="enumvalue" mode="memberdefType">
+<xsl:call-template name="enumvalueType"/>
+</xsl:template>
+<xsl:template match="initializer" mode="memberdefType">
+<xsl:call-template name="linkedTextType"/>
+</xsl:template>
+<xsl:template match="exceptions" mode="memberdefType">
+<xsl:call-template name="linkedTextType"/>
+</xsl:template>
+<xsl:template match="briefdescription" mode="memberdefType">
+<xsl:call-template name="descriptionType"/>
+</xsl:template>
+<xsl:template match="detaileddescription" mode="memberdefType">
+<xsl:call-template name="descriptionType"/>
+</xsl:template>
+<xsl:template match="inbodydescription" mode="memberdefType">
+<xsl:call-template name="descriptionType"/>
+</xsl:template>
+<xsl:template match="location" mode="memberdefType">
+<xsl:call-template name="locationType"/>
+</xsl:template>
+<xsl:template match="references" mode="memberdefType">
+<xsl:call-template name="referenceType"/>
+</xsl:template>
+<xsl:template match="referencedby" mode="memberdefType">
+<xsl:call-template name="referenceType"/>
+</xsl:template>
+<xsl:template match="*" mode="descriptionType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template name="descriptionType">
+<xsl:apply-templates mode="descriptionType"/>
+</xsl:template>
+<xsl:template match="title" mode="descriptionType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="para" mode="descriptionType">
+<xsl:call-template name="docParaType"/>
+</xsl:template>
+<xsl:template match="sect1" mode="descriptionType">
+<xsl:call-template name="docSect1Type"/>
+</xsl:template>
+<xsl:template match="internal" mode="descriptionType">
+<xsl:call-template name="docInternalType"/>
+</xsl:template>
+<xsl:template match="*" mode="enumvalueType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template name="enumvalueType">
+<xsl:apply-templates mode="enumvalueType"/>
+</xsl:template>
+<xsl:template match="initializer" mode="enumvalueType">
+<xsl:call-template name="linkedTextType"/>
+</xsl:template>
+<xsl:template match="briefdescription" mode="enumvalueType">
+<xsl:call-template name="descriptionType"/>
+</xsl:template>
+<xsl:template match="detaileddescription" mode="enumvalueType">
+<xsl:call-template name="descriptionType"/>
+</xsl:template>
+<xsl:template name="templateparamlistType">
+<xsl:apply-templates mode="templateparamlistType"/>
+</xsl:template>
+<xsl:template match="param" mode="templateparamlistType">
+<xsl:call-template name="paramType"/>
+</xsl:template>
+<xsl:template name="paramType">
+<xsl:apply-templates mode="paramType"/>
+</xsl:template>
+<xsl:template match="type" mode="paramType">
+<xsl:call-template name="linkedTextType"/>
+</xsl:template>
+<xsl:template match="defval" mode="paramType">
+<xsl:call-template name="linkedTextType"/>
+</xsl:template>
+<xsl:template match="briefdescription" mode="paramType">
+<xsl:call-template name="descriptionType"/>
+</xsl:template>
+<xsl:template match="*" mode="linkedTextType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template name="linkedTextType">
+<xsl:apply-templates mode="linkedTextType"/>
+</xsl:template>
+<xsl:template match="ref" mode="linkedTextType">
+<xsl:call-template name="refTextType"/>
+</xsl:template>
+<xsl:template name="graphType">
+<xsl:apply-templates mode="graphType"/>
+</xsl:template>
+<xsl:template match="node" mode="graphType">
+<xsl:call-template name="nodeType"/>
+</xsl:template>
+<xsl:template name="nodeType">
+<xsl:apply-templates mode="nodeType"/>
+</xsl:template>
+<xsl:template match="link" mode="nodeType">
+<xsl:call-template name="linkType"/>
+</xsl:template>
+<xsl:template match="childnode" mode="nodeType">
+<xsl:call-template name="childnodeType"/>
+</xsl:template>
+<xsl:template name="childnodeType">
+<xsl:apply-templates mode="childnodeType"/>
+</xsl:template>
+<xsl:template name="linkType">
+<xsl:apply-templates mode="linkType"/>
+</xsl:template>
+<xsl:template name="listingType">
+<xsl:apply-templates mode="listingType"/>
+</xsl:template>
+<xsl:template match="codeline" mode="listingType">
+<xsl:call-template name="codelineType"/>
+</xsl:template>
+<xsl:template name="codelineType">
+<xsl:apply-templates mode="codelineType"/>
+</xsl:template>
+<xsl:template match="highlight" mode="codelineType">
+<xsl:call-template name="highlightType"/>
+</xsl:template>
+<xsl:template match="*" mode="highlightType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template name="highlightType">
+<xsl:apply-templates mode="highlightType"/>
+</xsl:template>
+<xsl:template match="ref" mode="highlightType">
+<xsl:call-template name="refTextType"/>
+</xsl:template>
+<xsl:template match="*" mode="referenceType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template name="referenceType">
+<xsl:apply-templates mode="referenceType"/>
+</xsl:template>
+<xsl:template name="locationType">
+<xsl:apply-templates mode="locationType"/>
+</xsl:template>
+<xsl:template match="*" mode="docSect1Type">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template name="docSect1Type">
+<xsl:apply-templates mode="docSect1Type"/>
+</xsl:template>
+<xsl:template match="title" mode="docSect1Type">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="para" mode="docSect1Type">
+<xsl:call-template name="docParaType"/>
+</xsl:template>
+<xsl:template match="sect2" mode="docSect1Type">
+<xsl:call-template name="docSect2Type"/>
+</xsl:template>
+<xsl:template match="internal" mode="docSect1Type">
+<xsl:call-template name="docInternalS1Type"/>
+</xsl:template>
+<xsl:template match="*" mode="docSect2Type">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template name="docSect2Type">
+<xsl:apply-templates mode="docSect2Type"/>
+</xsl:template>
+<xsl:template match="title" mode="docSect2Type">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="para" mode="docSect2Type">
+<xsl:call-template name="docParaType"/>
+</xsl:template>
+<xsl:template match="sect3" mode="docSect2Type">
+<xsl:call-template name="docSect3Type"/>
+</xsl:template>
+<xsl:template match="internal" mode="docSect2Type">
+<xsl:call-template name="docInternalS2Type"/>
+</xsl:template>
+<xsl:template match="*" mode="docSect3Type">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template name="docSect3Type">
+<xsl:apply-templates mode="docSect3Type"/>
+</xsl:template>
+<xsl:template match="title" mode="docSect3Type">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="para" mode="docSect3Type">
+<xsl:call-template name="docParaType"/>
+</xsl:template>
+<xsl:template match="sect4" mode="docSect3Type">
+<xsl:call-template name="docSect4Type"/>
+</xsl:template>
+<xsl:template match="internal" mode="docSect3Type">
+<xsl:call-template name="docInternalS3Type"/>
+</xsl:template>
+<xsl:template match="*" mode="docSect4Type">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template name="docSect4Type">
+<xsl:apply-templates mode="docSect4Type"/>
+</xsl:template>
+<xsl:template match="title" mode="docSect4Type">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="para" mode="docSect4Type">
+<xsl:call-template name="docParaType"/>
+</xsl:template>
+<xsl:template match="internal" mode="docSect4Type">
+<xsl:call-template name="docInternalS4Type"/>
+</xsl:template>
+<xsl:template match="*" mode="docInternalType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template name="docInternalType">
+<xsl:apply-templates mode="docInternalType"/>
+</xsl:template>
+<xsl:template match="para" mode="docInternalType">
+<xsl:call-template name="docParaType"/>
+</xsl:template>
+<xsl:template match="sect1" mode="docInternalType">
+<xsl:call-template name="docSect1Type"/>
+</xsl:template>
+<xsl:template match="*" mode="docInternalS1Type">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template name="docInternalS1Type">
+<xsl:apply-templates mode="docInternalS1Type"/>
+</xsl:template>
+<xsl:template match="para" mode="docInternalS1Type">
+<xsl:call-template name="docParaType"/>
+</xsl:template>
+<xsl:template match="sect2" mode="docInternalS1Type">
+<xsl:call-template name="docSect2Type"/>
+</xsl:template>
+<xsl:template match="*" mode="docInternalS2Type">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template name="docInternalS2Type">
+<xsl:apply-templates mode="docInternalS2Type"/>
+</xsl:template>
+<xsl:template match="para" mode="docInternalS2Type">
+<xsl:call-template name="docParaType"/>
+</xsl:template>
+<xsl:template match="sect3" mode="docInternalS2Type">
+<xsl:call-template name="docSect3Type"/>
+</xsl:template>
+<xsl:template match="*" mode="docInternalS3Type">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template name="docInternalS3Type">
+<xsl:apply-templates mode="docInternalS3Type"/>
+</xsl:template>
+<xsl:template match="para" mode="docInternalS3Type">
+<xsl:call-template name="docParaType"/>
+</xsl:template>
+<xsl:template match="sect3" mode="docInternalS3Type">
+<xsl:call-template name="docSect4Type"/>
+</xsl:template>
+<xsl:template match="*" mode="docInternalS4Type">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template name="docInternalS4Type">
+<xsl:apply-templates mode="docInternalS4Type"/>
+</xsl:template>
+<xsl:template match="para" mode="docInternalS4Type">
+<xsl:call-template name="docParaType"/>
+</xsl:template>
+<xsl:template match="*" mode="docTitleType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template name="docTitleType">
+<xsl:apply-templates mode="docTitleType"/>
+</xsl:template>
+<xsl:template match="ulink" mode="docTitleType">
+<xsl:call-template name="docURLLink"/>
+</xsl:template>
+<xsl:template match="bold" mode="docTitleType">
+<xsl:call-template name="docMarkupType"/>
+</xsl:template>
+<xsl:template match="emphasis" mode="docTitleType">
+<xsl:call-template name="docMarkupType"/>
+</xsl:template>
+<xsl:template match="computeroutput" mode="docTitleType">
+<xsl:call-template name="docMarkupType"/>
+</xsl:template>
+<xsl:template match="subscript" mode="docTitleType">
+<xsl:call-template name="docMarkupType"/>
+</xsl:template>
+<xsl:template match="superscript" mode="docTitleType">
+<xsl:call-template name="docMarkupType"/>
+</xsl:template>
+<xsl:template match="center" mode="docTitleType">
+<xsl:call-template name="docMarkupType"/>
+</xsl:template>
+<xsl:template match="small" mode="docTitleType">
+<xsl:call-template name="docMarkupType"/>
+</xsl:template>
+<xsl:template match="htmlonly" mode="docTitleType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="manonly" mode="docTitleType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="xmlonly" mode="docTitleType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="rtfonly" mode="docTitleType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="latexonly" mode="docTitleType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="dot" mode="docTitleType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="msc" mode="docTitleType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="anchor" mode="docTitleType">
+<xsl:call-template name="docAnchorType"/>
+</xsl:template>
+<xsl:template match="formula" mode="docTitleType">
+<xsl:call-template name="docFormulaType"/>
+</xsl:template>
+<xsl:template match="ref" mode="docTitleType">
+<xsl:call-template name="docRefTextType"/>
+</xsl:template>
+<xsl:template match="copy" mode="docTitleType">&amp;copy;</xsl:template>
+<xsl:template match="trademark" mode="docTitleType">&amp;trademark;</xsl:template>
+<xsl:template match="registered" mode="docTitleType">&amp;registered;</xsl:template>
+<xsl:template match="lsquo" mode="docTitleType">&amp;lsquo;</xsl:template>
+<xsl:template match="rsquo" mode="docTitleType">&amp;rsquo;</xsl:template>
+<xsl:template match="ldquo" mode="docTitleType">&amp;ldquo;</xsl:template>
+<xsl:template match="rdquo" mode="docTitleType">&amp;rdquo;</xsl:template>
+<xsl:template match="ndash" mode="docTitleType">&amp;ndash;</xsl:template>
+<xsl:template match="mdash" mode="docTitleType">&amp;mdash;</xsl:template>
+<xsl:template match="umlaut" mode="docTitleType">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="acute" mode="docTitleType">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="grave" mode="docTitleType">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="circ" mode="docTitleType">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="slash" mode="docTitleType">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="tilde" mode="docTitleType">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="cedil" mode="docTitleType">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="ring" mode="docTitleType">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="szlig" mode="docTitleType">&amp;szlig;</xsl:template>
+<xsl:template match="nonbreakablespace" mode="docTitleType">&amp;nbsp;</xsl:template>
+<xsl:template match="aelig" mode="docTitleType">&amp;aelig;</xsl:template>
+<xsl:template match="AElig" mode="docTitleType">&amp;AElig;</xsl:template>
+<xsl:template match="Gamma" mode="docTitleType">&amp;Gamma;</xsl:template>
+<xsl:template match="Delta" mode="docTitleType">&amp;Delta;</xsl:template>
+<xsl:template match="Theta" mode="docTitleType">&amp;Theta;</xsl:template>
+<xsl:template match="Lambda" mode="docTitleType">&amp;Lambda;</xsl:template>
+<xsl:template match="Xi" mode="docTitleType">&amp;Xi;</xsl:template>
+<xsl:template match="Pi" mode="docTitleType">&amp;Pi;</xsl:template>
+<xsl:template match="Sigma" mode="docTitleType">&amp;Sigma;</xsl:template>
+<xsl:template match="Upsilon" mode="docTitleType">&amp;Upsilon;</xsl:template>
+<xsl:template match="Phi" mode="docTitleType">&amp;Phi;</xsl:template>
+<xsl:template match="Psi" mode="docTitleType">&amp;Psi;</xsl:template>
+<xsl:template match="Omega" mode="docTitleType">&amp;Omega;</xsl:template>
+<xsl:template match="alpha" mode="docTitleType">&amp;alpha;</xsl:template>
+<xsl:template match="beta" mode="docTitleType">&amp;beta;</xsl:template>
+<xsl:template match="gamma" mode="docTitleType">&amp;gamma;</xsl:template>
+<xsl:template match="delta" mode="docTitleType">&amp;delta;</xsl:template>
+<xsl:template match="epsilon" mode="docTitleType">&amp;epsilon;</xsl:template>
+<xsl:template match="zeta" mode="docTitleType">&amp;zeta;</xsl:template>
+<xsl:template match="eta" mode="docTitleType">&amp;eta;</xsl:template>
+<xsl:template match="theta" mode="docTitleType">&amp;theta;</xsl:template>
+<xsl:template match="iota" mode="docTitleType">&amp;iota;</xsl:template>
+<xsl:template match="kappa" mode="docTitleType">&amp;kappa;</xsl:template>
+<xsl:template match="lambda" mode="docTitleType">&amp;lambda;</xsl:template>
+<xsl:template match="mu" mode="docTitleType">&amp;mu;</xsl:template>
+<xsl:template match="nu" mode="docTitleType">&amp;nu;</xsl:template>
+<xsl:template match="xi" mode="docTitleType">&amp;xi;</xsl:template>
+<xsl:template match="pi" mode="docTitleType">&amp;pi;</xsl:template>
+<xsl:template match="rho" mode="docTitleType">&amp;rho;</xsl:template>
+<xsl:template match="sigma" mode="docTitleType">&amp;sigma;</xsl:template>
+<xsl:template match="tau" mode="docTitleType">&amp;tau;</xsl:template>
+<xsl:template match="upsilon" mode="docTitleType">&amp;upsilon;</xsl:template>
+<xsl:template match="phi" mode="docTitleType">&amp;phi;</xsl:template>
+<xsl:template match="chi" mode="docTitleType">&amp;chi;</xsl:template>
+<xsl:template match="psi" mode="docTitleType">&amp;psi;</xsl:template>
+<xsl:template match="omega" mode="docTitleType">&amp;omega;</xsl:template>
+<xsl:template match="sigmaf" mode="docTitleType">&amp;sigmaf;</xsl:template>
+<xsl:template match="sect" mode="docTitleType">&amp;sect;</xsl:template>
+<xsl:template match="deg" mode="docTitleType">&amp;deg;</xsl:template>
+<xsl:template match="prime" mode="docTitleType">&amp;prime;</xsl:template>
+<xsl:template match="Prime" mode="docTitleType">&amp;Prime;</xsl:template>
+<xsl:template match="infin" mode="docTitleType">&amp;infin;</xsl:template>
+<xsl:template match="empty" mode="docTitleType">&amp;empty;</xsl:template>
+<xsl:template match="plusmn" mode="docTitleType">&amp;plusmn;</xsl:template>
+<xsl:template match="times" mode="docTitleType">&amp;times;</xsl:template>
+<xsl:template match="minus" mode="docTitleType">&amp;minus;</xsl:template>
+<xsl:template match="sdot" mode="docTitleType">&amp;sdot;</xsl:template>
+<xsl:template match="part" mode="docTitleType">&amp;part;</xsl:template>
+<xsl:template match="nabla" mode="docTitleType">&amp;nabla;</xsl:template>
+<xsl:template match="radic" mode="docTitleType">&amp;radic;</xsl:template>
+<xsl:template match="perp" mode="docTitleType">&amp;perp;</xsl:template>
+<xsl:template match="sum" mode="docTitleType">&amp;sum;</xsl:template>
+<xsl:template match="int" mode="docTitleType">&amp;int;</xsl:template>
+<xsl:template match="prod" mode="docTitleType">&amp;prod;</xsl:template>
+<xsl:template match="sim" mode="docTitleType">&amp;sim;</xsl:template>
+<xsl:template match="asymp" mode="docTitleType">&amp;asymp;</xsl:template>
+<xsl:template match="ne" mode="docTitleType">&amp;ne;</xsl:template>
+<xsl:template match="equiv" mode="docTitleType">&amp;equiv;</xsl:template>
+<xsl:template match="prop" mode="docTitleType">&amp;prop;</xsl:template>
+<xsl:template match="le" mode="docTitleType">&amp;le;</xsl:template>
+<xsl:template match="ge" mode="docTitleType">&amp;ge;</xsl:template>
+<xsl:template match="larr" mode="docTitleType">&amp;larr;</xsl:template>
+<xsl:template match="rarr" mode="docTitleType">&amp;rarr;</xsl:template>
+<xsl:template match="isin" mode="docTitleType">&amp;isin;</xsl:template>
+<xsl:template match="notin" mode="docTitleType">&amp;notin;</xsl:template>
+<xsl:template match="lceil" mode="docTitleType">&amp;lceil;</xsl:template>
+<xsl:template match="rceil" mode="docTitleType">&amp;rceil;</xsl:template>
+<xsl:template match="lfloor" mode="docTitleType">&amp;lfloor;</xsl:template>
+<xsl:template match="rfloor" mode="docTitleType">&amp;rfloor;</xsl:template>
+<xsl:template match="*" mode="docParaType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template name="docParaType">
+<xsl:apply-templates mode="docParaType"/>
+</xsl:template>
+<xsl:template match="ulink" mode="docParaType">
+<xsl:call-template name="docURLLink"/>
+</xsl:template>
+<xsl:template match="bold" mode="docParaType">
+<xsl:call-template name="docMarkupType"/>
+</xsl:template>
+<xsl:template match="emphasis" mode="docParaType">
+<xsl:call-template name="docMarkupType"/>
+</xsl:template>
+<xsl:template match="computeroutput" mode="docParaType">
+<xsl:call-template name="docMarkupType"/>
+</xsl:template>
+<xsl:template match="subscript" mode="docParaType">
+<xsl:call-template name="docMarkupType"/>
+</xsl:template>
+<xsl:template match="superscript" mode="docParaType">
+<xsl:call-template name="docMarkupType"/>
+</xsl:template>
+<xsl:template match="center" mode="docParaType">
+<xsl:call-template name="docMarkupType"/>
+</xsl:template>
+<xsl:template match="small" mode="docParaType">
+<xsl:call-template name="docMarkupType"/>
+</xsl:template>
+<xsl:template match="htmlonly" mode="docParaType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="manonly" mode="docParaType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="xmlonly" mode="docParaType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="rtfonly" mode="docParaType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="latexonly" mode="docParaType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="dot" mode="docParaType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="msc" mode="docParaType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="anchor" mode="docParaType">
+<xsl:call-template name="docAnchorType"/>
+</xsl:template>
+<xsl:template match="formula" mode="docParaType">
+<xsl:call-template name="docFormulaType"/>
+</xsl:template>
+<xsl:template match="ref" mode="docParaType">
+<xsl:call-template name="docRefTextType"/>
+</xsl:template>
+<xsl:template match="copy" mode="docParaType">&amp;copy;</xsl:template>
+<xsl:template match="trademark" mode="docParaType">&amp;trademark;</xsl:template>
+<xsl:template match="registered" mode="docParaType">&amp;registered;</xsl:template>
+<xsl:template match="lsquo" mode="docParaType">&amp;lsquo;</xsl:template>
+<xsl:template match="rsquo" mode="docParaType">&amp;rsquo;</xsl:template>
+<xsl:template match="ldquo" mode="docParaType">&amp;ldquo;</xsl:template>
+<xsl:template match="rdquo" mode="docParaType">&amp;rdquo;</xsl:template>
+<xsl:template match="ndash" mode="docParaType">&amp;ndash;</xsl:template>
+<xsl:template match="mdash" mode="docParaType">&amp;mdash;</xsl:template>
+<xsl:template match="umlaut" mode="docParaType">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="acute" mode="docParaType">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="grave" mode="docParaType">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="circ" mode="docParaType">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="slash" mode="docParaType">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="tilde" mode="docParaType">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="cedil" mode="docParaType">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="ring" mode="docParaType">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="szlig" mode="docParaType">&amp;szlig;</xsl:template>
+<xsl:template match="nonbreakablespace" mode="docParaType">&amp;nbsp;</xsl:template>
+<xsl:template match="aelig" mode="docParaType">&amp;aelig;</xsl:template>
+<xsl:template match="AElig" mode="docParaType">&amp;AElig;</xsl:template>
+<xsl:template match="Gamma" mode="docParaType">&amp;Gamma;</xsl:template>
+<xsl:template match="Delta" mode="docParaType">&amp;Delta;</xsl:template>
+<xsl:template match="Theta" mode="docParaType">&amp;Theta;</xsl:template>
+<xsl:template match="Lambda" mode="docParaType">&amp;Lambda;</xsl:template>
+<xsl:template match="Xi" mode="docParaType">&amp;Xi;</xsl:template>
+<xsl:template match="Pi" mode="docParaType">&amp;Pi;</xsl:template>
+<xsl:template match="Sigma" mode="docParaType">&amp;Sigma;</xsl:template>
+<xsl:template match="Upsilon" mode="docParaType">&amp;Upsilon;</xsl:template>
+<xsl:template match="Phi" mode="docParaType">&amp;Phi;</xsl:template>
+<xsl:template match="Psi" mode="docParaType">&amp;Psi;</xsl:template>
+<xsl:template match="Omega" mode="docParaType">&amp;Omega;</xsl:template>
+<xsl:template match="alpha" mode="docParaType">&amp;alpha;</xsl:template>
+<xsl:template match="beta" mode="docParaType">&amp;beta;</xsl:template>
+<xsl:template match="gamma" mode="docParaType">&amp;gamma;</xsl:template>
+<xsl:template match="delta" mode="docParaType">&amp;delta;</xsl:template>
+<xsl:template match="epsilon" mode="docParaType">&amp;epsilon;</xsl:template>
+<xsl:template match="zeta" mode="docParaType">&amp;zeta;</xsl:template>
+<xsl:template match="eta" mode="docParaType">&amp;eta;</xsl:template>
+<xsl:template match="theta" mode="docParaType">&amp;theta;</xsl:template>
+<xsl:template match="iota" mode="docParaType">&amp;iota;</xsl:template>
+<xsl:template match="kappa" mode="docParaType">&amp;kappa;</xsl:template>
+<xsl:template match="lambda" mode="docParaType">&amp;lambda;</xsl:template>
+<xsl:template match="mu" mode="docParaType">&amp;mu;</xsl:template>
+<xsl:template match="nu" mode="docParaType">&amp;nu;</xsl:template>
+<xsl:template match="xi" mode="docParaType">&amp;xi;</xsl:template>
+<xsl:template match="pi" mode="docParaType">&amp;pi;</xsl:template>
+<xsl:template match="rho" mode="docParaType">&amp;rho;</xsl:template>
+<xsl:template match="sigma" mode="docParaType">&amp;sigma;</xsl:template>
+<xsl:template match="tau" mode="docParaType">&amp;tau;</xsl:template>
+<xsl:template match="upsilon" mode="docParaType">&amp;upsilon;</xsl:template>
+<xsl:template match="phi" mode="docParaType">&amp;phi;</xsl:template>
+<xsl:template match="chi" mode="docParaType">&amp;chi;</xsl:template>
+<xsl:template match="psi" mode="docParaType">&amp;psi;</xsl:template>
+<xsl:template match="omega" mode="docParaType">&amp;omega;</xsl:template>
+<xsl:template match="sigmaf" mode="docParaType">&amp;sigmaf;</xsl:template>
+<xsl:template match="sect" mode="docParaType">&amp;sect;</xsl:template>
+<xsl:template match="deg" mode="docParaType">&amp;deg;</xsl:template>
+<xsl:template match="prime" mode="docParaType">&amp;prime;</xsl:template>
+<xsl:template match="Prime" mode="docParaType">&amp;Prime;</xsl:template>
+<xsl:template match="infin" mode="docParaType">&amp;infin;</xsl:template>
+<xsl:template match="empty" mode="docParaType">&amp;empty;</xsl:template>
+<xsl:template match="plusmn" mode="docParaType">&amp;plusmn;</xsl:template>
+<xsl:template match="times" mode="docParaType">&amp;times;</xsl:template>
+<xsl:template match="minus" mode="docParaType">&amp;minus;</xsl:template>
+<xsl:template match="sdot" mode="docParaType">&amp;sdot;</xsl:template>
+<xsl:template match="part" mode="docParaType">&amp;part;</xsl:template>
+<xsl:template match="nabla" mode="docParaType">&amp;nabla;</xsl:template>
+<xsl:template match="radic" mode="docParaType">&amp;radic;</xsl:template>
+<xsl:template match="perp" mode="docParaType">&amp;perp;</xsl:template>
+<xsl:template match="sum" mode="docParaType">&amp;sum;</xsl:template>
+<xsl:template match="int" mode="docParaType">&amp;int;</xsl:template>
+<xsl:template match="prod" mode="docParaType">&amp;prod;</xsl:template>
+<xsl:template match="sim" mode="docParaType">&amp;sim;</xsl:template>
+<xsl:template match="asymp" mode="docParaType">&amp;asymp;</xsl:template>
+<xsl:template match="ne" mode="docParaType">&amp;ne;</xsl:template>
+<xsl:template match="equiv" mode="docParaType">&amp;equiv;</xsl:template>
+<xsl:template match="prop" mode="docParaType">&amp;prop;</xsl:template>
+<xsl:template match="le" mode="docParaType">&amp;le;</xsl:template>
+<xsl:template match="ge" mode="docParaType">&amp;ge;</xsl:template>
+<xsl:template match="larr" mode="docParaType">&amp;larr;</xsl:template>
+<xsl:template match="rarr" mode="docParaType">&amp;rarr;</xsl:template>
+<xsl:template match="isin" mode="docParaType">&amp;isin;</xsl:template>
+<xsl:template match="notin" mode="docParaType">&amp;notin;</xsl:template>
+<xsl:template match="lceil" mode="docParaType">&amp;lceil;</xsl:template>
+<xsl:template match="rceil" mode="docParaType">&amp;rceil;</xsl:template>
+<xsl:template match="lfloor" mode="docParaType">&amp;lfloor;</xsl:template>
+<xsl:template match="rfloor" mode="docParaType">&amp;rfloor;</xsl:template>
+<xsl:template match="linebreak" mode="docParaType">&amp;linebreak;</xsl:template>
+<xsl:template match="hruler" mode="docParaType">&amp;hruler;</xsl:template>
+<xsl:template match="preformatted" mode="docParaType">
+<xsl:call-template name="docMarkupType"/>
+</xsl:template>
+<xsl:template match="programlisting" mode="docParaType">
+<xsl:call-template name="listingType"/>
+</xsl:template>
+<xsl:template match="verbatim" mode="docParaType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="indexentry" mode="docParaType">
+<xsl:call-template name="docIndexEntryType"/>
+</xsl:template>
+<xsl:template match="orderedlist" mode="docParaType">
+<xsl:call-template name="docListType"/>
+</xsl:template>
+<xsl:template match="itemizedlist" mode="docParaType">
+<xsl:call-template name="docListType"/>
+</xsl:template>
+<xsl:template match="simplesect" mode="docParaType">
+<xsl:call-template name="docSimpleSectType"/>
+</xsl:template>
+<xsl:template match="title" mode="docParaType">
+<xsl:call-template name="docTitleType"/>
+</xsl:template>
+<xsl:template match="variablelist" mode="docParaType">
+<xsl:call-template name="docVariableListType"/>
+</xsl:template>
+<xsl:template match="table" mode="docParaType">
+<xsl:call-template name="docTableType"/>
+</xsl:template>
+<xsl:template match="heading" mode="docParaType">
+<xsl:call-template name="docHeadingType"/>
+</xsl:template>
+<xsl:template match="image" mode="docParaType">
+<xsl:call-template name="docImageType"/>
+</xsl:template>
+<xsl:template match="dotfile" mode="docParaType">
+<xsl:call-template name="docFileType"/>
+</xsl:template>
+<xsl:template match="mscfile" mode="docParaType">
+<xsl:call-template name="docFileType"/>
+</xsl:template>
+<xsl:template match="diafile" mode="docParaType">
+<xsl:call-template name="docFileType"/>
+</xsl:template>
+<xsl:template match="toclist" mode="docParaType">
+<xsl:call-template name="docTocListType"/>
+</xsl:template>
+<xsl:template match="language" mode="docParaType">
+<xsl:call-template name="docLanguageType"/>
+</xsl:template>
+<xsl:template match="parameterlist" mode="docParaType">
+<xsl:call-template name="docParamListType"/>
+</xsl:template>
+<xsl:template match="xrefsect" mode="docParaType">
+<xsl:call-template name="docXRefSectType"/>
+</xsl:template>
+<xsl:template match="copydoc" mode="docParaType">
+<xsl:call-template name="docCopyType"/>
+</xsl:template>
+<xsl:template match="blockquote" mode="docParaType">
+<xsl:call-template name="docBlockQuoteType"/>
+</xsl:template>
+<xsl:template match="parblock" mode="docParaType">
+<xsl:call-template name="docParBlockType"/>
+</xsl:template>
+<xsl:template match="*" mode="docMarkupType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template name="docMarkupType">
+<xsl:apply-templates mode="docMarkupType"/>
+</xsl:template>
+<xsl:template match="ulink" mode="docMarkupType">
+<xsl:call-template name="docURLLink"/>
+</xsl:template>
+<xsl:template match="bold" mode="docMarkupType">
+<xsl:call-template name="docMarkupType"/>
+</xsl:template>
+<xsl:template match="emphasis" mode="docMarkupType">
+<xsl:call-template name="docMarkupType"/>
+</xsl:template>
+<xsl:template match="computeroutput" mode="docMarkupType">
+<xsl:call-template name="docMarkupType"/>
+</xsl:template>
+<xsl:template match="subscript" mode="docMarkupType">
+<xsl:call-template name="docMarkupType"/>
+</xsl:template>
+<xsl:template match="superscript" mode="docMarkupType">
+<xsl:call-template name="docMarkupType"/>
+</xsl:template>
+<xsl:template match="center" mode="docMarkupType">
+<xsl:call-template name="docMarkupType"/>
+</xsl:template>
+<xsl:template match="small" mode="docMarkupType">
+<xsl:call-template name="docMarkupType"/>
+</xsl:template>
+<xsl:template match="htmlonly" mode="docMarkupType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="manonly" mode="docMarkupType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="xmlonly" mode="docMarkupType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="rtfonly" mode="docMarkupType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="latexonly" mode="docMarkupType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="dot" mode="docMarkupType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="msc" mode="docMarkupType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="anchor" mode="docMarkupType">
+<xsl:call-template name="docAnchorType"/>
+</xsl:template>
+<xsl:template match="formula" mode="docMarkupType">
+<xsl:call-template name="docFormulaType"/>
+</xsl:template>
+<xsl:template match="ref" mode="docMarkupType">
+<xsl:call-template name="docRefTextType"/>
+</xsl:template>
+<xsl:template match="copy" mode="docMarkupType">&amp;copy;</xsl:template>
+<xsl:template match="trademark" mode="docMarkupType">&amp;trademark;</xsl:template>
+<xsl:template match="registered" mode="docMarkupType">&amp;registered;</xsl:template>
+<xsl:template match="lsquo" mode="docMarkupType">&amp;lsquo;</xsl:template>
+<xsl:template match="rsquo" mode="docMarkupType">&amp;rsquo;</xsl:template>
+<xsl:template match="ldquo" mode="docMarkupType">&amp;ldquo;</xsl:template>
+<xsl:template match="rdquo" mode="docMarkupType">&amp;rdquo;</xsl:template>
+<xsl:template match="ndash" mode="docMarkupType">&amp;ndash;</xsl:template>
+<xsl:template match="mdash" mode="docMarkupType">&amp;mdash;</xsl:template>
+<xsl:template match="umlaut" mode="docMarkupType">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="acute" mode="docMarkupType">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="grave" mode="docMarkupType">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="circ" mode="docMarkupType">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="slash" mode="docMarkupType">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="tilde" mode="docMarkupType">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="cedil" mode="docMarkupType">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="ring" mode="docMarkupType">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="szlig" mode="docMarkupType">&amp;szlig;</xsl:template>
+<xsl:template match="nonbreakablespace" mode="docMarkupType">&amp;nbsp;</xsl:template>
+<xsl:template match="aelig" mode="docMarkupType">&amp;aelig;</xsl:template>
+<xsl:template match="AElig" mode="docMarkupType">&amp;AElig;</xsl:template>
+<xsl:template match="Gamma" mode="docMarkupType">&amp;Gamma;</xsl:template>
+<xsl:template match="Delta" mode="docMarkupType">&amp;Delta;</xsl:template>
+<xsl:template match="Theta" mode="docMarkupType">&amp;Theta;</xsl:template>
+<xsl:template match="Lambda" mode="docMarkupType">&amp;Lambda;</xsl:template>
+<xsl:template match="Xi" mode="docMarkupType">&amp;Xi;</xsl:template>
+<xsl:template match="Pi" mode="docMarkupType">&amp;Pi;</xsl:template>
+<xsl:template match="Sigma" mode="docMarkupType">&amp;Sigma;</xsl:template>
+<xsl:template match="Upsilon" mode="docMarkupType">&amp;Upsilon;</xsl:template>
+<xsl:template match="Phi" mode="docMarkupType">&amp;Phi;</xsl:template>
+<xsl:template match="Psi" mode="docMarkupType">&amp;Psi;</xsl:template>
+<xsl:template match="Omega" mode="docMarkupType">&amp;Omega;</xsl:template>
+<xsl:template match="alpha" mode="docMarkupType">&amp;alpha;</xsl:template>
+<xsl:template match="beta" mode="docMarkupType">&amp;beta;</xsl:template>
+<xsl:template match="gamma" mode="docMarkupType">&amp;gamma;</xsl:template>
+<xsl:template match="delta" mode="docMarkupType">&amp;delta;</xsl:template>
+<xsl:template match="epsilon" mode="docMarkupType">&amp;epsilon;</xsl:template>
+<xsl:template match="zeta" mode="docMarkupType">&amp;zeta;</xsl:template>
+<xsl:template match="eta" mode="docMarkupType">&amp;eta;</xsl:template>
+<xsl:template match="theta" mode="docMarkupType">&amp;theta;</xsl:template>
+<xsl:template match="iota" mode="docMarkupType">&amp;iota;</xsl:template>
+<xsl:template match="kappa" mode="docMarkupType">&amp;kappa;</xsl:template>
+<xsl:template match="lambda" mode="docMarkupType">&amp;lambda;</xsl:template>
+<xsl:template match="mu" mode="docMarkupType">&amp;mu;</xsl:template>
+<xsl:template match="nu" mode="docMarkupType">&amp;nu;</xsl:template>
+<xsl:template match="xi" mode="docMarkupType">&amp;xi;</xsl:template>
+<xsl:template match="pi" mode="docMarkupType">&amp;pi;</xsl:template>
+<xsl:template match="rho" mode="docMarkupType">&amp;rho;</xsl:template>
+<xsl:template match="sigma" mode="docMarkupType">&amp;sigma;</xsl:template>
+<xsl:template match="tau" mode="docMarkupType">&amp;tau;</xsl:template>
+<xsl:template match="upsilon" mode="docMarkupType">&amp;upsilon;</xsl:template>
+<xsl:template match="phi" mode="docMarkupType">&amp;phi;</xsl:template>
+<xsl:template match="chi" mode="docMarkupType">&amp;chi;</xsl:template>
+<xsl:template match="psi" mode="docMarkupType">&amp;psi;</xsl:template>
+<xsl:template match="omega" mode="docMarkupType">&amp;omega;</xsl:template>
+<xsl:template match="sigmaf" mode="docMarkupType">&amp;sigmaf;</xsl:template>
+<xsl:template match="sect" mode="docMarkupType">&amp;sect;</xsl:template>
+<xsl:template match="deg" mode="docMarkupType">&amp;deg;</xsl:template>
+<xsl:template match="prime" mode="docMarkupType">&amp;prime;</xsl:template>
+<xsl:template match="Prime" mode="docMarkupType">&amp;Prime;</xsl:template>
+<xsl:template match="infin" mode="docMarkupType">&amp;infin;</xsl:template>
+<xsl:template match="empty" mode="docMarkupType">&amp;empty;</xsl:template>
+<xsl:template match="plusmn" mode="docMarkupType">&amp;plusmn;</xsl:template>
+<xsl:template match="times" mode="docMarkupType">&amp;times;</xsl:template>
+<xsl:template match="minus" mode="docMarkupType">&amp;minus;</xsl:template>
+<xsl:template match="sdot" mode="docMarkupType">&amp;sdot;</xsl:template>
+<xsl:template match="part" mode="docMarkupType">&amp;part;</xsl:template>
+<xsl:template match="nabla" mode="docMarkupType">&amp;nabla;</xsl:template>
+<xsl:template match="radic" mode="docMarkupType">&amp;radic;</xsl:template>
+<xsl:template match="perp" mode="docMarkupType">&amp;perp;</xsl:template>
+<xsl:template match="sum" mode="docMarkupType">&amp;sum;</xsl:template>
+<xsl:template match="int" mode="docMarkupType">&amp;int;</xsl:template>
+<xsl:template match="prod" mode="docMarkupType">&amp;prod;</xsl:template>
+<xsl:template match="sim" mode="docMarkupType">&amp;sim;</xsl:template>
+<xsl:template match="asymp" mode="docMarkupType">&amp;asymp;</xsl:template>
+<xsl:template match="ne" mode="docMarkupType">&amp;ne;</xsl:template>
+<xsl:template match="equiv" mode="docMarkupType">&amp;equiv;</xsl:template>
+<xsl:template match="prop" mode="docMarkupType">&amp;prop;</xsl:template>
+<xsl:template match="le" mode="docMarkupType">&amp;le;</xsl:template>
+<xsl:template match="ge" mode="docMarkupType">&amp;ge;</xsl:template>
+<xsl:template match="larr" mode="docMarkupType">&amp;larr;</xsl:template>
+<xsl:template match="rarr" mode="docMarkupType">&amp;rarr;</xsl:template>
+<xsl:template match="isin" mode="docMarkupType">&amp;isin;</xsl:template>
+<xsl:template match="notin" mode="docMarkupType">&amp;notin;</xsl:template>
+<xsl:template match="lceil" mode="docMarkupType">&amp;lceil;</xsl:template>
+<xsl:template match="rceil" mode="docMarkupType">&amp;rceil;</xsl:template>
+<xsl:template match="lfloor" mode="docMarkupType">&amp;lfloor;</xsl:template>
+<xsl:template match="rfloor" mode="docMarkupType">&amp;rfloor;</xsl:template>
+<xsl:template match="linebreak" mode="docMarkupType">&amp;linebreak;</xsl:template>
+<xsl:template match="hruler" mode="docMarkupType">&amp;hruler;</xsl:template>
+<xsl:template match="preformatted" mode="docMarkupType">
+<xsl:call-template name="docMarkupType"/>
+</xsl:template>
+<xsl:template match="programlisting" mode="docMarkupType">
+<xsl:call-template name="listingType"/>
+</xsl:template>
+<xsl:template match="verbatim" mode="docMarkupType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="indexentry" mode="docMarkupType">
+<xsl:call-template name="docIndexEntryType"/>
+</xsl:template>
+<xsl:template match="orderedlist" mode="docMarkupType">
+<xsl:call-template name="docListType"/>
+</xsl:template>
+<xsl:template match="itemizedlist" mode="docMarkupType">
+<xsl:call-template name="docListType"/>
+</xsl:template>
+<xsl:template match="simplesect" mode="docMarkupType">
+<xsl:call-template name="docSimpleSectType"/>
+</xsl:template>
+<xsl:template match="title" mode="docMarkupType">
+<xsl:call-template name="docTitleType"/>
+</xsl:template>
+<xsl:template match="variablelist" mode="docMarkupType">
+<xsl:call-template name="docVariableListType"/>
+</xsl:template>
+<xsl:template match="table" mode="docMarkupType">
+<xsl:call-template name="docTableType"/>
+</xsl:template>
+<xsl:template match="heading" mode="docMarkupType">
+<xsl:call-template name="docHeadingType"/>
+</xsl:template>
+<xsl:template match="image" mode="docMarkupType">
+<xsl:call-template name="docImageType"/>
+</xsl:template>
+<xsl:template match="dotfile" mode="docMarkupType">
+<xsl:call-template name="docFileType"/>
+</xsl:template>
+<xsl:template match="mscfile" mode="docMarkupType">
+<xsl:call-template name="docFileType"/>
+</xsl:template>
+<xsl:template match="diafile" mode="docMarkupType">
+<xsl:call-template name="docFileType"/>
+</xsl:template>
+<xsl:template match="toclist" mode="docMarkupType">
+<xsl:call-template name="docTocListType"/>
+</xsl:template>
+<xsl:template match="language" mode="docMarkupType">
+<xsl:call-template name="docLanguageType"/>
+</xsl:template>
+<xsl:template match="parameterlist" mode="docMarkupType">
+<xsl:call-template name="docParamListType"/>
+</xsl:template>
+<xsl:template match="xrefsect" mode="docMarkupType">
+<xsl:call-template name="docXRefSectType"/>
+</xsl:template>
+<xsl:template match="copydoc" mode="docMarkupType">
+<xsl:call-template name="docCopyType"/>
+</xsl:template>
+<xsl:template match="blockquote" mode="docMarkupType">
+<xsl:call-template name="docBlockQuoteType"/>
+</xsl:template>
+<xsl:template match="parblock" mode="docMarkupType">
+<xsl:call-template name="docParBlockType"/>
+</xsl:template>
+<xsl:template match="*" mode="docURLLink">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template name="docURLLink">
+<xsl:apply-templates mode="docURLLink"/>
+</xsl:template>
+<xsl:template match="ulink" mode="docURLLink">
+<xsl:call-template name="docURLLink"/>
+</xsl:template>
+<xsl:template match="bold" mode="docURLLink">
+<xsl:call-template name="docMarkupType"/>
+</xsl:template>
+<xsl:template match="emphasis" mode="docURLLink">
+<xsl:call-template name="docMarkupType"/>
+</xsl:template>
+<xsl:template match="computeroutput" mode="docURLLink">
+<xsl:call-template name="docMarkupType"/>
+</xsl:template>
+<xsl:template match="subscript" mode="docURLLink">
+<xsl:call-template name="docMarkupType"/>
+</xsl:template>
+<xsl:template match="superscript" mode="docURLLink">
+<xsl:call-template name="docMarkupType"/>
+</xsl:template>
+<xsl:template match="center" mode="docURLLink">
+<xsl:call-template name="docMarkupType"/>
+</xsl:template>
+<xsl:template match="small" mode="docURLLink">
+<xsl:call-template name="docMarkupType"/>
+</xsl:template>
+<xsl:template match="htmlonly" mode="docURLLink">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="manonly" mode="docURLLink">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="xmlonly" mode="docURLLink">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="rtfonly" mode="docURLLink">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="latexonly" mode="docURLLink">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="dot" mode="docURLLink">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="msc" mode="docURLLink">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="anchor" mode="docURLLink">
+<xsl:call-template name="docAnchorType"/>
+</xsl:template>
+<xsl:template match="formula" mode="docURLLink">
+<xsl:call-template name="docFormulaType"/>
+</xsl:template>
+<xsl:template match="ref" mode="docURLLink">
+<xsl:call-template name="docRefTextType"/>
+</xsl:template>
+<xsl:template match="copy" mode="docURLLink">&amp;copy;</xsl:template>
+<xsl:template match="trademark" mode="docURLLink">&amp;trademark;</xsl:template>
+<xsl:template match="registered" mode="docURLLink">&amp;registered;</xsl:template>
+<xsl:template match="lsquo" mode="docURLLink">&amp;lsquo;</xsl:template>
+<xsl:template match="rsquo" mode="docURLLink">&amp;rsquo;</xsl:template>
+<xsl:template match="ldquo" mode="docURLLink">&amp;ldquo;</xsl:template>
+<xsl:template match="rdquo" mode="docURLLink">&amp;rdquo;</xsl:template>
+<xsl:template match="ndash" mode="docURLLink">&amp;ndash;</xsl:template>
+<xsl:template match="mdash" mode="docURLLink">&amp;mdash;</xsl:template>
+<xsl:template match="umlaut" mode="docURLLink">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="acute" mode="docURLLink">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="grave" mode="docURLLink">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="circ" mode="docURLLink">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="slash" mode="docURLLink">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="tilde" mode="docURLLink">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="cedil" mode="docURLLink">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="ring" mode="docURLLink">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="szlig" mode="docURLLink">&amp;szlig;</xsl:template>
+<xsl:template match="nonbreakablespace" mode="docURLLink">&amp;nbsp;</xsl:template>
+<xsl:template match="aelig" mode="docURLLink">&amp;aelig;</xsl:template>
+<xsl:template match="AElig" mode="docURLLink">&amp;AElig;</xsl:template>
+<xsl:template match="Gamma" mode="docURLLink">&amp;Gamma;</xsl:template>
+<xsl:template match="Delta" mode="docURLLink">&amp;Delta;</xsl:template>
+<xsl:template match="Theta" mode="docURLLink">&amp;Theta;</xsl:template>
+<xsl:template match="Lambda" mode="docURLLink">&amp;Lambda;</xsl:template>
+<xsl:template match="Xi" mode="docURLLink">&amp;Xi;</xsl:template>
+<xsl:template match="Pi" mode="docURLLink">&amp;Pi;</xsl:template>
+<xsl:template match="Sigma" mode="docURLLink">&amp;Sigma;</xsl:template>
+<xsl:template match="Upsilon" mode="docURLLink">&amp;Upsilon;</xsl:template>
+<xsl:template match="Phi" mode="docURLLink">&amp;Phi;</xsl:template>
+<xsl:template match="Psi" mode="docURLLink">&amp;Psi;</xsl:template>
+<xsl:template match="Omega" mode="docURLLink">&amp;Omega;</xsl:template>
+<xsl:template match="alpha" mode="docURLLink">&amp;alpha;</xsl:template>
+<xsl:template match="beta" mode="docURLLink">&amp;beta;</xsl:template>
+<xsl:template match="gamma" mode="docURLLink">&amp;gamma;</xsl:template>
+<xsl:template match="delta" mode="docURLLink">&amp;delta;</xsl:template>
+<xsl:template match="epsilon" mode="docURLLink">&amp;epsilon;</xsl:template>
+<xsl:template match="zeta" mode="docURLLink">&amp;zeta;</xsl:template>
+<xsl:template match="eta" mode="docURLLink">&amp;eta;</xsl:template>
+<xsl:template match="theta" mode="docURLLink">&amp;theta;</xsl:template>
+<xsl:template match="iota" mode="docURLLink">&amp;iota;</xsl:template>
+<xsl:template match="kappa" mode="docURLLink">&amp;kappa;</xsl:template>
+<xsl:template match="lambda" mode="docURLLink">&amp;lambda;</xsl:template>
+<xsl:template match="mu" mode="docURLLink">&amp;mu;</xsl:template>
+<xsl:template match="nu" mode="docURLLink">&amp;nu;</xsl:template>
+<xsl:template match="xi" mode="docURLLink">&amp;xi;</xsl:template>
+<xsl:template match="pi" mode="docURLLink">&amp;pi;</xsl:template>
+<xsl:template match="rho" mode="docURLLink">&amp;rho;</xsl:template>
+<xsl:template match="sigma" mode="docURLLink">&amp;sigma;</xsl:template>
+<xsl:template match="tau" mode="docURLLink">&amp;tau;</xsl:template>
+<xsl:template match="upsilon" mode="docURLLink">&amp;upsilon;</xsl:template>
+<xsl:template match="phi" mode="docURLLink">&amp;phi;</xsl:template>
+<xsl:template match="chi" mode="docURLLink">&amp;chi;</xsl:template>
+<xsl:template match="psi" mode="docURLLink">&amp;psi;</xsl:template>
+<xsl:template match="omega" mode="docURLLink">&amp;omega;</xsl:template>
+<xsl:template match="sigmaf" mode="docURLLink">&amp;sigmaf;</xsl:template>
+<xsl:template match="sect" mode="docURLLink">&amp;sect;</xsl:template>
+<xsl:template match="deg" mode="docURLLink">&amp;deg;</xsl:template>
+<xsl:template match="prime" mode="docURLLink">&amp;prime;</xsl:template>
+<xsl:template match="Prime" mode="docURLLink">&amp;Prime;</xsl:template>
+<xsl:template match="infin" mode="docURLLink">&amp;infin;</xsl:template>
+<xsl:template match="empty" mode="docURLLink">&amp;empty;</xsl:template>
+<xsl:template match="plusmn" mode="docURLLink">&amp;plusmn;</xsl:template>
+<xsl:template match="times" mode="docURLLink">&amp;times;</xsl:template>
+<xsl:template match="minus" mode="docURLLink">&amp;minus;</xsl:template>
+<xsl:template match="sdot" mode="docURLLink">&amp;sdot;</xsl:template>
+<xsl:template match="part" mode="docURLLink">&amp;part;</xsl:template>
+<xsl:template match="nabla" mode="docURLLink">&amp;nabla;</xsl:template>
+<xsl:template match="radic" mode="docURLLink">&amp;radic;</xsl:template>
+<xsl:template match="perp" mode="docURLLink">&amp;perp;</xsl:template>
+<xsl:template match="sum" mode="docURLLink">&amp;sum;</xsl:template>
+<xsl:template match="int" mode="docURLLink">&amp;int;</xsl:template>
+<xsl:template match="prod" mode="docURLLink">&amp;prod;</xsl:template>
+<xsl:template match="sim" mode="docURLLink">&amp;sim;</xsl:template>
+<xsl:template match="asymp" mode="docURLLink">&amp;asymp;</xsl:template>
+<xsl:template match="ne" mode="docURLLink">&amp;ne;</xsl:template>
+<xsl:template match="equiv" mode="docURLLink">&amp;equiv;</xsl:template>
+<xsl:template match="prop" mode="docURLLink">&amp;prop;</xsl:template>
+<xsl:template match="le" mode="docURLLink">&amp;le;</xsl:template>
+<xsl:template match="ge" mode="docURLLink">&amp;ge;</xsl:template>
+<xsl:template match="larr" mode="docURLLink">&amp;larr;</xsl:template>
+<xsl:template match="rarr" mode="docURLLink">&amp;rarr;</xsl:template>
+<xsl:template match="isin" mode="docURLLink">&amp;isin;</xsl:template>
+<xsl:template match="notin" mode="docURLLink">&amp;notin;</xsl:template>
+<xsl:template match="lceil" mode="docURLLink">&amp;lceil;</xsl:template>
+<xsl:template match="rceil" mode="docURLLink">&amp;rceil;</xsl:template>
+<xsl:template match="lfloor" mode="docURLLink">&amp;lfloor;</xsl:template>
+<xsl:template match="rfloor" mode="docURLLink">&amp;rfloor;</xsl:template>
+<xsl:template match="*" mode="docAnchorType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template name="docAnchorType">
+<xsl:apply-templates mode="docAnchorType"/>
+</xsl:template>
+<xsl:template match="*" mode="docFormulaType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template name="docFormulaType">
+<xsl:apply-templates mode="docFormulaType"/>
+</xsl:template>
+<xsl:template name="docIndexEntryType">
+<xsl:apply-templates mode="docIndexEntryType"/>
+</xsl:template>
+<xsl:template match="primaryie" mode="docIndexEntryType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="secondaryie" mode="docIndexEntryType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template name="docListType">
+<xsl:apply-templates mode="docListType"/>
+</xsl:template>
+<xsl:template match="listitem" mode="docListType">
+<xsl:call-template name="docListItemType"/>
+</xsl:template>
+<xsl:template name="docListItemType">
+<xsl:apply-templates mode="docListItemType"/>
+</xsl:template>
+<xsl:template match="para" mode="docListItemType">
+<xsl:call-template name="docParaType"/>
+</xsl:template>
+<xsl:template name="docSimpleSectType">
+<xsl:apply-templates mode="docSimpleSectType"/>
+</xsl:template>
+<xsl:template match="title" mode="docSimpleSectType">
+<xsl:call-template name="docTitleType"/>
+</xsl:template>
+<xsl:template match="para" mode="docSimpleSectType">
+<xsl:call-template name="docParaType"/>
+</xsl:template>
+<xsl:template match="simplesectsep" mode="docSimpleSectType">&amp;simplesectsep;</xsl:template>
+<xsl:template name="docVarListEntryType">
+<xsl:apply-templates mode="docVarListEntryType"/>
+</xsl:template>
+<xsl:template match="term" mode="docVarListEntryType">
+<xsl:call-template name="docTitleType"/>
+</xsl:template>
+<xsl:template name="docVariableListType">
+<xsl:apply-templates mode="docVariableListType"/>
+</xsl:template>
+<xsl:template match="varlistentry" mode="docVariableListType">
+<xsl:call-template name="docVarListEntryType"/>
+</xsl:template>
+<xsl:template match="listitem" mode="docVariableListType">
+<xsl:call-template name="docListItemType"/>
+</xsl:template>
+<xsl:template match="*" mode="docRefTextType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template name="docRefTextType">
+<xsl:apply-templates mode="docRefTextType"/>
+</xsl:template>
+<xsl:template match="ulink" mode="docRefTextType">
+<xsl:call-template name="docURLLink"/>
+</xsl:template>
+<xsl:template match="bold" mode="docRefTextType">
+<xsl:call-template name="docMarkupType"/>
+</xsl:template>
+<xsl:template match="emphasis" mode="docRefTextType">
+<xsl:call-template name="docMarkupType"/>
+</xsl:template>
+<xsl:template match="computeroutput" mode="docRefTextType">
+<xsl:call-template name="docMarkupType"/>
+</xsl:template>
+<xsl:template match="subscript" mode="docRefTextType">
+<xsl:call-template name="docMarkupType"/>
+</xsl:template>
+<xsl:template match="superscript" mode="docRefTextType">
+<xsl:call-template name="docMarkupType"/>
+</xsl:template>
+<xsl:template match="center" mode="docRefTextType">
+<xsl:call-template name="docMarkupType"/>
+</xsl:template>
+<xsl:template match="small" mode="docRefTextType">
+<xsl:call-template name="docMarkupType"/>
+</xsl:template>
+<xsl:template match="htmlonly" mode="docRefTextType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="manonly" mode="docRefTextType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="xmlonly" mode="docRefTextType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="rtfonly" mode="docRefTextType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="latexonly" mode="docRefTextType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="dot" mode="docRefTextType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="msc" mode="docRefTextType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="anchor" mode="docRefTextType">
+<xsl:call-template name="docAnchorType"/>
+</xsl:template>
+<xsl:template match="formula" mode="docRefTextType">
+<xsl:call-template name="docFormulaType"/>
+</xsl:template>
+<xsl:template match="ref" mode="docRefTextType">
+<xsl:call-template name="docRefTextType"/>
+</xsl:template>
+<xsl:template match="copy" mode="docRefTextType">&amp;copy;</xsl:template>
+<xsl:template match="trademark" mode="docRefTextType">&amp;trademark;</xsl:template>
+<xsl:template match="registered" mode="docRefTextType">&amp;registered;</xsl:template>
+<xsl:template match="lsquo" mode="docRefTextType">&amp;lsquo;</xsl:template>
+<xsl:template match="rsquo" mode="docRefTextType">&amp;rsquo;</xsl:template>
+<xsl:template match="ldquo" mode="docRefTextType">&amp;ldquo;</xsl:template>
+<xsl:template match="rdquo" mode="docRefTextType">&amp;rdquo;</xsl:template>
+<xsl:template match="ndash" mode="docRefTextType">&amp;ndash;</xsl:template>
+<xsl:template match="mdash" mode="docRefTextType">&amp;mdash;</xsl:template>
+<xsl:template match="umlaut" mode="docRefTextType">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="acute" mode="docRefTextType">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="grave" mode="docRefTextType">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="circ" mode="docRefTextType">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="slash" mode="docRefTextType">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="tilde" mode="docRefTextType">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="cedil" mode="docRefTextType">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="ring" mode="docRefTextType">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="szlig" mode="docRefTextType">&amp;szlig;</xsl:template>
+<xsl:template match="nonbreakablespace" mode="docRefTextType">&amp;nbsp;</xsl:template>
+<xsl:template match="aelig" mode="docRefTextType">&amp;aelig;</xsl:template>
+<xsl:template match="AElig" mode="docRefTextType">&amp;AElig;</xsl:template>
+<xsl:template match="Gamma" mode="docRefTextType">&amp;Gamma;</xsl:template>
+<xsl:template match="Delta" mode="docRefTextType">&amp;Delta;</xsl:template>
+<xsl:template match="Theta" mode="docRefTextType">&amp;Theta;</xsl:template>
+<xsl:template match="Lambda" mode="docRefTextType">&amp;Lambda;</xsl:template>
+<xsl:template match="Xi" mode="docRefTextType">&amp;Xi;</xsl:template>
+<xsl:template match="Pi" mode="docRefTextType">&amp;Pi;</xsl:template>
+<xsl:template match="Sigma" mode="docRefTextType">&amp;Sigma;</xsl:template>
+<xsl:template match="Upsilon" mode="docRefTextType">&amp;Upsilon;</xsl:template>
+<xsl:template match="Phi" mode="docRefTextType">&amp;Phi;</xsl:template>
+<xsl:template match="Psi" mode="docRefTextType">&amp;Psi;</xsl:template>
+<xsl:template match="Omega" mode="docRefTextType">&amp;Omega;</xsl:template>
+<xsl:template match="alpha" mode="docRefTextType">&amp;alpha;</xsl:template>
+<xsl:template match="beta" mode="docRefTextType">&amp;beta;</xsl:template>
+<xsl:template match="gamma" mode="docRefTextType">&amp;gamma;</xsl:template>
+<xsl:template match="delta" mode="docRefTextType">&amp;delta;</xsl:template>
+<xsl:template match="epsilon" mode="docRefTextType">&amp;epsilon;</xsl:template>
+<xsl:template match="zeta" mode="docRefTextType">&amp;zeta;</xsl:template>
+<xsl:template match="eta" mode="docRefTextType">&amp;eta;</xsl:template>
+<xsl:template match="theta" mode="docRefTextType">&amp;theta;</xsl:template>
+<xsl:template match="iota" mode="docRefTextType">&amp;iota;</xsl:template>
+<xsl:template match="kappa" mode="docRefTextType">&amp;kappa;</xsl:template>
+<xsl:template match="lambda" mode="docRefTextType">&amp;lambda;</xsl:template>
+<xsl:template match="mu" mode="docRefTextType">&amp;mu;</xsl:template>
+<xsl:template match="nu" mode="docRefTextType">&amp;nu;</xsl:template>
+<xsl:template match="xi" mode="docRefTextType">&amp;xi;</xsl:template>
+<xsl:template match="pi" mode="docRefTextType">&amp;pi;</xsl:template>
+<xsl:template match="rho" mode="docRefTextType">&amp;rho;</xsl:template>
+<xsl:template match="sigma" mode="docRefTextType">&amp;sigma;</xsl:template>
+<xsl:template match="tau" mode="docRefTextType">&amp;tau;</xsl:template>
+<xsl:template match="upsilon" mode="docRefTextType">&amp;upsilon;</xsl:template>
+<xsl:template match="phi" mode="docRefTextType">&amp;phi;</xsl:template>
+<xsl:template match="chi" mode="docRefTextType">&amp;chi;</xsl:template>
+<xsl:template match="psi" mode="docRefTextType">&amp;psi;</xsl:template>
+<xsl:template match="omega" mode="docRefTextType">&amp;omega;</xsl:template>
+<xsl:template match="sigmaf" mode="docRefTextType">&amp;sigmaf;</xsl:template>
+<xsl:template match="sect" mode="docRefTextType">&amp;sect;</xsl:template>
+<xsl:template match="deg" mode="docRefTextType">&amp;deg;</xsl:template>
+<xsl:template match="prime" mode="docRefTextType">&amp;prime;</xsl:template>
+<xsl:template match="Prime" mode="docRefTextType">&amp;Prime;</xsl:template>
+<xsl:template match="infin" mode="docRefTextType">&amp;infin;</xsl:template>
+<xsl:template match="empty" mode="docRefTextType">&amp;empty;</xsl:template>
+<xsl:template match="plusmn" mode="docRefTextType">&amp;plusmn;</xsl:template>
+<xsl:template match="times" mode="docRefTextType">&amp;times;</xsl:template>
+<xsl:template match="minus" mode="docRefTextType">&amp;minus;</xsl:template>
+<xsl:template match="sdot" mode="docRefTextType">&amp;sdot;</xsl:template>
+<xsl:template match="part" mode="docRefTextType">&amp;part;</xsl:template>
+<xsl:template match="nabla" mode="docRefTextType">&amp;nabla;</xsl:template>
+<xsl:template match="radic" mode="docRefTextType">&amp;radic;</xsl:template>
+<xsl:template match="perp" mode="docRefTextType">&amp;perp;</xsl:template>
+<xsl:template match="sum" mode="docRefTextType">&amp;sum;</xsl:template>
+<xsl:template match="int" mode="docRefTextType">&amp;int;</xsl:template>
+<xsl:template match="prod" mode="docRefTextType">&amp;prod;</xsl:template>
+<xsl:template match="sim" mode="docRefTextType">&amp;sim;</xsl:template>
+<xsl:template match="asymp" mode="docRefTextType">&amp;asymp;</xsl:template>
+<xsl:template match="ne" mode="docRefTextType">&amp;ne;</xsl:template>
+<xsl:template match="equiv" mode="docRefTextType">&amp;equiv;</xsl:template>
+<xsl:template match="prop" mode="docRefTextType">&amp;prop;</xsl:template>
+<xsl:template match="le" mode="docRefTextType">&amp;le;</xsl:template>
+<xsl:template match="ge" mode="docRefTextType">&amp;ge;</xsl:template>
+<xsl:template match="larr" mode="docRefTextType">&amp;larr;</xsl:template>
+<xsl:template match="rarr" mode="docRefTextType">&amp;rarr;</xsl:template>
+<xsl:template match="isin" mode="docRefTextType">&amp;isin;</xsl:template>
+<xsl:template match="notin" mode="docRefTextType">&amp;notin;</xsl:template>
+<xsl:template match="lceil" mode="docRefTextType">&amp;lceil;</xsl:template>
+<xsl:template match="rceil" mode="docRefTextType">&amp;rceil;</xsl:template>
+<xsl:template match="lfloor" mode="docRefTextType">&amp;lfloor;</xsl:template>
+<xsl:template match="rfloor" mode="docRefTextType">&amp;rfloor;</xsl:template>
+<xsl:template name="docTableType">
+<xsl:apply-templates mode="docTableType"/>
+</xsl:template>
+<xsl:template match="row" mode="docTableType">
+<xsl:call-template name="docRowType"/>
+</xsl:template>
+<xsl:template match="caption" mode="docTableType">
+<xsl:call-template name="docCaptionType"/>
+</xsl:template>
+<xsl:template name="docRowType">
+<xsl:apply-templates mode="docRowType"/>
+</xsl:template>
+<xsl:template match="entry" mode="docRowType">
+<xsl:call-template name="docEntryType"/>
+</xsl:template>
+<xsl:template name="docEntryType">
+<xsl:apply-templates mode="docEntryType"/>
+</xsl:template>
+<xsl:template match="para" mode="docEntryType">
+<xsl:call-template name="docParaType"/>
+</xsl:template>
+<xsl:template match="*" mode="docCaptionType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template name="docCaptionType">
+<xsl:apply-templates mode="docCaptionType"/>
+</xsl:template>
+<xsl:template match="ulink" mode="docCaptionType">
+<xsl:call-template name="docURLLink"/>
+</xsl:template>
+<xsl:template match="bold" mode="docCaptionType">
+<xsl:call-template name="docMarkupType"/>
+</xsl:template>
+<xsl:template match="emphasis" mode="docCaptionType">
+<xsl:call-template name="docMarkupType"/>
+</xsl:template>
+<xsl:template match="computeroutput" mode="docCaptionType">
+<xsl:call-template name="docMarkupType"/>
+</xsl:template>
+<xsl:template match="subscript" mode="docCaptionType">
+<xsl:call-template name="docMarkupType"/>
+</xsl:template>
+<xsl:template match="superscript" mode="docCaptionType">
+<xsl:call-template name="docMarkupType"/>
+</xsl:template>
+<xsl:template match="center" mode="docCaptionType">
+<xsl:call-template name="docMarkupType"/>
+</xsl:template>
+<xsl:template match="small" mode="docCaptionType">
+<xsl:call-template name="docMarkupType"/>
+</xsl:template>
+<xsl:template match="htmlonly" mode="docCaptionType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="manonly" mode="docCaptionType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="xmlonly" mode="docCaptionType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="rtfonly" mode="docCaptionType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="latexonly" mode="docCaptionType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="dot" mode="docCaptionType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="msc" mode="docCaptionType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="anchor" mode="docCaptionType">
+<xsl:call-template name="docAnchorType"/>
+</xsl:template>
+<xsl:template match="formula" mode="docCaptionType">
+<xsl:call-template name="docFormulaType"/>
+</xsl:template>
+<xsl:template match="ref" mode="docCaptionType">
+<xsl:call-template name="docRefTextType"/>
+</xsl:template>
+<xsl:template match="copy" mode="docCaptionType">&amp;copy;</xsl:template>
+<xsl:template match="trademark" mode="docCaptionType">&amp;trademark;</xsl:template>
+<xsl:template match="registered" mode="docCaptionType">&amp;registered;</xsl:template>
+<xsl:template match="lsquo" mode="docCaptionType">&amp;lsquo;</xsl:template>
+<xsl:template match="rsquo" mode="docCaptionType">&amp;rsquo;</xsl:template>
+<xsl:template match="ldquo" mode="docCaptionType">&amp;ldquo;</xsl:template>
+<xsl:template match="rdquo" mode="docCaptionType">&amp;rdquo;</xsl:template>
+<xsl:template match="ndash" mode="docCaptionType">&amp;ndash;</xsl:template>
+<xsl:template match="mdash" mode="docCaptionType">&amp;mdash;</xsl:template>
+<xsl:template match="umlaut" mode="docCaptionType">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="acute" mode="docCaptionType">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="grave" mode="docCaptionType">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="circ" mode="docCaptionType">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="slash" mode="docCaptionType">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="tilde" mode="docCaptionType">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="cedil" mode="docCaptionType">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="ring" mode="docCaptionType">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="szlig" mode="docCaptionType">&amp;szlig;</xsl:template>
+<xsl:template match="nonbreakablespace" mode="docCaptionType">&amp;nbsp;</xsl:template>
+<xsl:template match="aelig" mode="docCaptionType">&amp;aelig;</xsl:template>
+<xsl:template match="AElig" mode="docCaptionType">&amp;AElig;</xsl:template>
+<xsl:template match="Gamma" mode="docCaptionType">&amp;Gamma;</xsl:template>
+<xsl:template match="Delta" mode="docCaptionType">&amp;Delta;</xsl:template>
+<xsl:template match="Theta" mode="docCaptionType">&amp;Theta;</xsl:template>
+<xsl:template match="Lambda" mode="docCaptionType">&amp;Lambda;</xsl:template>
+<xsl:template match="Xi" mode="docCaptionType">&amp;Xi;</xsl:template>
+<xsl:template match="Pi" mode="docCaptionType">&amp;Pi;</xsl:template>
+<xsl:template match="Sigma" mode="docCaptionType">&amp;Sigma;</xsl:template>
+<xsl:template match="Upsilon" mode="docCaptionType">&amp;Upsilon;</xsl:template>
+<xsl:template match="Phi" mode="docCaptionType">&amp;Phi;</xsl:template>
+<xsl:template match="Psi" mode="docCaptionType">&amp;Psi;</xsl:template>
+<xsl:template match="Omega" mode="docCaptionType">&amp;Omega;</xsl:template>
+<xsl:template match="alpha" mode="docCaptionType">&amp;alpha;</xsl:template>
+<xsl:template match="beta" mode="docCaptionType">&amp;beta;</xsl:template>
+<xsl:template match="gamma" mode="docCaptionType">&amp;gamma;</xsl:template>
+<xsl:template match="delta" mode="docCaptionType">&amp;delta;</xsl:template>
+<xsl:template match="epsilon" mode="docCaptionType">&amp;epsilon;</xsl:template>
+<xsl:template match="zeta" mode="docCaptionType">&amp;zeta;</xsl:template>
+<xsl:template match="eta" mode="docCaptionType">&amp;eta;</xsl:template>
+<xsl:template match="theta" mode="docCaptionType">&amp;theta;</xsl:template>
+<xsl:template match="iota" mode="docCaptionType">&amp;iota;</xsl:template>
+<xsl:template match="kappa" mode="docCaptionType">&amp;kappa;</xsl:template>
+<xsl:template match="lambda" mode="docCaptionType">&amp;lambda;</xsl:template>
+<xsl:template match="mu" mode="docCaptionType">&amp;mu;</xsl:template>
+<xsl:template match="nu" mode="docCaptionType">&amp;nu;</xsl:template>
+<xsl:template match="xi" mode="docCaptionType">&amp;xi;</xsl:template>
+<xsl:template match="pi" mode="docCaptionType">&amp;pi;</xsl:template>
+<xsl:template match="rho" mode="docCaptionType">&amp;rho;</xsl:template>
+<xsl:template match="sigma" mode="docCaptionType">&amp;sigma;</xsl:template>
+<xsl:template match="tau" mode="docCaptionType">&amp;tau;</xsl:template>
+<xsl:template match="upsilon" mode="docCaptionType">&amp;upsilon;</xsl:template>
+<xsl:template match="phi" mode="docCaptionType">&amp;phi;</xsl:template>
+<xsl:template match="chi" mode="docCaptionType">&amp;chi;</xsl:template>
+<xsl:template match="psi" mode="docCaptionType">&amp;psi;</xsl:template>
+<xsl:template match="omega" mode="docCaptionType">&amp;omega;</xsl:template>
+<xsl:template match="sigmaf" mode="docCaptionType">&amp;sigmaf;</xsl:template>
+<xsl:template match="sect" mode="docCaptionType">&amp;sect;</xsl:template>
+<xsl:template match="deg" mode="docCaptionType">&amp;deg;</xsl:template>
+<xsl:template match="prime" mode="docCaptionType">&amp;prime;</xsl:template>
+<xsl:template match="Prime" mode="docCaptionType">&amp;Prime;</xsl:template>
+<xsl:template match="infin" mode="docCaptionType">&amp;infin;</xsl:template>
+<xsl:template match="empty" mode="docCaptionType">&amp;empty;</xsl:template>
+<xsl:template match="plusmn" mode="docCaptionType">&amp;plusmn;</xsl:template>
+<xsl:template match="times" mode="docCaptionType">&amp;times;</xsl:template>
+<xsl:template match="minus" mode="docCaptionType">&amp;minus;</xsl:template>
+<xsl:template match="sdot" mode="docCaptionType">&amp;sdot;</xsl:template>
+<xsl:template match="part" mode="docCaptionType">&amp;part;</xsl:template>
+<xsl:template match="nabla" mode="docCaptionType">&amp;nabla;</xsl:template>
+<xsl:template match="radic" mode="docCaptionType">&amp;radic;</xsl:template>
+<xsl:template match="perp" mode="docCaptionType">&amp;perp;</xsl:template>
+<xsl:template match="sum" mode="docCaptionType">&amp;sum;</xsl:template>
+<xsl:template match="int" mode="docCaptionType">&amp;int;</xsl:template>
+<xsl:template match="prod" mode="docCaptionType">&amp;prod;</xsl:template>
+<xsl:template match="sim" mode="docCaptionType">&amp;sim;</xsl:template>
+<xsl:template match="asymp" mode="docCaptionType">&amp;asymp;</xsl:template>
+<xsl:template match="ne" mode="docCaptionType">&amp;ne;</xsl:template>
+<xsl:template match="equiv" mode="docCaptionType">&amp;equiv;</xsl:template>
+<xsl:template match="prop" mode="docCaptionType">&amp;prop;</xsl:template>
+<xsl:template match="le" mode="docCaptionType">&amp;le;</xsl:template>
+<xsl:template match="ge" mode="docCaptionType">&amp;ge;</xsl:template>
+<xsl:template match="larr" mode="docCaptionType">&amp;larr;</xsl:template>
+<xsl:template match="rarr" mode="docCaptionType">&amp;rarr;</xsl:template>
+<xsl:template match="isin" mode="docCaptionType">&amp;isin;</xsl:template>
+<xsl:template match="notin" mode="docCaptionType">&amp;notin;</xsl:template>
+<xsl:template match="lceil" mode="docCaptionType">&amp;lceil;</xsl:template>
+<xsl:template match="rceil" mode="docCaptionType">&amp;rceil;</xsl:template>
+<xsl:template match="lfloor" mode="docCaptionType">&amp;lfloor;</xsl:template>
+<xsl:template match="rfloor" mode="docCaptionType">&amp;rfloor;</xsl:template>
+<xsl:template match="*" mode="docHeadingType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template name="docHeadingType">
+<xsl:apply-templates mode="docHeadingType"/>
+</xsl:template>
+<xsl:template match="ulink" mode="docHeadingType">
+<xsl:call-template name="docURLLink"/>
+</xsl:template>
+<xsl:template match="bold" mode="docHeadingType">
+<xsl:call-template name="docMarkupType"/>
+</xsl:template>
+<xsl:template match="emphasis" mode="docHeadingType">
+<xsl:call-template name="docMarkupType"/>
+</xsl:template>
+<xsl:template match="computeroutput" mode="docHeadingType">
+<xsl:call-template name="docMarkupType"/>
+</xsl:template>
+<xsl:template match="subscript" mode="docHeadingType">
+<xsl:call-template name="docMarkupType"/>
+</xsl:template>
+<xsl:template match="superscript" mode="docHeadingType">
+<xsl:call-template name="docMarkupType"/>
+</xsl:template>
+<xsl:template match="center" mode="docHeadingType">
+<xsl:call-template name="docMarkupType"/>
+</xsl:template>
+<xsl:template match="small" mode="docHeadingType">
+<xsl:call-template name="docMarkupType"/>
+</xsl:template>
+<xsl:template match="htmlonly" mode="docHeadingType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="manonly" mode="docHeadingType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="xmlonly" mode="docHeadingType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="rtfonly" mode="docHeadingType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="latexonly" mode="docHeadingType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="dot" mode="docHeadingType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="msc" mode="docHeadingType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="anchor" mode="docHeadingType">
+<xsl:call-template name="docAnchorType"/>
+</xsl:template>
+<xsl:template match="formula" mode="docHeadingType">
+<xsl:call-template name="docFormulaType"/>
+</xsl:template>
+<xsl:template match="ref" mode="docHeadingType">
+<xsl:call-template name="docRefTextType"/>
+</xsl:template>
+<xsl:template match="copy" mode="docHeadingType">&amp;copy;</xsl:template>
+<xsl:template match="trademark" mode="docHeadingType">&amp;trademark;</xsl:template>
+<xsl:template match="registered" mode="docHeadingType">&amp;registered;</xsl:template>
+<xsl:template match="lsquo" mode="docHeadingType">&amp;lsquo;</xsl:template>
+<xsl:template match="rsquo" mode="docHeadingType">&amp;rsquo;</xsl:template>
+<xsl:template match="ldquo" mode="docHeadingType">&amp;ldquo;</xsl:template>
+<xsl:template match="rdquo" mode="docHeadingType">&amp;rdquo;</xsl:template>
+<xsl:template match="ndash" mode="docHeadingType">&amp;ndash;</xsl:template>
+<xsl:template match="mdash" mode="docHeadingType">&amp;mdash;</xsl:template>
+<xsl:template match="umlaut" mode="docHeadingType">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="acute" mode="docHeadingType">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="grave" mode="docHeadingType">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="circ" mode="docHeadingType">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="slash" mode="docHeadingType">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="tilde" mode="docHeadingType">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="cedil" mode="docHeadingType">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="ring" mode="docHeadingType">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="szlig" mode="docHeadingType">&amp;szlig;</xsl:template>
+<xsl:template match="nonbreakablespace" mode="docHeadingType">&amp;nbsp;</xsl:template>
+<xsl:template match="aelig" mode="docHeadingType">&amp;aelig;</xsl:template>
+<xsl:template match="AElig" mode="docHeadingType">&amp;AElig;</xsl:template>
+<xsl:template match="Gamma" mode="docHeadingType">&amp;Gamma;</xsl:template>
+<xsl:template match="Delta" mode="docHeadingType">&amp;Delta;</xsl:template>
+<xsl:template match="Theta" mode="docHeadingType">&amp;Theta;</xsl:template>
+<xsl:template match="Lambda" mode="docHeadingType">&amp;Lambda;</xsl:template>
+<xsl:template match="Xi" mode="docHeadingType">&amp;Xi;</xsl:template>
+<xsl:template match="Pi" mode="docHeadingType">&amp;Pi;</xsl:template>
+<xsl:template match="Sigma" mode="docHeadingType">&amp;Sigma;</xsl:template>
+<xsl:template match="Upsilon" mode="docHeadingType">&amp;Upsilon;</xsl:template>
+<xsl:template match="Phi" mode="docHeadingType">&amp;Phi;</xsl:template>
+<xsl:template match="Psi" mode="docHeadingType">&amp;Psi;</xsl:template>
+<xsl:template match="Omega" mode="docHeadingType">&amp;Omega;</xsl:template>
+<xsl:template match="alpha" mode="docHeadingType">&amp;alpha;</xsl:template>
+<xsl:template match="beta" mode="docHeadingType">&amp;beta;</xsl:template>
+<xsl:template match="gamma" mode="docHeadingType">&amp;gamma;</xsl:template>
+<xsl:template match="delta" mode="docHeadingType">&amp;delta;</xsl:template>
+<xsl:template match="epsilon" mode="docHeadingType">&amp;epsilon;</xsl:template>
+<xsl:template match="zeta" mode="docHeadingType">&amp;zeta;</xsl:template>
+<xsl:template match="eta" mode="docHeadingType">&amp;eta;</xsl:template>
+<xsl:template match="theta" mode="docHeadingType">&amp;theta;</xsl:template>
+<xsl:template match="iota" mode="docHeadingType">&amp;iota;</xsl:template>
+<xsl:template match="kappa" mode="docHeadingType">&amp;kappa;</xsl:template>
+<xsl:template match="lambda" mode="docHeadingType">&amp;lambda;</xsl:template>
+<xsl:template match="mu" mode="docHeadingType">&amp;mu;</xsl:template>
+<xsl:template match="nu" mode="docHeadingType">&amp;nu;</xsl:template>
+<xsl:template match="xi" mode="docHeadingType">&amp;xi;</xsl:template>
+<xsl:template match="pi" mode="docHeadingType">&amp;pi;</xsl:template>
+<xsl:template match="rho" mode="docHeadingType">&amp;rho;</xsl:template>
+<xsl:template match="sigma" mode="docHeadingType">&amp;sigma;</xsl:template>
+<xsl:template match="tau" mode="docHeadingType">&amp;tau;</xsl:template>
+<xsl:template match="upsilon" mode="docHeadingType">&amp;upsilon;</xsl:template>
+<xsl:template match="phi" mode="docHeadingType">&amp;phi;</xsl:template>
+<xsl:template match="chi" mode="docHeadingType">&amp;chi;</xsl:template>
+<xsl:template match="psi" mode="docHeadingType">&amp;psi;</xsl:template>
+<xsl:template match="omega" mode="docHeadingType">&amp;omega;</xsl:template>
+<xsl:template match="sigmaf" mode="docHeadingType">&amp;sigmaf;</xsl:template>
+<xsl:template match="sect" mode="docHeadingType">&amp;sect;</xsl:template>
+<xsl:template match="deg" mode="docHeadingType">&amp;deg;</xsl:template>
+<xsl:template match="prime" mode="docHeadingType">&amp;prime;</xsl:template>
+<xsl:template match="Prime" mode="docHeadingType">&amp;Prime;</xsl:template>
+<xsl:template match="infin" mode="docHeadingType">&amp;infin;</xsl:template>
+<xsl:template match="empty" mode="docHeadingType">&amp;empty;</xsl:template>
+<xsl:template match="plusmn" mode="docHeadingType">&amp;plusmn;</xsl:template>
+<xsl:template match="times" mode="docHeadingType">&amp;times;</xsl:template>
+<xsl:template match="minus" mode="docHeadingType">&amp;minus;</xsl:template>
+<xsl:template match="sdot" mode="docHeadingType">&amp;sdot;</xsl:template>
+<xsl:template match="part" mode="docHeadingType">&amp;part;</xsl:template>
+<xsl:template match="nabla" mode="docHeadingType">&amp;nabla;</xsl:template>
+<xsl:template match="radic" mode="docHeadingType">&amp;radic;</xsl:template>
+<xsl:template match="perp" mode="docHeadingType">&amp;perp;</xsl:template>
+<xsl:template match="sum" mode="docHeadingType">&amp;sum;</xsl:template>
+<xsl:template match="int" mode="docHeadingType">&amp;int;</xsl:template>
+<xsl:template match="prod" mode="docHeadingType">&amp;prod;</xsl:template>
+<xsl:template match="sim" mode="docHeadingType">&amp;sim;</xsl:template>
+<xsl:template match="asymp" mode="docHeadingType">&amp;asymp;</xsl:template>
+<xsl:template match="ne" mode="docHeadingType">&amp;ne;</xsl:template>
+<xsl:template match="equiv" mode="docHeadingType">&amp;equiv;</xsl:template>
+<xsl:template match="prop" mode="docHeadingType">&amp;prop;</xsl:template>
+<xsl:template match="le" mode="docHeadingType">&amp;le;</xsl:template>
+<xsl:template match="ge" mode="docHeadingType">&amp;ge;</xsl:template>
+<xsl:template match="larr" mode="docHeadingType">&amp;larr;</xsl:template>
+<xsl:template match="rarr" mode="docHeadingType">&amp;rarr;</xsl:template>
+<xsl:template match="isin" mode="docHeadingType">&amp;isin;</xsl:template>
+<xsl:template match="notin" mode="docHeadingType">&amp;notin;</xsl:template>
+<xsl:template match="lceil" mode="docHeadingType">&amp;lceil;</xsl:template>
+<xsl:template match="rceil" mode="docHeadingType">&amp;rceil;</xsl:template>
+<xsl:template match="lfloor" mode="docHeadingType">&amp;lfloor;</xsl:template>
+<xsl:template match="rfloor" mode="docHeadingType">&amp;rfloor;</xsl:template>
+<xsl:template match="*" mode="docImageType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template name="docImageType">
+<xsl:apply-templates mode="docImageType"/>
+</xsl:template>
+<xsl:template match="ulink" mode="docImageType">
+<xsl:call-template name="docURLLink"/>
+</xsl:template>
+<xsl:template match="bold" mode="docImageType">
+<xsl:call-template name="docMarkupType"/>
+</xsl:template>
+<xsl:template match="emphasis" mode="docImageType">
+<xsl:call-template name="docMarkupType"/>
+</xsl:template>
+<xsl:template match="computeroutput" mode="docImageType">
+<xsl:call-template name="docMarkupType"/>
+</xsl:template>
+<xsl:template match="subscript" mode="docImageType">
+<xsl:call-template name="docMarkupType"/>
+</xsl:template>
+<xsl:template match="superscript" mode="docImageType">
+<xsl:call-template name="docMarkupType"/>
+</xsl:template>
+<xsl:template match="center" mode="docImageType">
+<xsl:call-template name="docMarkupType"/>
+</xsl:template>
+<xsl:template match="small" mode="docImageType">
+<xsl:call-template name="docMarkupType"/>
+</xsl:template>
+<xsl:template match="htmlonly" mode="docImageType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="manonly" mode="docImageType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="xmlonly" mode="docImageType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="rtfonly" mode="docImageType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="latexonly" mode="docImageType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="dot" mode="docImageType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="msc" mode="docImageType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="anchor" mode="docImageType">
+<xsl:call-template name="docAnchorType"/>
+</xsl:template>
+<xsl:template match="formula" mode="docImageType">
+<xsl:call-template name="docFormulaType"/>
+</xsl:template>
+<xsl:template match="ref" mode="docImageType">
+<xsl:call-template name="docRefTextType"/>
+</xsl:template>
+<xsl:template match="copy" mode="docImageType">&amp;copy;</xsl:template>
+<xsl:template match="trademark" mode="docImageType">&amp;trademark;</xsl:template>
+<xsl:template match="registered" mode="docImageType">&amp;registered;</xsl:template>
+<xsl:template match="lsquo" mode="docImageType">&amp;lsquo;</xsl:template>
+<xsl:template match="rsquo" mode="docImageType">&amp;rsquo;</xsl:template>
+<xsl:template match="ldquo" mode="docImageType">&amp;ldquo;</xsl:template>
+<xsl:template match="rdquo" mode="docImageType">&amp;rdquo;</xsl:template>
+<xsl:template match="ndash" mode="docImageType">&amp;ndash;</xsl:template>
+<xsl:template match="mdash" mode="docImageType">&amp;mdash;</xsl:template>
+<xsl:template match="umlaut" mode="docImageType">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="acute" mode="docImageType">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="grave" mode="docImageType">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="circ" mode="docImageType">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="slash" mode="docImageType">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="tilde" mode="docImageType">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="cedil" mode="docImageType">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="ring" mode="docImageType">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="szlig" mode="docImageType">&amp;szlig;</xsl:template>
+<xsl:template match="nonbreakablespace" mode="docImageType">&amp;nbsp;</xsl:template>
+<xsl:template match="aelig" mode="docImageType">&amp;aelig;</xsl:template>
+<xsl:template match="AElig" mode="docImageType">&amp;AElig;</xsl:template>
+<xsl:template match="Gamma" mode="docImageType">&amp;Gamma;</xsl:template>
+<xsl:template match="Delta" mode="docImageType">&amp;Delta;</xsl:template>
+<xsl:template match="Theta" mode="docImageType">&amp;Theta;</xsl:template>
+<xsl:template match="Lambda" mode="docImageType">&amp;Lambda;</xsl:template>
+<xsl:template match="Xi" mode="docImageType">&amp;Xi;</xsl:template>
+<xsl:template match="Pi" mode="docImageType">&amp;Pi;</xsl:template>
+<xsl:template match="Sigma" mode="docImageType">&amp;Sigma;</xsl:template>
+<xsl:template match="Upsilon" mode="docImageType">&amp;Upsilon;</xsl:template>
+<xsl:template match="Phi" mode="docImageType">&amp;Phi;</xsl:template>
+<xsl:template match="Psi" mode="docImageType">&amp;Psi;</xsl:template>
+<xsl:template match="Omega" mode="docImageType">&amp;Omega;</xsl:template>
+<xsl:template match="alpha" mode="docImageType">&amp;alpha;</xsl:template>
+<xsl:template match="beta" mode="docImageType">&amp;beta;</xsl:template>
+<xsl:template match="gamma" mode="docImageType">&amp;gamma;</xsl:template>
+<xsl:template match="delta" mode="docImageType">&amp;delta;</xsl:template>
+<xsl:template match="epsilon" mode="docImageType">&amp;epsilon;</xsl:template>
+<xsl:template match="zeta" mode="docImageType">&amp;zeta;</xsl:template>
+<xsl:template match="eta" mode="docImageType">&amp;eta;</xsl:template>
+<xsl:template match="theta" mode="docImageType">&amp;theta;</xsl:template>
+<xsl:template match="iota" mode="docImageType">&amp;iota;</xsl:template>
+<xsl:template match="kappa" mode="docImageType">&amp;kappa;</xsl:template>
+<xsl:template match="lambda" mode="docImageType">&amp;lambda;</xsl:template>
+<xsl:template match="mu" mode="docImageType">&amp;mu;</xsl:template>
+<xsl:template match="nu" mode="docImageType">&amp;nu;</xsl:template>
+<xsl:template match="xi" mode="docImageType">&amp;xi;</xsl:template>
+<xsl:template match="pi" mode="docImageType">&amp;pi;</xsl:template>
+<xsl:template match="rho" mode="docImageType">&amp;rho;</xsl:template>
+<xsl:template match="sigma" mode="docImageType">&amp;sigma;</xsl:template>
+<xsl:template match="tau" mode="docImageType">&amp;tau;</xsl:template>
+<xsl:template match="upsilon" mode="docImageType">&amp;upsilon;</xsl:template>
+<xsl:template match="phi" mode="docImageType">&amp;phi;</xsl:template>
+<xsl:template match="chi" mode="docImageType">&amp;chi;</xsl:template>
+<xsl:template match="psi" mode="docImageType">&amp;psi;</xsl:template>
+<xsl:template match="omega" mode="docImageType">&amp;omega;</xsl:template>
+<xsl:template match="sigmaf" mode="docImageType">&amp;sigmaf;</xsl:template>
+<xsl:template match="sect" mode="docImageType">&amp;sect;</xsl:template>
+<xsl:template match="deg" mode="docImageType">&amp;deg;</xsl:template>
+<xsl:template match="prime" mode="docImageType">&amp;prime;</xsl:template>
+<xsl:template match="Prime" mode="docImageType">&amp;Prime;</xsl:template>
+<xsl:template match="infin" mode="docImageType">&amp;infin;</xsl:template>
+<xsl:template match="empty" mode="docImageType">&amp;empty;</xsl:template>
+<xsl:template match="plusmn" mode="docImageType">&amp;plusmn;</xsl:template>
+<xsl:template match="times" mode="docImageType">&amp;times;</xsl:template>
+<xsl:template match="minus" mode="docImageType">&amp;minus;</xsl:template>
+<xsl:template match="sdot" mode="docImageType">&amp;sdot;</xsl:template>
+<xsl:template match="part" mode="docImageType">&amp;part;</xsl:template>
+<xsl:template match="nabla" mode="docImageType">&amp;nabla;</xsl:template>
+<xsl:template match="radic" mode="docImageType">&amp;radic;</xsl:template>
+<xsl:template match="perp" mode="docImageType">&amp;perp;</xsl:template>
+<xsl:template match="sum" mode="docImageType">&amp;sum;</xsl:template>
+<xsl:template match="int" mode="docImageType">&amp;int;</xsl:template>
+<xsl:template match="prod" mode="docImageType">&amp;prod;</xsl:template>
+<xsl:template match="sim" mode="docImageType">&amp;sim;</xsl:template>
+<xsl:template match="asymp" mode="docImageType">&amp;asymp;</xsl:template>
+<xsl:template match="ne" mode="docImageType">&amp;ne;</xsl:template>
+<xsl:template match="equiv" mode="docImageType">&amp;equiv;</xsl:template>
+<xsl:template match="prop" mode="docImageType">&amp;prop;</xsl:template>
+<xsl:template match="le" mode="docImageType">&amp;le;</xsl:template>
+<xsl:template match="ge" mode="docImageType">&amp;ge;</xsl:template>
+<xsl:template match="larr" mode="docImageType">&amp;larr;</xsl:template>
+<xsl:template match="rarr" mode="docImageType">&amp;rarr;</xsl:template>
+<xsl:template match="isin" mode="docImageType">&amp;isin;</xsl:template>
+<xsl:template match="notin" mode="docImageType">&amp;notin;</xsl:template>
+<xsl:template match="lceil" mode="docImageType">&amp;lceil;</xsl:template>
+<xsl:template match="rceil" mode="docImageType">&amp;rceil;</xsl:template>
+<xsl:template match="lfloor" mode="docImageType">&amp;lfloor;</xsl:template>
+<xsl:template match="rfloor" mode="docImageType">&amp;rfloor;</xsl:template>
+<xsl:template match="*" mode="docFileType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template name="docFileType">
+<xsl:apply-templates mode="docFileType"/>
+</xsl:template>
+<xsl:template match="ulink" mode="docFileType">
+<xsl:call-template name="docURLLink"/>
+</xsl:template>
+<xsl:template match="bold" mode="docFileType">
+<xsl:call-template name="docMarkupType"/>
+</xsl:template>
+<xsl:template match="emphasis" mode="docFileType">
+<xsl:call-template name="docMarkupType"/>
+</xsl:template>
+<xsl:template match="computeroutput" mode="docFileType">
+<xsl:call-template name="docMarkupType"/>
+</xsl:template>
+<xsl:template match="subscript" mode="docFileType">
+<xsl:call-template name="docMarkupType"/>
+</xsl:template>
+<xsl:template match="superscript" mode="docFileType">
+<xsl:call-template name="docMarkupType"/>
+</xsl:template>
+<xsl:template match="center" mode="docFileType">
+<xsl:call-template name="docMarkupType"/>
+</xsl:template>
+<xsl:template match="small" mode="docFileType">
+<xsl:call-template name="docMarkupType"/>
+</xsl:template>
+<xsl:template match="htmlonly" mode="docFileType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="manonly" mode="docFileType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="xmlonly" mode="docFileType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="rtfonly" mode="docFileType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="latexonly" mode="docFileType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="dot" mode="docFileType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="msc" mode="docFileType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="anchor" mode="docFileType">
+<xsl:call-template name="docAnchorType"/>
+</xsl:template>
+<xsl:template match="formula" mode="docFileType">
+<xsl:call-template name="docFormulaType"/>
+</xsl:template>
+<xsl:template match="ref" mode="docFileType">
+<xsl:call-template name="docRefTextType"/>
+</xsl:template>
+<xsl:template match="copy" mode="docFileType">&amp;copy;</xsl:template>
+<xsl:template match="trademark" mode="docFileType">&amp;trademark;</xsl:template>
+<xsl:template match="registered" mode="docFileType">&amp;registered;</xsl:template>
+<xsl:template match="lsquo" mode="docFileType">&amp;lsquo;</xsl:template>
+<xsl:template match="rsquo" mode="docFileType">&amp;rsquo;</xsl:template>
+<xsl:template match="ldquo" mode="docFileType">&amp;ldquo;</xsl:template>
+<xsl:template match="rdquo" mode="docFileType">&amp;rdquo;</xsl:template>
+<xsl:template match="ndash" mode="docFileType">&amp;ndash;</xsl:template>
+<xsl:template match="mdash" mode="docFileType">&amp;mdash;</xsl:template>
+<xsl:template match="umlaut" mode="docFileType">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="acute" mode="docFileType">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="grave" mode="docFileType">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="circ" mode="docFileType">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="slash" mode="docFileType">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="tilde" mode="docFileType">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="cedil" mode="docFileType">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="ring" mode="docFileType">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="szlig" mode="docFileType">&amp;szlig;</xsl:template>
+<xsl:template match="nonbreakablespace" mode="docFileType">&amp;nbsp;</xsl:template>
+<xsl:template match="aelig" mode="docFileType">&amp;aelig;</xsl:template>
+<xsl:template match="AElig" mode="docFileType">&amp;AElig;</xsl:template>
+<xsl:template match="Gamma" mode="docFileType">&amp;Gamma;</xsl:template>
+<xsl:template match="Delta" mode="docFileType">&amp;Delta;</xsl:template>
+<xsl:template match="Theta" mode="docFileType">&amp;Theta;</xsl:template>
+<xsl:template match="Lambda" mode="docFileType">&amp;Lambda;</xsl:template>
+<xsl:template match="Xi" mode="docFileType">&amp;Xi;</xsl:template>
+<xsl:template match="Pi" mode="docFileType">&amp;Pi;</xsl:template>
+<xsl:template match="Sigma" mode="docFileType">&amp;Sigma;</xsl:template>
+<xsl:template match="Upsilon" mode="docFileType">&amp;Upsilon;</xsl:template>
+<xsl:template match="Phi" mode="docFileType">&amp;Phi;</xsl:template>
+<xsl:template match="Psi" mode="docFileType">&amp;Psi;</xsl:template>
+<xsl:template match="Omega" mode="docFileType">&amp;Omega;</xsl:template>
+<xsl:template match="alpha" mode="docFileType">&amp;alpha;</xsl:template>
+<xsl:template match="beta" mode="docFileType">&amp;beta;</xsl:template>
+<xsl:template match="gamma" mode="docFileType">&amp;gamma;</xsl:template>
+<xsl:template match="delta" mode="docFileType">&amp;delta;</xsl:template>
+<xsl:template match="epsilon" mode="docFileType">&amp;epsilon;</xsl:template>
+<xsl:template match="zeta" mode="docFileType">&amp;zeta;</xsl:template>
+<xsl:template match="eta" mode="docFileType">&amp;eta;</xsl:template>
+<xsl:template match="theta" mode="docFileType">&amp;theta;</xsl:template>
+<xsl:template match="iota" mode="docFileType">&amp;iota;</xsl:template>
+<xsl:template match="kappa" mode="docFileType">&amp;kappa;</xsl:template>
+<xsl:template match="lambda" mode="docFileType">&amp;lambda;</xsl:template>
+<xsl:template match="mu" mode="docFileType">&amp;mu;</xsl:template>
+<xsl:template match="nu" mode="docFileType">&amp;nu;</xsl:template>
+<xsl:template match="xi" mode="docFileType">&amp;xi;</xsl:template>
+<xsl:template match="pi" mode="docFileType">&amp;pi;</xsl:template>
+<xsl:template match="rho" mode="docFileType">&amp;rho;</xsl:template>
+<xsl:template match="sigma" mode="docFileType">&amp;sigma;</xsl:template>
+<xsl:template match="tau" mode="docFileType">&amp;tau;</xsl:template>
+<xsl:template match="upsilon" mode="docFileType">&amp;upsilon;</xsl:template>
+<xsl:template match="phi" mode="docFileType">&amp;phi;</xsl:template>
+<xsl:template match="chi" mode="docFileType">&amp;chi;</xsl:template>
+<xsl:template match="psi" mode="docFileType">&amp;psi;</xsl:template>
+<xsl:template match="omega" mode="docFileType">&amp;omega;</xsl:template>
+<xsl:template match="sigmaf" mode="docFileType">&amp;sigmaf;</xsl:template>
+<xsl:template match="sect" mode="docFileType">&amp;sect;</xsl:template>
+<xsl:template match="deg" mode="docFileType">&amp;deg;</xsl:template>
+<xsl:template match="prime" mode="docFileType">&amp;prime;</xsl:template>
+<xsl:template match="Prime" mode="docFileType">&amp;Prime;</xsl:template>
+<xsl:template match="infin" mode="docFileType">&amp;infin;</xsl:template>
+<xsl:template match="empty" mode="docFileType">&amp;empty;</xsl:template>
+<xsl:template match="plusmn" mode="docFileType">&amp;plusmn;</xsl:template>
+<xsl:template match="times" mode="docFileType">&amp;times;</xsl:template>
+<xsl:template match="minus" mode="docFileType">&amp;minus;</xsl:template>
+<xsl:template match="sdot" mode="docFileType">&amp;sdot;</xsl:template>
+<xsl:template match="part" mode="docFileType">&amp;part;</xsl:template>
+<xsl:template match="nabla" mode="docFileType">&amp;nabla;</xsl:template>
+<xsl:template match="radic" mode="docFileType">&amp;radic;</xsl:template>
+<xsl:template match="perp" mode="docFileType">&amp;perp;</xsl:template>
+<xsl:template match="sum" mode="docFileType">&amp;sum;</xsl:template>
+<xsl:template match="int" mode="docFileType">&amp;int;</xsl:template>
+<xsl:template match="prod" mode="docFileType">&amp;prod;</xsl:template>
+<xsl:template match="sim" mode="docFileType">&amp;sim;</xsl:template>
+<xsl:template match="asymp" mode="docFileType">&amp;asymp;</xsl:template>
+<xsl:template match="ne" mode="docFileType">&amp;ne;</xsl:template>
+<xsl:template match="equiv" mode="docFileType">&amp;equiv;</xsl:template>
+<xsl:template match="prop" mode="docFileType">&amp;prop;</xsl:template>
+<xsl:template match="le" mode="docFileType">&amp;le;</xsl:template>
+<xsl:template match="ge" mode="docFileType">&amp;ge;</xsl:template>
+<xsl:template match="larr" mode="docFileType">&amp;larr;</xsl:template>
+<xsl:template match="rarr" mode="docFileType">&amp;rarr;</xsl:template>
+<xsl:template match="isin" mode="docFileType">&amp;isin;</xsl:template>
+<xsl:template match="notin" mode="docFileType">&amp;notin;</xsl:template>
+<xsl:template match="lceil" mode="docFileType">&amp;lceil;</xsl:template>
+<xsl:template match="rceil" mode="docFileType">&amp;rceil;</xsl:template>
+<xsl:template match="lfloor" mode="docFileType">&amp;lfloor;</xsl:template>
+<xsl:template match="rfloor" mode="docFileType">&amp;rfloor;</xsl:template>
+<xsl:template match="*" mode="docTocItemType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template name="docTocItemType">
+<xsl:apply-templates mode="docTocItemType"/>
+</xsl:template>
+<xsl:template match="ulink" mode="docTocItemType">
+<xsl:call-template name="docURLLink"/>
+</xsl:template>
+<xsl:template match="bold" mode="docTocItemType">
+<xsl:call-template name="docMarkupType"/>
+</xsl:template>
+<xsl:template match="emphasis" mode="docTocItemType">
+<xsl:call-template name="docMarkupType"/>
+</xsl:template>
+<xsl:template match="computeroutput" mode="docTocItemType">
+<xsl:call-template name="docMarkupType"/>
+</xsl:template>
+<xsl:template match="subscript" mode="docTocItemType">
+<xsl:call-template name="docMarkupType"/>
+</xsl:template>
+<xsl:template match="superscript" mode="docTocItemType">
+<xsl:call-template name="docMarkupType"/>
+</xsl:template>
+<xsl:template match="center" mode="docTocItemType">
+<xsl:call-template name="docMarkupType"/>
+</xsl:template>
+<xsl:template match="small" mode="docTocItemType">
+<xsl:call-template name="docMarkupType"/>
+</xsl:template>
+<xsl:template match="htmlonly" mode="docTocItemType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="manonly" mode="docTocItemType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="xmlonly" mode="docTocItemType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="rtfonly" mode="docTocItemType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="latexonly" mode="docTocItemType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="dot" mode="docTocItemType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="msc" mode="docTocItemType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="anchor" mode="docTocItemType">
+<xsl:call-template name="docAnchorType"/>
+</xsl:template>
+<xsl:template match="formula" mode="docTocItemType">
+<xsl:call-template name="docFormulaType"/>
+</xsl:template>
+<xsl:template match="ref" mode="docTocItemType">
+<xsl:call-template name="docRefTextType"/>
+</xsl:template>
+<xsl:template match="copy" mode="docTocItemType">&amp;copy;</xsl:template>
+<xsl:template match="trademark" mode="docTocItemType">&amp;trademark;</xsl:template>
+<xsl:template match="registered" mode="docTocItemType">&amp;registered;</xsl:template>
+<xsl:template match="lsquo" mode="docTocItemType">&amp;lsquo;</xsl:template>
+<xsl:template match="rsquo" mode="docTocItemType">&amp;rsquo;</xsl:template>
+<xsl:template match="ldquo" mode="docTocItemType">&amp;ldquo;</xsl:template>
+<xsl:template match="rdquo" mode="docTocItemType">&amp;rdquo;</xsl:template>
+<xsl:template match="ndash" mode="docTocItemType">&amp;ndash;</xsl:template>
+<xsl:template match="mdash" mode="docTocItemType">&amp;mdash;</xsl:template>
+<xsl:template match="umlaut" mode="docTocItemType">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="acute" mode="docTocItemType">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="grave" mode="docTocItemType">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="circ" mode="docTocItemType">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="slash" mode="docTocItemType">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="tilde" mode="docTocItemType">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="cedil" mode="docTocItemType">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="ring" mode="docTocItemType">
+<xsl:value-of select="@char"/>
+</xsl:template>
+<xsl:template match="szlig" mode="docTocItemType">&amp;szlig;</xsl:template>
+<xsl:template match="nonbreakablespace" mode="docTocItemType">&amp;nbsp;</xsl:template>
+<xsl:template match="aelig" mode="docTocItemType">&amp;aelig;</xsl:template>
+<xsl:template match="AElig" mode="docTocItemType">&amp;AElig;</xsl:template>
+<xsl:template match="Gamma" mode="docTocItemType">&amp;Gamma;</xsl:template>
+<xsl:template match="Delta" mode="docTocItemType">&amp;Delta;</xsl:template>
+<xsl:template match="Theta" mode="docTocItemType">&amp;Theta;</xsl:template>
+<xsl:template match="Lambda" mode="docTocItemType">&amp;Lambda;</xsl:template>
+<xsl:template match="Xi" mode="docTocItemType">&amp;Xi;</xsl:template>
+<xsl:template match="Pi" mode="docTocItemType">&amp;Pi;</xsl:template>
+<xsl:template match="Sigma" mode="docTocItemType">&amp;Sigma;</xsl:template>
+<xsl:template match="Upsilon" mode="docTocItemType">&amp;Upsilon;</xsl:template>
+<xsl:template match="Phi" mode="docTocItemType">&amp;Phi;</xsl:template>
+<xsl:template match="Psi" mode="docTocItemType">&amp;Psi;</xsl:template>
+<xsl:template match="Omega" mode="docTocItemType">&amp;Omega;</xsl:template>
+<xsl:template match="alpha" mode="docTocItemType">&amp;alpha;</xsl:template>
+<xsl:template match="beta" mode="docTocItemType">&amp;beta;</xsl:template>
+<xsl:template match="gamma" mode="docTocItemType">&amp;gamma;</xsl:template>
+<xsl:template match="delta" mode="docTocItemType">&amp;delta;</xsl:template>
+<xsl:template match="epsilon" mode="docTocItemType">&amp;epsilon;</xsl:template>
+<xsl:template match="zeta" mode="docTocItemType">&amp;zeta;</xsl:template>
+<xsl:template match="eta" mode="docTocItemType">&amp;eta;</xsl:template>
+<xsl:template match="theta" mode="docTocItemType">&amp;theta;</xsl:template>
+<xsl:template match="iota" mode="docTocItemType">&amp;iota;</xsl:template>
+<xsl:template match="kappa" mode="docTocItemType">&amp;kappa;</xsl:template>
+<xsl:template match="lambda" mode="docTocItemType">&amp;lambda;</xsl:template>
+<xsl:template match="mu" mode="docTocItemType">&amp;mu;</xsl:template>
+<xsl:template match="nu" mode="docTocItemType">&amp;nu;</xsl:template>
+<xsl:template match="xi" mode="docTocItemType">&amp;xi;</xsl:template>
+<xsl:template match="pi" mode="docTocItemType">&amp;pi;</xsl:template>
+<xsl:template match="rho" mode="docTocItemType">&amp;rho;</xsl:template>
+<xsl:template match="sigma" mode="docTocItemType">&amp;sigma;</xsl:template>
+<xsl:template match="tau" mode="docTocItemType">&amp;tau;</xsl:template>
+<xsl:template match="upsilon" mode="docTocItemType">&amp;upsilon;</xsl:template>
+<xsl:template match="phi" mode="docTocItemType">&amp;phi;</xsl:template>
+<xsl:template match="chi" mode="docTocItemType">&amp;chi;</xsl:template>
+<xsl:template match="psi" mode="docTocItemType">&amp;psi;</xsl:template>
+<xsl:template match="omega" mode="docTocItemType">&amp;omega;</xsl:template>
+<xsl:template match="sigmaf" mode="docTocItemType">&amp;sigmaf;</xsl:template>
+<xsl:template match="sect" mode="docTocItemType">&amp;sect;</xsl:template>
+<xsl:template match="deg" mode="docTocItemType">&amp;deg;</xsl:template>
+<xsl:template match="prime" mode="docTocItemType">&amp;prime;</xsl:template>
+<xsl:template match="Prime" mode="docTocItemType">&amp;Prime;</xsl:template>
+<xsl:template match="infin" mode="docTocItemType">&amp;infin;</xsl:template>
+<xsl:template match="empty" mode="docTocItemType">&amp;empty;</xsl:template>
+<xsl:template match="plusmn" mode="docTocItemType">&amp;plusmn;</xsl:template>
+<xsl:template match="times" mode="docTocItemType">&amp;times;</xsl:template>
+<xsl:template match="minus" mode="docTocItemType">&amp;minus;</xsl:template>
+<xsl:template match="sdot" mode="docTocItemType">&amp;sdot;</xsl:template>
+<xsl:template match="part" mode="docTocItemType">&amp;part;</xsl:template>
+<xsl:template match="nabla" mode="docTocItemType">&amp;nabla;</xsl:template>
+<xsl:template match="radic" mode="docTocItemType">&amp;radic;</xsl:template>
+<xsl:template match="perp" mode="docTocItemType">&amp;perp;</xsl:template>
+<xsl:template match="sum" mode="docTocItemType">&amp;sum;</xsl:template>
+<xsl:template match="int" mode="docTocItemType">&amp;int;</xsl:template>
+<xsl:template match="prod" mode="docTocItemType">&amp;prod;</xsl:template>
+<xsl:template match="sim" mode="docTocItemType">&amp;sim;</xsl:template>
+<xsl:template match="asymp" mode="docTocItemType">&amp;asymp;</xsl:template>
+<xsl:template match="ne" mode="docTocItemType">&amp;ne;</xsl:template>
+<xsl:template match="equiv" mode="docTocItemType">&amp;equiv;</xsl:template>
+<xsl:template match="prop" mode="docTocItemType">&amp;prop;</xsl:template>
+<xsl:template match="le" mode="docTocItemType">&amp;le;</xsl:template>
+<xsl:template match="ge" mode="docTocItemType">&amp;ge;</xsl:template>
+<xsl:template match="larr" mode="docTocItemType">&amp;larr;</xsl:template>
+<xsl:template match="rarr" mode="docTocItemType">&amp;rarr;</xsl:template>
+<xsl:template match="isin" mode="docTocItemType">&amp;isin;</xsl:template>
+<xsl:template match="notin" mode="docTocItemType">&amp;notin;</xsl:template>
+<xsl:template match="lceil" mode="docTocItemType">&amp;lceil;</xsl:template>
+<xsl:template match="rceil" mode="docTocItemType">&amp;rceil;</xsl:template>
+<xsl:template match="lfloor" mode="docTocItemType">&amp;lfloor;</xsl:template>
+<xsl:template match="rfloor" mode="docTocItemType">&amp;rfloor;</xsl:template>
+<xsl:template name="docTocListType">
+<xsl:apply-templates mode="docTocListType"/>
+</xsl:template>
+<xsl:template match="tocitem" mode="docTocListType">
+<xsl:call-template name="docTocItemType"/>
+</xsl:template>
+<xsl:template name="docLanguageType">
+<xsl:apply-templates mode="docLanguageType"/>
+</xsl:template>
+<xsl:template match="para" mode="docLanguageType">
+<xsl:call-template name="docParaType"/>
+</xsl:template>
+<xsl:template name="docParamListType">
+<xsl:apply-templates mode="docParamListType"/>
+</xsl:template>
+<xsl:template match="parameteritem" mode="docParamListType">
+<xsl:call-template name="docParamListItem"/>
+</xsl:template>
+<xsl:template name="docParamListItem">
+<xsl:apply-templates mode="docParamListItem"/>
+</xsl:template>
+<xsl:template match="parameternamelist" mode="docParamListItem">
+<xsl:call-template name="docParamNameList"/>
+</xsl:template>
+<xsl:template match="parameterdescription" mode="docParamListItem">
+<xsl:call-template name="descriptionType"/>
+</xsl:template>
+<xsl:template name="docParamNameList">
+<xsl:apply-templates mode="docParamNameList"/>
+</xsl:template>
+<xsl:template match="parametertype" mode="docParamNameList">
+<xsl:call-template name="docParamType"/>
+</xsl:template>
+<xsl:template match="parametername" mode="docParamNameList">
+<xsl:call-template name="docParamName"/>
+</xsl:template>
+<xsl:template match="*" mode="docParamType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template name="docParamType">
+<xsl:apply-templates mode="docParamType"/>
+</xsl:template>
+<xsl:template match="ref" mode="docParamType">
+<xsl:call-template name="refTextType"/>
+</xsl:template>
+<xsl:template match="*" mode="docParamName">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template name="docParamName">
+<xsl:apply-templates mode="docParamName"/>
+</xsl:template>
+<xsl:template match="ref" mode="docParamName">
+<xsl:call-template name="refTextType"/>
+</xsl:template>
+<xsl:template name="docXRefSectType">
+<xsl:apply-templates mode="docXRefSectType"/>
+</xsl:template>
+<xsl:template match="xreftitle" mode="docXRefSectType">
+<xsl:value-of select="text()"/>
+</xsl:template>
+<xsl:template match="xrefdescription" mode="docXRefSectType">
+<xsl:call-template name="descriptionType"/>
+</xsl:template>
+<xsl:template name="docCopyType">
+<xsl:apply-templates mode="docCopyType"/>
+</xsl:template>
+<xsl:template match="para" mode="docCopyType">
+<xsl:call-template name="docParaType"/>
+</xsl:template>
+<xsl:template match="sect1" mode="docCopyType">
+<xsl:call-template name="docSect1Type"/>
+</xsl:template>
+<xsl:template match="internal" mode="docCopyType">
+<xsl:call-template name="docInternalType"/>
+</xsl:template>
+<xsl:template name="docBlockQuoteType">
+<xsl:apply-templates mode="docBlockQuoteType"/>
+</xsl:template>
+<xsl:template match="para" mode="docBlockQuoteType">
+<xsl:call-template name="docParaType"/>
+</xsl:template>
+<xsl:template name="docParBlockType">
+<xsl:apply-templates mode="docParBlockType"/>
+</xsl:template>
+<xsl:template match="para" mode="docParBlockType">
+<xsl:call-template name="docParaType"/>
+</xsl:template>
+<xsl:template name="docCharType">
+<xsl:apply-templates mode="docCharType"/>
+</xsl:template>
+<xsl:template name="docEmptyType">
+<xsl:apply-templates mode="docEmptyType"/>
+</xsl:template>
+</xsl:stylesheet>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/schemas/doxygen/csharp/briefsections.xsl	Wed May 14 01:22:21 2014 +0400
@@ -0,0 +1,58 @@
+<?xml version='1.0' encoding='utf-8'?>
+<xsl:stylesheet
+    version="1.0"
+    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+>
+	<xsl:template match="memberdef" mode="sectiondefType">
+		<div class="memberdef">
+			<div class="memberdefName">
+				<xsl:call-template name="memberdefName" />
+			</div>
+			<div class="memberdefDescription">
+				<xsl:call-template name="memberdefDescription" />
+			</div>
+		</div>
+	</xsl:template>
+
+	<xsl:template name="memberdefName">
+		<span class="textPre">
+			<xsl:if test="@virt = 'virtual'">
+				<xsl:text>virtual </xsl:text>
+			</xsl:if>
+			<xsl:if test="@kind = 'enum'">
+				<xsl:text>enum </xsl:text>
+			</xsl:if>
+			<xsl:if test="type">
+				<xsl:apply-templates select="type" mode="memberdefType" />
+				<xsl:text disable-output-escaping="yes">&amp;nbsp;</xsl:text>
+			</xsl:if>
+			<xsl:call-template name="link">
+				<xsl:with-param name="refid" select="@id" />
+				<xsl:with-param name="kind" select="'member'" />
+				<xsl:with-param name="external" />
+				<xsl:with-param name="text">
+					<xsl:apply-templates select="name" mode="memberdefType" />
+				</xsl:with-param>
+			</xsl:call-template>
+			<xsl:if test="argsstring">
+				<xsl:text disable-output-escaping="yes">&amp;nbsp;</xsl:text>
+				<xsl:apply-templates select="argsstring" mode="memberdefType"/>
+			</xsl:if>
+			<xsl:if test="initializer">
+				<xsl:text> </xsl:text>
+				<xsl:apply-templates select="initializer" mode="memberdefType" />
+			</xsl:if>
+			<xsl:if test="@kind = 'property'">
+				<xsl:text>{ </xsl:text>
+				<xsl:if test="@gettable = 'yes'"><xsl:text>get; </xsl:text></xsl:if>
+				<xsl:if test="@settable = 'yes'"><xsl:text>set; </xsl:text></xsl:if>
+				<xsl:text>}</xsl:text>
+			</xsl:if>
+		</span>
+	</xsl:template>
+
+	<xsl:template name="memberdefDescription">
+		<xsl:apply-templates select="briefdescription"
+			mode="memberdefType" />
+	</xsl:template>
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/schemas/doxygen/csharp/class.xsl	Wed May 14 01:22:21 2014 +0400
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet
+    version="1.0"
+    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+>
+    <xsl:import href="default.xsl"/>
+    <xsl:include href="briefsections.xsl"/>
+    <xsl:template name="compounddefType">
+		<h1>
+			<xsl:apply-templates select="title|compoundname"
+				mode="compounddefType" />
+		</h1>
+		<div class="briefdescription">
+			<xsl:apply-templates select="briefdescription"
+				mode="compounddefType" />
+		</div>
+		<div class="dox-source-code">
+			<span class="keyword">
+				<xsl:value-of select="concat(@prot,' ')"/>
+				<xsl:if test="@abstract"><xsl:text>abstract </xsl:text></xsl:if>
+				<xsl:if test="@sealed"><xsl:text>sealed </xsl:text></xsl:if>
+				<xsl:value-of select="concat(@kind,' ')"/>
+			</span>
+			<xsl:call-template name="short-type-name">
+				<xsl:with-param name="typename" select="compoundname"/>
+			</xsl:call-template>
+			<xsl:if test="basecompoundref">
+				<xsl:text> : </xsl:text>
+				<xsl:for-each select="basecompoundref">
+					<xsl:call-template name="compoundRefType"/>
+					<xsl:if test="not(last() = position())">
+						<xsl:text>, </xsl:text>
+					</xsl:if>
+				</xsl:for-each>
+			</xsl:if>
+		</div>
+		<div class="detaileddescription">
+			<xsl:apply-templates select="detaileddescription"
+				mode="compounddefType" />
+		</div>
+
+		<xsl:if test="innerclass">
+			<div class="sectiondef">
+				<h3>Inner classes</h3>
+				<ul>
+				<xsl:apply-templates select="innerclass"
+					mode="compounddefType" />
+				</ul>
+			</div>
+		</xsl:if>
+
+		<div class="members">
+			<xsl:apply-templates select="sectiondef" mode="compounddefType" />
+		</div>
+
+		<xsl:if test="derivedcompoundref">
+			<div class="sectiondef">
+				<h3>Derived</h3>
+				<ul class="derivedcompoundref-list">
+				<xsl:apply-templates select="derivedcompoundref"
+					mode="compounddefType" />
+				</ul>
+			</div>
+		</xsl:if>
+	</xsl:template>
+	<xsl:template match="derivedcompoundref" mode="compounddefType">
+		<li><xsl:apply-imports/></li>
+	</xsl:template>
+	<xsl:template match="innerclass" mode="compounddefType">
+		<li><xsl:apply-imports/></li>
+	</xsl:template>
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/schemas/doxygen/csharp/default.xsl	Wed May 14 01:22:21 2014 +0400
@@ -0,0 +1,396 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet version="1.0"
+	xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+	<xsl:import href="base.xsl" />
+	<xsl:param name="compounds" />
+	<xsl:param name="members" />
+	<xsl:variable name="labels" select="document('labels.xml')"/>
+	
+	<xsl:key name="param-key" use="concat(generate-id(parent::node()),declname/text())" match="memberdef/param[declname]"/>
+
+	<xsl:output method="html" encoding="utf-8" indent="yes"
+		omit-xml-declaration="yes" />
+
+	<!-- The main template -->
+	<xsl:template name="compounddefType">
+		<h1>
+			<xsl:apply-templates select="title|compoundname"
+				mode="compounddefType" />
+		</h1>
+		<div class="briefdescription">
+			<xsl:apply-templates select="briefdescription"
+				mode="compounddefType" />
+		</div>
+		<div class="basecompoundref">
+			<pre>
+				<xsl:apply-templates select="basecompoundref"
+					mode="compounddefType" />
+			</pre>
+		</div>
+		<div class="detaileddescription">
+			<xsl:apply-templates select="detaileddescription"
+				mode="compounddefType" />
+		</div>
+
+		<div class="innerCompounds">
+			<xsl:apply-templates select="innerclass | innernamespace"
+				mode="compounddefType" />
+		</div>
+
+		<div class="members">
+			<xsl:apply-templates select="sectiondef" mode="compounddefType" />
+		</div>
+
+		<xsl:if test="derivedcompoundref">
+			<div class="derivedcompoundref">
+				<h2>Derived</h2>
+				<xsl:apply-templates select="derivedcompoundref"
+					mode="compounddefType" />
+			</div>
+		</xsl:if>
+	</xsl:template>
+
+	<xsl:template match="compoundname" mode="compounddefType">
+		<xsl:call-template name="full-type-name">
+			<xsl:with-param name="typename" select="text()" />
+		</xsl:call-template>
+	</xsl:template>
+
+	<!-- handle references -->
+	<xsl:template name="compoundRefType">
+		<xsl:choose>
+			<xsl:when test="@refid">
+				<xsl:call-template name="link">
+					<xsl:with-param name="class" select="'doxCompoundRef'"/>
+					<xsl:with-param name="refid" select="@refid" />
+	   				<xsl:with-param name="kind" select="'compound'" />
+	   				<xsl:with-param name="external" />
+	   				<xsl:with-param name="text" select="text()" />
+				</xsl:call-template>
+			</xsl:when>
+			<xsl:otherwise>
+				<span class="doxCompoundRef">
+					<xsl:value-of select="text()" />
+				</span>
+			</xsl:otherwise>
+		</xsl:choose>
+	</xsl:template>
+
+	<xsl:template name="refTextType">
+		<xsl:element name="a">
+			<xsl:attribute name="href">
+    			<xsl:call-template name="ref">
+    				<xsl:with-param name="refid" select="@refid" />
+    				<xsl:with-param name="kind" select="@kindref" />
+    				<xsl:with-param name="external" select="@external" />
+    			</xsl:call-template>
+    		</xsl:attribute>
+			<xsl:value-of select="text()" />
+		</xsl:element>
+	</xsl:template>
+
+	<xsl:template match="innerclass" mode="compounddefType">
+		<xsl:call-template name="link">
+			<xsl:with-param name="refid" select="@refid" />
+			<xsl:with-param name="kind" select="'compound'" />
+			<xsl:with-param name="external" />
+			<xsl:with-param name="text" >
+				<xsl:call-template name="short-type-name">
+					<xsl:with-param name="typename" select="text()" />
+				</xsl:call-template> 
+			</xsl:with-param>
+		</xsl:call-template>
+	</xsl:template>
+
+	<xsl:template match="innernamespace" mode="compounddefType">
+		<xsl:element name="a">
+			<xsl:attribute name="href">
+            	<xsl:call-template name="ref">
+    				<xsl:with-param name="refid" select="@refid" />
+    				<xsl:with-param name="kind" select="'compound'" />
+    				<xsl:with-param name="external" />
+    			</xsl:call-template>
+            </xsl:attribute>
+			<xsl:call-template name="short-type-name">
+				<xsl:with-param name="typename" select="text()" />
+			</xsl:call-template>
+		</xsl:element>
+	</xsl:template>
+
+	<xsl:template name="docRefTextType">
+		<xsl:element name="a">
+			<xsl:attribute name="href">
+    			<xsl:call-template name="ref">
+    				<xsl:with-param name="refid" select="@refid" />
+    				<xsl:with-param name="kind" select="@kindref" />
+    				<xsl:with-param name="external" select="@external" />
+    			</xsl:call-template>
+    		</xsl:attribute>
+			<xsl:apply-templates mode="docRefTextType" />
+		</xsl:element>
+	</xsl:template>
+
+	<!-- paragraph -->
+	<xsl:template name="docParaType">
+		<p class="para">
+			<xsl:apply-templates mode="docParaType" />
+		</p>
+	</xsl:template>
+
+	<!-- inline markup -->
+	<xsl:template name="docMarkupType">
+		<xsl:choose>
+			<xsl:when test="name() = 'computeroutput'">
+				<span class="docTextPre">
+					<xsl:apply-templates mode="docMarkupType" />
+				</span>
+			</xsl:when>
+			<xsl:otherwise>
+				<xsl:apply-templates mode="docMarkupType" />
+			</xsl:otherwise>
+		</xsl:choose>
+	</xsl:template>
+
+	<!-- paramlist -->
+	<xsl:template name="docParamListType">
+		<div class="parameterlist">
+			<h4>
+				<xsl:call-template name="translate-paramlist">
+					<xsl:with-param name="name" select="@kind"/>
+				</xsl:call-template>
+			</h4>
+			<xsl:choose>
+				<xsl:when test="@kind = 'param'">
+					<xsl:call-template name="docParamListType-param"/>
+				</xsl:when>
+				<xsl:otherwise>
+					<table class="pretty-table">
+						<tr>
+							<th>
+								Parameter
+							</th>
+							<th>
+								Description
+							</th>
+						</tr>
+						<xsl:apply-templates mode="docParamListType" />
+					</table>
+				</xsl:otherwise>
+			</xsl:choose>
+		</div>
+	</xsl:template>
+
+	<xsl:template match="parameteritem" mode="docParamListType">
+		<tr>
+			<td>
+				<xsl:apply-templates select="parameternamelist" />
+			</td>
+			<td>
+				<xsl:apply-templates select="parameterdescription" />
+			</td>
+		</tr>
+	</xsl:template>
+	
+	<xsl:template name="docParamListType-param">
+		<table class="pretty-table">
+			<tr>
+				<th>
+					Type
+				</th>
+				<th>
+					Parameter
+				</th>
+				<th>
+					Description
+				</th>
+			</tr>
+			<xsl:apply-templates mode="docParamListType-param" />
+		</table>
+	</xsl:template>
+	
+	<xsl:template match="parameteritem" mode="docParamListType-param">
+		<tr>
+			<td>
+				<xsl:apply-templates select="key('param-key', concat(generate-id(ancestor::memberdef),parameternamelist/parametername/text()))/type" mode="paramType" />
+			</td>
+			<td>
+				<xsl:apply-templates select="parameternamelist" mode="docParamListItem"/>
+			</td>
+			<td>
+				<xsl:apply-templates select="parameterdescription" mode="docParamListItem"/>
+			</td>
+		</tr>
+	</xsl:template>
+
+	<!-- section -->
+	<xsl:template name="sectiondefType">
+		<div class="sectiondef">
+			<h3>
+				<xsl:call-template name="section-label">
+					<xsl:with-param name="name" select="@kind"/>
+				</xsl:call-template>
+			</h3>
+			<div>
+				<xsl:apply-templates mode="sectiondefType" />
+			</div>
+		</div>
+	</xsl:template>
+	
+	<xsl:template name="docSimpleSectType">
+		<div class="simplesection">
+			<h3>
+				<xsl:call-template name="translate-simplesection">
+					<xsl:with-param name="name" select="@kind"/>
+				</xsl:call-template>
+			</h3>
+			<div>
+				<xsl:apply-templates mode="docSimpleSectType" />
+			</div>
+		</div>
+	</xsl:template>
+	
+	<xsl:template match="simplesectsep" mode="docSimpleSectType"><hr class="simplesectsep" /></xsl:template>
+	
+	<!-- SOURCE CODE FORMATTING -->
+	
+	<xsl:template name="listingType">
+		<xsl:apply-templates mode="listingType"/>
+	</xsl:template>
+	<xsl:template name="codelineType">
+		<div>
+			<xsl:apply-templates mode="codelineType"/>
+		</div>
+	</xsl:template>
+	<xsl:template match="sp" mode="highlightType">
+		<xsl:text disable-output-escaping="yes">&amp;nbsp;</xsl:text>
+	</xsl:template>
+	<xsl:template match="highlight" mode="codelineType">
+		<span class="{@class}"><xsl:call-template name="highlightType"/></span>
+	</xsl:template>
+
+	<!-- TOOLS -->
+	<xsl:template name="link">
+		<xsl:param name="refid" />
+		<xsl:param name="kind" />
+		<xsl:param name="external" select="''" />
+		<xsl:param name="text" select="'[ link here ]'" />
+		<xsl:param name="class" select="''"/>
+		<xsl:element name="a">
+			<xsl:attribute name="href">
+				<xsl:call-template name="ref">
+					<xsl:with-param name="refid" select="$refid" />
+					<xsl:with-param name="kind" select="$kind" />
+					<xsl:with-param name="external" select="$external" />
+				</xsl:call-template>
+			</xsl:attribute>
+			<xsl:if test="$class">
+				<xsl:attribute name="class"><xsl:value-of select="$class"/></xsl:attribute>
+			</xsl:if>
+			<xsl:choose>
+				<xsl:when test="*">
+					<xsl:copy-of select="$text"/>
+				</xsl:when>
+				<xsl:otherwise>
+					<xsl:value-of select="$text"/>
+				</xsl:otherwise>
+			</xsl:choose>
+		</xsl:element>
+		
+	</xsl:template>
+	<xsl:template name="ref">
+		<xsl:param name="refid" />
+		<xsl:param name="kind" />
+		<xsl:param name="external" select="''" />
+		<xsl:choose>
+			<xsl:when test="$kind = 'member'">
+				<xsl:value-of select="concat($members,'/',$refid)" />
+			</xsl:when>
+			<xsl:when test="$kind = 'compound'">
+				<xsl:value-of select="concat($compounds,'/',$refid)" />
+			</xsl:when>
+			<xsl:otherwise></xsl:otherwise>
+		</xsl:choose>
+	</xsl:template>
+
+	<xsl:template name="string-replace-all">
+		<xsl:param name="text" />
+		<xsl:param name="replace" />
+		<xsl:param name="with" />
+		<xsl:choose>
+			<xsl:when test="contains($text, $replace)">
+				<xsl:value-of select="substring-before($text,$replace)" />
+				<xsl:value-of select="$with" />
+				<xsl:call-template name="string-replace-all">
+					<xsl:with-param name="text"
+						select="substring-after($text,$replace)" />
+					<xsl:with-param name="replace" select="$replace" />
+					<xsl:with-param name="with" select="$with" />
+				</xsl:call-template>
+			</xsl:when>
+			<xsl:otherwise>
+				<xsl:value-of select="$text" />
+			</xsl:otherwise>
+		</xsl:choose>
+	</xsl:template>
+
+	<xsl:template name="full-type-name">
+		<xsl:param name="typename" />
+		<xsl:call-template name="string-replace-all">
+			<xsl:with-param name="text" select="$typename" />
+			<xsl:with-param name="replace" select="'::'" />
+			<xsl:with-param name="with" select="'.'" />
+		</xsl:call-template>
+	</xsl:template>
+
+	<xsl:template name="short-type-name">
+		<xsl:param name="typename" />
+		<xsl:choose>
+			<xsl:when test="contains($typename,'::')">
+				<xsl:call-template name="short-type-name">
+					<xsl:with-param name="typename"
+						select="substring-after($typename,'::')" />
+				</xsl:call-template>
+			</xsl:when>
+			<xsl:otherwise>
+				<xsl:value-of select="$typename" />
+			</xsl:otherwise>
+		</xsl:choose>
+	</xsl:template>
+	
+	<xsl:template name="section-label">
+		<xsl:param name="name"/>
+		<xsl:variable name="label" select="$labels/labels/sections/label[@name = $name]"/>
+		<xsl:choose>
+			<xsl:when test="$label"><xsl:value-of select="$label"/></xsl:when>
+			<xsl:otherwise><xsl:value-of select="$name" /></xsl:otherwise>
+		</xsl:choose>
+	</xsl:template>
+	
+	<xsl:template name="translate-section">
+		<xsl:param name="name"/>
+		<xsl:variable name="label" select="$labels/labels/sections/label[@name = $name]"/>
+		<xsl:choose>
+			<xsl:when test="$label"><xsl:value-of select="$label"/></xsl:when>
+			<xsl:otherwise><xsl:value-of select="$name" /></xsl:otherwise>
+		</xsl:choose>
+	</xsl:template>
+	
+	<xsl:template name="translate-simplesection">
+		<xsl:param name="name"/>
+		<xsl:variable name="label" select="$labels/labels/simplesections/label[@name = $name]"/>
+		<xsl:choose>
+			<xsl:when test="$label"><xsl:value-of select="$label"/></xsl:when>
+			<xsl:otherwise><xsl:value-of select="$name" /></xsl:otherwise>
+		</xsl:choose>
+	</xsl:template>
+	
+	<xsl:template name="translate-paramlist">
+		<xsl:param name="name"/>
+		<xsl:variable name="label" select="$labels/labels/paramlists/label[@name = $name]"/>
+		<xsl:choose>
+			<xsl:when test="$label"><xsl:value-of select="$label"/></xsl:when>
+			<xsl:otherwise><xsl:value-of select="$name" /></xsl:otherwise>
+		</xsl:choose>
+	</xsl:template>
+
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/schemas/doxygen/csharp/file.xsl	Wed May 14 01:22:21 2014 +0400
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet
+    version="1.0"
+    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+>
+    <xsl:import href="default.xsl"/>
+    <xsl:template name="compounddefType">
+	    <h1>file <xsl:apply-templates select="compoundname" mode="compounddefType"/></h1>
+	    <div class="dox-source-code">
+			<xsl:apply-templates select="programlisting" mode="compounddefType"/>
+		</div>
+    
+    </xsl:template>
+    <xsl:template name="listingType">
+		<xsl:apply-templates mode="listingType"/>
+	</xsl:template>
+	<xsl:template name="codelineType">
+		<div>
+			<xsl:apply-templates mode="codelineType"/>
+		</div>
+	</xsl:template>
+	<xsl:template match="sp" mode="highlightType">
+		<xsl:text disable-output-escaping="yes">&amp;nbsp;</xsl:text>
+	</xsl:template>
+	<xsl:template match="highlight" mode="codelineType">
+		<span class="{@class}"><xsl:call-template name="highlightType"/></span>
+	</xsl:template>
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/schemas/doxygen/csharp/interface.xsl	Wed May 14 01:22:21 2014 +0400
@@ -0,0 +1,99 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet
+    version="1.0"
+    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+>
+    <xsl:import href="default.xsl"/>
+    <xsl:template name="compounddefType">
+		<h1>
+			<xsl:apply-templates select="title|compoundname"
+				mode="compounddefType" />
+		</h1>
+		<div class="briefdescription">
+			<xsl:apply-templates select="briefdescription"
+				mode="compounddefType" />
+		</div>
+		<div class="dox-source-code">
+			<span class="keyword">
+				<xsl:value-of select="concat(@prot,' ')"/>
+				<xsl:if test="@abstract"><xsl:text>abstract </xsl:text></xsl:if>
+				<xsl:if test="@sealed"><xsl:text>sealed </xsl:text></xsl:if>
+				<xsl:value-of select="concat(@kind,' ')"/>
+			</span>
+			<xsl:call-template name="short-type-name">
+				<xsl:with-param name="typename" select="compoundname"/>
+			</xsl:call-template>
+			<xsl:if test="basecompoundref">
+				<xsl:text> : </xsl:text>
+				<xsl:for-each select="basecompoundref">
+					<xsl:call-template name="compoundRefType"/>
+					<xsl:if test="not(last() = position())">
+						<xsl:text>, </xsl:text>
+					</xsl:if>
+				</xsl:for-each>
+			</xsl:if>
+		</div>
+		<div class="detaileddescription">
+			<xsl:apply-templates select="detaileddescription"
+				mode="compounddefType" />
+		</div>
+
+		<div class="innerCompounds">
+			
+			<xsl:apply-templates select="innerclass | innernamespace"
+				mode="compounddefType" />
+		</div>
+
+		<div class="members">
+			<xsl:apply-templates select="sectiondef" mode="compounddefType" />
+		</div>
+
+		<xsl:if test="derivedcompoundref">
+			<div class="sectiondef">
+				<h3>Derived</h3>
+				<ul class="derivedcompoundref-list">
+				<xsl:apply-templates select="derivedcompoundref"
+					mode="compounddefType" />
+				</ul>
+			</div>
+		</xsl:if>
+	</xsl:template>
+	<xsl:template match="derivedcompoundref" mode="compounddefType">
+		<li><xsl:apply-imports/></li>
+	</xsl:template>
+	
+	<xsl:template match="memberdef" mode="sectiondefType">
+		<div class="memberdef">
+			<div class="memberdefName">
+				<xsl:call-template name="memberdefName" />
+			</div>
+			<div class="memberdefDescription">
+				<xsl:call-template name="memberdefDescription" />
+			</div>
+		</div>
+	</xsl:template>
+
+	<xsl:template name="memberdefName">
+		<span class="textPre">
+			<xsl:if test="type">
+				<xsl:apply-templates select="type" mode="memberdefType" />
+				<xsl:text disable-output-escaping="yes">&amp;nbsp;</xsl:text>
+			</xsl:if>
+			<xsl:call-template name="link">
+				<xsl:with-param name="refid" select="@id" />
+				<xsl:with-param name="kind" select="'member'" />
+				<xsl:with-param name="external" />
+				<xsl:with-param name="text">
+					<xsl:apply-templates select="name" mode="memberdefType"/>
+				</xsl:with-param>
+			</xsl:call-template>
+			<xsl:text disable-output-escaping="yes">&amp;nbsp;</xsl:text>
+			<xsl:value-of select="argsstring/text()" />
+		</span>
+	</xsl:template>
+
+	<xsl:template name="memberdefDescription">
+		<xsl:apply-templates select="briefdescription"
+			mode="memberdefType" />
+	</xsl:template>
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/schemas/doxygen/csharp/labels.xml	Wed May 14 01:22:21 2014 +0400
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<labels>
+	<sections>
+		<label name="enum">Enumerations</label>
+		<label name="func">Delegates</label>
+		<label name="public-static-func">Public static methods</label>
+		<label name="protected-func">Protected methods</label>
+		<label name="private-func">Private methods</label>
+		<label name="public-func">Methods</label>
+		<label name="property">Properties</label>
+		<label name="private-attrib">Private fields</label>
+		<label name="public-attrib">Fields</label>
+	</sections>
+	<simplesections>
+		<label name="return">Return value</label>
+	</simplesections>
+	<paramlists>
+		<label name="exception">Exceptions</label>
+		<label name="templateparam">Template parameters</label>
+		<label name="param">Arguments</label>
+	</paramlists>
+</labels>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/schemas/doxygen/csharp/member.xsl	Wed May 14 01:22:21 2014 +0400
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet
+    version="1.0"
+    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+>
+    <xsl:import href="default.xsl"/>
+    <xsl:param name="memberId"/>
+    <xsl:template name="compounddefType">
+		<xsl:apply-templates select="//memberdef[@id = $memberId]"/>
+	</xsl:template>
+	
+	<xsl:template match="memberdef[@kind = 'enum']">
+		<xsl:call-template name="memberdefType"/>
+		<table class="pretty-table">
+			<tr>
+				<th>Name</th>
+				<th>Description</th>
+			</tr>
+			<xsl:for-each select="enumvalue">
+				<tr>
+					<td>
+						<xsl:value-of select="concat(name, ' ', initializer)"/>
+					</td>
+					<td>
+						<xsl:apply-templates select="briefdescription" mode="compounddefType"/>
+						<xsl:apply-templates select="detaileddescription" mode="compounddefType"/>
+					</td>
+				</tr>
+			</xsl:for-each>
+		</table>
+	</xsl:template>
+	
+	<xsl:template match="memberdef">
+		<xsl:call-template name="memberdefType"/>
+	</xsl:template>
+	
+	<xsl:template name="memberdefType">
+		<h1><xsl:value-of select="name"/></h1>
+		<div class="briefdescription">
+			<xsl:apply-templates select="briefdescription"
+				mode="memberdefType" />
+		</div>
+		<div class="dox-source-code">
+			<xsl:value-of select="concat(@prot,' ')"/>
+			<xsl:if test="@virt = 'virtual'">
+				<xsl:text>virtual </xsl:text>
+			</xsl:if>
+			<xsl:if test="@kind = 'enum'">
+				<xsl:text>enum </xsl:text>
+			</xsl:if>
+			<xsl:if test="type">
+				<xsl:apply-templates select="type" mode="memberdefType" />
+				<xsl:text disable-output-escaping="yes">&amp;nbsp;</xsl:text>
+			</xsl:if>
+			<span class="memberName">
+				<xsl:value-of select="name"/>
+			</span>
+			<xsl:if test="argsstring">
+				<xsl:text disable-output-escaping="yes">&amp;nbsp;</xsl:text>
+				<xsl:apply-templates select="argsstring" mode="memberdefType"/>
+			</xsl:if>
+			<xsl:if test="initializer">
+				<xsl:text> </xsl:text>
+				<xsl:apply-templates select="initializer" mode="memberdefType" />
+			</xsl:if>
+			<xsl:if test="@kind = 'property'">
+				<xsl:text>{ </xsl:text>
+				<xsl:if test="@gettable = 'yes'"><xsl:text>get; </xsl:text></xsl:if>
+				<xsl:if test="@settable = 'yes'"><xsl:text>set; </xsl:text></xsl:if>
+				<xsl:text>}</xsl:text>
+			</xsl:if>
+		</div>
+		<xsl:if test="detaileddescription">
+			<div class="detaileddescription">
+				<xsl:apply-templates select="detaileddescription" mode="memberdefType"/>
+			</div>
+		</xsl:if>
+	</xsl:template>
+
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/schemas/doxygen/csharp/namespace.xsl	Wed May 14 01:22:21 2014 +0400
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet
+    version="1.0"
+    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+>
+    <xsl:import href="default.xsl"/>
+    <xsl:include href="briefsections.xsl"/>
+    <xsl:template name="compounddefType">
+	    <h1>namespace <xsl:apply-templates select="compoundname" mode="compounddefType"/></h1>
+	    <xsl:if test="innernamespace">
+		    <div class="dox-ref-section">
+		    	<h2>Namespaces</h2>
+		    	<ul>
+		    		<xsl:apply-templates select="innernamespace" mode="compounddefType" />
+		    	</ul>
+		    </div>
+	    </xsl:if>
+	    <xsl:if test="innerclass">
+	    	<div class="dox-ref-section">
+		    	<h2>Classes</h2>
+		    	<ul>
+		    		<xsl:apply-templates select="innerclass" mode="compounddefType" />
+		    	</ul>
+		    </div>
+	    </xsl:if>
+	    <xsl:if test="sectiondef">
+		    <div class="dox-ref-section">
+		    	<h2>Members</h2>
+				<xsl:apply-templates select="sectiondef" mode="compounddefType" />
+			</div>
+		</xsl:if>
+    
+    </xsl:template>
+    <xsl:template match="innernamespace" mode="compounddefType">
+    	<li><xsl:apply-imports/></li>
+    </xsl:template>
+    
+    <xsl:template match="innerclass" mode="compounddefType">
+    	<li><xsl:apply-imports/></li>
+    </xsl:template>
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/schemas/doxygen/csharp/struct.xsl	Wed May 14 01:22:21 2014 +0400
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet
+    version="1.0"
+    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+>
+    <xsl:import href="class.xsl"/>
+</xsl:stylesheet>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/schemas/form.types.xml	Wed May 14 01:22:21 2014 +0400
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<schema>
+    <SimpleType
+        template="dojo/form/DateTextBox"
+        type="date"
+        inflator="Benzin::DateTime::Inflator.parse_date"
+        messageInflateError="ID:InvalidDateFormat"
+    />
+    <SimpleType
+        type="text"
+        template="dojo/form/Input"
+        inputType="text"
+    />
+    <SimpleType
+        type="password"
+        template="dojo/form/Input"
+        inputType="password"
+    />
+    <SimpleType
+        type="email"
+        template="dojo/form/Input"
+        inputType="text"
+    />
+    <SimpleType type="login" template="dojo/form/Input" inputType="text">
+        <RegExp message="ID:InvalidLoginFormat">^\w+$</RegExp>
+    </SimpleType>
+    <SimpleType type="password_retype" inputType="password" template="dojo/form/Input">
+        <Compare op="eq" message="ID:PasswordDoesntMatch" nodePath="siblings:*[nodeName eq '%source.linkedField%']" />
+    </SimpleType>
+</schema>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/schemas/locale/ru/form.types.s	Wed May 14 01:22:21 2014 +0400
@@ -0,0 +1,3 @@
+InvalidLoginFormat = Неверный формат %schemaNode.label.no%
+PasswordDoesntMatch = Пароли должны совпадать
+InvalidDateFormat = Неверный формат %schemaNode.label%
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/schemas/locale/ru/user.s	Wed May 14 01:22:21 2014 +0400
@@ -0,0 +1,18 @@
+login = Имя
+name = Имя для входа
+name.blame = имя для входа
+name.no = имени для входа
+oldPassword = Старый пароль
+password = Пароль
+password.blame = пароль
+password.no = пароля
+password2 = Пароль повторно
+password2.blame = пароль повторно
+givenName = Имя
+sn = Фамилия
+telephoneNumber = Телефон
+mail = Электронная почта
+mail.no = электронной почты
+roomNumber = Комната
+departmentNumber = Подразделение
+ElementIsRequired = Необходимо заполнить %schemaNode.label.blame%
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/schemas/login.xml	Wed May 14 01:22:21 2014 +0400
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<schema>
+    <ComplexNode name="login">
+        <NodeSet>
+            <SimpleNode name="login" control="controls/input" display="вход">
+                <RegExp>^\w+$</RegExp>
+            </SimpleNode>
+            <SimpleNode name="password" control="controls/input" inputType="password" display="пароль" />
+        </NodeSet>
+    </ComplexNode>
+</schema>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/schemas/user.xml	Wed May 14 01:22:21 2014 +0400
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<schema>
+    <Include source="form.types.xml"/>
+    <ComplexNode name="login">
+        <NodeSet>
+            <Node name="login" type="login"/>
+            <SimpleNode name="password" template="dojo/form/Input" inputType="password"/>
+        </NodeSet>
+    </ComplexNode>
+    <ComplexNode name="register" binding-type='Benzin::Security::Ldap::User'>
+        <NodeSet>
+            <Node name="name" type="login"/>
+            <Node name="password" type="password"/>
+            <Node name="password2" type="password_retype" linkedField="password"/>
+            <Node name="givenName" minOccur="0" type="text"/>
+            <Node name="sn" minOccur="0" type="text"/>
+            <Node name="telephoneNumber" type="text" minOccur="0"/>
+            <Node name="mail" type="email" minOccur="0"/>
+            <Node name="roomNumber" type="text" minOccur="0"/>
+            <Node name="departmentNumber" type="text" minOccur="0"/>
+        </NodeSet>
+    </ComplexNode>
+    <ComplexNode name="edit" binding-type='Benzin::Security::Ldap::User'>
+        <NodeSet messageMin="ID:ElementIsRequired">
+            <Node name="givenName" minOccur="0" type="text"/>
+            <Node name="sn" minOccur="0" type="text"/>
+            <Node name="telephoneNumber" type="text" minOccur="0"/>
+            <Node name="mail" type="email" minOccur="0"/>
+            <Node name="roomNumber" type="text" minOccur="0"/>
+            <Node name="departmentNumber" type="text" minOccur="0"/>
+        </NodeSet>
+    </ComplexNode>
+    <ComplexNode name="passwd">
+        <NodeSet messageMin="ID:ElementIsRequired">
+            <Node name="oldPassword" type="password"/>
+            <Node name="password" type="password"/>
+            <Node name="password2" type="password_retype" linkedField="password"/>
+        </NodeSet>
+    </ComplexNode>
+    <ComplexNode name="roles">
+    	<NodeSet>
+    		<SimpleNode name="roles" data-source-name="system-roles" binding-type="Benzin::Security::Ldap::Group" template='dojo/form/CheckboxSelect' minOccur="0" maxOccur="unbounded"/>
+    	</NodeSet>
+    </ComplexNode>
+</schema>
\ No newline at end of file
--- a/shared_view/layout/default.tt	Mon May 12 18:05:30 2014 +0400
+++ b/shared_view/layout/default.tt	Wed May 14 01:22:21 2014 +0400
@@ -26,6 +26,11 @@
 	</body>
 </html>
 [% END %]
-[% WRAPPER PAGE_LAYOUT;
+[% BLOCK CONTENT_LAYOUT;
 	render(document.layout ? "default/$document.layout"  : 'default/base', content = content, model = model);
-END %]
\ No newline at end of file
+END %]
+[% WRAPPER PAGE_LAYOUT;
+	WRAPPER CONTENT_LAYOUT;
+		content;
+	END;	
+END %]
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/view/layout/default/library.tt	Wed May 14 01:22:21 2014 +0400
@@ -0,0 +1,91 @@
+[%
+	labels(
+		CollectionTitle = "Home (%name%)"
+	);
+	document.css.push(css.global);
+	document.css.push(css.library);
+	
+	CollectionClass = 'Benzin::Doxygen::Model::Collection';
+	CompoundClass = 'Benzin::Doxygen::Model::Compound';
+	MemberClass = 'Benzin::Doxygen::Model::Member';
+	
+	Icons = {
+		namespace = 'NS',
+		class = 'C',
+		variable = 'Var',
+		function = 'F',
+		property = 'P',
+		interface = 'I',
+		struct = 'S',
+		enum = 'E',
+		event = 'Ev'
+	};
+	
+	NullIcon = '&nbsp;&nbsp;';
+	
+	coll = resource.Seek('doxygenCollection');
+	
+	compounds = coll.location.compounds;
+	members = resource.Seek('compound').location || coll.location.members;
+	
+	document.title = model.canonicalName;
+	
+	MACRO GetLocationFor(model) BLOCK;
+		members.Child(model.doxId) IF model.isa(MemberClass);
+		compounds.Child(model.doxId) IF model.isa(CompoundClass);
+	END;
+%]
+[% MACRO IconKind(model) BLOCK %]<span class="icon">[% Icons.item(model.kind) || NullIcon %]</span>[% END %]
+[% MACRO Link(model,label,title) BLOCK %]<a class="$model.kind $model.protection" [% IF title %]title="$title" [% END %]href="[% GetLocationFor(model) %]">[% IconKind(model) %] $label</a>[% END %]
+[% MACRO CompoundSiblings(model) BLOCK %]
+	[% compound = model.isa(MemberClass) ? model.compound : model %]
+	<ul class="members">
+		[% FOREACH item IN compound.GetSiblings({ kind = { '-not_in' = [ 'file', 'dir' ] } }) %]
+			<li [% IF item.doxId == compound.doxId %]class="active"[% END %]>[% Link(item,item.shortName, item.canonicalName) %]</li>
+		[% END %]
+	</ul>
+[% END %]
+[% MACRO Members(model) BLOCK %]
+	[% compound = model.isa(MemberClass) ? model.compound : model %]
+	<ul class="members">
+		[% FOREACH item IN compound.GetMembers({ kind = { '-not_in' = [ 'file', 'dir' ] } }) %]
+			<li [% IF item.doxId == model.doxId %]class="active"[% END %]>[% Link(item,item.shortName, item.canonicalName) %]</li>
+		[% END %]
+	</ul>
+[% END %]
+<div class="library-pane">
+	
+	<div id="toc-nav" class="nav-pane left">
+		[% IF model.isa(CollectionClass) %]
+			
+			<ul class="dox-nav-menu">
+				<li class="last"><a href="$coll.location" title="$coll.model.description">[% CollectionTitle( name = coll.model.name) %]</a></li>
+				[% Members(model) %]
+			</ul>
+		[% ELSE %]
+			[%
+				parents = model.GetParents({ kind = { '-not_in' = [ 'file', 'dir' ] } });
+				parents.push(model) IF model.isa(CompoundClass);
+			%]
+			<ul class="dox-nav-menu">
+				<li [% IF !parents.size %]class="last"[% END %]><a href="$coll.location" title="$coll.model.description">[% CollectionTitle( name = coll.model.name) %]</a></li>
+			[% FOREACH parent IN parents %]
+				<li [% IF loop.last %]class="last"[% END %]>[% Link(parent, parent.shortName, parent.canonicalName) %]</li>
+			[% END %]
+				[% Members(model) %]
+			</ul>
+		[% END %]
+	</div>
+	<div id="siblings-nav" class="nav-pane right">
+		[% CompoundSiblings(model) %]
+	</div>
+	<div id="content-pane" class="content-pane">
+		$content
+	</div>
+	<script type="text/javascript">
+		require(['implab/sticky'],function(sticky) {
+			sticky('toc-nav',{ along: 'content-pane' });
+			sticky('siblings-nav', { along: 'content-pane' });
+		});
+	</script>
+</div>
\ No newline at end of file
--- a/view/site/library.tt	Mon May 12 18:05:30 2014 +0400
+++ b/view/site/library.tt	Wed May 14 01:22:21 2014 +0400
@@ -0,0 +1,21 @@
+[% document.css.push(css.library) %]
+[% FOREACH coll IN model.resultset('collection').search_rs({}, {order_by = { '-desc' = 'updateDate' }}).all() %]
+<div class="library-banner">
+	<a href="[% location.Child(coll.name) %]">
+		<span class="title block">
+			$coll.name
+		</span>
+		<span class="brief block">
+			$coll.description
+		</span>
+		<span class="footer block">
+			<span class="version">
+				$coll.version
+			</span>/
+			<span class="timestamp">
+				[% coll.updateDate.clone().set_time_zone('local').strftime('%T %e %B %G') %]
+			</span>
+		</span>
+	</a>
+</div>
+[% END %]
\ No newline at end of file
--- a/view/site/library/@Collection.tt	Mon May 12 18:05:30 2014 +0400
+++ b/view/site/library/@Collection.tt	Wed May 14 01:22:21 2014 +0400
@@ -0,0 +1,20 @@
+[%
+	document.layout = 'library';
+	compounds = resource.GetCompoundsLocation();
+ 	IF model.indexDocument;
+		display_model(
+			model.indexDocument,
+			args = {
+				compounds = compounds.toString(),
+				members = resource.GetMembersLocation().toString()
+			}
+		);
+	ELSE;
+%]
+	<h1>$model.description</h1>
+	<ul>
+	[% FOREACH item IN model.GetPackages() %]
+		<li><a href="[% compounds.Child(item.doxId) %]">$item.name</a></li>
+	[% END %]
+	</ul>
+[% END %]
\ No newline at end of file
--- a/view/site/library/_any/@Compound.tt	Mon May 12 18:05:30 2014 +0400
+++ b/view/site/library/_any/@Compound.tt	Wed May 14 01:22:21 2014 +0400
@@ -0,0 +1,10 @@
+[%
+	document.layout='library';
+	coll = resource.Seek('doxygenCollection');
+	args = {
+		compounds = resource.parent.location.toString(),
+		members = resource.location.toString()
+	}
+	T = import('Benzin::Doxygen::DisplayTransform');
+	T.instance.DisplayCompound(model, args );
+%]
--- a/view/site/library/_any/@Member.tt	Mon May 12 18:05:30 2014 +0400
+++ b/view/site/library/_any/@Member.tt	Wed May 14 01:22:21 2014 +0400
@@ -0,0 +1,14 @@
+[%
+	document.layout='library';
+	coll = resource.Seek('doxygenCollection');
+	args = {
+		compounds = coll.GetCompoundsLocation().toString(),
+		members = resource.parent.location.toString(),
+		memberId = model.doxId,
+		kind = 'member'
+	}
+	T = import('Benzin::Doxygen::DisplayTransform');
+	args.memberId = model.doxId;
+	args.kind = 'member';
+	T.instance.DisplayCompound(model.compound, args );
+%]