GetResourceRepresentation exception ServiceMetadata resource mandatory in resource oriented architectural style

62 Copyright © 2010 Open Geospatial Consortium Inc.

10.2 Tile resource mandatory in resource oriented architectural style

10.2.1 GetResourceRepresentation request

The ServiceMetadata document in the resource oriented architectural style MAY contain a list of Layer elements and each layer that is available to be retrieved in this architectural style SHALL have one or more ResourceURL elements with the resourceType attribute set to tile and a template attribute. In this RESTful approach the template attribute contains a URL template that can be converted to a URL by using a template processor and then get the expected tile in the format specified by the attribute format by requesting the resource with a standard HTTP GET. Figure 13 — URLTemplate for tile UML class diagram Table 31 — Parts of the URLTemplate data structure for tiles Names Definition Data type and values Multiplicity and use format format Format of the resource representation that can be retrieved one resolved the URL template ows:MimeType One mandatory resource Type resource Type Resource type to be retrieved Character String type, not empty SHALL contain tile One mandatory template template URL template a . Character String type but with the same limitations than a URI RFC2396 adding support to { and } characters. One mandatory a A template processor will apply the rules in Table 32 to get a URL to a resource. A template processor is a program or library that runs on the client side and converts a URL template into a URL. It will have to process the URL template that contains variable names marked off in matching braces {, } and substitute them with the corresponding DataType URLTemplateDescription + format : MimeType + resourceType: CharacterString = tile {frozen} + template: CharacterString template is a CharacterString but with the same limitations than a URI RFC2396 adding support to { and } characters. Copyright © 2010 Open Geospatial Consortium Inc. 63 valid value. The template processor SHALL support the following variable names: Style, TileMatrixSet, TileMatrix, TileRow, TileCol and any dimension identifier that has been defined for this layer in the element .Dimensionows:Identifier. The template processor SHALL substitute the variable names by the values of the elements as shown in Table 32. Possible values and ranges of the variables in the URL template can be extracted from the SeviceMetadata document parameters. The following table lists all the possible variable names, their description, possible values and multiplicity. Assuming a ServiceMetadata in XML format the possible values are also given using XPath expressions that point to the ServiceMetadata document. When a relative XPath is used, it is relative to its layer element of the ServiceMetadata document. When a variable has only one possible value for this layer, the use of the direct value instead of the variable is recommended on the URL template. Table 32 — URL template variables and possible values for tile URL template variable Meaning Possible values Multiplicity style Style identifier identifier in Table 7 .styleows:Identifier One mandatory a .Dimension ows:Identifie r Dimension value identifier in Table 9 .Dimension[ows:Identifier={.Dimension ows:Identifier}]Value One for each dimension available mandatory if there are dimensions defined TileMatrix Set tile matrix set identifier identifier in Table 6 . TileMatrixSetLinkTileMatrixSet One mandatory a TileMatrix tile matrix identifier identifier in Table 14 CapabilitiesContentsTileMatrixSet[ ows:Identifier={TileMatrixSet}]TileMatrix ows:Identifier One mandatory a TileRow row index of tile matrix If TileMatrixSetLimits is present, see Table 10, .TileMatrixSetLimits , SHALL be any integer value between MinTileRow and MaxTileRow in Table 12 both included .tileMatrixSetLimitstileMatrixLimits[. TileMatrix={TileMatrix}]MinTileRow and .tileMatrixSetLimitstileMatrixLimits[.T ileMatrix={TileMatrix}]MaxTileRow . else SHALL be any integer value between 0 and MatrixHeight – 1, see Table 14, both included 0 and CapabilitiesContentsTileMatrixSet[ows:I dentifier={TileMatrixSet}]TileMatrix[ows: Identifier={TileMatrix}]MatrixHeight – 1 One mandatory a