Skip to content
Browse files

#106 skinned maven and enunciate doc sites

  • Loading branch information...
1 parent 90b25de commit 50a9e636c2947cca03771700677ba8f9417796c3 @ddossot ddossot committed Jul 6, 2011
View
2 enunciate.xml
@@ -42,6 +42,8 @@
docsDir="wsdocs"
splashPackage="eu.openanalytics.rsb.component"
title="R Service Bus API"
+ css="src/site/enunciate/wsdocs.css"
+ xslt="src/site/enunciate/wsdocs.xsl"
copyright="OpenAnalytics BVBA, 2010-2011" />
</modules>
</enunciate>
View
1 pom.xml
@@ -470,6 +470,7 @@
<artifactId>maven-enunciate-plugin</artifactId>
<version>1.21</version>
<configuration>
+ <configFile>enunciate.xml</configFile>
<docsSubdir>wsdocs</docsSubdir>
</configuration>
</plugin>
View
10 src/site/css/site.css
@@ -1,10 +0,0 @@
-#navcolumn h5 {
- font-size: smaller;
- border: 1px solid #aaaaaa;
- background-color: #bbb;
- margin-top: 7px;
- margin-bottom: 2px;
- padding-top: 2px;
- padding-left: 2px;
- color: #000;
-}
View
251 src/site/enunciate/wsdocs.css
@@ -0,0 +1,251 @@
+/*
+ * R Service Bus
+ *
+ * Copyright (c) Copyright of OpenAnalytics BVBA, 2010-2011
+ *
+ * ===========================================================================
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/*------------------------------ MAIN -------------------------*/
+body, td, select, input, li {
+ color: #313131;
+ font-family: Arial,Tahoma,Helvetica,sans-serif;
+ font-size: 13px;
+ line-height: 150%;
+}
+body {
+ background: #FFF url(../images/wieni/body-bg.png) repeat-y 30px top;
+ padding: 0;
+ margin: 0;
+}
+
+
+/*------------------------------ LINKS -------------------------*/
+
+body a:link, body a:visited {
+ color: #3AA8D5;
+ text-decoration: none;
+}
+body a:hover, body a:focus {
+ color: #0082AA;
+ text-decoration: underline;
+}
+
+/*------------------------------ HEADER -------------------------*/
+
+body .header {
+ border: none;
+ background: url(../images/wieni/banner-bg.png) repeat-x left top;
+ height: 178px;
+ overflow: hidden;
+ position: relative;
+ z-index: 10;
+}
+body .header .title {
+ background: url(../images/wieni/banner.png) no-repeat left top;
+ height: 68px;
+ padding: 110px 0 0 182px;
+}
+body .header .title h1 {
+ color: #FFF;
+ font-size: 30px;
+ font-weight: normal;
+ text-shadow: 0px 0px 5px #000; /* FF3.5+, Opera 9+, Saf1+, Chrome */
+ margin: 0;
+}
+
+/*------------------------------ SIDEBAR -------------------------*/
+
+body .sidenav {
+ width: 234px;
+ background: #f0efef url(../images/wieni/sidebar-bg.png) no-repeat left top;
+ border: none;
+ margin: 0 0 0 -100%;
+ position: relative;
+ z-index: 30px;
+ padding: 10px 8px;
+ float: left;
+}
+
+/*------- BLOCKS ----------*/
+body .sidenav h1 {
+ background: url(../images/wieni/sidebar-block.png) no-repeat left top;
+ width: 204px;
+ padding: 10px 15px 7px;
+ color: #FFF;
+ font-size: 15px;
+ font-weight: normal;
+ text-shadow: 0px 0px 5px #000; /* FF3.5+, Opera 9+, Saf1+, Chrome */
+ border: none;
+ margin: 0;
+}
+body .sidenav ul {
+ background: url(../images/wieni/sidebar-block.png) no-repeat left bottom;
+ width: 204px;
+ padding: 7px 15px 25px;
+ margin: 0;
+ list-style: none none;
+}
+body .sidenav ul li {
+ padding: 0 0 3px 0;
+ margin: 0 0 3px 0;
+ color: #D83635;
+ font-size: 12px;
+ border-bottom: dotted 1px #DEDEDE;
+}
+body .sidenav ul li a {
+ color: #D83635;
+}
+body .sidenav ul li.expanded, body .sidenav ul li.collapsed {
+ padding-left: 12px;
+}
+body .sidenav ul ul {
+ background: none;
+ width: auto;
+ padding: 5px 0 0 0;
+}
+body .sidenav ul ul li {
+ border: none;
+ margin: 0;
+}
+
+/*------- CREDITS ----------*/
+body .sidenav a.poweredBy {
+ display: block;
+ width: 90px;
+ height: 30px;
+ overflow: hidden;
+ margin: 0 auto;
+}
+body .sidenav a.poweredBy img {
+ margin: 0;
+}
+
+
+/*------------------------------ CONTENT -------------------------*/
+
+body .content {
+ margin: 0 30px 0 0;
+ padding: 0;
+ background: url(../images/wieni/content-bg.png) no-repeat left 2px;
+ float: left;
+ width: 100%;
+}
+body .content .item {
+ margin-left: 300px;
+}
+
+
+/*------- TITLES ----------*/
+body .content h1 {
+ background: none;
+ border: none;
+ color: #4C4C4C;
+ font-size: 30px;
+ font-weight: normal;
+ padding: 0 0 3px 0;
+}
+body .content h2 {
+ color: #D83635;
+ background: none;
+ border: none;
+ font-size: 20px;
+ font-weight: normal;
+ padding: 0 0 3px 0;
+}
+body .content h3 {
+ color: #8E8E8E;
+ background: none;
+ border: none;
+ font-size: 17px;
+ font-weight: normal;
+ padding: 0 0 3px 0;
+}
+body .content h4, body .content h5, body .content h6 {
+ color: #8E8E8E;
+ background: none;
+ border: none;
+ font-size: 15px;
+ font-weight: normal;
+ padding: 0 0 3px 0;
+}
+
+/*------- SECTIONS ----------*/
+body .content .item {
+ padding: 5px 0;
+ margin-bottom: 5px;
+ margin-top: 5px;
+ border-bottom: dotted 1px #DEDEDE;
+}
+body .content .item .item {
+ padding: 0;
+ margin: 0;
+ border-bottom: none;
+}
+
+/*------- LISTS ----------*/
+body .content dl {
+ background-color: #EFF;
+ border: 1px solid #6AE3FF;
+ padding: 4px 4px 4px 6px;
+}
+body .content dt {
+ color: #313131;
+ font-size: 15px;
+}
+
+/*------- TABLES ----------*/
+body .content table, body .content table td {
+ border-collapse: collapse;
+ border: none;
+ border-bottom: solid 1px #FFF;
+ text-align: left;
+ vertical-align: top;
+}
+body .content table {
+ margin-bottom: 15px;
+}
+body .content table th {
+ background: #474e57;
+ border-bottom: solid 1px #000;
+ font-weight: normal;
+ font-size: 14px;
+ padding: 8px 5px;
+ color: #FFF;
+}
+body .content table td {
+ padding: 5px;
+ background: #EFEFEF;
+}
+body .content table td ul {
+ margin: 0;
+}
+
+/*------------------------------ FOOTER -------------------------*/
+
+body .footer {
+ font-size: 11px;
+ color: #999;
+ padding: 10px 30px;
+ text-align: right;
+ clear: both;
+}
+body .footer a:link, body .footer a:visited {
+ color: #666;
+}
+body .footer a:hover, body .footer a:focus {
+ color: #333;
+}
View
1,422 src/site/enunciate/wsdocs.xsl
@@ -0,0 +1,1422 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" exclude-result-prefixes="#default" xmlns:redirect="http://xml.apache.org/xalan/redirect" extension-element-prefixes="redirect">
+
+ <!--Our output is XHTML, so XML will do...-->
+ <xsl:output method="xml" omit-xml-declaration="no" indent="yes"
+ doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
+ doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" />
+
+ <!--Whether the XML file describing the downloads exists.-->
+ <xsl:param name="downloads-exists" select="false()"/>
+
+ <!--The output directory for the files generated by this template.-->
+ <xsl:param name="output-dir" select="'./'"/>
+
+ <!--The relative path at which the endpoints are mounted.-->
+ <xsl:param name="api-relative-path" select="'.'"/>
+
+ <!--The name of the index page.-->
+ <xsl:param name="index-page-name" select="'index.html'"/>
+
+ <!-- Whether this API contains SOAP endpoints. -->
+ <xsl:variable name="soapAvailable" select="boolean(/api-docs/soap/wsdls/wsdl/endpointInterface)"/>
+
+ <!--Whether this API contains REST endpoints.-->
+ <xsl:variable name="restful" select="boolean(/api-docs/rest/resources/resource)"/>
+
+ <!--Whether there's more than one schema-->
+ <xsl:variable name="multiple_schemas" select="count(/api-docs/data/schema) &gt; 1"/>
+
+ <!--The characters to translate from a REST name.-->
+ <!--The '/' is replaced with a '.', the ':' is replaced with a '-', and the '{' and '}' are removed-->
+ <xsl:variable name="rest_translate_chars">/:{}</xsl:variable>
+ <xsl:variable name="rest_translate_replacements">.-</xsl:variable>
+
+ <!--Whether the XML file describing the downloads exists.-->
+ <xsl:param name="disable-rest-mountpoint" select="false()"/>
+
+ <!--The global side navigation (the navigation that is always there).-->
+ <xsl:variable name="global-sidnav">
+ <h1>Home</h1>
+ <ul>
+ <li><a href="{$index-page-name}">API Overview</a></li>
+ <xsl:if test="$downloads-exists">
+ <li>
+ <a href="downloads.html">Downloads</a>
+ </li>
+ </xsl:if>
+ <li><a href="../index.html">Back to RSB Documentation</a></li>
+ </ul>
+
+ <xsl:if test="$restful">
+ <h1>REST Endpoints</h1>
+ <ul>
+ <xsl:for-each select="/api-docs/rest/resources/resource">
+ <xsl:sort select="@name"/>
+ <li><a href="rest{translate(@name,$rest_translate_chars,$rest_translate_replacements)}.html"><xsl:value-of select="@name"/></a></li>
+ </xsl:for-each>
+ </ul>
+ </xsl:if>
+
+ <xsl:if test="$soapAvailable">
+ <h1>SOAP Services</h1>
+ <ul>
+ <xsl:for-each select="/api-docs/soap/wsdls/wsdl/endpointInterface">
+ <xsl:sort select="@name"/>
+ <li>
+ <xsl:choose>
+ <xsl:when test="tag[@name='deprecated']">
+ <font style="text-decoration:line-through;">
+ <a href="soap_{../@namespaceId}_{@name}.html"><xsl:value-of select="@name"/></a>
+ </font>
+ </xsl:when>
+ <xsl:otherwise>
+ <a href="soap_{../@namespaceId}_{@name}.html"><xsl:value-of select="@name"/></a>
+ </xsl:otherwise>
+ </xsl:choose>
+ </li>
+ </xsl:for-each>
+ </ul>
+ </xsl:if>
+
+ <xsl:if test="/api-docs/data/schema/elements/element">
+ <h1>XML Data Elements</h1>
+ <ul>
+ <xsl:for-each select="/api-docs/data/schema/elements/element">
+ <xsl:sort select="@name"/>
+ <xsl:sort select="../../@namespace"/>
+ <li>
+ <xsl:choose>
+ <xsl:when test="tag[@name='deprecated']">
+ <font style="text-decoration:line-through;">
+ <a href="data_{../../@namespaceId}.html#element_{@name}"><xsl:value-of select="@name"/><xsl:if test="$multiple_schemas"> (<xsl:value-of select="../../@namespaceId"/>)</xsl:if></a>
+ </font>
+ </xsl:when>
+ <xsl:otherwise>
+ <a href="data_{../../@namespaceId}.html#element_{@name}"><xsl:value-of select="@name"/><xsl:if test="$multiple_schemas"> (<xsl:value-of select="../../@namespaceId"/>)</xsl:if></a>
+ </xsl:otherwise>
+ </xsl:choose>
+ </li>
+ </xsl:for-each>
+ </ul>
+ </xsl:if>
+
+ <xsl:if test="/api-docs/data/schema/types/type">
+ <h1>XML Data Types</h1>
+ <ul>
+ <xsl:for-each select="/api-docs/data/schema/types/type">
+ <xsl:sort select="@name"/>
+ <xsl:sort select="../../@namespace"/>
+ <li>
+ <xsl:choose>
+ <xsl:when test="tag[@name='deprecated']">
+ <font style="text-decoration:line-through;">
+ <a href="data_{../../@namespaceId}.html#{@name}"><xsl:value-of select="@name"/><xsl:if test="$multiple_schemas"> (<xsl:value-of select="../../@namespaceId"/>)</xsl:if></a>
+ </font>
+ </xsl:when>
+ <xsl:otherwise>
+ <a href="data_{../../@namespaceId}.html#{@name}"><xsl:value-of select="@name"/><xsl:if test="$multiple_schemas"> (<xsl:value-of select="../../@namespaceId"/>)</xsl:if></a>
+ </xsl:otherwise>
+ </xsl:choose>
+ </li>
+ </xsl:for-each>
+ </ul>
+ </xsl:if>
+
+ <xsl:if test="/api-docs/data/jsonSchema/type">
+ <h1>JSON Data Types</h1>
+ <ul>
+ <xsl:for-each select="/api-docs/data/jsonSchema/type">
+ <xsl:sort select="@name" />
+ <xsl:sort select="../@schemaId" />
+ <li><a href="data_{../@schemaId}.html#{@name}"><xsl:value-of select="@name"/><xsl:if test="$multiple_schemas"> (<xsl:value-of select="../@schemaId"/>)</xsl:if></a></li>
+ </xsl:for-each>
+ </ul>
+ </xsl:if>
+ </xsl:variable>
+
+
+ <!--The footer for each page.-->
+ <xsl:variable name="footer">
+ <div class="footer" align="center">
+ <xsl:if test="/api-docs/@copyright"><xsl:text disable-output-escaping="yes">&#38;</xsl:text>#169; <xsl:value-of select="/api-docs/@copyright"/>.</xsl:if>
+ Generated by <a href="http://enunciate.codehaus.org">Enunciate</a>.
+ </div>
+ </xsl:variable>
+
+
+ <!--The main template. Generates the index page and is the invoker for the other templates as necessary.-->
+ <xsl:template match="/">
+ <html>
+ <head>
+ <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
+ <xsl:for-each select="/api-docs/tag">
+ <meta name="{@name}" content="{.}"/>
+ </xsl:for-each>
+ <link rel="stylesheet" type="text/css" href="default.css" media="screen"/>
+
+ <title>
+ <xsl:value-of select="/api-docs/@title"/>
+ </title>
+ </head>
+
+ <body>
+ <div class="container">
+
+ <div class="main">
+
+ <div class="header">
+ <div class="title">
+ <h1>
+ <xsl:value-of select="/api-docs/@title"/>
+ </h1>
+ </div>
+ </div>
+
+ <div class="content">
+
+ <xsl:if test="/api-docs/documentation">
+ <!--Include an introduction if there is top-level documentation.-->
+ <div class="item">
+ <h1>Introduction</h1>
+ <p>
+ <xsl:value-of select="/api-docs/documentation" disable-output-escaping="yes"/>
+ </p>
+ </div>
+ </xsl:if>
+
+ <xsl:if test="$restful">
+ <div class="item">
+
+ <h1>REST</h1>
+
+ <p>
+ This API supports a <a href="http://en.wikipedia.org/wiki/Representational_State_Transfer">Representational State Transfer (REST)</a>
+ model for accessing a set of resources through a fixed set of operations. The following resources are accessible through the RESTful model:
+ </p>
+
+ <ul>
+ <xsl:for-each select="/api-docs/rest/resources/resource">
+ <xsl:sort select="@name"/>
+ <li><a href="rest{translate(@name,$rest_translate_chars,$rest_translate_replacements)}.html"><xsl:value-of select="@name"/></a></li>
+ <xsl:call-template name="rest-resource"/>
+ </xsl:for-each>
+ </ul>
+ <xsl:if test="/api-docs/rest/@wadl">
+
+ <p>
+ There is also a <a href="{/api-docs/rest/@wadl}">WADL document</a> describing the REST API.
+ </p>
+ </xsl:if>
+ </div>
+ </xsl:if>
+
+ <xsl:if test="$soapAvailable">
+ <div class="item">
+
+ <h1>SOAP</h1>
+
+ <p>
+ This API is exposed through a set of <a href="http://www.ws-i.org/Profiles/BasicProfile-1.0.html">WSI Basic Profile</a>
+ -compliant SOAP v1.1 endpoints. The API supports <a href="http://www.w3.org/TR/2005/REC-xop10-20050125/">XML-binary Optimized Pacakging (XOP)</a>
+ and <a href="http://www.w3.org/TR/2004/WD-soap12-mtom-20040608/">SOAP Message Transmission Optimization Mechanism (MTOM)</a>
+ for transmission of binary data. The SOAP API is fully described by the following endpoints:
+ </p>
+
+ <ul>
+ <xsl:for-each select="/api-docs/soap/wsdls/wsdl">
+ <xsl:sort select="@namespace"/>
+ <xsl:variable name="nsid" select="@namespaceId"/>
+ <xsl:for-each select="endpointInterface">
+ <xsl:sort select="@name"/>
+ <li>
+ <xsl:choose>
+ <xsl:when test="tag[@name='deprecated']">
+ <font style="text-decoration:line-through;">
+ <a href="soap_{$nsid}_{@name}.html"><xsl:value-of select="@name"/></a>
+ </font> <xsl:if test="@file">(<a href="{@file}">wsdl</a>)</xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ <a href="soap_{$nsid}_{@name}.html"><xsl:value-of select="@name"/></a> <xsl:if test="@file">(<a href="{@file}">wsdl</a>)</xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+ </li>
+ <xsl:call-template name="soap-endpoint"/>
+ </xsl:for-each>
+ </xsl:for-each>
+ </ul>
+
+ <xsl:if test="$downloads-exists">
+ <p>
+ The SOAP API is also accessible by client-side libraries that can be downloaded from the <a href="downloads.html">download page</a>.
+ </p>
+ </xsl:if>
+
+ </div>
+ </xsl:if>
+
+ <xsl:if test="/api-docs/data/schema/types/type|/api-docs/data/jsonSchema">
+ <div class="item">
+
+ <h1>Data</h1>
+
+ <p>
+ All endpoints act on a common set of data. The data can be represented in different data formats (i.e. MIME types), depending on the endpoint
+ that consumes and/or produces the data. The data can described by <a href="http://www.w3.org/XML/Schema">XML Schema</a>, which definitively
+ describes the XML representation of the data, but is also useful for describing the other formats of the data, such as
+ <a href="http://json.org">JSON</a>.
+ </p>
+
+ <p>
+ This document will describe the data using terms based on <a href="http://www.w3.org/XML/Schema">XML Schema</a>.
+ Data can be grouped by namespace, with a schema document describing the <i>elements</i> and <i>types</i> of the namespace.
+ Generally speaking, <i>types</i> define the structure of the data and <i>elements</i> are <i>instances</i> of a type. For example,
+ <i>elements</i> are usually produced by (or consumed by) a REST endpoint, and the structure of each element is described by
+ its <i>type</i>.
+ </p>
+
+ <h2>Data Schemas</h2>
+ <table>
+ <tr>
+ <th>id</th>
+ <th>namespace</th>
+ <th>schema file</th>
+ </tr>
+ <xsl:for-each select="/api-docs/data/jsonSchema">
+ <xsl:sort select="@schemaId"/>
+ <tr>
+ <td><xsl:value-of select="@schemaId"/></td>
+ <td>N/A</td>
+ <td>
+ <xsl:choose>
+ <xsl:when test="@file"><a href="{@file}"><xsl:value-of select="@file"/></a></xsl:when>
+ <xsl:otherwise>(none)</xsl:otherwise>
+ </xsl:choose>
+ </td>
+ </tr>
+ <xsl:call-template name="data-json-schema"/>
+ </xsl:for-each>
+ <xsl:for-each select="/api-docs/data/schema">
+ <xsl:sort select="@namespace"/>
+ <xsl:variable name="nsid" select="@namespaceId"/>
+ <xsl:variable name="ns" select="@namespace"/>
+ <tr>
+ <td><xsl:value-of select="$nsid"/></td>
+ <td>
+ <xsl:choose>
+ <xsl:when test="string-length($ns) = 0">Default Namespace</xsl:when>
+ <xsl:otherwise><xsl:value-of select="@namespace"/></xsl:otherwise>
+ </xsl:choose>
+ </td>
+ <td>
+ <xsl:choose>
+ <xsl:when test="@file"><a href="{@file}"><xsl:value-of select="@file"/></a></xsl:when>
+ <xsl:otherwise>(none)</xsl:otherwise>
+ </xsl:choose>
+ </td>
+ </tr>
+ <xsl:call-template name="data-schema"/>
+ </xsl:for-each>
+ </table>
+
+ <xsl:if test="/api-docs/data/schema/elements/element">
+ <h2>XML Data Elements</h2>
+ <ul>
+ <xsl:for-each select="/api-docs/data/schema">
+ <xsl:sort select="@namespace"/>
+ <xsl:variable name="nsid" select="@namespaceId"/>
+ <xsl:if test="elements/element">
+ <li>
+ namespace <a href="data_{$nsid}.html"><xsl:value-of select="$nsid"/></a>
+ <ul>
+ <xsl:for-each select="elements/element">
+ <xsl:sort select="@name"/>
+ <li>
+ <xsl:choose>
+ <xsl:when test="tag[@name='deprecated']">
+ <font style="text-decoration:line-through;">
+ <a href="data_{$nsid}.html#element_{@name}"><xsl:value-of select="@name"/></a>
+ </font>
+ </xsl:when>
+ <xsl:otherwise>
+ <a href="data_{$nsid}.html#element_{@name}"><xsl:value-of select="@name"/></a>
+ </xsl:otherwise>
+ </xsl:choose>
+ </li>
+ </xsl:for-each>
+ </ul>
+ </li>
+ </xsl:if>
+ </xsl:for-each>
+ </ul>
+ </xsl:if>
+
+ <h2>XML Data Types</h2>
+ <ul>
+ <xsl:for-each select="/api-docs/data/schema">
+ <xsl:sort select="@namespace"/>
+ <xsl:variable name="nsid" select="@namespaceId"/>
+ <xsl:if test="types/type">
+ <li>
+ namespace <a href="data_{$nsid}.html"><xsl:value-of select="$nsid"/></a>
+ <ul>
+ <xsl:for-each select="types/type">
+ <xsl:sort select="@name"/>
+ <li>
+ <xsl:choose>
+ <xsl:when test="tag[@name='deprecated']">
+ <font style="text-decoration:line-through;">
+ <a href="data_{$nsid}.html#{@name}"><xsl:value-of select="@name"/></a>
+ </font>
+ </xsl:when>
+ <xsl:otherwise>
+ <a href="data_{$nsid}.html#{@name}"><xsl:value-of select="@name"/></a>
+ </xsl:otherwise>
+ </xsl:choose>
+ </li>
+ </xsl:for-each>
+ </ul>
+ </li>
+ </xsl:if>
+ </xsl:for-each>
+ </ul>
+ </div>
+
+ <xsl:if test="/api-docs/data/jsonSchema">
+ <h2>JSON Data Types</h2>
+ <ul>
+ <xsl:for-each select="/api-docs/data/jsonSchema">
+ <xsl:sort select="@schemaId"/>
+ <xsl:if test="type">
+ <li>
+ schema <a href="data_{@schemaId}.html"><xsl:value-of select="@schemaId"/></a>
+ <ul>
+ <xsl:for-each select="type">
+ <xsl:sort select="@name"/>
+ <li>
+ <a href="data_{../@schemaId}.html#{@name}"><xsl:value-of select="@name"/></a>
+ </li>
+ </xsl:for-each>
+ </ul>
+ </li>
+ </xsl:if>
+ </xsl:for-each>
+ </ul>
+ </xsl:if>
+ </xsl:if>
+
+ </div>
+
+ <div class="sidenav">
+ <xsl:copy-of select="$global-sidnav"/>
+ </div>
+
+ <div class="clearer">
+ <span></span>
+ </div>
+
+ </div>
+
+ <xsl:copy-of select="$footer"/>
+
+ </div>
+
+ </body>
+
+ </html>
+ <xsl:if test="$downloads-exists">
+ <xsl:call-template name="downloads"/>
+ </xsl:if>
+ </xsl:template>
+
+
+ <!--The page for a soap endpoint.-->
+ <xsl:template name="soap-endpoint">
+ <redirect:write file="{$output-dir}/soap_{../@namespaceId}_{@name}.html">
+ <html>
+
+ <head>
+ <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
+ <link rel="stylesheet" type="text/css" href="default.css" media="screen"/>
+ <title>
+ <xsl:value-of select="/api-docs/@title"/>
+ </title>
+ </head>
+
+ <body>
+
+ <div class="container">
+
+ <div class="main">
+
+ <div class="header">
+ <div class="title">
+ <h1><xsl:value-of select="/api-docs/@title"/></h1>
+ </div>
+ </div>
+
+ <div class="content">
+
+ <div class="item">
+
+ <h1><xsl:value-of select="@name"/></h1>
+
+ <xsl:if test="tag[@name='deprecated']">
+ <p class="deprecated">
+ This endpoint has been deprecated. <xsl:value-of select="tag[@name='deprecated']" disable-output-escaping="yes"/>
+ </p>
+ </xsl:if>
+
+ <xsl:if test="documentation">
+ <p>
+ <xsl:value-of select="documentation" disable-output-escaping="yes"/>
+ </p>
+ </xsl:if>
+
+ <h2>Endpoint Metadata</h2>
+ <div class="subcontent">
+ <ul>
+ <xsl:choose>
+ <xsl:when test="string-length(../@namespace) = 0">
+ <li>Default Namespace</li>
+ </xsl:when>
+ <xsl:otherwise>
+ <li>Namespace: <u><xsl:value-of select="../@namespace"/></u></li>
+ </xsl:otherwise>
+ </xsl:choose>
+ <li>WSDL: <a href="{../@file}"><xsl:value-of select="../@file"/></a></li>
+ <xsl:if test="@path">
+ <li>Mount Point: <a href="{concat($api-relative-path,@path)}"><xsl:value-of select="@path"/></a></li>
+ </xsl:if>
+ </ul>
+ </div>
+
+ <xsl:if test="method">
+ <p>
+ The following methods are available on this endpoint:
+ </p>
+
+ <ul>
+ <xsl:for-each select="method">
+ <xsl:sort select="@name"/>
+ <li>
+ <xsl:choose>
+ <xsl:when test="tag[@name='deprecated']">
+ <font style="text-decoration:line-through;">
+ <a href="#{@name}"><xsl:value-of select="@name"/></a>
+ </font>
+ </xsl:when>
+ <xsl:otherwise>
+ <a href="#{@name}"><xsl:value-of select="@name"/></a>
+ </xsl:otherwise>
+ </xsl:choose>
+ </li>
+ </xsl:for-each>
+ </ul>
+ </xsl:if>
+
+ </div>
+
+ <xsl:for-each select="method">
+ <xsl:sort select="@name"/>
+ <div class="item">
+
+ <h1><a name="{@name}"><xsl:value-of select="@name"/></a></h1>
+
+ <xsl:if test="tag[@name='deprecated']">
+ <p class="deprecated">
+ This method has been deprecated. <xsl:value-of select="tag[@name='deprecated']" disable-output-escaping="yes"/>
+ </p>
+ </xsl:if>
+
+ <xsl:if test="documentation">
+ <p>
+ <xsl:value-of select="documentation" disable-output-escaping="yes"/>
+ </p>
+ </xsl:if>
+
+ <xsl:if test="parameter[@input='true']">
+ <h2>Input Parameters</h2>
+ <table>
+ <tr>
+ <th>name</th>
+ <!--todo: add the parameter type and whether its a collection-->
+ <th>description</th>
+ </tr>
+ <xsl:for-each select="parameter[@input='true']">
+ <tr>
+ <td><xsl:value-of select="@name"/></td>
+ <td><xsl:value-of select="." disable-output-escaping="yes"/></td>
+ </tr>
+ </xsl:for-each>
+ </table>
+ </xsl:if>
+
+ <xsl:if test="parameter[@output='true']">
+ <h2>Output Parameters</h2>
+ <table>
+ <tr>
+ <th>name</th>
+ <!--todo: add the parameter type and whether its a collection-->
+ <th>description</th>
+ </tr>
+ <xsl:for-each select="parameter[@output='true']">
+ <tr>
+ <td><xsl:value-of select="@name"/></td>
+ <td><xsl:value-of select="." disable-output-escaping="yes"/></td>
+ </tr>
+ </xsl:for-each>
+ </table>
+ </xsl:if>
+
+ <xsl:if test="@oneWay='true'">
+ <p><b>**This method is one-way.</b></p>
+ </xsl:if>
+
+ <xsl:if test="result">
+ <h2>Return Value</h2>
+ <!--todo: put the return value type.-->
+
+ <p><xsl:value-of select="result" disable-output-escaping="yes"/></p>
+ </xsl:if>
+
+ <xsl:if test="fault">
+ <h2>Faults</h2>
+ <table>
+ <tr>
+ <th>name</th>
+ <th>description</th>
+ </tr>
+ <xsl:for-each select="fault">
+ <xsl:sort select="@name"/>
+ <tr>
+ <td><xsl:value-of select="@name"/></td>
+ <td><xsl:value-of select="." disable-output-escaping="yes"/></td>
+ </tr>
+ </xsl:for-each>
+ </table>
+ </xsl:if>
+
+ </div>
+ </xsl:for-each>
+ </div>
+
+ <div class="sidenav">
+ <h1><xsl:value-of select="@name"/></h1>
+ <xsl:if test="method">
+ <ul>
+ <xsl:for-each select="method">
+ <xsl:sort select="@name"/>
+ <li>
+ <xsl:choose>
+ <xsl:when test="tag[@name='deprecated']">
+ <font style="text-decoration:line-through;">
+ <a href="#{@name}"><xsl:value-of select="@name"/></a>
+ </font>
+ </xsl:when>
+ <xsl:otherwise>
+ <a href="#{@name}"><xsl:value-of select="@name"/></a>
+ </xsl:otherwise>
+ </xsl:choose>
+ </li>
+ </xsl:for-each>
+ </ul>
+ </xsl:if>
+
+ <xsl:copy-of select="$global-sidnav"/>
+ </div>
+
+ <div class="clearer"><span></span></div>
+
+ </div>
+
+ <xsl:copy-of select="$footer"/>
+
+ </div>
+
+ </body>
+
+ </html>
+ </redirect:write>
+ </xsl:template>
+
+
+ <!--The page for downloads.-->
+ <xsl:template name="downloads">
+ <redirect:write file="{$output-dir}/downloads.html">
+ <xsl:variable name="downloads-xml" select="document('downloads.xml')"/>
+
+ <html>
+
+ <head>
+ <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
+ <link rel="stylesheet" type="text/css" href="default.css" media="screen"/>
+ <title>
+ <xsl:value-of select="/api-docs/@title"/>
+ </title>
+ </head>
+
+ <body>
+
+ <div class="container">
+
+ <div class="main">
+
+ <div class="header">
+ <div class="title">
+ <h1><xsl:value-of select="/api-docs/@title"/></h1>
+ </div>
+ </div>
+
+ <div class="content">
+ <div class="item">
+
+ <h1>Introduction</h1>
+
+ <p>
+ The following items are available for download:
+ </p>
+
+ <ul>
+ <xsl:for-each select="$downloads-xml/downloads/download">
+ <li><a href="#{@name}"><xsl:value-of select="@name"/></a></li>
+ </xsl:for-each>
+ </ul>
+
+ </div>
+
+ <xsl:for-each select="$downloads-xml/downloads/download">
+ <div class="item">
+
+ <h1><a name="{@name}"><xsl:value-of select="@name"/></a></h1>
+
+ <xsl:if test="created">
+ <p class="descr">Created <xsl:value-of select="created"/><xsl:if test="platform"> for <xsl:value-of select="platform"/></xsl:if>.</p>
+ </xsl:if>
+
+ <p>
+ <xsl:value-of select="description" disable-output-escaping="yes"/>
+ </p>
+
+ <xsl:choose>
+ <xsl:when test="count(files/file) &gt; 1">
+ <h2>Files</h2>
+ <table>
+ <tr>
+ <th>file</th>
+ <th>size</th>
+ <th>description</th>
+ </tr>
+ <xsl:for-each select="files/file">
+ <tr>
+ <td><a href="{@name}"><xsl:value-of select="@name"/></a></td>
+ <td><xsl:value-of select="@size"/></td>
+ <td><xsl:value-of select="." disable-output-escaping="yes"/></td>
+ </tr>
+ </xsl:for-each>
+ </table>
+ </xsl:when>
+ <xsl:otherwise>
+ <table>
+ <tr>
+ <th>file</th>
+ <th>size</th>
+ </tr>
+ <xsl:for-each select="files/file">
+ <tr>
+ <td><a href="{@name}"><xsl:value-of select="@name"/></a></td>
+ <td><xsl:value-of select="@size"/></td>
+ </tr>
+ </xsl:for-each>
+ </table>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:if test="count(dependencies/dependency) &gt; 0">
+ <h2>Dependencies</h2>
+ <table>
+ <tr>
+ <th>name</th>
+ <th>version</th>
+ <th>type</th>
+ <th>description</th>
+ </tr>
+ <xsl:for-each select="dependencies/dependency">
+ <tr>
+ <xsl:choose>
+ <xsl:when test="@href">
+ <td><a href="{@href}"><xsl:value-of select="@id"/></a></td>
+ </xsl:when>
+ <xsl:otherwise>
+ <td><xsl:value-of select="@id"/></td>
+ </xsl:otherwise>
+ </xsl:choose>
+ <td><xsl:value-of select="@version"/></td>
+ <td><xsl:value-of select="@type"/></td>
+ <td><xsl:value-of select="." disable-output-escaping="yes"/></td>
+ </tr>
+ </xsl:for-each>
+ </table>
+ </xsl:if>
+ </div>
+ </xsl:for-each>
+
+ </div>
+
+ <div class="sidenav">
+ <xsl:copy-of select="$global-sidnav"/>
+ </div>
+
+ <div class="clearer"><span></span></div>
+
+ </div>
+
+ <xsl:copy-of select="$footer"/>
+
+ </div>
+
+ </body>
+
+ </html>
+ </redirect:write>
+ </xsl:template>
+
+
+ <!--The page for a REST resource.-->
+ <xsl:template name="rest-resource">
+ <redirect:write file="{$output-dir}/rest{translate(@name,$rest_translate_chars,$rest_translate_replacements)}.html">
+ <html>
+
+ <head>
+ <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
+ <link rel="stylesheet" type="text/css" href="default.css" media="screen"/>
+ <title>
+ <xsl:value-of select="/api-docs/@title"/>
+ </title>
+ </head>
+
+ <body>
+
+ <div class="container">
+
+ <div class="main">
+
+ <div class="header">
+ <div class="title">
+ <h1><xsl:value-of select="/api-docs/@title"/></h1>
+ </div>
+ </div>
+
+ <div class="content">
+ <div class="item">
+
+ <h1><xsl:value-of select="@name"/></h1>
+ <xsl:if test="((@subcontext) and (not($disable-rest-mountpoint)))">
+ <ul>
+ <li>Mount Point: <a href="{concat($api-relative-path,@subcontext,@name)}"><xsl:value-of select="concat(@subcontext,@name)"/></a></li>
+ </ul>
+ </xsl:if>
+
+ <xsl:if test="operation">
+ <p>
+ The following operations are supported on this resource:
+ </p>
+
+ <ul>
+ <xsl:for-each select="operation">
+ <li>
+ <xsl:choose>
+ <xsl:when test="tag[@name='deprecated']">
+ <font style="text-decoration:line-through;">
+ <a href="#{@name}"><xsl:value-of select="@name"/></a>
+ </font>
+ <xsl:for-each select="alias">
+ <font style="text-decoration:line-through;">
+ <a href="#{../@name}"><xsl:value-of select="."/></a>
+ </font>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:otherwise>
+ <a href="#{@name}"><xsl:value-of select="@name"/></a>
+ <xsl:for-each select="alias">
+ <a href="#{../@name}"><xsl:value-of select="."/></a>
+ </xsl:for-each>
+ </xsl:otherwise>
+ </xsl:choose>
+ </li>
+ </xsl:for-each>
+ </ul>
+ </xsl:if>
+ </div>
+
+ <xsl:for-each select="operation">
+ <div class="item">
+
+ <h1><a name="{@name}"><xsl:value-of select="@name"/></a></h1>
+
+ <xsl:if test="alias">
+ <ul>
+ <li>Aliases: <xsl:for-each select="alias"><xsl:value-of select="."/> </xsl:for-each></li>
+ </ul>
+ </xsl:if>
+
+ <xsl:if test="tag[@name='deprecated']">
+ <p class="deprecated">
+ This method has been deprecated. <xsl:value-of select="tag[@name='deprecated']" disable-output-escaping="yes"/>.
+ </p>
+ </xsl:if>
+
+ <xsl:if test="documentation">
+ <p>
+ <xsl:value-of select="documentation" disable-output-escaping="yes"/>
+ </p>
+ </xsl:if>
+
+ <xsl:if test="parameter">
+ <h2>Parameters</h2>
+ <table>
+ <tr>
+ <th>name</th>
+ <th>description</th>
+ <th>type</th>
+ <th>default</th>
+ </tr>
+ <xsl:for-each select="parameter">
+ <tr>
+ <td><xsl:value-of select="@name"/></td>
+ <td><xsl:value-of select="." disable-output-escaping="yes"/></td>
+ <td><xsl:value-of select="@type"/></td>
+ <td><xsl:value-of select="@defaultValue"/></td>
+ </tr>
+ </xsl:for-each>
+ </table>
+ </xsl:if>
+
+ <xsl:if test="inValue">
+ <h2>Input Payload</h2>
+ <table>
+ <tr>
+ <th>element</th>
+ <th>consumeable content type(s)</th>
+ </tr>
+ <tr>
+ <xsl:apply-templates select="inValue" mode="schemaLinking" />
+ <td>
+ <ul>
+ <xsl:for-each select="contentType[@consumable='true']">
+ <li><xsl:value-of select="@type"/></li>
+ </xsl:for-each>
+ </ul>
+ </td>
+ </tr>
+ <xsl:if test="inValue/documentation">
+ <tr>
+ <th colspan="2">description</th>
+ </tr>
+ <tr>
+ <td colspan="2">
+ <xsl:value-of select="inValue/documentation" disable-output-escaping="yes" />
+ </td>
+ </tr>
+ </xsl:if>
+ </table>
+ </xsl:if>
+
+ <xsl:if test="outValue">
+ <h2>Output Payload</h2>
+ <table>
+ <tr>
+ <th>element</th>
+ <th>produceable content type(s)</th>
+ </tr>
+ <tr>
+ <xsl:apply-templates select="outValue" mode="schemaLinking" />
+ <td>
+ <ul>
+ <xsl:for-each select="contentType[@produceable='true']">
+ <li><xsl:value-of select="@type"/><xsl:if test="((@subcontext) and (not($disable-rest-mountpoint)))"> (alternative mount point: <a href="{concat($api-relative-path,@subcontext,../../@name)}"><xsl:value-of select="@subcontext"/></a>)</xsl:if></li>
+ </xsl:for-each>
+ </ul>
+ </td>
+ </tr>
+ <xsl:if test="outValue/documentation">
+ <tr>
+ <th colspan="2">description</th>
+ </tr>
+ <tr>
+ <td colspan="2">
+ <xsl:value-of select="outValue/documentation" disable-output-escaping="yes" />
+ </td>
+ </tr>
+ </xsl:if>
+ </table>
+ </xsl:if>
+
+ <xsl:if test="error">
+ <h2>Errors</h2>
+ <table>
+ <tr>
+ <th>code</th>
+ <th>description</th>
+ </tr>
+ <xsl:for-each select="error">
+ <tr>
+ <td><xsl:value-of select="@code"/></td>
+ <td><xsl:value-of select="." disable-output-escaping="yes"/></td>
+ </tr>
+ </xsl:for-each>
+ </table>
+ </xsl:if>
+
+ </div>
+ </xsl:for-each>
+ </div>
+
+ <div class="sidenav">
+ <h1><xsl:value-of select="@name"/></h1>
+
+ <xsl:if test="operation">
+ <ul>
+ <xsl:for-each select="operation">
+ <li>
+ <xsl:choose>
+ <xsl:when test="tag[@name='deprecated']">
+ <font style="text-decoration:line-through;">
+ <a href="#{@name}"><xsl:value-of select="@name"/></a>
+ </font>
+ </xsl:when>
+ <xsl:otherwise>
+ <a href="#{@name}"><xsl:value-of select="@name"/></a>
+ </xsl:otherwise>
+ </xsl:choose>
+ </li>
+ </xsl:for-each>
+ </ul>
+ </xsl:if>
+
+ <xsl:copy-of select="$global-sidnav"/>
+ </div>
+
+ <div class="clearer"><span></span></div>
+
+ </div>
+
+ <xsl:copy-of select="$footer"/>
+
+ </div>
+
+ </body>
+
+ </html>
+ </redirect:write>
+ </xsl:template>
+
+ <xsl:template match="inValue|outValue" mode="schemaLinking">
+ <td>
+ <xsl:choose>
+ <xsl:when test="xmlElement/@elementName or jsonElement/@elementName">
+ <xsl:if test="xmlElement/@elementName">
+ <xsl:choose>
+ <xsl:when test="xmlElement/@elementSchemaId">
+ <a href="data_{xmlElement/@elementSchemaId}.html#element_{xmlElement/@elementName}"><xsl:value-of select="xmlElement/@elementName" /> (XML)</a>
+ </xsl:when>
+ <xsl:otherwise><xsl:value-of select="xmlElement/@elementName" /> (XML)</xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ <xsl:if test="jsonElement/@elementName">
+ <xsl:choose>
+ <xsl:when test="jsonElement/@elementSchemaId">
+ <a href="data_{jsonElement/@elementSchemaId}.html#element_{jsonElement/@elementName}"><xsl:value-of select="jsonElement/@elementName" /> (JSON)</a>
+ </xsl:when>
+ <xsl:otherwise><xsl:value-of select="jsonElement/@elementName" /> (JSON)</xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise>(custom)</xsl:otherwise>
+ </xsl:choose>
+ </td>
+ </xsl:template>
+
+ <xsl:template name="data-json-schema">
+ <redirect:write file="{$output-dir}/data_{@schemaId}.html">
+ <html>
+ <head>
+ <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
+ <link rel="stylesheet" type="text/css" href="default.css" media="screen"/>
+ <title>
+ <xsl:value-of select="/api-docs/@title"/>
+ </title>
+ </head>
+ <body>
+ <div class="container">
+ <div class="main">
+ <div class="header">
+ <div class="title">
+ <h1><xsl:value-of select="/api-docs/@title"/></h1>
+ </div>
+ </div>
+ <div class="content">
+ <div class="item">
+ <h1>Data<xsl:if test="$multiple_schemas and (string-length(@schemaId) &gt; 0)">: <xsl:value-of select="@schemaId"/></xsl:if></h1>
+ <ul>
+ <li>JSON Schema ID: <u><xsl:value-of select="@schemaId"/></u></li>
+ <xsl:if test="@file">
+ <li>JSON Schema File: <a href="{@file}"><xsl:value-of select="@file"/></a></li>
+ </xsl:if>
+ </ul>
+ <xsl:if test="type">
+ <p>
+ The following types are members of this schema:
+ </p>
+ <ul>
+ <xsl:for-each select="type">
+ <xsl:sort select="@name"/>
+ <li>
+ <a href="#{@name}"><xsl:value-of select="@name"/></a>
+ </li>
+ </xsl:for-each>
+ </ul>
+ </xsl:if>
+ </div>
+ <xsl:for-each select="type">
+ <xsl:sort select="@name"/>
+ <div class="item">
+ <h1><a name="{@name}">Type <xsl:value-of select="@name"/></a></h1>
+ <xsl:if test="documentation">
+ <p>
+ <xsl:value-of select="documentation" disable-output-escaping="yes"/>
+ </p>
+ </xsl:if>
+ <xsl:if test="property">
+ <h2>Properties</h2>
+ <table>
+ <tr>
+ <th>name</th>
+ <th>type</th>
+ <th>description</th>
+ </tr>
+ <xsl:for-each select="property">
+ <tr>
+ <td><xsl:value-of select="@name"/></td>
+ <td><xsl:if test="@isList = 'true'">List of </xsl:if>
+ <xsl:choose>
+ <xsl:when test="@typeSchemaId"><a href="data_{@typeSchemaId}.html#{@typeName}"><xsl:value-of select="@typeName"/></a></xsl:when>
+ <xsl:otherwise><xsl:value-of select="@typeName"/></xsl:otherwise>
+ </xsl:choose>
+ </td>
+ <td><xsl:value-of select="@documentation" disable-output-escaping="yes"/></td>
+ </tr>
+ </xsl:for-each>
+ </table>
+ </xsl:if>
+ <xsl:if test="enumValue">
+ <h2>Possible Values</h2>
+ <table>
+ <tr>
+ <th>value</th>
+ <th>description</th>
+ </tr>
+ <xsl:for-each select="enumValue">
+ <tr>
+ <td><xsl:value-of select="value"/></td>
+ <td><xsl:value-of select="documentation" disable-output-escaping="yes"/></td>
+ </tr>
+ </xsl:for-each>
+ </table>
+ </xsl:if>
+ </div>
+ </xsl:for-each>
+ </div>
+ <div class="sidenav">
+ <xsl:copy-of select="$global-sidnav"/>
+ </div>
+ <div class="clearer"><span></span></div>
+ </div>
+ <xsl:copy-of select="$footer"/>
+ </div>
+ </body>
+ </html>
+ </redirect:write>
+ </xsl:template>
+
+ <!--The documentation page for a schema.-->
+ <xsl:template name="data-schema">
+ <redirect:write file="{$output-dir}/data_{@namespaceId}.html">
+ <html>
+
+ <head>
+ <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
+ <link rel="stylesheet" type="text/css" href="default.css" media="screen"/>
+ <title>
+ <xsl:value-of select="/api-docs/@title"/>
+ </title>
+ </head>
+
+ <body>
+
+ <div class="container">
+
+ <div class="main">
+
+ <div class="header">
+ <div class="title">
+ <h1><xsl:value-of select="/api-docs/@title"/></h1>
+ </div>
+ </div>
+
+ <div class="content">
+ <div class="item">
+
+ <h1>Data<xsl:if test="$multiple_schemas and (string-length(@namespace) &gt; 0)">: <xsl:value-of select="@namespaceId"/></xsl:if></h1>
+
+ <ul>
+ <xsl:choose>
+ <xsl:when test="string-length(@namespace) = 0">
+ <li>Default Namespace</li>
+ </xsl:when>
+ <xsl:otherwise>
+ <li>Namespace: <u><xsl:value-of select="@namespace"/></u></li>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="@file">
+ <li>XML Schema File: <a href="{@file}"><xsl:value-of select="@file"/></a></li>
+ </xsl:if>
+ </ul>
+
+ <p>The data in this namespace is divided into elements and types. Types define the structure
+ of the data. Elements define specific instances of the types, and are therefore more relevant to
+ REST endpoints, which generally consume and/or produce elements.</p>
+
+ <xsl:if test="elements/element">
+ <p>
+ The following elements are members of this namespace:
+ </p>
+
+ <ul>
+ <xsl:for-each select="elements/element">
+ <xsl:sort select="@name"/>
+ <li>
+ <xsl:choose>
+ <xsl:when test="tag[@name='deprecated']">
+ <font style="text-decoration:line-through;">
+ <a href="#element_{@name}"><xsl:value-of select="@name"/></a>
+ </font>
+ </xsl:when>
+ <xsl:otherwise>
+ <a href="#element_{@name}"><xsl:value-of select="@name"/></a>
+ </xsl:otherwise>
+ </xsl:choose>
+ </li>
+ </xsl:for-each>
+ </ul>
+ </xsl:if>
+
+ <xsl:if test="types/type">
+ <p>
+ The following types are members of this namespace:
+ </p>
+
+ <ul>
+ <xsl:for-each select="types/type">
+ <xsl:sort select="@name"/>
+ <li>
+ <xsl:choose>
+ <xsl:when test="tag[@name='deprecated']">
+ <font style="text-decoration:line-through;">
+ <a href="#{@name}"><xsl:value-of select="@name"/></a>
+ </font>
+ </xsl:when>
+ <xsl:otherwise>
+ <a href="#{@name}"><xsl:value-of select="@name"/></a>
+ </xsl:otherwise>
+ </xsl:choose>
+ </li>
+ </xsl:for-each>
+ </ul>
+ </xsl:if>
+
+ </div>
+
+ <xsl:for-each select="elements/element">
+ <xsl:sort select="@name"/>
+ <div class="item">
+
+ <h1><a name="element_{@name}">Element <xsl:value-of select="@name"/></a></h1>
+
+ <xsl:if test="@typeSchemaId and @typeName">
+ <ul>
+ <li>Type: <a href="data_{@typeSchemaId}.html#{@typeName}"><xsl:value-of select="@typeName"/></a></li>
+ </ul>
+ </xsl:if>
+
+ <xsl:if test="tag[@name='deprecated']">
+ <p class="deprecated">
+ This element has been deprecated. <xsl:value-of select="tag[@name='deprecated']" disable-output-escaping="yes"/>.
+ </p>
+ </xsl:if>
+
+ <xsl:if test="documentation">
+ <p>
+ <xsl:value-of select="documentation" disable-output-escaping="yes"/>
+ </p>
+ </xsl:if>
+
+ <xsl:if test="examplexml and (string-length(examplexml) &gt; 1)">
+ <h2>Example XML</h2>
+ <code><xsl:value-of select="examplexml"/></code>
+ </xsl:if>
+
+ <xsl:if test="examplejson and (string-length(examplejson) &gt; 1)">
+ <h2>Example JSON</h2>
+ <code><xsl:value-of select="examplejson"/></code>
+ </xsl:if>
+ </div>
+ </xsl:for-each>
+
+ <xsl:for-each select="types/type">
+ <xsl:sort select="@name"/>
+
+ <div class="item">
+
+ <h1><a name="{@name}">Type <xsl:value-of select="@name"/></a></h1>
+ <xsl:if test="@extendsType">
+ <xsl:variable name="typeId" select="@extendsType"/>
+ <xsl:variable name="extendedType" select="//type[@id=$typeId]"/>
+ <ul>
+ <li>Extends: <a href="data_{$extendedType/../../@namespaceId}.html#{$extendedType/@name}"><xsl:value-of select="$extendedType/@name"/></a></li>
+ </ul>
+ </xsl:if>
+
+ <xsl:if test="tag[@name='deprecated']">
+ <p class="deprecated">
+ This type has been deprecated. <xsl:value-of select="tag[@name='deprecated']" disable-output-escaping="yes"/>.
+ </p>
+ </xsl:if>
+
+ <xsl:if test="documentation">
+ <p>
+ <xsl:value-of select="documentation" disable-output-escaping="yes"/>
+ </p>
+ </xsl:if>
+
+ <xsl:if test="attributes">
+ <h2>Attributes</h2>
+ <table>
+ <tr>
+ <th>name</th>
+ <th>type</th>
+ <th>description</th>
+ </tr>
+ <xsl:for-each select="attributes/attribute">
+ <tr>
+ <td><xsl:value-of select="@name"/></td>
+ <td>
+ <xsl:choose>
+ <xsl:when test="@typeSchemaId"><a href="data_{@typeSchemaId}.html#{@typeName}"><xsl:value-of select="@typeName"/></a></xsl:when>
+ <xsl:otherwise><xsl:value-of select="@typeName"/></xsl:otherwise>
+ </xsl:choose>
+ </td>
+ <td><xsl:value-of select="." disable-output-escaping="yes"/></td>
+ </tr>
+ </xsl:for-each>
+ </table>
+ </xsl:if>
+
+ <xsl:if test="elements">
+ <h2>Child Elements</h2>
+ <table>
+ <tr>
+ <th>name (type)</th>
+ <th>min/max <br/>occurs</th>
+ <th>description</th>
+ </tr>
+ <xsl:for-each select="elements/element">
+ <tr>
+ <td>
+ <xsl:for-each select="choice">
+ <xsl:if test="position() &gt; 1"><br/>or </xsl:if>
+ <xsl:choose>
+ <xsl:when test="@schemaId"><a href="data_{@schemaId}.html#element_{@name}"><xsl:value-of select="@name"/></a></xsl:when>
+ <xsl:otherwise><xsl:value-of select="@name"/></xsl:otherwise>
+ </xsl:choose>
+ <xsl:choose>
+ <xsl:when test="@typeSchemaId"> (<a href="data_{@typeSchemaId}.html#{@typeName}"><xsl:value-of select="@typeName"/></a>)</xsl:when>
+ <xsl:otherwise> (<xsl:value-of select="@typeName"/>)</xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </td>
+ <td><xsl:value-of select="@minOccurs"/>/<xsl:value-of select="@maxOccurs"/></td>
+ <xsl:choose>
+ <xsl:when test="documentation">
+ <td><xsl:value-of select="documentation" disable-output-escaping="yes"/></td>
+ </xsl:when>
+ <xsl:otherwise>
+ <td>(no documentation provided)</td>
+ </xsl:otherwise>
+ </xsl:choose>
+ </tr>
+ </xsl:for-each>
+ </table>
+ </xsl:if>
+
+ <xsl:if test="value">
+ <h2>Value</h2>
+ <ul>
+ <li>
+ Type:
+ <xsl:choose>
+ <xsl:when test="value/@typeSchemaId"><a href="data_{value/@typeSchemaId}.html#{value/@typeName}"><xsl:value-of select="value/@typeName"/></a></xsl:when>
+ <xsl:otherwise><xsl:value-of select="value/@typeName"/></xsl:otherwise>
+ </xsl:choose>
+ </li>
+ </ul>
+
+ <p><xsl:value-of select="value" disable-output-escaping="yes"/></p>
+ </xsl:if>
+
+ <xsl:if test="values">
+ <h2>Possible Values</h2>
+ <table>
+ <tr>
+ <th>value</th>
+ <th>description</th>
+ </tr>
+ <xsl:for-each select="values/item">
+ <tr>
+ <xsl:choose>
+ <xsl:when test="tag[@name='deprecated']">
+ <td><font style="text-decoration:line-through;"><xsl:value-of select="@value"/></font></td>
+ </xsl:when>
+ <xsl:otherwise>
+ <td><xsl:value-of select="@value"/></td>
+ </xsl:otherwise>
+ </xsl:choose>
+ <td><xsl:value-of select="documentation" disable-output-escaping="yes"/></td>
+ </tr>
+ </xsl:for-each>
+ </table>
+ </xsl:if>
+
+ </div>
+ </xsl:for-each>
+ </div>
+
+ <div class="sidenav">
+ <xsl:copy-of select="$global-sidnav"/>
+ </div>
+
+ <div class="clearer"><span></span></div>
+
+ </div>
+
+ <xsl:copy-of select="$footer"/>
+
+ </div>
+
+ </body>
+
+ </html>
+ </redirect:write>
+ </xsl:template>
+
+</xsl:stylesheet>
View
240 src/site/resources/css/site.css
@@ -0,0 +1,240 @@
+/*
+ * R Service Bus
+ *
+ * Copyright (c) Copyright of OpenAnalytics BVBA, 2010-2011
+ *
+ * ===========================================================================
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+body, td, select, input, li {
+ color: #313131;
+ font-family: Arial,Tahoma,Helvetica,sans-serif;
+ font-size: 13px;
+ line-height: 150%;
+}
+body {
+ background: #FFF url(../images/wieni/body-bg.png) repeat-y 30px top;
+}
+
+
+/*------------------------------ LINKS -------------------------*/
+
+body a:link, body a:visited {
+ color: #3AA8D5;
+ text-decoration: none;
+}
+body a:hover, body a:focus {
+ color: #0082AA;
+ text-decoration: underline;
+}
+
+/*------------------------------ HEADER -------------------------*/
+
+body #banner {
+ border: none;
+ background: url(../images/wieni/banner-bg.png) repeat-x left top;
+ height: 178px;
+ overflow: hidden;
+ position: relative;
+ z-index: 10;
+}
+body #banner #bannerLeft {
+ background: url(../images/wieni/banner.png) no-repeat left top;
+ height: 68px;
+ padding: 110px 0 0 182px;
+ color: #FFF;
+ font-size: 30px;
+ font-weight: normal;
+ text-shadow: 0px 0px 5px #000; /* FF3.5+, Opera 9+, Saf1+, Chrome */
+}
+body #breadcrumbs {
+ position: absolute;
+ top: 130px;
+ right: 40px;
+ color: #CCC;
+ background: transparent;
+ border: none;
+ z-index: 20;
+ font-size: 11px;
+}
+
+
+/*------------------------------ SIDEBAR -------------------------*/
+
+body #leftColumn {
+ width: 250px;
+ background: #f0efef url(../images/wieni/sidebar-bg.png) no-repeat left top;
+ border: none;
+ margin: 0 0 0 30px;
+ position: relative;
+ z-index: 30px;
+}
+body #navcolumn {
+ padding: 10px 8px;
+}
+
+/*------- BLOCKS ----------*/
+body #leftColumn h5 {
+ background: url(../images/wieni/sidebar-block.png) no-repeat left top;
+ width: 204px;
+ padding: 10px 15px 7px;
+ color: #FFF;
+ font-size: 15px;
+ font-weight: normal;
+ text-shadow: 0px 0px 5px #000; /* FF3.5+, Opera 9+, Saf1+, Chrome */
+ border: none;
+}
+body #leftColumn ul {
+ background: url(../images/wieni/sidebar-block.png) no-repeat left bottom;
+ width: 204px;
+ padding: 7px 15px 25px;
+}
+body #leftColumn ul li {
+ padding: 0 0 3px 0;
+ margin: 0 0 3px 0;
+ color: #D83635;
+ font-size: 12px;
+ border-bottom: dotted 1px #DEDEDE;
+}
+body #leftColumn ul li a {
+ color: #D83635;
+}
+body #leftColumn ul li.expanded, body #leftColumn ul li.collapsed {
+ padding-left: 12px;
+}
+body #leftColumn ul ul {
+ background: none;
+ width: auto;
+ padding: 5px 0 0 0;
+}
+body #leftColumn ul ul li {
+ border: none;
+ margin: 0;
+}
+
+/*------- CREDITS ----------*/
+body #leftColumn a.poweredBy {
+ display: block;
+ width: 90px;
+ height: 30px;
+ overflow: hidden;
+ margin: 0 auto;
+}
+body #leftColumn a.poweredBy img {
+ margin: 0;
+}
+
+
+/*------------------------------ CONTENT -------------------------*/
+
+body #bodyColumn {
+ margin: 0 30px 0 280px;
+ padding-left: 20px;
+ background: url(../images/wieni/content-bg.png) no-repeat left 2px;
+}
+
+
+/*------- TITLES ----------*/
+body #bodyColumn h2 {
+ background: none;
+ border: none;
+ color: #4C4C4C;
+ font-size: 30px;
+ font-weight: normal;
+ padding: 0 0 3px 0;
+}
+body #bodyColumn h3 {
+ color: #D83635;
+ background: none;
+ border: none;
+ font-size: 20px;
+ font-weight: normal;
+ padding: 0 0 3px 0;
+}
+body #bodyColumn h4 {
+ color: #8E8E8E;
+ background: none;
+ border: none;
+ font-size: 17px;
+ font-weight: normal;
+ padding: 0 0 3px 0;
+}
+body #bodyColumn h5, body #bodyColumn h6 {
+ color: #8E8E8E;
+ background: none;
+ border: none;
+ font-size: 15px;
+ font-weight: normal;
+ padding: 0 0 3px 0;
+}
+
+/*------- SECTIONS ----------*/
+body #bodyColumn .section {
+ padding: 5px 0;
+ margin: 5px 0;
+ border-bottom: dotted 1px #DEDEDE;
+}
+body #bodyColumn .section .section {
+ padding: 0;
+ margin: 0;
+ border-bottom: none;
+}
+
+/*------- LISTS ----------*/
+body #bodyColumn dl {
+ background-color: #EFF;
+ border: 1px solid #6AE3FF;
+ padding: 4px 4px 4px 6px;
+}
+body #bodyColumn dt {
+ color: #313131;
+ font-size: 15px;
+}
+
+/*------- TABLES ----------*/
+body #bodyColumn table, body #bodyColumn table td {
+ border-collapse: collapse;
+ border: none;
+ border-bottom: solid 1px #FFF;
+}
+body #bodyColumn table th {
+ background: #474e57;
+ border-bottom: solid 1px #000;
+ font-weight: normal;
+ font-size: 14px;
+ padding: 8px 5px;
+}
+body #bodyColumn table td {
+ padding: 5px;
+ background: #EFEFEF;
+}
+body #bodyColumn table .b td {
+ padding: 5px;
+ background: #F6F6F6;
+}
+
+/*------------------------------ FOOTER -------------------------*/
+
+body #footer {
+ font-size: 11px;
+ color: #999;
+ padding: 10px 30px;
+}
+body #footer a:link, body #footer a:visited {
+ color: #666;
+}
+body #footer a:hover, body #footer a:focus {
+ color: #333;
+}
View
BIN src/site/resources/images/wieni/banner-bg.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN src/site/resources/images/wieni/banner.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN src/site/resources/images/wieni/body-bg.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN src/site/resources/images/wieni/content-bg.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN src/site/resources/images/wieni/sidebar-bg.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
BIN src/site/resources/images/wieni/sidebar-block.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
View
2 src/site/site.xml
@@ -26,7 +26,7 @@
<menu name="Getting Started">
<item name="Building" href="build.html" />
<item name="Installation / Configuration" href="install.html" />
- <item name="Administration" hfref="admin.html" />
+ <item name="Administration" href="admin.html" />
</menu>
<menu name="Technical Guide">
<item name="Architecture" href="architecture.html" />

0 comments on commit 50a9e63

Please sign in to comment.
Something went wrong with that request. Please try again.