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] - + + ${title} + + + + + - - + + + + + - ${title} + + + + + + + + + + + - - + + - - - [#list additionalCssFiles as additionalCssFile] [/#list] - + - + - - +
-
- -
-
+ + +
+ [#nested/] - -
-
- -
-
+
- - - - - + + + - + - - [/#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 ((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}"

- - - - - - [#if attributeExists(wsdl.@file)] - - - - - [/#if] -
Namespace URI:[#if wsdl.@namespace?length > 0]${wsdl.@namespace}[#else](default namespace)[/#if]
WSDL:${wsdl.@file}
-

Endpoints

- - [/#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}"

- - - - - - [#if attributeExists(schema.@file)] - - - - - [/#if] -
Namespace URI:[#if schema.@namespace?length > 0]${schema.@namespace}[#else](default namespace)[/#if]
XSD:${schema.@file}
- [#if schema.elements.element?size > 0] - -

Data Elements

- - - [/#if] - [#if schema.types.type?size > 0] - -

Data Types

- - [/#if] - [/#list] - [#if docsxml.data.jsonSchema.type?size > 0] - -

JSON Data Types

- - [/#if] + +
+
+ [#if docsxml.documentation?size > 0] + +

${docsxml.documentation}

+ + [/#if] +
+
+ [#if restAvailable] +
+
REST API
+
+
    + [#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] + +
+
[/@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}"

- - - - - - [#if attributeExists(schema.@file)] - - - - - [/#if] -
Namespace URI:[#if schema.@namespace?length > 0]${schema.@namespace}[#else](default namespace)[/#if]
XSD:${schema.@file}
- [#if schema.elements.element?size > 0] + + [#if schema.elements.element?size > 0]

Data Elements

@@ -433,8 +336,10 @@ [/#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] @@ -457,7 +362,7 @@

${description}

[/#list]

Files

- +
@@ -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}]] -

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: @@ -517,11 +426,14 @@ You may also enjoy the Swagger UI provided for this API.

[/#if] +
[/@boilerplate] [/@file] + [/#if] [#if soapAvailable] - [@file name="soap.html" charset="utf-8"] + +[@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

@@ -532,18 +444,7 @@

[#list docsxml.soap.wsdls.wsdl as wsdl]

Namespace "${wsdl.@namespaceId}"

-
name size
- - - - - [#if attributeExists(wsdl.@file)] - - - - - [/#if] -
Namespace URI:[#if wsdl.@namespace?length > 0]${wsdl.@namespace}[#else](default namespace)[/#if]
WSDL:${wsdl.@file}
+

Endpoints

+
[/@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)] - + [/#if] [#if attributeExists(type?parent.@file)] - + [/#if] [#assign sinceTags = getTagValues(type, "since") /] [#if sinceTags?size > 0] - + [/#if] [#assign versionTags = getTagValues(type, "version") /] [#if versionTags?size > 0] - + [/#if] @@ -1390,7 +1347,7 @@ ${examplexml?string?xhtml} [#list type.property as property] [#if property_index = 0]

Properties

-
JSON Schema ID:JSON Schema ID: ${type?parent.@schemaId}
JSON Schema File:JSON Schema File: ${type?parent.@file}
Available Since:Available Since: ${sinceTags[0]}
Available Version:Available Version: ${versionTags[0]}
+
@@ -1409,7 +1366,7 @@ ${examplexml?string?xhtml} [#list type.enumValue as enumValue] [#if enumValue_index = 0]

Possible Values

-
name type
+
@@ -1423,6 +1380,7 @@ ${examplexml?string?xhtml}
value description
[/#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}"

+ + + + + + [#if attributeExists(wsdl.@file)] + + + + + [/#if] +
Namespace URI:[#if wsdl.@namespace?length > 0]${wsdl.@namespace}[#else](default namespace)[/#if]
WSDL:${wsdl.@file}
+

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}"

+ + + + + + [#if attributeExists(schema.@file)] + + + + + [/#if] +
Namespace URI:[#if schema.@namespace?length > 0]${schema.@namespace}[#else](default namespace)[/#if]
XSD:${schema.@file}
+ [#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}"

+ + + + + + [#if attributeExists(schema.@file)] + + + + + [/#if] +
Namespace URI:[#if schema.@namespace?length > 0]${schema.@namespace}[#else](default namespace)[/#if]
XSD:${schema.@file}
+ [#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 download.created as created] +

Created ${created}

+ [/#list] + [#list download.description as description] +

${description}

+ [/#list] +

Files

+ + + + + [#if download.files.file?size > 1] + + [/#if] + + [#list download.files.file as file] + + + + [#if file_index > 0 || file_has_next] + + [/#if] + + [/#list] +
namesizedescription
${file.@name}${file.@size}${file}
+ [/#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}"

+ + + + + + [#if attributeExists(wsdl.@file)] + + + + + [/#if] +
Namespace URI:[#if wsdl.@namespace?length > 0]${wsdl.@namespace}[#else](default namespace)[/#if]
WSDL:${wsdl.@file}
+

Endpoints

+ + [/#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}

+ + + + + + [#if attributeExists(wsdl.@file)] + + + + + [/#if] +
Namespace URI:[#if wsdl.@namespace?length > 0]${wsdl.@namespace}[#else](default namespace)[/#if]
WSDL:${wsdl.@file}
+

Endpoints

+ + [/@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] + + [#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

+ + + + + + + + [/#if] + + + + + + + [#if !parameter_has_next] +
namedescriptiontypedefault
[#if attributeExists(parameter.@name)]${parameter.@name}[/#if]${parameter}[#if attributeExists(parameter.@type)]${parameter.@type}[/#if][#if attributeExists(parameter.@defaultValue)]${parameter.@defaultValue}[/#if]
+ [/#if] + [/#list] + [#list operation.inValue as inValue] +

Request Body

+ + [#assign custom=true] + [#list inValue.xmlElement as xmlElement] + [#if attributeExists(xmlElement.@elementName)] + [#assign custom=false/] + + + [#if attributeExists(xmlElement.@elementSchemaId)] + + [#else] + + [/#if] + + [/#if] + [/#list] + [#list inValue.jsonElementRef as jsonElement] + [#if attributeExists(jsonElement.@elementName)] + [#assign custom=false/] + + + [#if attributeExists(jsonElement.@elementSchemaId)] + + [#else] + + [/#if] + + [/#if] + [/#list] + [#if custom] + + + [#if operation.customParameterName?has_content] + + [#else] + + [/#if] + + [/#if] + + + + +
element:${xmlElement.@elementName}${xmlElement.@elementName}
element:${jsonElement.@elementName}${jsonElement.@elementName}
element:${operation.customParameterName}(custom)
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/] + + + [#if attributeExists(xmlElement.@elementSchemaId)] + + [#else] + + [/#if] + + [/#if] + [/#list] + [#list outValue.jsonElementRef as jsonElement] + [#if attributeExists(jsonElement.@elementName)] + [#assign custom=false/] + + + [#if attributeExists(jsonElement.@elementSchemaId)] + + [#else] + + [/#if] + + [/#if] + [/#list] + [#if custom] + + + + + [/#if] + + + + +
element:${xmlElement.@elementName}${xmlElement.@elementName}
element:${jsonElement.@elementName}${jsonElement.@elementName}
element:(custom)
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

+ + + + + [#list resource.additionalHeaderLabels.label as label] + + [/#list] + + [/#if] + + + + [#list statusCode.additionalHeaders.additionalHeader as header] + + [/#list] + + [#if !statusCode_has_next] +
HTTP Status CodeDescription${label}
${statusCode.@code}${statusCode.condition}${header}
+ [/#if] + [/#list] + [#list operation.warning as warning] + [#if warning_index = 0] +

Warnings

+ + + + + + [/#if] + + + + + [#if !warning_has_next] +
HTTP Status CodeDescription
${warning.@code}${warning}
+ [/#if] + [/#list] + [#list operation.responseHeader as responseHeader] + [#if responseHeader_index = 0] +

Response Headers

+ + + + + + [/#if] + + + + + [#if !responseHeader_has_next] +
namedescription
${responseHeader.name}${responseHeader.documentation}
+ [/#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] + + + + + + [#if attributeExists((endpointInterface?parent).@file)] + + + + + [/#if] + [#if attributeExists(endpointInterface.@path)] + + + + + [/#if] + [#assign sinceTags = getTagValues(endpointInterface, "since") /] + [#if sinceTags?size > 0] + + + + + [/#if] + [#assign versionTags = getTagValues(endpointInterface, "version") /] + [#if versionTags?size > 0] + + + + + [/#if] +
Namespace:[#if (endpointInterface?parent).@namespace?length > 0]${(endpointInterface?parent).@namespace}[#else](default namespace)[/#if]
WSDL:${(endpointInterface?parent).@file}
Path:${endpointInterface.@path}
Available Since:${sinceTags[0]}
Version:${versionTags[0]}
+ [#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

+ + + + + + + [/#if] + + + + + + [#if !parameter_has_next] +
nametypedescription
${parameter.@name}[#if attributeExists(parameter.@xmlTypeName)][#if attributeExists(parameter.@xmlTypeSchemaId)]${parameter.@xmlTypeName}[#else]${parameter.@xmlTypeName}[/#if][#else](unknown)[/#if]${parameter}
+ [/#if] + [/#list] + [#list method["parameter[@output='true']"] as parameter] + [#if parameter_index = 0] +

Output Parameters

+ + + + + + + [/#if] + + + + + + [#if !parameter_has_next] +
nametypedescription
${parameter.@name}[#if attributeExists(parameter.@xmlTypeName)][#if attributeExists(parameter.@xmlTypeSchemaId)]${parameter.@xmlTypeName}[#else]${parameter.@xmlTypeName}[/#if][#else](unknown)[/#if]${parameter}
+ [/#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

+ + + + + + + [/#if] + + + + + [#if !fault_has_next] +
namedescription
${fault.@name}${fault}
+ [/#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}

+ + + + + + [#if attributeExists(schema.@file)] + + + + + [/#if] +
Namespace:[#if schema.@namespace?length > 0]${schema.@namespace}[#else](default namespace)[/#if]
XML Schema:${schema.@file}
+ [#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)] + + + + + [/#if] + + + + + [#if attributeExists(schema.@file)] + + + + + [/#if] + [#assign sinceTags = getTagValues(element, "since") /] + [#if sinceTags?size > 0] + + + + + [/#if] + [#assign versionTags = getTagValues(element, "version") /] + [#if versionTags?size > 0] + + + + + [/#if] +
Type:${element.@typeName}
Namespace:[#if schema.@namespace?length > 0]${schema.@namespace}[#else](default namespace)[/#if]
XML Schema:${schema.@file}
Available Since:${sinceTags[0]}
Available Version:${versionTags[0]}
+ [#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)] + + + + + [#break/] + [/#if] + [/#list] + [/#if] + + + + + [#if attributeExists(schema.@file)] + + + + + [/#if] + [#assign sinceTags = getTagValues(type, "since") /] + [#if sinceTags?size > 0] + + + + + [/#if] + [#assign versionTags = getTagValues(type, "version") /] + [#if versionTags?size > 0] + + + + + [/#if] +
Extends:${candidate.@name}
Namespace:[#if schema.@namespace?length > 0]${schema.@namespace}[#else](default namespace)[/#if]
XML Schema:${schema.@file}
Available Since:${sinceTags[0]}
Version:${versionTags[0]}
+ [#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

+ + + + + + [/#if] + + ${value.@value} + + + [#if !value_has_next] +
valuedescription
+ [#list value.documentation as documentation] + ${documentation} + [/#list] +
+ [/#if] + [/#list] + [#else] +

XML

+ [#list type.attributes.attribute as attribute] + [#if attribute_index = 0] +

Attributes

+ + + + + + + [/#if] + + + + + + [#if !attribute_has_next] +
nametypedescription
[#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] + [/#list] + [#list type.elements.element as element] + [#if element_index = 0] +

Elements

+ + + + + + + [/#if] + + + + + + [#if !element_has_next] +
name (type)min/max
occurs
description
+ [#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] + [/#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

+ + + + + + + [#list type.attributes.attribute as attribute] + + + + + + [/#list] + [#list type.elements.element as element] + + + + + + [/#list] + [#list type.value as value] + + + + + + [/#list] +
propertytypedescription
[#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}
[#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] +
[#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}
+ [/#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)] + + + + + [/#if] + [#if attributeExists(type?parent.@file)] + + + + + [/#if] + [#assign sinceTags = getTagValues(type, "since") /] + [#if sinceTags?size > 0] + + + + + [/#if] + [#assign versionTags = getTagValues(type, "version") /] + [#if versionTags?size > 0] + + + + + [/#if] +
JSON Schema ID:${type?parent.@schemaId}
JSON Schema File:${type?parent.@file}
Available Since:${sinceTags[0]}
Available Version:${versionTags[0]}
+ [#list type.documentation as documentation] +

${documentation}

+ [/#list] + [#list type.property as property] + [#if property_index = 0] +

Properties

+ + + + + + + [/#if] + + + + + + [#if !property_has_next] +
nametypedescription
[#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] + [/#list] + [#list type.enumValue as enumValue] + [#if enumValue_index = 0] +

Possible Values

+ + + + + + [/#if] + + + + + [#if !enumValue_has_next] +
valuedescription
[#list enumValue.value as value]${value} [/#list][#list enumValue.documentation as documentation]${documentation} [/#list]
+ [/#if] + [/#list] + [/@boilerplate] + [/@file] +[/#macro] \ No newline at end of file