-
- [#if soapAvailable]
-
- SOAP - [/#if] - [#if restAvailable] -
- REST - [/#if] -
- Data Model - [#if ((downloadsxml??) && (downloadsxml.download?size > 0))] -
- Files and Libraries - [/#if] -
+
-
-
[#nested/]
-
-
diff --git a/src/main/resources/META-INF/enunciate/docs-base.zip b/src/main/resources/META-INF/enunciate/docs-base.zip old mode 100644 new mode 100755 index 998d76b..d5c732d Binary files a/src/main/resources/META-INF/enunciate/docs-base.zip and b/src/main/resources/META-INF/enunciate/docs-base.zip differ diff --git a/src/main/resources/META-INF/enunciate/docs-base.zip.org b/src/main/resources/META-INF/enunciate/docs-base.zip.org new file mode 100644 index 0000000..998d76b Binary files /dev/null and b/src/main/resources/META-INF/enunciate/docs-base.zip.org differ diff --git a/src/main/resources/META-INF/enunciate/docs.fmt b/src/main/resources/META-INF/enunciate/docs.fmt index 06f0b33..63a0332 100644 --- a/src/main/resources/META-INF/enunciate/docs.fmt +++ b/src/main/resources/META-INF/enunciate/docs.fmt @@ -1,12 +1,15 @@ [#ftl] [#assign soapAvailable=docsxml.soap.wsdls.wsdl.endpointInterface?size > 0/] [#assign restAvailable=docsxml.rest.resources.resource?size > 0/] + [#function scrubPathToFilename path] [#return "path_" + path?string?replace("/", "_")?replace(":","-")?replace("{", "-")?replace("}", "-") + ".html"/] [/#function] + [#function tocNeeded(nodelist)] [#return nodelist?size > 2/] [/#function] + [#function attributeExists(node)] [#if node?size??] [#--if there is a 'size' property, then it's not an attribute--] @@ -15,6 +18,7 @@ [#return node?node_type = "attribute"/] [/#if] [/#function] + [#function facetApplicable element facetName] [#list element.facets.facet as facet] [#if facet.name = facetName] @@ -23,9 +27,11 @@ [/#list] [#return false/] [/#function] + [#function isDeprecated element] [#return (getTagValues(element, "deprecated")?size > 0)/] [/#function] + [#function getTagValues element tagName] [#assign tagvalues = [] /] [#list element.tag as tag] @@ -104,97 +110,101 @@ [/#list] [#macro boilerplate title=docsxml.@title!"Web API" subnav=[{"title" : "Home", "href" : indexPageName}] codeblocks=true] - +
+${docsxml.documentation}
- - [/#if] - [#if restAvailable] - -- This API supports a Representational State Transfer (REST) - model for accessing a set of resources through a fixed set of operations. The following resources are accessible through the RESTful model: -
-- The REST resources expose a data model that is supported by a set of client-side libraries that are made available on the - files and libraries page. -
- [/#if] - [#if attributeExists(docsxml.rest.@wadl)] -- There is also a WADL document describing the REST API. -
- [/#if] - [#if swaggerDir??] -- You may also enjoy the Swagger UI provided for this API. -
- [/#if] - [/#if] - [#if soapAvailable] - -- This API is exposed through a set of WSI Basic Profile - -compliant SOAP v1.1 endpoints. The API supports XML-binary Optimized Pacakging (XOP) - and SOAP Message Transmission Optimization Mechanism (MTOM) - for transmission of binary data. The SOAP API is described by the following endpoints: -
- [#list docsxml.soap.wsdls.wsdl as wsdl] - [@processWsdl wsdl=wsdl/] -Namespace URI: | -[#if wsdl.@namespace?length > 0]${wsdl.@namespace}[#else](default namespace)[/#if] | -
WSDL: | -${wsdl.@file} | -
- The SOAP API is also accessible by a set of client-side libraries that can be downloaded from the files and libraries page. -
- [/#if] - [/#if] - -- All endpoints act on a common set of data. The data can be represented with difference media (i.e. "MIME") types, depending on the endpoint - that consumes and/or produces the data. The data can described by XML Schema, which definitively - describes the XML representation of the data[#if includeExampleJson!true], but is also useful for describing the other formats of the data, such as JSON[/#if]. -
- -- This document will describe the data using terms based on XML Schema. - Data can be grouped by namespace, with a schema document describing the elements and types of the namespace. - Generally speaking, types define the structure of the data and elements are instances of a type. For example, - elements are usually produced by (or consumed by) a REST endpoint, and the structure of each element is described by - its type. -
- - [#list docsxml.data.schema as schema] - [@processSchema schema=schema/] - -Namespace URI: | -[#if schema.@namespace?length > 0]${schema.@namespace}[#else](default namespace)[/#if] | -
XSD: | -${schema.@file} | -
${docsxml.documentation}
+ + [/#if] +- All endpoints act on a common set of data. The data can be represented with difference media (i.e. "MIME") types, depending on the endpoint - that consumes and/or produces the data. The data can described by XML Schema, which definitively - describes the XML representation of the data[#if includeExampleJson!true], but is also useful for describing the other formats of the data, such as JSON[/#if]. -
- -- This document will describe the data using terms based on XML Schema. - Data can be grouped by namespace, with a schema document describing the elements and types of the namespace. - Generally speaking, types define the structure of the data and elements are instances of a type. For example, - elements are usually produced by (or consumed by) a REST endpoint, and the structure of each element is described by - its type. -
+ +Namespace URI: | -[#if schema.@namespace?length > 0]${schema.@namespace}[#else](default namespace)[/#if] | -
XSD: | -${schema.@file} | -
${description}
[/#list]name | size | @@ -480,9 +385,13 @@ [/@file] [/#if] [#if restAvailable] - [@file name="rest.html" charset="utf-8"] + +[@file name="rest.html" charset="utf-8"] [@boilerplate title="REST" subnav=[{"title" : "Home", "href" : indexPageName}, {"title" : "REST" , "href" : "rest.html", "subnav" : nav_sections}]] -
---|
Namespace URI: | -[#if wsdl.@namespace?length > 0]${wsdl.@namespace}[#else](default namespace)[/#if] | -
WSDL: | -${wsdl.@file} | -
Namespace URI: | -[#if wsdl.@namespace?length > 0]${wsdl.@namespace}[#else](default namespace)[/#if] | -
WSDL: | -${wsdl.@file} | -
${documentation}
- [/#list] - [#assign resources=[] /] - [#list docsxml.rest.resources.resource?sort_by("@name") as resource] - [#list resource.facets.facet as rg] - [#if ((rg.name = facet.name) && (rg.value == facet.value))] - [#assign resources=resources + resource /] - [#break/] - [/#if] - [/#list] - [/#list] + +${documentation}
+ [/#list] + [#assign resources=[] /] + [#list docsxml.rest.resources.resource?sort_by("@name") as resource] + [#list resource.facets.facet as rg] + [#if ((rg.name = facet.name) && (rg.value == facet.value))] + [#assign resources=resources + resource /] + [#break/] + [/#if] + [/#list] + [/#list] + [#list resources as resource] + [#if resource.label?has_content] + + [#else] + + [/#if] + [@processRawResource resource=resource/] + [/#list] +Available Since: ${sinceTags[0]}
@@ -652,6 +570,7 @@ [#if versionTags?size > 0]Version: ${versionTags[0]}
[/#if] + [#list resource.operation as operation] - -
+ [${operation.@name}] /api/v1${resource.@name}
+
Alias: ${alias}
[/#list] @@ -680,15 +607,15 @@Version: ${versionTags[0]}
[/#if] [#if isDeprecated(operation)] -This operation has been deprecated. [#list operation.tag as tag][#if tag.@name="deprecated"] ${tag}[/#if][/#list]
+This operation has been deprecated. [#list operation.tag as tag][#if tag.@name="deprecated"] ${tag}[/#if][/#list]
[/#if] [#list operation.documentation as documentation] -${documentation}
+${documentation}
[/#list] [#list operation.parameter as parameter] [#if parameter_index = 0]name | description | @@ -708,13 +635,13 @@ [/#list] [#list operation.inValue as inValue]
---|
element: | +element: | [#if attributeExists(xmlElement.@elementSchemaId)]${xmlElement.@elementName} | [#else] @@ -727,7 +654,7 @@ [#if attributeExists(jsonElement.@elementName)] [#assign custom=false/]
element: | +element: | [#if attributeExists(jsonElement.@elementSchemaId)]${jsonElement.@elementName} | [#else] @@ -738,7 +665,7 @@ [/#list] [#if custom]
element: | +element: | [#if operation.customParameterName?has_content]${operation.customParameterName} | [#else] @@ -746,14 +673,18 @@ [/#if]
description: | +${documentation} | +|
media types: | +media types: | [#list operation.contentType as contentType][#if contentType.@consumable = "true"]${contentType.@type}[#if contentType_has_next] [/#if][/#if][/#list] |
${documentation}
- [/#list] + [#if operation.showSampleRequest?has_content]${operation.@name} ...${resource.@subcontext}${resource.@name}
Accept: [#assign first = true/][#list operation.contentType as contentType][#if contentType.@produceable = "true"][#if !first];[/#if][#assign first=false/]${contentType.@type}[/#if][/#list]
@@ -801,13 +732,13 @@ ${examplexml?string?xhtml}
[/#list]
[#list operation.outValue as outValue]
Response Body
-
+
[#assign custom=true]
[#list outValue.xmlElement as xmlElement]
[#if attributeExists(xmlElement.@elementName)]
[#assign custom=false/]
- element:
+ element:
[#if attributeExists(xmlElement.@elementSchemaId)]
${xmlElement.@elementName}
[#else]
@@ -820,7 +751,7 @@ ${examplexml?string?xhtml}
[#if attributeExists(jsonElement.@elementName)]
[#assign custom=false/]
- element:
+ element:
[#if attributeExists(jsonElement.@elementSchemaId)]
${jsonElement.@elementName}
[#else]
@@ -831,18 +762,22 @@ ${examplexml?string?xhtml}
[/#list]
[#if custom]
- element:
+ element:
(custom)
[/#if]
+ [#list outValue.documentation as documentation]
+
+ description:
+ ${documentation}
+
+ [/#list]
- media types:
+ media types:
[#list operation.contentType as contentType][#if contentType.@produceable = "true"]${contentType.@type}[#if contentType_has_next]
[/#if][/#if][/#list]
- [#list outValue.documentation as documentation]
- ${documentation}
- [/#list]
+
[#if operation.showSampleResponse?has_content]
HTTP/1.1 ${operation.showSampleResponse.@code}
[#if operation.showSampleResponse == "JSON"]
@@ -882,7 +817,7 @@ ${examplexml?string?xhtml}
[#list operation.statusCode as statusCode]
[#if statusCode_index = 0]
Status Codes
-
+
HTTP Status Code
Description
@@ -905,7 +840,7 @@ ${examplexml?string?xhtml}
[#list operation.warning as warning]
[#if warning_index = 0]
Warnings
-
+
HTTP Status Code
Description
@@ -922,7 +857,7 @@ ${examplexml?string?xhtml}
[#list operation.responseHeader as responseHeader]
[#if responseHeader_index = 0]
Response Headers
-
+
name
description
@@ -938,6 +873,7 @@ ${examplexml?string?xhtml}
[/#list]
[/#list]
[/#macro]
+
[#macro processEndpointInterface endpointInterface]
[@file name="soap_" + endpointInterface?parent.@namespaceId + "_" + endpointInterface.@name + ".html" charset="utf-8"]
[@boilerplate title=endpointInterface.@name subnav=[{"title" : "Home", "href" : indexPageName}, {"title" : "SOAP" , "href" : "soap.html", "subnav" : nav_sections }, {"title" : endpointInterface?parent.@namespaceId , "href" : "soap_" + endpointInterface?parent.@namespaceId + ".html", "subnav" : nav_wsdls }, {"title" : endpointInterface.@name , "href" : "soap_" + endpointInterface.@name + ".html", "subnav" : nav_eis_by_ns[endpointInterface?parent.@namespaceId?string]}]]
@@ -945,34 +881,34 @@ ${examplexml?string?xhtml}
[#if isDeprecated(endpointInterface)]
This endpoint has been deprecated.[#list endpointInterface.tag as tag][#if tag.@name="deprecated"] ${tag}[/#if][/#list]
[/#if]
-
+
- Namespace:
+ Namespace:
[#if (endpointInterface?parent).@namespace?length > 0]${(endpointInterface?parent).@namespace}[#else](default namespace)[/#if]
[#if attributeExists((endpointInterface?parent).@file)]
- WSDL:
+ WSDL:
${(endpointInterface?parent).@file}
[/#if]
[#if attributeExists(endpointInterface.@path)]
- Path:
+ Path:
${endpointInterface.@path}
[/#if]
[#assign sinceTags = getTagValues(endpointInterface, "since") /]
[#if sinceTags?size > 0]
- Available Since:
+ Available Since:
${sinceTags[0]}
[/#if]
[#assign versionTags = getTagValues(endpointInterface, "version") /]
[#if versionTags?size > 0]
- Version:
+ Version:
${versionTags[0]}
[/#if]
@@ -1012,7 +948,7 @@ ${examplexml?string?xhtml}
[#list method["parameter[@input='true']"] as parameter]
[#if parameter_index = 0]
Input Parameters
-
+
name
type
@@ -1031,7 +967,7 @@ ${examplexml?string?xhtml}
[#list method["parameter[@output='true']"] as parameter]
[#if parameter_index = 0]
Output Parameters
-
+
name
type
@@ -1051,9 +987,9 @@ ${examplexml?string?xhtml}
Return Value
[#if attributeExists(result.@xmlTypeName)]
-
+
- Type:
+ Type:
[#if attributeExists(result.@xmlTypeSchemaId)]${result.@xmlTypeName}[#else]${result.@xmlTypeName}[/#if]
@@ -1064,7 +1000,7 @@ ${examplexml?string?xhtml}
[#list method.fault as fault]
[#if fault_index = 0]
Faults
-
+
name
@@ -1083,18 +1019,19 @@ ${examplexml?string?xhtml}
[/@boilerplate]
[/@file]
[/#macro]
+
[#macro processSchema schema]
[@file name=schema.@namespaceId + ".html" charset="utf-8"]
[@boilerplate title="Namespace: " + schema.@namespaceId subnav=[{"title" : "Home", "href" : indexPageName}, {"title" : "Data Model" , "href" : "model.html", "subnav" : nav_sections}, {"title" : schema.@namespaceId , "href" : schema.@namespaceId + ".html", "subnav" : nav_models}]]
Namespace ${schema.@namespaceId}
-
+
- Namespace:
+ Namespace:
[#if schema.@namespace?length > 0]${schema.@namespace}[#else](default namespace)[/#if]
[#if attributeExists(schema.@file)]
- XML Schema:
+ XML Schema:
${schema.@file}
[/#if]
@@ -1124,42 +1061,48 @@ ${examplexml?string?xhtml}
[/@boilerplate]
[/@file]
[/#macro]
+
[#macro processElement element]
[#assign schema=element?parent?parent/]
[@file name="el_" + schema.@namespaceId + "_" + element.@name + ".html" charset="utf-8"]
[@boilerplate title=element.@name subnav=[{"title" : "Home", "href" : indexPageName}, {"title" : "Data Model" , "href" : "model.html", "subnav" : nav_sections}, {"title" : schema.@namespaceId , "href" : schema.@namespaceId + ".html", "subnav" : nav_models}, {"title" : element.@name + " element" , "href" : "el_" + schema.@namespaceId + "_" + element.@name + ".html", "subnav" : nav_elements_by_ns[schema.@namespaceId?string]}] codeblocks=true]
- ${element.@name} element
+
+
+ ${element.@name} element
+
[#if isDeprecated(element)]
This element has been deprecated.[#list element.tag as tag][#if tag.@name="deprecated"] ${tag}[/#if][/#list]
[/#if]
-
+
[#if attributeExists(element.@typeName) && attributeExists(element.@typeSchemaId)]
- Type:
+ Type:
${element.@typeName}
[/#if]
+
[#if attributeExists(schema.@file)]
- XML Schema:
+ XML Schema:
${schema.@file}
[/#if]
[#assign sinceTags = getTagValues(element, "since") /]
[#if sinceTags?size > 0]
- Available Since:
+ Available Since:
${sinceTags[0]}
[/#if]
[#assign versionTags = getTagValues(element, "version") /]
[#if versionTags?size > 0]
- Available Version:
+ Available Version:
${versionTags[0]}
[/#if]
@@ -1172,57 +1115,63 @@ ${examplexml?string?xhtml}
${examplexml?string?xhtml}
[/#list]
[#list element.examplejson as examplejson]
+
+ ${examplejson?string?xhtml}
[/#list]
+
[/@boilerplate]
[/@file]
[/#macro]
+
[#macro processType type]
[#assign schema=type?parent?parent/]
[@file name=schema.@namespaceId + "_" + type.@name + ".html" charset="utf-8"]
[@boilerplate title=type.@name subnav=[{"title" : "Home", "href" : indexPageName}, {"title" : "Data Model" , "href" : "model.html", "subnav" : nav_sections}, {"title" : schema.@namespaceId , "href" : schema.@namespaceId + ".html", "subnav" : nav_models} , {"title" : type.@name , "href" : schema.@namespaceId + "_" + type.@name + ".html", "subnav" : nav_typedefs_by_ns[schema.@namespaceId?string]}] codeblocks=true]
- ${type.@name}
+
+
+ ${type.@name}
+ [#if attributeExists(type.@extendsType)]
+ [#list docsxml.data.schema.types.type as candidate]
+ [#if attributeExists(candidate.@id) && (candidate.@id?string = type.@extendsType?string)]
+ extends ${candidate.@name}
+ [#break/]
+ [/#if]
+ [/#list]
+ [/#if]
+
[#if isDeprecated(type)]
This type has been deprecated.[#list type.tag as tag][#if tag.@name="deprecated"] ${tag}[/#if][/#list]
[/#if]
-
- [#if attributeExists(type.@extendsType)]
- [#list docsxml.data.schema.types.type as candidate]
- [#if attributeExists(candidate.@id) && (candidate.@id?string = type.@extendsType?string)]
-
- Extends:
- ${candidate.@name}
-
- [#break/]
- [/#if]
- [/#list]
- [/#if]
+
[#list type.documentation as documentation]
${documentation}
[/#list]
@@ -1231,7 +1180,7 @@ ${examplexml?string?xhtml}
[#list type.values.item as value]
[#if value_index = 0]
Possible Values
-
+
value
description
@@ -1250,11 +1199,12 @@ ${examplexml?string?xhtml}
[/#if]
[/#list]
[#else]
+
[#if includeExampleJson!true]
+
+
property
type
@@ -1348,38 +1300,43 @@ ${examplexml?string?xhtml}
[/#if]
[/#if]
+
+
[/@boilerplate]
[/@file]
[/#macro]
+
[#macro processJsonType type]
[@file name="json_" + type?parent.@schemaId + "_" + type.@name + ".html" charset="utf-8"]
[@boilerplate title=type.@name subnav=[{"title" : "Home", "href" : indexPageName}, {"title" : "JSON" , "href" : "#"}, {"title" : type.@name , "href" : "json_" + type?parent.@schemaId + "_" + type.@name + ".html"}] codeblocks=true]
- ${type.@name}
-
-
+
+
+ ${type.@name}
+
+
[#if attributeExists(type?parent.@schemaId)]
- JSON Schema ID:
+ JSON Schema ID:
${type?parent.@schemaId}
[/#if]
[#if attributeExists(type?parent.@file)]
- JSON Schema File:
+ JSON Schema File:
${type?parent.@file}
[/#if]
[#assign sinceTags = getTagValues(type, "since") /]
[#if sinceTags?size > 0]
- Available Since:
+ Available Since:
${sinceTags[0]}
[/#if]
[#assign versionTags = getTagValues(type, "version") /]
[#if versionTags?size > 0]
- Available Version:
+ Available Version:
${versionTags[0]}
[/#if]
@@ -1390,7 +1347,7 @@ ${examplexml?string?xhtml}
[#list type.property as property]
[#if property_index = 0]
Properties
-
+
name
type
@@ -1409,7 +1366,7 @@ ${examplexml?string?xhtml}
[#list type.enumValue as enumValue]
[#if enumValue_index = 0]
Possible Values
-
+
value
description
@@ -1423,6 +1380,7 @@ ${examplexml?string?xhtml}
[/#if]
[/#list]
+
[/@boilerplate]
[/@file]
[/#macro]
\ No newline at end of file
diff --git a/src/main/resources/META-INF/enunciate/docs.fmt.org b/src/main/resources/META-INF/enunciate/docs.fmt.org
new file mode 100644
index 0000000..06f0b33
--- /dev/null
+++ b/src/main/resources/META-INF/enunciate/docs.fmt.org
@@ -0,0 +1,1428 @@
+[#ftl]
+[#assign soapAvailable=docsxml.soap.wsdls.wsdl.endpointInterface?size > 0/]
+[#assign restAvailable=docsxml.rest.resources.resource?size > 0/]
+[#function scrubPathToFilename path]
+ [#return "path_" + path?string?replace("/", "_")?replace(":","-")?replace("{", "-")?replace("}", "-") + ".html"/]
+[/#function]
+[#function tocNeeded(nodelist)]
+ [#return nodelist?size > 2/]
+[/#function]
+[#function attributeExists(node)]
+ [#if node?size??]
+ [#--if there is a 'size' property, then it's not an attribute--]
+ [#return node?size > 0/]
+ [#else]
+ [#return node?node_type = "attribute"/]
+ [/#if]
+[/#function]
+[#function facetApplicable element facetName]
+ [#list element.facets.facet as facet]
+ [#if facet.name = facetName]
+ [#return true/]
+ [/#if]
+ [/#list]
+ [#return false/]
+[/#function]
+[#function isDeprecated element]
+ [#return (getTagValues(element, "deprecated")?size > 0)/]
+[/#function]
+[#function getTagValues element tagName]
+ [#assign tagvalues = [] /]
+ [#list element.tag as tag]
+ [#if tag.@name=tagName]
+ [#assign tagvalues = tagvalues + [ tag ] /]
+ [/#if]
+ [/#list]
+ [#if element?node_name = "resource"]
+ [#assign operationtags = [] /]
+ [#list element.operation as operation]
+ [#list operation.tag as tag]
+ [#if tag.@name=tagName]
+ [#assign operationtags = operationtags + [ tag ] /]
+ [/#if]
+ [/#list]
+ [/#list]
+ [#if operationtags?size = element.operation?size]
+ [#assign tagvalues = tagvalues + [ operationtags[0] ]/]
+ [/#if]
+ [/#if]
+ [#return tagvalues/]
+[/#function]
+
+[#--set up the subnavigation menus--]
+[#assign nav_sections = { "Data Model" : "model.html"} /]
+[#if soapAvailable]
+ [#assign nav_sections = nav_sections + { "SOAP" : "soap.html" }/]
+[/#if]
+[#if restAvailable]
+ [#assign nav_sections = nav_sections + { "REST" : "rest.html" }/]
+[/#if]
+[#if ((downloadsxml??) && (downloadsxml.download?size > 0))]
+ [#assign nav_sections = nav_sections + { "Files and Libraries" : "downloads.html"} /]
+[/#if]
+
+[#assign nav_resource_facets = {}/]
+[#if groupRestResources??]
+ [#list docsxml.rest.facets.facet?sort_by("value") as facet]
+ [#if facet.name = groupRestResources]
+ [#assign nav_resource_facets = nav_resource_facets + { facet.value : "resource_" + facet.value + ".html"}/]
+ [/#if]
+ [/#list]
+[/#if]
+
+[#assign nav_paths = {}/]
+[#list docsxml.rest.resources.resource?sort_by("@name") as resource]
+ [#assign nav_paths = nav_paths + {resource.@name?string : scrubPathToFilename(resource.@name)}/]
+[/#list]
+
+[#assign nav_wsdls = {}/]
+[#assign nav_eis_by_ns = {}/]
+[#list docsxml.soap.wsdls.wsdl as wsdl]
+ [#assign nav_wsdls = nav_wsdls + {wsdl.@namespaceId?string : "soap_" + wsdl.@namespaceId?string + ".html"}/]
+ [#assign nav_eis_by_ns = nav_eis_by_ns + {wsdl.@namespaceId?string : {}}/]
+ [#list wsdl.endpointInterface?sort_by("@name") as endpointInterface]
+ [#assign tmp = nav_eis_by_ns[wsdl.@namespaceId?string] + {endpointInterface.@name?string : "soap_" + wsdl.@namespaceId?string + "_" + endpointInterface.@name?string + ".html"}/]
+ [#assign nav_eis_by_ns = nav_eis_by_ns + {wsdl.@namespaceId?string : tmp}/]
+ [/#list]
+[/#list]
+
+[#assign nav_models = {}/]
+[#assign nav_typedefs_by_ns = {}/]
+[#assign nav_elements_by_ns = {}/]
+[#list docsxml.data.schema as schema]
+ [#assign nav_models = nav_models + {schema.@namespaceId?string : schema.@namespaceId?string + ".html"}/]
+ [#assign nav_elements_by_ns = nav_elements_by_ns + {schema.@namespaceId?string : {}}/]
+ [#list schema.elements.element?sort_by("@name") as element]
+ [#assign tmp = nav_elements_by_ns[schema.@namespaceId?string] + { element.@name?string + " element" : "el_" + schema.@namespaceId?string + "_" + element.@name?string + ".html"}/]
+ [#assign nav_elements_by_ns = nav_elements_by_ns + {schema.@namespaceId?string : tmp}/]
+ [/#list]
+ [#assign nav_typedefs_by_ns = nav_typedefs_by_ns + {schema.@namespaceId?string : {}}/]
+ [#list schema.types.type?sort_by("@name") as type]
+ [#assign tmp = nav_typedefs_by_ns[schema.@namespaceId?string] + {type.@name?string : schema.@namespaceId?string + "_" + type.@name?string + ".html"}/]
+ [#assign nav_typedefs_by_ns = nav_typedefs_by_ns + {schema.@namespaceId?string : tmp}/]
+ [/#list]
+[/#list]
+
+[#macro boilerplate title=docsxml.@title!"Web API" subnav=[{"title" : "Home", "href" : indexPageName}] codeblocks=true]
+
+
+
+
+
+
+
+
+
+
+
+
+ ${title}
+
+
+
+
+
+
+
+ [#list additionalCssFiles as additionalCssFile]
+
+ [/#list]
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [#nested/]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ [#if codeblocks]
+
+
+
+
+
+ [/#if]
+
+
+[#--
+ todo: uncomment to support google analytics measurements...
+
+
+--]
+
+
+[/#macro]
+[@file name=indexPageName charset="utf-8"]
+ [@boilerplate]
+ [#if docsxml.documentation?size > 0]
+ Introduction
+
+ ${docsxml.documentation}
+
+ [/#if]
+ [#if restAvailable]
+
+ REST Resources
+
+ This API supports a Representational State Transfer (REST)
+ model for accessing a set of resources through a fixed set of operations. The following resources are accessible through the RESTful model:
+
+
+ [#if groupRestResources?? && facetApplicable(docsxml.rest, groupRestResources)]
+ [#list docsxml.rest.facets.facet?sort_by("value") as facet]
+ [#if facet.name = groupRestResources]
+ [@processResourceFacet facet=facet/]
+ - ${facet.value}
+ [/#if]
+ [/#list]
+ [#else]
+ [#list docsxml.rest.resources.resource?sort_by("@name") as resource]
+ [@processResource resource=resource/]
+ - ${resource.@name}
+ [/#list]
+ [/#if]
+
+ [#if ((downloadsxml??) && (downloadsxml.download?size > 0))]
+
+ The REST resources expose a data model that is supported by a set of client-side libraries that are made available on the
+ files and libraries page.
+
+ [/#if]
+ [#if attributeExists(docsxml.rest.@wadl)]
+
+ There is also a WADL document describing the REST API.
+
+ [/#if]
+ [#if swaggerDir??]
+ Swagger
+
+ You may also enjoy the Swagger UI provided for this API.
+
+ [/#if]
+ [/#if]
+ [#if soapAvailable]
+
+ SOAP Endpoints
+
+ This API is exposed through a set of WSI Basic Profile
+ -compliant SOAP v1.1 endpoints. The API supports XML-binary Optimized Pacakging (XOP)
+ and SOAP Message Transmission Optimization Mechanism (MTOM)
+ for transmission of binary data. The SOAP API is described by the following endpoints:
+
+ [#list docsxml.soap.wsdls.wsdl as wsdl]
+ [@processWsdl wsdl=wsdl/]
+ Namespace "${wsdl.@namespaceId}"
+
+
+ Namespace URI:
+ [#if wsdl.@namespace?length > 0]${wsdl.@namespace}[#else](default namespace)[/#if]
+
+ [#if attributeExists(wsdl.@file)]
+
+ WSDL:
+ ${wsdl.@file}
+
+ [/#if]
+
+ Endpoints
+
+ [#list wsdl.endpointInterface?sort_by("@name") as endpointInterface]
+ [@processEndpointInterface endpointInterface=endpointInterface/]
+ - ${endpointInterface.@name}
+ [/#list]
+
+ [/#list]
+ [#if ((downloadsxml??) && (downloadsxml.download?size > 0))]
+
+ The SOAP API is also accessible by a set of client-side libraries that can be downloaded from the files and libraries page.
+
+ [/#if]
+ [/#if]
+
+ Data Model
+
+
+ All endpoints act on a common set of data. The data can be represented with difference media (i.e. "MIME") types, depending on the endpoint
+ that consumes and/or produces the data. The data can described by XML Schema, which definitively
+ describes the XML representation of the data[#if includeExampleJson!true], but is also useful for describing the other formats of the data, such as JSON[/#if].
+
+
+
+ This document will describe the data using terms based on XML Schema.
+ Data can be grouped by namespace, with a schema document describing the elements and types of the namespace.
+ Generally speaking, types define the structure of the data and elements are instances of a type. For example,
+ elements are usually produced by (or consumed by) a REST endpoint, and the structure of each element is described by
+ its type.
+
+
+ [#list docsxml.data.schema as schema]
+ [@processSchema schema=schema/]
+
+ Namespace "${schema.@namespaceId}"
+
+
+ Namespace URI:
+ [#if schema.@namespace?length > 0]${schema.@namespace}[#else](default namespace)[/#if]
+
+ [#if attributeExists(schema.@file)]
+
+ XSD:
+ ${schema.@file}
+
+ [/#if]
+
+ [#if schema.elements.element?size > 0]
+
+ Data Elements
+
+
+ [#list schema.elements.element?sort_by("@name") as element]
+ - ${element.@name}
+ [/#list]
+
+ [/#if]
+ [#if schema.types.type?size > 0]
+
+ Data Types
+
+ [#list schema.types.type?sort_by("@name") as type]
+ - ${type.@name}
+ [/#list]
+
+ [/#if]
+ [/#list]
+ [#if docsxml.data.jsonSchema.type?size > 0]
+
+ JSON Data Types
+
+ [#list docsxml.data.jsonSchema.type as type]
+ [@processJsonType type=type/]
+ - ${type.@name}
+ [/#list]
+
+ [/#if]
+ [/@boilerplate]
+[/@file]
+[@file name="model.html" charset="utf-8"]
+ [@boilerplate title="Data Model" subnav=[{"title" : "Home", "href" : indexPageName}, {"title" : "Data Model" , "href" : "model.html", "subnav" : nav_sections}]]
+ Data Model
+
+
+ All endpoints act on a common set of data. The data can be represented with difference media (i.e. "MIME") types, depending on the endpoint
+ that consumes and/or produces the data. The data can described by XML Schema, which definitively
+ describes the XML representation of the data[#if includeExampleJson!true], but is also useful for describing the other formats of the data, such as JSON[/#if].
+
+
+
+ This document will describe the data using terms based on XML Schema.
+ Data can be grouped by namespace, with a schema document describing the elements and types of the namespace.
+ Generally speaking, types define the structure of the data and elements are instances of a type. For example,
+ elements are usually produced by (or consumed by) a REST endpoint, and the structure of each element is described by
+ its type.
+
+ [#list docsxml.data.schema as schema]
+
+ Namespace "${schema.@namespaceId}"
+
+
+ Namespace URI:
+ [#if schema.@namespace?length > 0]${schema.@namespace}[#else](default namespace)[/#if]
+
+ [#if attributeExists(schema.@file)]
+
+ XSD:
+ ${schema.@file}
+
+ [/#if]
+
+ [#if schema.elements.element?size > 0]
+
+ Data Elements
+
+
+ [#list schema.elements.element?sort_by("@name") as element]
+ - ${element.@name}
+ [/#list]
+
+ [/#if]
+ [#if schema.types.type?size > 0]
+
+ Data Types
+
+ [#list schema.types.type?sort_by("@name") as type]
+ - ${type.@name}
+ [/#list]
+
+ [/#if]
+ [/#list]
+ [/@boilerplate]
+[/@file]
+[#if ((downloadsxml??) && (downloadsxml.download?size > 0))]
+ [@file name="downloads.html" charset="utf-8"]
+ [@boilerplate title="Files and Libraries" subnav=[{"title" : "Home", "href" : indexPageName}, { "title" : "Files and Libraries" , "href" : "downloads.html" , "subnav" : nav_sections}] codeblocks=true]
+ Files and Libraries
+
+ The following files and libraries are available:
+
+
+ [#list downloadsxml.download as download]
+ - ${download.@name}
+ [/#list]
+
+ [#list downloadsxml.download as download]
+
+ ${download.@name}
+ [#list download.created as created]
+ Created ${created}
+ [/#list]
+ [#list download.description as description]
+ ${description}
+ [/#list]
+ Files
+
+
+ name
+ size
+ [#if download.files.file?size > 1]
+ description
+ [/#if]
+
+ [#list download.files.file as file]
+
+ ${file.@name}
+ ${file.@size}
+ [#if file_index > 0 || file_has_next]
+ ${file}
+ [/#if]
+
+ [/#list]
+
+ [/#list]
+ [/@boilerplate]
+ [/@file]
+[/#if]
+[#if restAvailable]
+ [@file name="rest.html" charset="utf-8"]
+ [@boilerplate title="REST" subnav=[{"title" : "Home", "href" : indexPageName}, {"title" : "REST" , "href" : "rest.html", "subnav" : nav_sections}]]
+ REST Resources
+
+ This API supports a Representational State Transfer (REST)
+ model for accessing a set of resources through a fixed set of operations. The following resources are accessible through the RESTful model:
+
+
+ [#if groupRestResources?? && facetApplicable(docsxml.rest, groupRestResources)]
+ [#list docsxml.rest.facets.facet?sort_by("value") as facet]
+ [#if facet.name = groupRestResources]
+ - ${facet.value}
+ [/#if]
+ [/#list]
+ [#else]
+ [#list docsxml.rest.resources.resource?sort_by("@name") as resource]
+ - ${resource.@name}
+ [/#list]
+ [/#if]
+
+ [#if ((downloadsxml??) && (downloadsxml.download?size > 0))]
+
+ The REST resources expose a data model that is supported by a set of client-side libraries that are made available on the
+ files and libraries page.
+
+ [/#if]
+ [#if attributeExists(docsxml.rest.@wadl)]
+
+ There is also a WADL document describing the REST API.
+
+ [/#if]
+ [#if swaggerDir??]
+ Swagger
+
+ You may also enjoy the Swagger UI provided for this API.
+
+ [/#if]
+ [/@boilerplate]
+ [/@file]
+[/#if]
+[#if soapAvailable]
+ [@file name="soap.html" charset="utf-8"]
+ [@boilerplate title="SOAP" subnav=[{"title" : "Home", "href" : indexPageName}, {"title" : "SOAP" , "href" : "soap.html", "subnav" : nav_sections}]]
+ SOAP Endpoints
+
+ This API is exposed through a set of WSI Basic Profile
+ -compliant SOAP v1.1 endpoints. The API supports XML-binary Optimized Pacakging (XOP)
+ and SOAP Message Transmission Optimization Mechanism (MTOM)
+ for transmission of binary data. The SOAP API is fully described by the following endpoints:
+
+ [#list docsxml.soap.wsdls.wsdl as wsdl]
+ Namespace "${wsdl.@namespaceId}"
+
+
+ Namespace URI:
+ [#if wsdl.@namespace?length > 0]${wsdl.@namespace}[#else](default namespace)[/#if]
+
+ [#if attributeExists(wsdl.@file)]
+
+ WSDL:
+ ${wsdl.@file}
+
+ [/#if]
+
+ Endpoints
+
+ [#list wsdl.endpointInterface?sort_by("@name") as endpointInterface]
+ - ${endpointInterface.@name}
+ [/#list]
+
+ [/#list]
+ [#if ((downloadsxml??) && (downloadsxml.download?size > 0))]
+
+ The SOAP API is also accessible by a set of client-side libraries that can be downloaded from the files and libraries page.
+
+ [/#if]
+ [/@boilerplate]
+ [/@file]
+[/#if]
+[#macro processWsdl wsdl]
+ [@file name="soap_" + wsdl.@namespaceId + ".html" charset="utf-8"]
+ [@boilerplate title="SOAP: " + wsdl.@namespaceId subnav=[{"title" : "Home", "href" : indexPageName}, {"title" : "SOAP" , "href" : "soap.html", "subnav" : nav_sections }, { "title" : wsdl.@namespaceId?string , "href" : "soap_" + wsdl.@namespaceId + ".html" }]]
+ ${wsdl.@namespaceId}
+
+
+ Namespace URI:
+ [#if wsdl.@namespace?length > 0]${wsdl.@namespace}[#else](default namespace)[/#if]
+
+ [#if attributeExists(wsdl.@file)]
+
+ WSDL:
+ ${wsdl.@file}
+
+ [/#if]
+
+ Endpoints
+
+ [#list wsdl.endpointInterface?sort_by("@name") as endpointInterface]
+ - ${endpointInterface.@name}
+ [/#list]
+
+ [/@boilerplate]
+ [/@file]
+[/#macro]
+[#macro processResourceFacet facet]
+ [@file name="resource_" + facet.value + ".html" charset="utf-8"]
+ [@boilerplate title=facet.value subnav=[{"title" : "Home", "href" : indexPageName}, {"title" : "REST" , "href" : "rest.html", "subnav" : nav_sections}, {"title" : facet.value , "href" : "resource_" + facet.value + ".html", "subnav" : nav_resource_facets}]]
+ ${facet.value}
+
+ [#list facet.documentation as documentation]
+ ${documentation}
+ [/#list]
+ [#assign resources=[] /]
+ [#list docsxml.rest.resources.resource?sort_by("@name") as resource]
+ [#list resource.facets.facet as rg]
+ [#if ((rg.name = facet.name) && (rg.value == facet.value))]
+ [#assign resources=resources + resource /]
+ [#break/]
+ [/#if]
+ [/#list]
+ [/#list]
+ The following resources are applicable:
+
+ [#list resources as resource]
+ -
+ [#if resource.label?has_content]
+ ${resource.label}
+ [#else]
+ ${resource.@name}
+ [/#if]
+
+ [/#list]
+
+ [#list resources as resource]
+ [#if resource.label?has_content]
+
+ [#else]
+
+ [/#if]
+ [@processRawResource resource=resource/]
+ [/#list]
+ [/@boilerplate]
+ [/@file]
+[/#macro]
+[#macro processResource resource]
+ [#assign resource_filename=scrubPathToFilename(resource.@name)/]
+ [@file name=resource_filename charset="utf-8"]
+ [@boilerplate title=facet subnav=[{"title" : "Home", "href" : indexPageName}, { "title" : "REST" , "href" : "rest.html", "subnav" : nav_sections }, {"title" : resource.@name , "href" : resource_filename, "subnav" : nav_paths}]]
+ [@processRawResource resource=resource/]
+ [/@boilerplate]
+ [/@file]
+[/#macro]
+[#macro processRawResource resource]
+ [#if resource.label?has_content]
+ ${resource.label}
+ [#else]
+ ${resource.@name}
+ [/#if]
+ [#if isDeprecated(resource)]
+ This resource has been deprecated.
+ [/#if]
+ [#if attributeExists(resource.@subcontext) && !disableRestMountpoint!false]
+ Mount Point: ${resource.@subcontext}${resource.@name}
+ [/#if]
+ [#assign sinceTags = getTagValues(resource, "since") /]
+ [#if sinceTags?size > 0]
+ Available Since: ${sinceTags[0]}
+ [/#if]
+ [#assign versionTags = getTagValues(resource, "version") /]
+ [#if versionTags?size > 0]
+ Version: ${versionTags[0]}
+ [/#if]
+ [#if tocNeeded(resource.operation)]
+
+ The following operations are supported on this resource:
+
+
+ [#list resource.operation as operation]
+ - ${operation.@name}
+ [#list operation.alias as alias]
+ - ${alias}
+ [/#list]
+ [/#list]
+
+ [/#if]
+ [#list resource.operation as operation]
+
+ ${operation.@name}
+ [#list operation.alias as alias]
+ Alias: ${alias}
+ [/#list]
+ [#assign sinceTags = getTagValues(operation, "since") /]
+ [#if sinceTags?size > 0]
+ Available Since: ${sinceTags[0]}
+ [/#if]
+ [#assign versionTags = getTagValues(operation, "version") /]
+ [#if versionTags?size > 0]
+ Version: ${versionTags[0]}
+ [/#if]
+ [#if isDeprecated(operation)]
+ This operation has been deprecated. [#list operation.tag as tag][#if tag.@name="deprecated"] ${tag}[/#if][/#list]
+ [/#if]
+ [#list operation.documentation as documentation]
+ ${documentation}
+ [/#list]
+ [#list operation.parameter as parameter]
+ [#if parameter_index = 0]
+ Parameters
+
+
+ name
+ description
+ type
+ default
+
+ [/#if]
+
+ [#if attributeExists(parameter.@name)]${parameter.@name}[/#if]
+ ${parameter}
+ [#if attributeExists(parameter.@type)]${parameter.@type}[/#if]
+ [#if attributeExists(parameter.@defaultValue)]${parameter.@defaultValue}[/#if]
+
+ [#if !parameter_has_next]
+
+ [/#if]
+ [/#list]
+ [#list operation.inValue as inValue]
+ Request Body
+
+ [#assign custom=true]
+ [#list inValue.xmlElement as xmlElement]
+ [#if attributeExists(xmlElement.@elementName)]
+ [#assign custom=false/]
+
+ element:
+ [#if attributeExists(xmlElement.@elementSchemaId)]
+ ${xmlElement.@elementName}
+ [#else]
+ ${xmlElement.@elementName}
+ [/#if]
+
+ [/#if]
+ [/#list]
+ [#list inValue.jsonElementRef as jsonElement]
+ [#if attributeExists(jsonElement.@elementName)]
+ [#assign custom=false/]
+
+ element:
+ [#if attributeExists(jsonElement.@elementSchemaId)]
+ ${jsonElement.@elementName}
+ [#else]
+ ${jsonElement.@elementName}
+ [/#if]
+
+ [/#if]
+ [/#list]
+ [#if custom]
+
+ element:
+ [#if operation.customParameterName?has_content]
+ ${operation.customParameterName}
+ [#else]
+ (custom)
+ [/#if]
+
+ [/#if]
+
+ media types:
+ [#list operation.contentType as contentType][#if contentType.@consumable = "true"]${contentType.@type}[#if contentType_has_next]
[/#if][/#if][/#list]
+
+
+ [#list inValue.documentation as documentation]
+ ${documentation}
+ [/#list]
+ [#if operation.showSampleRequest?has_content]
+ ${operation.@name} ...${resource.@subcontext}${resource.@name}
+Accept: [#assign first = true/][#list operation.contentType as contentType][#if contentType.@produceable = "true"][#if !first];[/#if][#assign first=false/]${contentType.@type}[/#if][/#list]
+[#if custom]
+Content-Type: [#assign first = true/][#list operation.contentType as contentType][#if contentType.@consumable = "true"][#if !first];[/#if][#assign first=false/]${contentType.@type}[/#if][/#list]
+[#else]
+ [#if operation.showSampleRequest == "JSON"]
+Content-Type: application/json
+ [#elseif operation.showSampleRequest == "XML"]
+Content-Type: application/xml
+ [#else]
+Content-Type: [#assign first = true/][#list operation.contentType as contentType][#if contentType.@consumable = "true"][#if !first];[/#if][#assign first=false/]${contentType.@type}[/#if][/#list]
+ [/#if]
+[/#if]
+--- Body ---
+[#if custom]
+ [#if operation.customParameterName?has_content]
+[${operation.customParameterName}]
+ [#else]
+(custom)
+ [/#if]
+[#else]
+ [#list inValue.xmlElement as xmlElement]
+ [#if attributeExists(xmlElement.@elementName)]
+ [#list docsxml.data.schema as schema]
+ [#list schema.elements.element?sort_by("@name") as element]
+ [#if xmlElement.@elementName == element.@name]
+ [#if operation.showSampleRequest == "JSON"]
+ [#list element.examplejson as examplejson]
+${examplejson?string?xhtml}
+ [/#list]
+ [#else]
+ [#list element.examplexml as examplexml]
+${examplexml?string?xhtml}
+ [/#list]
+ [/#if]
+ [/#if]
+ [/#list]
+ [/#list]
+ [/#if]
+ [/#list]
+[/#if]
+
+ [/#if]
+ [/#list]
+ [#list operation.outValue as outValue]
+ Response Body
+
+ [#assign custom=true]
+ [#list outValue.xmlElement as xmlElement]
+ [#if attributeExists(xmlElement.@elementName)]
+ [#assign custom=false/]
+
+ element:
+ [#if attributeExists(xmlElement.@elementSchemaId)]
+ ${xmlElement.@elementName}
+ [#else]
+ ${xmlElement.@elementName}
+ [/#if]
+
+ [/#if]
+ [/#list]
+ [#list outValue.jsonElementRef as jsonElement]
+ [#if attributeExists(jsonElement.@elementName)]
+ [#assign custom=false/]
+
+ element:
+ [#if attributeExists(jsonElement.@elementSchemaId)]
+ ${jsonElement.@elementName}
+ [#else]
+ ${jsonElement.@elementName}
+ [/#if]
+
+ [/#if]
+ [/#list]
+ [#if custom]
+
+ element:
+ (custom)
+
+ [/#if]
+
+ media types:
+ [#list operation.contentType as contentType][#if contentType.@produceable = "true"]${contentType.@type}[#if contentType_has_next]
[/#if][/#if][/#list]
+
+
+ [#list outValue.documentation as documentation]
+ ${documentation}
+ [/#list]
+[#if operation.showSampleResponse?has_content]
+ HTTP/1.1 ${operation.showSampleResponse.@code}
+[#if operation.showSampleResponse == "JSON"]
+Content-Type: application/json
+ [#elseif operation.showSampleResponse == "XML"]
+Content-Type: application/xml
+ [#else]
+Content-Type: [#assign first = true/][#list operation.contentType as contentType][#if contentType.@produceable = "true"][#if !first];[/#if][#assign first=false/]${contentType.@type}[/#if][/#list]
+ [/#if]
+--- Body ---
+[#if custom]
+(custom)
+[#else]
+ [#list outValue.xmlElement as xmlElement]
+ [#if attributeExists(xmlElement.@elementName)]
+ [#list docsxml.data.schema as schema]
+ [#list schema.elements.element?sort_by("@name") as element]
+ [#if xmlElement.@elementName == element.@name]
+ [#if operation.showSampleRequest == "JSON"]
+ [#list element.examplejson as examplejson]
+${examplejson?string?xhtml}
+ [/#list]
+ [#else]
+ [#list element.examplexml as examplexml]
+${examplexml?string?xhtml}
+ [/#list]
+ [/#if]
+ [/#if]
+ [/#list]
+ [/#list]
+ [/#if]
+ [/#list]
+[/#if]
+
+ [/#if]
+ [/#list]
+ [#list operation.statusCode as statusCode]
+ [#if statusCode_index = 0]
+ Status Codes
+
+
+ HTTP Status Code
+ Description
+ [#list resource.additionalHeaderLabels.label as label]
+ ${label}
+ [/#list]
+
+ [/#if]
+
+ ${statusCode.@code}
+ ${statusCode.condition}
+ [#list statusCode.additionalHeaders.additionalHeader as header]
+ ${header}
+ [/#list]
+
+ [#if !statusCode_has_next]
+
+ [/#if]
+ [/#list]
+ [#list operation.warning as warning]
+ [#if warning_index = 0]
+ Warnings
+
+
+ HTTP Status Code
+ Description
+
+ [/#if]
+
+ ${warning.@code}
+ ${warning}
+
+ [#if !warning_has_next]
+
+ [/#if]
+ [/#list]
+ [#list operation.responseHeader as responseHeader]
+ [#if responseHeader_index = 0]
+ Response Headers
+
+
+ name
+ description
+
+ [/#if]
+
+ ${responseHeader.name}
+ ${responseHeader.documentation}
+
+ [#if !responseHeader_has_next]
+
+ [/#if]
+ [/#list]
+ [/#list]
+[/#macro]
+[#macro processEndpointInterface endpointInterface]
+ [@file name="soap_" + endpointInterface?parent.@namespaceId + "_" + endpointInterface.@name + ".html" charset="utf-8"]
+ [@boilerplate title=endpointInterface.@name subnav=[{"title" : "Home", "href" : indexPageName}, {"title" : "SOAP" , "href" : "soap.html", "subnav" : nav_sections }, {"title" : endpointInterface?parent.@namespaceId , "href" : "soap_" + endpointInterface?parent.@namespaceId + ".html", "subnav" : nav_wsdls }, {"title" : endpointInterface.@name , "href" : "soap_" + endpointInterface.@name + ".html", "subnav" : nav_eis_by_ns[endpointInterface?parent.@namespaceId?string]}]]
+ ${endpointInterface.@name}
+ [#if isDeprecated(endpointInterface)]
+ This endpoint has been deprecated.[#list endpointInterface.tag as tag][#if tag.@name="deprecated"] ${tag}[/#if][/#list]
+ [/#if]
+
+
+ Namespace:
+ [#if (endpointInterface?parent).@namespace?length > 0]${(endpointInterface?parent).@namespace}[#else](default namespace)[/#if]
+
+ [#if attributeExists((endpointInterface?parent).@file)]
+
+ WSDL:
+ ${(endpointInterface?parent).@file}
+
+ [/#if]
+ [#if attributeExists(endpointInterface.@path)]
+
+ Path:
+ ${endpointInterface.@path}
+
+ [/#if]
+ [#assign sinceTags = getTagValues(endpointInterface, "since") /]
+ [#if sinceTags?size > 0]
+
+ Available Since:
+ ${sinceTags[0]}
+
+ [/#if]
+ [#assign versionTags = getTagValues(endpointInterface, "version") /]
+ [#if versionTags?size > 0]
+
+ Version:
+ ${versionTags[0]}
+
+ [/#if]
+
+ [#if endpointInterface.documentation?size > 0]
+ [#list endpointInterface.documentation as documentation]
+ ${documentation}
+ [/#list]
+ [/#if]
+ [#if tocNeeded(endpointInterface.method)]
+
+ The following methods are available on this endpoint:
+
+
+ [#list endpointInterface.method as method]
+ - ${method.@name}
+ [/#list]
+
+ [/#if]
+ [#list endpointInterface.method as method]
+
+ ${method.@name}
+ [#if isDeprecated(method)]
+ This method has been deprecated.[#list method.tag as tag][#if tag.@name="deprecated"] ${tag}[/#if][/#list]
+ [/#if]
+ [#assign sinceTags = getTagValues(method, "since") /]
+ [#if sinceTags?size > 0]
+ Available Since: ${sinceTags[0]}
+ [/#if]
+ [#assign versionTags = getTagValues(method, "version") /]
+ [#if versionTags?size > 0]
+ Version: ${versionTags[0]}
+ [/#if]
+ [#list method.documentation as documentation]
+ ${documentation}
+ [/#list]
+ [#list method["parameter[@input='true']"] as parameter]
+ [#if parameter_index = 0]
+ Input Parameters
+
+
+ name
+ type
+ description
+
+ [/#if]
+
+ ${parameter.@name}
+ [#if attributeExists(parameter.@xmlTypeName)][#if attributeExists(parameter.@xmlTypeSchemaId)]${parameter.@xmlTypeName}[#else]${parameter.@xmlTypeName}[/#if][#else](unknown)[/#if]
+ ${parameter}
+
+ [#if !parameter_has_next]
+
+ [/#if]
+ [/#list]
+ [#list method["parameter[@output='true']"] as parameter]
+ [#if parameter_index = 0]
+ Output Parameters
+
+
+ name
+ type
+ description
+
+ [/#if]
+
+ ${parameter.@name}
+ [#if attributeExists(parameter.@xmlTypeName)][#if attributeExists(parameter.@xmlTypeSchemaId)]${parameter.@xmlTypeName}[#else]${parameter.@xmlTypeName}[/#if][#else](unknown)[/#if]
+ ${parameter}
+
+ [#if !parameter_has_next]
+
+ [/#if]
+ [/#list]
+ [#list method.result as result]
+ Return Value
+
+ [#if attributeExists(result.@xmlTypeName)]
+
+
+ Type:
+ [#if attributeExists(result.@xmlTypeSchemaId)]${result.@xmlTypeName}[#else]${result.@xmlTypeName}[/#if]
+
+
+ [/#if]
+
+ ${result}
+ [/#list]
+ [#list method.fault as fault]
+ [#if fault_index = 0]
+ Faults
+
+
+ name
+
+ description
+
+ [/#if]
+
+ ${fault.@name}
+ ${fault}
+
+ [#if !fault_has_next]
+
+ [/#if]
+ [/#list]
+ [/#list]
+ [/@boilerplate]
+ [/@file]
+[/#macro]
+[#macro processSchema schema]
+ [@file name=schema.@namespaceId + ".html" charset="utf-8"]
+ [@boilerplate title="Namespace: " + schema.@namespaceId subnav=[{"title" : "Home", "href" : indexPageName}, {"title" : "Data Model" , "href" : "model.html", "subnav" : nav_sections}, {"title" : schema.@namespaceId , "href" : schema.@namespaceId + ".html", "subnav" : nav_models}]]
+ Namespace ${schema.@namespaceId}
+
+
+ Namespace:
+ [#if schema.@namespace?length > 0]${schema.@namespace}[#else](default namespace)[/#if]
+
+ [#if attributeExists(schema.@file)]
+
+ XML Schema:
+ ${schema.@file}
+
+ [/#if]
+
+ [#if schema.elements.element?size > 0]
+
+ Elements
+
+
+ [#list schema.elements.element?sort_by("@name") as element]
+ [@processElement element=element/]
+ - ${element.@name}
+ [/#list]
+
+ [/#if]
+ [#if schema.types.type?size > 0]
+
+ Types
+
+
+ [#list schema.types.type?sort_by("@name") as type]
+ [@processType type=type/]
+ - ${type.@name}
+ [/#list]
+
+ [/#if]
+ [/@boilerplate]
+ [/@file]
+[/#macro]
+[#macro processElement element]
+ [#assign schema=element?parent?parent/]
+ [@file name="el_" + schema.@namespaceId + "_" + element.@name + ".html" charset="utf-8"]
+ [@boilerplate title=element.@name subnav=[{"title" : "Home", "href" : indexPageName}, {"title" : "Data Model" , "href" : "model.html", "subnav" : nav_sections}, {"title" : schema.@namespaceId , "href" : schema.@namespaceId + ".html", "subnav" : nav_models}, {"title" : element.@name + " element" , "href" : "el_" + schema.@namespaceId + "_" + element.@name + ".html", "subnav" : nav_elements_by_ns[schema.@namespaceId?string]}] codeblocks=true]
+ ${element.@name} element
+ [#if isDeprecated(element)]
+ This element has been deprecated.[#list element.tag as tag][#if tag.@name="deprecated"] ${tag}[/#if][/#list]
+ [/#if]
+
+ [#if attributeExists(element.@typeName) && attributeExists(element.@typeSchemaId)]
+
+ Type:
+ ${element.@typeName}
+
+ [/#if]
+
+ Namespace:
+ [#if schema.@namespace?length > 0]${schema.@namespace}[#else](default namespace)[/#if]
+
+ [#if attributeExists(schema.@file)]
+
+ XML Schema:
+ ${schema.@file}
+
+ [/#if]
+ [#assign sinceTags = getTagValues(element, "since") /]
+ [#if sinceTags?size > 0]
+
+ Available Since:
+ ${sinceTags[0]}
+
+ [/#if]
+ [#assign versionTags = getTagValues(element, "version") /]
+ [#if versionTags?size > 0]
+
+ Available Version:
+ ${versionTags[0]}
+
+ [/#if]
+
+ [#list element.documentation as documentation]
+ ${documentation}
+ [/#list]
+ [#list element.examplexml as examplexml]
+ Example XML
+ ${examplexml?string?xhtml}
+ [/#list]
+ [#list element.examplejson as examplejson]
+ Example JSON
+ ${examplejson?string?xhtml}
+ [/#list]
+ [/@boilerplate]
+ [/@file]
+[/#macro]
+[#macro processType type]
+ [#assign schema=type?parent?parent/]
+ [@file name=schema.@namespaceId + "_" + type.@name + ".html" charset="utf-8"]
+ [@boilerplate title=type.@name subnav=[{"title" : "Home", "href" : indexPageName}, {"title" : "Data Model" , "href" : "model.html", "subnav" : nav_sections}, {"title" : schema.@namespaceId , "href" : schema.@namespaceId + ".html", "subnav" : nav_models} , {"title" : type.@name , "href" : schema.@namespaceId + "_" + type.@name + ".html", "subnav" : nav_typedefs_by_ns[schema.@namespaceId?string]}] codeblocks=true]
+ ${type.@name}
+ [#if isDeprecated(type)]
+ This type has been deprecated.[#list type.tag as tag][#if tag.@name="deprecated"] ${tag}[/#if][/#list]
+ [/#if]
+
+ [#if attributeExists(type.@extendsType)]
+ [#list docsxml.data.schema.types.type as candidate]
+ [#if attributeExists(candidate.@id) && (candidate.@id?string = type.@extendsType?string)]
+
+ Extends:
+ ${candidate.@name}
+
+ [#break/]
+ [/#if]
+ [/#list]
+ [/#if]
+
+ Namespace:
+ [#if schema.@namespace?length > 0]${schema.@namespace}[#else](default namespace)[/#if]
+
+ [#if attributeExists(schema.@file)]
+
+ XML Schema:
+ ${schema.@file}
+
+ [/#if]
+ [#assign sinceTags = getTagValues(type, "since") /]
+ [#if sinceTags?size > 0]
+
+ Available Since:
+ ${sinceTags[0]}
+
+ [/#if]
+ [#assign versionTags = getTagValues(type, "version") /]
+ [#if versionTags?size > 0]
+
+ Version:
+ ${versionTags[0]}
+
+ [/#if]
+
+ [#list type.documentation as documentation]
+ ${documentation}
+ [/#list]
+
+ [#if type.values.item?size > 0]
+ [#list type.values.item as value]
+ [#if value_index = 0]
+ Possible Values
+
+
+ value
+ description
+
+ [/#if]
+
+ ${value.@value}
+
+ [#list value.documentation as documentation]
+ ${documentation}
+ [/#list]
+
+
+ [#if !value_has_next]
+
+ [/#if]
+ [/#list]
+ [#else]
+ XML
+ [#list type.attributes.attribute as attribute]
+ [#if attribute_index = 0]
+ Attributes
+
+
+ name
+ type
+ description
+
+ [/#if]
+
+ [#if attributeExists(attribute.@name)]${attribute.@name}[/#if]
+ [#if attributeExists(attribute.@typeSchemaId)][#if attributeExists(attribute.@typeName)][#assign typename=attribute.@typeName/][#else][#assign typename="(anonymous)"/][/#if]${typename}[#elseif attributeExists(attribute.@typeName)]${attribute.@typeName}[/#if]
+ ${attribute}
+
+ [#if !attribute_has_next]
+
+ [/#if]
+ [/#list]
+ [#list type.elements.element as element]
+ [#if element_index = 0]
+ Elements
+
+
+ name (type)
+ min/max
occurs
+ description
+
+ [/#if]
+
+
+ [#list element.choice as choice]
+ [#if choice_index > 0]
or [/#if][#if attributeExists(choice.@schemaId)]${choice.@name}[#else]${choice.@name}[/#if][#if attributeExists(choice.@typeSchemaId)][#if attributeExists(choice.@typeName)][#assign typename=choice.@typeName/][#else][#assign typename="(anonymous)"/][/#if] (${typename})[#elseif attributeExists(choice.@typeName)] (${choice.@typeName})[/#if]
+ [/#list]
+
+ [#if attributeExists(element.@minOccurs)]${element.@minOccurs}[/#if]/[#if attributeExists(element.@maxOccurs)]${element.@maxOccurs}[/#if]
+
+ [#list element.documentation as documentation]
+ ${documentation}
+ [/#list]
+
+
+ [#if !element_has_next]
+
+ [/#if]
+ [/#list]
+ [#list type.value as value]
+ Value
+
+
+ Type:
+ [#if attributeExists(value.@typeSchemaId)][#if attributeExists(value.@typeName)][#assign typename=value.@typeName/][#else][#assign typename="(anonymous)"/][/#if]${typename}[#elseif attributeExists(value.@typeName)]${value.@typeName}[/#if]
+
+
+ ${value}
+ [/#list]
+
+ [#if includeExampleJson!true]
+ JSON
+
+
+ property
+ type
+ description
+
+ [#list type.attributes.attribute as attribute]
+
+ [#if attributeExists(attribute.@jsonName)]${attribute.@jsonName}[/#if]
+ [#if attributeExists(attribute.@typeSchemaId)][#if attributeExists(attribute.@typeName)][#assign typename=attribute.@typeName/][#else][#assign typename="(anonymous)"/][/#if]${typename}[#elseif attributeExists(attribute.@typeName)]${attribute.@typeName}[/#if]
+ ${attribute}
+
+ [/#list]
+ [#list type.elements.element as element]
+
+ [#if attributeExists(element.@jsonName)]${element.@jsonName}[/#if]
+
+ [#list element.choice as choice]
+ [#if element.@maxOccurs = "unbounded"]array of [/#if][#if choice_index > 0]
or [/#if][#if attributeExists(choice.@schemaId)]${choice.@name}[#else]${choice.@name}[/#if][#if attributeExists(choice.@typeSchemaId)][#if attributeExists(choice.@typeName)][#assign typename=choice.@typeName/][#else][#assign typename="(anonymous)"/][/#if] (${typename})[#elseif attributeExists(choice.@typeName)] (${choice.@typeName})[/#if]
+ [/#list]
+
+
+ [#list element.documentation as documentation]
+ ${documentation}
+ [/#list]
+
+
+ [/#list]
+ [#list type.value as value]
+
+ [#if attributeExists(value.@jsonName)]${value.@jsonName}[/#if]
+ [#if attributeExists(value.@typeSchemaId)][#if attributeExists(value.@typeName)][#assign typename=value.@typeName/][#else][#assign typename="(anonymous)"/][/#if]${typename}[#elseif attributeExists(value.@typeName)]${value.@typeName}[/#if]
+ ${value}
+
+ [/#list]
+
+ [/#if]
+ [/#if]
+ [/@boilerplate]
+ [/@file]
+[/#macro]
+[#macro processJsonType type]
+ [@file name="json_" + type?parent.@schemaId + "_" + type.@name + ".html" charset="utf-8"]
+ [@boilerplate title=type.@name subnav=[{"title" : "Home", "href" : indexPageName}, {"title" : "JSON" , "href" : "#"}, {"title" : type.@name , "href" : "json_" + type?parent.@schemaId + "_" + type.@name + ".html"}] codeblocks=true]
+ ${type.@name}
+
+
+ [#if attributeExists(type?parent.@schemaId)]
+
+ JSON Schema ID:
+ ${type?parent.@schemaId}
+
+ [/#if]
+ [#if attributeExists(type?parent.@file)]
+
+ JSON Schema File:
+ ${type?parent.@file}
+
+ [/#if]
+ [#assign sinceTags = getTagValues(type, "since") /]
+ [#if sinceTags?size > 0]
+
+ Available Since:
+ ${sinceTags[0]}
+
+ [/#if]
+ [#assign versionTags = getTagValues(type, "version") /]
+ [#if versionTags?size > 0]
+
+ Available Version:
+ ${versionTags[0]}
+
+ [/#if]
+
+ [#list type.documentation as documentation]
+ ${documentation}
+ [/#list]
+ [#list type.property as property]
+ [#if property_index = 0]
+ Properties
+
+
+ name
+ type
+ description
+
+ [/#if]
+
+ [#if attributeExists(property.@name)]${property.@name}[/#if]
+ [#if property.@isList = "true"]List of [/#if][#if attributeExists(property.@typeSchemaId)][#if attributeExists(property.@typeName)][#assign typename=property.@typeName/][#else][#assign typename="(anonymous)"/][/#if]${typename}[#elseif attributeExists(property.@typeName)]${property.@typeName}[/#if]
+ [#if attributeExists(property.@documentation)]${property.@documentation}[/#if]
+
+ [#if !property_has_next]
+
+ [/#if]
+ [/#list]
+ [#list type.enumValue as enumValue]
+ [#if enumValue_index = 0]
+ Possible Values
+
+
+ value
+ description
+
+ [/#if]
+
+ [#list enumValue.value as value]${value} [/#list]
+ [#list enumValue.documentation as documentation]${documentation} [/#list]
+
+ [#if !enumValue_has_next]
+
+ [/#if]
+ [/#list]
+ [/@boilerplate]
+ [/@file]
+[/#macro]
\ No newline at end of file