-
[#if soapAvailable]
- SOAP [/#if] [#if restAvailable]
- REST [/#if]
- Data Model [#if ((downloadsxml??) && (downloadsxml.download?size > 0))]
- Files and Libraries [/#if]
org.codehaus.enunciate.modules.docs.docs.fmt Maven / Gradle / Ivy
[#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]
© 2015 - 2025 Weber Informatics LLC | Privacy Policy