TTB ANNEX N NATO Vector Graphics v2.0
TTB ANNEX N NATO Vector Graphics v2.0
Version 4.0
VERSION HISTORY
i
Table of Contents
1 TECHNOLOGY FOR INFORMATION, DECISION AND EXECUTION SUPERIORITY (TIDE) 4
2 REFERENCES ............................................................................................................................................ 5
3 OVERVIEW ................................................................................................................................................ 5
4 SPECIFICATION ....................................................................................................................................... 6
4.1 REQUEST / RESPONSE PROTOCOL .............................................................................................................. 6
4.1.1 Specification .................................................................................................................................... 6
4.1.1.1 PortType ..................................................................................................................................................... 6
4.1.1.2 Operations................................................................................................................................................... 6
4.1.1.3 Basic Profile 1.1 Compliance ..................................................................................................................... 7
4.1.1.4 Service Registration .................................................................................................................................... 8
4.1.1.5 Sequencing ................................................................................................................................................. 8
4.1.2 Requirements ................................................................................................................................. 10
4.2 STREAMING PROTOCOL ........................................................................................................................... 12
4.2.1 Specification .................................................................................................................................. 12
4.2.1.1 Producer PortType .................................................................................................................................... 13
4.2.1.2 Operations................................................................................................................................................. 13
4.2.1.3 Basic Profile 1.1 Compliance ................................................................................................................... 13
4.2.1.4 Service Registration .................................................................................................................................. 16
4.2.1.5 Sequencing ............................................................................................................................................... 16
4.2.2 Requirements ................................................................................................................................. 18
4.2.3 TIDE XML DIFF ATTRIBUTE .............................................................................................................. 19
4.3 CAPABILITIES FORMAT ............................................................................................................................ 20
4.3.1 Document Element ........................................................................................................................ 20
4.3.1.1 <nvg_capabilities>.................................................................................................................................... 20
4.3.2 Common Elements ......................................................................................................................... 21
4.3.2.1 <text> ....................................................................................................................................................... 21
4.3.2.2 <help>....................................................................................................................................................... 21
4.3.2.3 <values> ................................................................................................................................................... 21
4.3.2.4 <value> ..................................................................................................................................................... 21
4.3.2.5 <columns> ................................................................................................................................................ 22
4.3.2.6 <column>.................................................................................................................................................. 22
4.3.2.7 <rows> ...................................................................................................................................................... 22
4.3.2.8 <row> ....................................................................................................................................................... 22
4.3.3 Capability Elements ...................................................................................................................... 23
4.3.3.1 <input> ..................................................................................................................................................... 23
4.3.3.2 <select> .................................................................................................................................................... 23
4.3.3.3 <table> ...................................................................................................................................................... 24
4.3.3.4 <matrix> ................................................................................................................................................... 24
4.4 FILTER FORMAT ...................................................................................................................................... 26
4.4.1 Document Element ........................................................................................................................ 26
4.4.1.1 <nvg_filter> Document ............................................................................................................................ 26
4.4.2 Elements ........................................................................................................................................ 26
4.4.2.1 <input_response> ..................................................................................................................................... 26
4.4.2.2 <select_response>..................................................................................................................................... 27
4.4.2.3 <selected> ................................................................................................................................................. 28
4.4.2.4 <matrix_response> ................................................................................................................................... 28
4.4.2.5 <row> ....................................................................................................................................................... 29
4.4.2.6 <cell> ........................................................................................................................................................ 29
4.4.3 Example ......................................................................................................................................... 29
4.5 DATA FORMAT ........................................................................................................................................ 30
4.5.1 Global Concepts ............................................................................................................................ 31
4.5.1.1 World Coordinates .................................................................................................................................... 31
4.5.1.2 Positional Units......................................................................................................................................... 31
4.5.1.3 Distance Units .......................................................................................................................................... 31
4.5.1.4 Speed Units ............................................................................................................................................... 31
4.5.1.5 Angles ....................................................................................................................................................... 32
4.5.1.6 Lines ......................................................................................................................................................... 32
ii
4.5.1.7 Unit of Measurement ................................................................................................................................ 32
4.5.1.8 Extensibility.............................................................................................................................................. 32
4.5.1.9 XML Labeling .......................................................................................................................................... 33
4.5.1.10 Document Signing ............................................................................................................................... 34
4.5.1.11 Usage of any content ........................................................................................................................... 35
4.5.1.12 Identification attributes ........................................................................................................................ 35
4.5.1.13 Descriptive attributes ........................................................................................................................... 35
4.5.1.14 Time Dimension .................................................................................................................................. 36
4.5.1.15 Style .................................................................................................................................................... 36
4.5.1.16 Exclusion areas .................................................................................................................................... 40
4.5.1.17 Symbology .......................................................................................................................................... 41
4.5.2 <nvg> Document Element ............................................................................................................ 43
4.5.3 Elements ........................................................................................................................................ 43
4.5.3.1 <text> ....................................................................................................................................................... 43
4.5.3.2 <point> ..................................................................................................................................................... 44
4.5.3.3 <multipoint> ............................................................................................................................................. 45
4.5.3.4 <circle> ..................................................................................................................................................... 47
4.5.3.5 <ellipse> ................................................................................................................................................... 47
4.5.3.6 <rect> ....................................................................................................................................................... 48
4.5.3.7 <polyline> ................................................................................................................................................ 49
4.5.3.8 <arrow> .................................................................................................................................................... 50
4.5.3.9 <corridor>................................................................................................................................................. 51
4.5.3.10 <orbit>................................................................................................................................................. 52
4.5.3.11 <polygon> ........................................................................................................................................... 53
4.5.3.12 <g> ...................................................................................................................................................... 54
4.5.3.13 <composite> ........................................................................................................................................ 55
4.5.3.14 <arc> ................................................................................................................................................... 56
4.5.3.15 <arcband>............................................................................................................................................ 57
4.5.3.16 <content-item> .................................................................................................................................... 59
4.5.3.17 <metadata> .......................................................................................................................................... 60
4.5.3.18 <ExtendedData> .................................................................................................................................. 62
4.5.3.19 <SimpleData> ..................................................................................................................................... 64
4.5.3.20 <Section> ............................................................................................................................................ 64
4.5.3.21 <Schema> ............................................................................................................................................ 65
4.5.3.22 <SimpleField> ..................................................................................................................................... 65
5 PROTOCOL EXAMPLE ......................................................................................................................... 66
5.1 CONSUMER SEQUENCE ............................................................................................................................ 66
5.1.1 Service Discovery .......................................................................................................................... 66
5.1.2 Retrieving the Service Description ................................................................................................ 67
5.1.3 Get Capabilities ............................................................................................................................ 67
5.1.3.1 Request ..................................................................................................................................................... 68
5.1.3.2 Response ................................................................................................................................................... 68
5.1.4 Get NVG ........................................................................................................................................ 69
5.1.4.1 Request ..................................................................................................................................................... 69
5.1.4.2 Response ................................................................................................................................................... 69
APPENDIX 1 - APP-6A SYMBOLOGY BINDING ........................................................................................ 71
APPENDIX 2 - APP-6B SYMBOLOGY BINDING ........................................................................................ 71
APPENDIX 3- MIL-STD-2525B SYMBOLOGY BINDING .......................................................................... 71
APPENDIX 4- MIL-STD-2525C SYMBOLOGY BINDING .......................................................................... 71
APPENDIX 5 - APP-6C SYMBOLOGY BINDING ........................................................................................ 71
1 Technology for Information, Decision and Execution superiority (TIDE)
In today’s complex heterogeneous world, military operations cover a wide variety of missions
making it difficult to pre-design and pre-integrate Information Technology (IT) solutions.
Flexible and innovative IT capabilities are required to counter any potential threat in ever-
changing global environments.
In the past, the Alliance and its member nations have developed numerous capabilities for
particular communities of interest (e.g. maritime, air, ground, logistics and intelligence). Most
of these capabilities are inherently powerful but often fail to integrate horizontally with other
functional services to provide dominant and effectual joint/combined capabilities.
Furthermore, today’s IT solutions do not necessarily dovetail with human processes such as
knowledge gathering and decision making. It is increasingly essential to improve the interface
between human and automated processes to maximize our abilities and to facilitate other
transformational initiatives.
The Allied Command Transformation (ACT) as NATO’s forcing agent for change, supports
Transformation as a means to achieve Information, Decision and Execution superiority
expressed by the TIDE concept.
So what is TIDE?
TIDE is a life style whereby the emphasis is placed on sharing, reusing and
collaborating.
TIDE is not a product itself but TIDE encourages product owners to step outside their
traditional boundaries to improve the reuse value of their products.
TIDE emphasizes the power of modern technology while addressing critical human
factors such as Usability, Usefulness, and Understanding.
TIDE aims to rapidly improve operational capabilities through iterative processes
based on horizontal and vertical integration of existing and emerging products.
TIDE stimulates peaceful coexistence of NATO and National programs and services.
TIDE embraces network enabled principles and service oriented architectures.
TIDE is not about ownership or (hostile) takeovers. Stakeholders are simply
encouraged to do business differently to ensure better cohesion across the board.
The products described in this document are a byproduct of the ongoing collaboration of the
individuals and organizations participating in the TIDE events. The ownership of these
products resides with those who developed, use, maintain and carry them forward. There are
too many to be named here.
4
As you read through this document you may find errors and omissions. Please do your part
by providing feedback as appropriate:
2 References
3 Overview
The NATO Vector Graphics (NVG) concept originated as a file format and was originally
inspired by the Scalable Vector Graphics (SVG) specification. The intent was to provide
military systems developers with the following capability:
The primary use-case for NVG data is to support the collection of battle-space information
from multiple sources for the purpose of overlaying them on a geographical display. This
use-case supports situational awareness through the build-up of a detailed view of the battle-
space by combining several more simplistic views. As such, this use-case is ideal for
simplistic situational awareness capabilities. Though this construct is useful, to obtain true
situational awareness each NVG view should come from an authoritative and managed
source.
The initial NVG efforts quickly solved the encoding and drill-down objectives. From there
the development efforts were expanded to support the dynamic registration and discovery of
NVG services and the inclusion of the operator in the selection of the information required.
The NVG Protocol as described in this document satisfies this use-case.
5
4 Specification
For ease of communication the following specification of the NATO Vector Graphics (NVG)
Protocol has been split into the following topics:
Protocol
Capabilities format
Filter format
Data format
Symbology bindings (Annexes to this document)
https://tide.act.nato.int/mediawiki/index.php/NVG
To raise an issue or feature request to the community use the following links:
The NATO Vector Graphics Request / Response Protocol v2.0.0 is used for this baseline
specification and is documented as follows.
4.1.1 Specification
The NVG protocol requires the definition of a single endpoint with two operations. The
service endpoint is described using Web Services Description Language (WSDL) in
accordance to the Web Service Interoperability Organization’s Basic Profile 1.1. A sample
NVG service definition can be found at:
https://tide.act.nato.int/schemas/2012/10/nvg/nvg.ws.20.wsdl
4.1.1.1 PortType
The required NVG port type (abstraction of an endpoint) is defined by the following
namespace, port type and supporting schemas:
Namespace https://tide.act.nato.int/wsdl/2012/nvg
PortType NVGPortType2012
Schema Location https://tide.act.nato.int/schemas/2012/10/nvg
4.1.1.2 Operations
6
Each operation of the service port type relies on wrapper elements via the input and output
messages. These wrapping elements must be used by the provider to route incoming requests
per operation
The NVG service port type (NVGPortType2012) defines the following operations:
4.1.1.2.1 GetCapabilities
4.1.1.2.2 GetNvg
The GetNvg operation is used to retrieve a NVG data requested by a user. The user selection
criteria is described in the nvg_filter document which has a direct correlation to the
nvg_capabilities document retrieved by the GetCapabilities operation. The GetNvg
operation:
The Binding must be according to Basic Profile 1.1 rules. The minimum set of rules ensuring
service interoperability is:
7
The Service description should follow Basic Profile 1.1 rules. A minimum set of rules can be
expressed as:
The NVG producer will register itself according to the TIDE Service Discovery specification
using the service type _tinf-nvg and the following service meta-data:
Identifier Value
service_wsdl Presence: mandatory
Value: a URL that points to WSDL containing the Service Definition. This
can be a fully-qualified URL, or a path component starting with a slash
('/'), in which case the value is appended to http://hostname:port to form
the full Service WSDL location.
service_name Presence: mandatory
4.1.1.5 Sequencing
The NVG protocol supports the event sequence described in this section. Executing the
events in another sequence is allowed, but not defined or supported by the NVG Protocol
Specification.
8
Figure 1 Sequence Diagram
Event NVG Consumer NVG Provider
Sequen
ce
1 Register service according to the TIDE
Service Discovery specification including
the NVG specific metadata.
2 Discover _tinf-nvg service
providers according to the TIDE
Service Discovery specification
3 Decode service meta-data to
determine the service endpoint.
Invoke the GetCapabilities
operation on the desired service
endpoint.
4 Respond to the GetCapabilites request with
a GetCapabilitiesResponse containing a
nvg_capabilities document describing the
supported selection criteria.
5 Format the retrieved
nvg_capabilities document suitable
for human consumption and present
to the user to determine the
selection criteria.
6 Encode the user defined selection
criteria into a nvg_filter document.
Invoke the NVG provider’s GetNvg
operation passing the nvg_filter in a
GetNvg wrapper element.
7 Decode the nvg_filter from the GetNvg
wrapper. Generate the requested nvg
document and return to the consumer
wrapped in a GetNvgResponse element.
8 Handle the retrieved nvg data as
appropriate for the specific NVG
9
consumer.
4.1.2 Requirements
The NVG Protocol Specification explicitly defines the following requirements for
implementers of the protocol:
The consumer shall discover NVG producers according to the TIDE Service
NVG-C01.
Discovery specification.
The consumer shall decode the service_wsdl, service_name and version metadata
NVG-C02. from the service record description and use them to choose the Port that it
supports best to invoke the producer.
The consumer shall make all requests via HTTP with SOAP
NVG-C03.
document/literal encoding.
The consumer shall provide a request with no document as the input to the
NVG-C04.
GetCapabilities method.
The consumer shall provide a valid nvg_filter document as the input to the GetNvg
NVG-C05.
method.
10
The consumer shall accept and decode an nvg_capabilities document as the proper
NVG-C06.
response to the GetCapabilities method.
The consumer shall accept and decode an nvg document as the proper response to
NVG-C07.
the GetNvg method.
11
4.2 Streaming Protocol
The NATO Vector Graphics Streaming Protocol v1.0 is used for this baseline specification
and is documented as follows.
NVG Streaming Protocol addresses the following requirements for the distribution of NATO
Vector Graphics (NVG) Data:
Requirement to replicate large NVG data files between sites over constrained
networks.
Requirement to efficiently encode and deliver natively asynchronous data using NVG.
Requirement to support geo-white-boarding using NATO Vector Graphics (NVG)
Data
Deliver only the changes to previously sent data. (Conserve bandwidth, optimize for
performance)
Deliver the changes to the requested information when they occur. (i.e. push instead of
pull)
The NVG Streaming Protocol is to be used as a solution for these cases to address differential
and continuous updates of an NVG Consumer.
4.2.1 Specification
It is intended that the NVG Streaming protocol is an extension to the NVG Request/Response
protocol. As such, the NVG Request/Response functionality should be implemented prior to
layering the NVG Streaming functionality on top. Because of this, only the specifications in
addition to the NVG Request/Response protocol will be documented in this section.
The NVG Streaming protocol WSDL provides additional PortTypes to be specified alongside
NVG Request/Response PortTypes in a single service. These additional PortTypes can be
found in the following WSDL:
The PortTypes (in the respective target namespace as defined above) defined in this WSDL
include:
PortType Comment
SubscriptionProducerPortType Applicable to the NVG Streaming Provider.
12
SubscriptionConsumerPortType Applicable to the NVG Streaming Consumer.
The required NVG Streaming producer port type (abstraction of an endpoint) is defined by the
following namespace, port type and supporting schemas:
Namespace https://tide.act.nato.int/schemas/2012/10/nvg/streaming
PortType SubscriptionProducerPortType
Schema Location https://tide.act.nato.int/schemas/2012/10/nvg/streaming/nvg.streami
ng.sub.2.0.wsdl
4.2.1.2 Operations
4.2.1.2.1 Subscribe
The Subscribe operation is used to subscribe to NVG data requested by a user. The user
selection criteria is described in the nvg_filter document which has a direct correlation to the
nvg_capabilities document retrieved by the GetCapabilities operation. The consumer
endpoint for the subscription is described by the WSDL at the URL contained in
consumerWSDL. The Subscribe operation:
4.2.1.2.2 Cancel
The Cancel operation is used to terminate an existing subscription from a NVG Streaming
producer. The unique identifier to the subscription is provided by the consumer as
subscriptionID. The Cancel operation:
13
See section: 4.1.1.3.1
The Service description should follow Basic Profile 1.1 rules. A minimum set of rules can be
expressed as:
If documentMode is not present (default) or = complete, the consumer shall reset its
data store with the full content of this NVG message.
If documentMode = partial, the Consumer shall update its data store with the NVG
message.
14
If the provider uses the currentSync attribute, the subscription chain shall be handled
as Strict sequencing by the Consumer.
The differential updates for NVG content should follow these rules:
Rule 1: URI
When adding an nvg object into a group, the group hierarchy (each <g> with @uri)
must enclose the newly-added object.
Upon reception of an empty group, the original content of this group shall not be
changed.
Rule 4: deletions
15
4.2.1.4 Service Registration
The NVG Streaming producer will register itself according to the TIDE Service Discovery
specification under type _tinf-sp-nvg and include the following service meta-data:
Identifier Value
service_wsdl Presence: mandatory
Value: a URL that points to WSDL containing the Service Definition. This
can be a fully-qualified URL, or a path component starting with a slash
('/'), in which case the value is appended to http://hostname:port to form
the full Service WSDL location.
service_name Presence: mandatory
4.2.1.5 Sequencing
The NVG Streaming Protocol supports the event sequence described in this section.
Executing the events in another sequence is allowed, but not defined or supported by the
NVG Protocol Specification.
16
Service Discovery specification including
the NVG Streaming specific metadata.
2 Discover _tinf-sp-nvg service
providers according to the TIDE
Service Discovery specification
3 Decode service meta-data to
determine the service endpoint.
Invoke the GetCapabilities
operation on the desired service
endpoint.
4 Respond to the GetCapabilites request with
a GetCapabilitiesResponse containing a
nvg_capabilities document describing the
supported selection criteria.
5 Format the retrieved
nvg_capabilities document suitable
for human consumption and present
to the user to determine the
selection criteria.
6 Encode the user defined selection
criteria into a nvg_filter document.
Invoke the NVG Streaming
provider’s Subscribe operation
passing the nvg_filter,
subscriptionID and Consumer
Endpoint information in a
Subscribe wrapper element.
7 Decode the nvg_filter, subscriptionID and
Consumer Endpoint information from the
Subscribe wrapper.
9 As content updates occur and match the
consumer filter, generate the requested nvg
document and return to the consumer
wrapped in a SendMessage element.
10 Handle the retrieved nvg data as
appropriate for the specific NVG
Streaming consumer.
11 Invoke the NVG Streaming
provider’s Cancel operation passing
the subscriptionID.
12 Decode the subscriptionID from the
Cancel wrapper. Remove the client
subscription and any queued information
for the subscription.
17
4.2.2 Requirements
The NVG Streaming Protocol Specification explicitly defines the following requirements for
implementers of the protocol:
18
The light version of the NVG Streaming Protocol is a compact version to enable simpler
Publisher/Subscriber interaction.
no NVG-SP-C02
no NVG-SP-C03
NVG-SP-C04-01: no nvg_filter present in the request
For completion of this specification, the definition of the TIDE XML Diff attribute is
published below.
Attributes
previousSync <string> any string
currentSync <string> any string
documentMode <string> { partial ; complete } (default: complete)
subscriptionID <string> any string
Attributes
remove boolean fixed value to 'true'
Usage example
19
diff:documentMode="partial"
diff:subscriptionId="id1234" >
<nvg:g label="Facilities" uri="urn:tide:f1">
<nvg:g label="Hospitals" uri="urn:tide:h1">
<nvg:point uri="urn:tide:obj1" x="1.0" y="1.0"
label="Red Cross Hospital North" style="fill:#ff0000"/>
</nvg:g>
</nvg:g>
<nvg:point uri="urn:tide:obj2" diff:remove="true" x="1.0" y="1.0"
label="Red Cross Hospital South" style="fill:#ff0000"/>
</nvg:nvg>
The NVG Capabilities Format defines the mechanics, not the semantics, of server-side
operations that can be performed on the information being served. As such, a human is
generally included in the process of defining the NVG Filter based on the NVG Capabilities
document. This statement is absolutely true for information providers that generate the NVG
Capabilities document dynamically and less so for providers with static NVG Capability
documents.
The NVG Capabilities document is encoded as XML according to the following schema:
Version 2.0.0
Namespace https://tide.act.nato.int/schemas/2012/10/nvg
Schema https://tide.act.nato.int/schemas/2012/10/nvg/nvg.capabilities.2.0.xsd
The remainder of this section presents the elements described in the schema.
4.3.1.1 <nvg_capabilities>
Attributes
version <string> The NATO Vector Graphics (NVG) Capabilities Format version
number.
{any} (Optional) any named attribute, in a local or externally declared
namespace, optionally defined and validated by a declared
corresponding schema. Content from these attributes should not be
20
expected to be preserved in transfers of NVG documents between
different systems.
4.3.2.1 <text>
Applies to
<help>
4.3.2.2 <help>
The <help> tag is used to associate descriptive text with one of the filter elements. The
descriptive text should help the end-user to fill in the filter value correctly.
Attributes
name <string> The name of the corresponding element.
text <string> Descriptive text to be oriented toward the end-user. Note: the text
attribute can be replaced with the <text> sub-tag for complex
descriptions.
Applies to
4.3.2.3 <values>
The <values> tag provides a mechanism to group one or more <value> tags.
Applies to
<select>, <matrix>
4.3.2.4 <value>
The <value> tag allows for the association of a human readable text value with a machine
readable value.
Attributes
id <string> Element identifier suitable for html element id.
name <string> Element label suitable for human consumption.
selected <true|false> Optionally determines if the value is selected. If not specified false
is implied.
21
Applies to
<values>
4.3.2.5 <columns>
The <columns> tag provides a mechanism to group one or more <column> tags.
Applies to
<matrix>
4.3.2.6 <column>
Attributes
id <string> Element identifier suitable for html element id.
name <string> Element label suitable for human consumption.
color <string> Optionally determines the display color for the column.
Applies to
<columns>
4.3.2.7 <rows>
The <rows> tag provides a mechanism to group one or more <row> tags.
Applies to
<matrix>
4.3.2.8 <row>
Attributes
id <string> Element identifier suitable for html element id.
name <string> Element label suitable for human consumption.
type <int|string|boolean|float> Element data type
Applies to
<rows>
22
4.3.3 Capability Elements
4.3.3.1 <input>
The <input> tag indicates that the given string parameter is required for the server-side
operation/filter.
Attributes
id <string> Element identifier suitable for
html element id.
name <string> Element label suitable for human
consumption.
required <true|false> Identifies whether the element is
required in the query.
type <boolean|string|int|float|date|datetime|position> Identifies the data type of the
input field.
default <string> String representation of the
default value.
length <positive integer> Optionally sets the length of the
string input field displayed to the
user.
4.3.3.2 <select>
The <select> tag indicates the user must select one or more defined values for the server-side
operation/filter.
Attributes
id <string> Element identifier suitable for html element id.
name <string> Element label suitable for human consumption.
required <true|false> Identifies whether the element is required in the query.
multiple <true|false> Allow the selection of multiple items.
list <true|false> Presentation hint, display the options as a list vs a
combo-box.
23
<value id="E" name="Live Training" />
<value id="S" name="Simulated" />
</values>
</select>
4.3.3.3 <table>
Attributes
Id <string> Element identifier suitable for html element id.
Name <string> Element label suitable for human consumption.
column_labels <comma_delimitted_list> Column labels suitable for human consumption.
4.3.3.4 <matrix>
The <matrix> tag is used to pack a two dimensional filter into a small space. Multiple states
are possible per cell.
Attributes
id <string> Element identifier suitable for html element id.
name <string> Element label suitable for human consumption.
24
<matrix id="threat_category" name="Threat/Category">
<help name="Threat/Category" text="Check the box corresponding to each Threat/Category
combination of tracks to name." />
<values>
<value id="x" name="x" />
<value id="." name="." selected="true" />
<value id="-" name=" " />
</values>
<columns>
<column id="fri_categories" name="FRI" color="blue" />
<column id="hos_categories" name="HOS" color="red" />
<column id="neu_categories" name="NEU" color="green" />
<column id="unk_categories" name="UNK" color="yellow" />
</columns>
<rows>
<row id="naval_threats" name="Naval" />
<row id="subsurface_threats" name="Subsurface" />
<row id="merchant_threats" name="Merchant" />
<row id="air_threats" name="Air" />
<row id="land_threats" name="Land" />
<row id="unknown_threats" name="Unknown" />
</rows>
</matrix>
25
4.4 Filter Format
The NVG Filter Format is used to formulate a client request for data in the NATO Vector
Graphics (NVG) Protocol. The content of the filter document corresponds directly to a
previously retrieved capabilities document.
Where the NVG Capabilities Format is used to define query options to present to the user, the
NVG Filter Format is used to encode the user selected query parameters.
See the NATO Vector Graphics (NVG) Protocol for more information on the intended use of
this data format.
The NVG Filter document is encoded as XML according to the following schema:
Version 2.0.0
Namespace https://tide.act.nato.int/schemas/2012/10/nvg
Schema https://tide.act.nato.int/schemas/2012/10/nvg/nvg.filter.2.0.xsd
The remainder of this section presents the elements described in the schema.
Attributes
version <string> The NATO Vector Graphics (NVG) Filter Format version
number.
{any} (Optional) any named attribute, in a local or externally declared
namespace, optionally defined and validated by a declared
corresponding schema. Content from these attributes should not be
expected to be preserved in transfers of NVG documents between
different systems.
4.4.2 Elements
4.4.2.1 <input_response>
The <input_response> element is used to encode the user response to a <input> tag item.
Attributes
refid <string> Element identifier (see Filter Format id attribute) from the
corresponding capabilities document.
The user supplied response value is encoded between the start and end <input_response> tags.
26
String values
including NULL strings. NULL strings are invalid if required attribute is set to true
in the corresponding capabilities document.
Number values
will be representated as character strings compatible with XSD number format. Xml
Schema types exists and can be used to support this validation:
IntegerInputResponsetype, FloatInputResponsetype
Position values
Boolean values
will be represented with: "true" or "false". An Xml Schema type exists and can be
used to support this validation: BooleanInputResponseType
will be represented in XSD date-time format. Xml Schema types exists and can be
used to support this validation: DateInputResponsetype,
DatetimeInputResponsetype
<input_response refid="activateTarget">true</input_response>
<input_response refid="SearchPattern">taliban</input_response>
<input_response refid="testDatetime" xsi:type="DatetimeInputResponsetype">2008-03-
28T01:02:03+04:30</input_response>
<input_response refid="testDate" xsi:type="DateInputResponsetype">2008-03-28</input_response>
<input_response refid="testBool" xsi:type="BooleanInputResponseType">true</input_response>
<input_response refid="bbox_NE_Corner" xsi:type="PositionInputResponsetype">-
045.123456456,02.0</input_response>
<input_response refid="bbox_SW_Corner">south west point of africa</input_response>
Applies to
<nvg_filter>
4.4.2.2 <select_response>
The <select_response> element is used to encode the user response to a <select> tag item.
The response data is provided in a sequence of <selected> tags.
27
Attributes
refid <string> Element identifier (see Filter Format id attribute) from the
corresponding capabilities document.
<select_response refid="select.some.values">
<selected>value.A</selected>
<selected>value.CA</selected>
<selected>value.FR</selected>
</select_response>
Applies to
<nvg_filter>
4.4.2.3 <selected>
The user selection identified by the element id from the corresponding capabilities <value>
tag. The selection is encoded between the start and end <selected> tags.
Applies to
<select_response>
4.4.2.4 <matrix_response>
The <matrix_response> element is used to encode the user response to a <matrix> tag item.
The response data is provided in a sequence of <row>/<cell> tags.
Attributes
refid <string> Element identifier (see Filter Format id attribute) from the
corresponding capabilities document.
<matrix_response refid="threat">
<row row-id="person">
<cell col-id="friend">x</cell>
<cell col-id="hostile">.</cell>
<cell col-id="unknow">x</cell>
</row>
<row row-id="event">
<cell col-id="friend">x</cell>
<cell col-id="hostile">.</cell>
<cell col-id="unknow">x</cell>
</row>
<row row-id="equipment">
<cell col-id="friend">x</cell>
<cell col-id="hostile">.</cell>
<cell col-id="unknow">x</cell>
</row>
28
<row row-id="unit">
<cell col-id="friend">x</cell>
<cell col-id="hostile">.</cell>
<cell col-id="unknow">x</cell>
</row>
<row row-id="location">
<cell col-id="friend">x</cell>
<cell col-id="hostile">.</cell>
<cell col-id="unknow">x</cell>
</row>
</matrix_response>
Applies to
<nvg_filter>
4.4.2.5 <row>
Attributes
refid <string> Element identifier (see Filter Format id attribute) from the
corresponding capabilities document.
Applies to
<matrix_response>
4.4.2.6 <cell>
Attributes
col-id <string> The <column> element identifier corresponding to the user
selection.
The user input identified by the element id from the corresponding capabilities <value> tag.
The selection is encoded between the start and end <cell> tags.
Applies to
<row>
4.4.3 Example
29
<input_response refid="testDate" xsi:type="DateInputResponsetype">2008-03-28</input_response>
<input_response refid="testBool" xsi:type="BooleanInputResponseType">true</input_response>
<input_response refid="bbox_NE_Corner" xsi:type="PositionInputResponsetype">-
045.123456456,02.0</input_response>
<input_response refid="bbox_SW_Corner">south west point of africa</input_response>
<select_response refid="select.some.values">
<selected>value.A</selected>
<selected>value.CA</selected>
<selected>value.FR</selected>
</select_response>
<matrix_response refid="threat">
<row row-id="person">
<cell col-id="friend">x</cell>
<cell col-id="hostile">.</cell>
<cell col-id="unknown">x</cell>
</row>
<row row-id="event">
<cell col-id="friend">x</cell>
<cell col-id="hostile">.</cell>
<cell col-id="unknown">x</cell>
</row>
<row row-id="equipment">
<cell col-id="friend">x</cell>
<cell col-id="hostile">.</cell>
<cell col-id="unknown">x</cell>
</row>
<row row-id="unit">
<cell col-id="friend">x</cell>
<cell col-id="hostile">.</cell>
<cell col-id="unknown">x</cell>
</row>
<row row-id="location">
<cell col-id="friend">x</cell>
<cell col-id="hostile">.</cell>
<cell col-id="unknown">x</cell>
</row>
</matrix_response>
</nvg_filter>
The NATO Vector Graphics (NVG) Data Format, originally inspired from Scalable Vector
Graphics (SVG), aims to provide the following capability:
The primary use-case for NVG data is the collection of battle-space information from
multiple sources to be overlaid on a geographical display. This use-case supports situational
awareness through the buildup of a detailed view of the battle-space by combining several
more simplistic views. As such, this use-case is ideal for simplistic situational awareness
capabilities that can be delivered using web technologies. Though this construct is useful, to
obtain true situational awareness each NVG view should come from an authoritative and
managed source.
30
To achieve the above goals the NATO Vector Graphics (NVG) Protocol was created. This
section defines the encoding of the battle-space information in XML.
The NVG Data document is encoded as XML according to the following schema:
Version 2.0.2
Namespace https://tide.act.nato.int/schemas/2012/10/nvg
Schema https://tide.act.nato.int/schemas/2012/10/nvg/nvg.data.2.0.xsd
The remainder of this section presents the elements described in the schema.
The coordinate system associated with the NVG canvas are mapped to the real World and
expressed in degrees latitude and longitude. Values representing longitudes are the closed
interval -180.0 to 180.0. Values representing latitudes are the closed interval -90.0 to 90.0.
Positional units are expressed decimal degrees, the integer part of the value is interpreted as
degrees, while the minutes and seconds are calculated from the fractional part: e.g. 5.5 equals
5 degrees 30 minutes.
Positional values should be specified with at least 6 fractional digits. If less digits are
specified the remaining digits will be assumed equal to 0. This ensures an accuracy of
approximately two hundredths of a second, which amounts to 0.6 meters (or: 2 feet) at the
equator.
Measure of altitude distances are expressed in meters relative (positive or negative) to the
datum surface of WGS-84 (reference system for NVG coordinates).
31
Measures of speed are expressed in kilometers per hour (km.h-1).
4.5.1.5 Angles
All angles are expressed in degrees with a range of [0.0 to 360.0] progressing from
0.0 to 360.0 in the clockwise direction. When the angle indicates direction 0.0
indicates True North. If a value is not specified a value of 0.0 is implied.
Where start and stop angles indicate a range, the range proceeds from the start angle to
the stop angle in a clockwise direction.
Where an angle indicates rotation, the rotation is in the counter-clockwise direction. If
a value is not specified a value of 0.0 is implied.
4.5.1.6 Lines
Lines are specified as a series of points along the surface of the earth. Interpolation of the line
positions between two points is performed using one of the following methodologies:
The “leg-type” attribute is available on select geometries and used to indicate the desired
interpolation methodology. This attribute has the following acceptable values:
4.5.1.8 Extensibility
The NATO Vector Graphics (NVG) Data Format can be extended in the following ways:
32
Selected elements can be extended with additional content inside an extension
element. Where allowed it is denoted by the optional {any content} notion in the
<extension> element.
Additional information, not provided for elsewhere, for certain elements can be
conveyed using the <ExtendedData> element/structure. <ExtendedData> allows for
the association of typed key/value pair data with a specific NVG element.
When required point-based symbology is not supported by a given NVG renderer, the
icon: variation of symbol attribute can be used to provide the point based symbol from
an external source. Note, the image center will be mapped to the location (x,y) of the
point.
An <extension> tag is provided at specific locations in the schema to allow
Community of Interest (CoI) extensions within a NVG document without
modifications to the NVG schemas.
The <BindingInformation> element has been added to the NVG Data Format to act as a
placeholder for XML labeling metadata. The intent is to allow machine actionable labeling to
be stored in the document and processed by cross-domain technical capabilities (i.e. cross-
domain guards). The <BindingInformation> element should be nested in the <extension/>
element when used.
NC3A draft TN-1455 - NATO Profile for the Binding of Metadata to Data Objects was
utilized for the development of this concept. However, as it is a draft specification, it is not
tightly bound to the NATO Vector Graphics (NVG) Data Format and thus any similar
specification could be used in its place.
Example:
33
<mbc:Metadata metadataType="OriginatorConfidentialityLabel">
<slab:ConfidentialityLabel>
<slab:ConfidentialityInformation>
<slab:PolicyIdentifier>MOCK</slab:PolicyIdentifier>
<slab:Classification>Restricted</slab:Classification>
</slab:ConfidentialityInformation>
</slab:ConfidentialityLabel>
</mbc:Metadata>
<mbc:DataReference URI="#justapoint" />
</mbc:MetadataBinding>
</mbc:MetadataBindingContainer>
</nvg:BindingInformation>
</nvg:extension>
</nvg:nvg>
Though not explicitly part of the NATO Vector Graphics (NVG) Data Format specification,
the ability to identify whether a document has been modified while in transit is desirable. It is
recommended that implementers use the W3C XML Signature Syntax and Processing
specification for this purpose. The <Signature> element should be placed in the <extension>
element of the NVG document.
Example:
34
CxMLRGV2ZWxvcG1lbnQxGTAXBgNVBAMTEHd3dy5jbG91ZGV4cC5jb20wHhcNMTExMjE2MjEyODQw
WhcNMTIxMjEwMjEyODQwWjB3MQswCQYDVQQGEwJVUzELMAkGA1UECBMCVkExEzARBgNVBAcTCkVh
c3QgQ29hc3QxFTATBgNVBAoTDENsb3VkRXhwLmNvbTEUMBIGA1UECxMLRGV2ZWxvcG1lbnQxGTAX
BgNVBAMTEHd3dy5jbG91ZGV4cC5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDJ
m6qBYpEykMENJ84BzCq/Y10Z1+g03dVlwrYWn9jV5yqSAX3EgouhFKjvpfCt1YDd51lzff2Q0d17
Vhj0nzXIVOooJeBfmEUX8nagZWhhRWWvkTVEaryfdXJ3W/DeBHQA3x3bwlG3Dl113iXnGMKqmOdI
OYXm740x7taroC6PulvjvUoQJr1HPpR7B8W2ArELA6DnleqoolVVhB6LTXZlQ8K46W+F7lkdxB6K
cbodJ6IYsF14mGkR2FUcE3+9pHtiY5n8mrB69cdEpUaB4tYX+Qse+RGj0w6D7AS0tcnhl5+BNP1L
yWq6CwcfJEBiltYRnWzGeSMH3FZVci+LHDklAgMBAAEwDQYJKoZIhvcNAQEFBQADggEBAJyi5i9m
5E7da8QuhNVk5H/zI+1GRwdIdcQ6RwIwHnIULGDfBvEGdjYyWk/d8v1N521NFst1Uk+Je6w7r0Ob
Znh7iRJPJAkSexG0qBf8O+W/9jj0xALxpUiZVzV/g14GizJYLS7wRUQ8MDAvtqpCc3wffZGU0EGD
9Is3+EjOXghK8olY/fMe9td05ZFHnWRUOkuHwtSbzpcjdDh6aOzx+BAagnqO4gGk199/AOirH8+k
5++hoLlGv3IoXzjCYGT9T4YjGqizRfth91NKAC7wXGXZ/xrN08DXy7fbRm5hWnwVRzS8rwxrErIp
6gzwik1vGldI0Q4rqzj2kWiDGXizETg= </X509Certificate>
</X509Data>
</KeyInfo>
</Signature>
</nvg:extension>
</nvg:nvg>
{any}
{any content}
uri
(optional) a Uniform Resource Identifier (URI) that uniquely identifies the object, see
(http://en.wikipedia.org/wiki/URI_scheme) for more details.
label
style
(optional) CSS-based styling which indicates how this element should be rendered
graphically. See Supported Styles for content of this attribute.
href
35
(optional) A URL to human readable content providing more information about the
object. Typically the NVG document will contain just a small amount of metadata
required to render the content. The URL allows the user to drill-down (click through)
to the full content. See URL Definition.
textInfo
TimeStamp
(optional) object-level attribute to represent any change of state across time for an nvg
object (expected to have the same URI across time). TimeStamp is a comparable
value. TimeStamp is defined as a DateTime. Does not intend to carry any meaning
other than 'this object's representation has changed at this timestamp'. Timezone
information is required.
TimeSpan
(optional) A pair of elements (<begin> and <end>, each one is optional) to define a
show/hide period (based on strict DTG) for the shape as defined by KML TimeSpan.
Timezone information is required.
4.5.1.15 Style
The style attribute defines how objects should be rendered graphically, with the exception of
points. Depending on the geometry the element represents, the style attribute can be made up
of a line style, a fill style or a text style. If no style is defined or if the style is not completely
defined, default values shall be used to complete the style. Points are singular and do not
represent a geometry. Their graphical representation is defined by the required symbol
attribute.
36
The style attribute is an inline CSS (Cascading Style Sheet) style description. The style
attribute is composed of style property definitions, separated by colons (;). A style property
definition is of the form name:value. The unit of the value (px) is optional in the string.
Example: a style attribute which consists of a property of a line style, a property of a fill style
and a property of a text style.
style="stroke:#ffffff;fill:#ff44ff;font-family:dialog"
Styling is available for lines, areas and text. Rendering information for points is stored in the
symbol attribute.
A line style defines how the connection between two points should be rendered graphically.
To define the line style the following properties are available:
stroke: the color of a line expressed as an hexadecimal RGB value. Default value is
#000000 (black).
stroke-width: the width of a line expressed in number of pixels. Default value is 1.
stroke-opacity: the opacity of a line expressed as a decimal value between 0
(completely transparent) and 1 (opaque). Default value is 1.0 (opaque).
stroke-dash: the dashed representation of the line with the following valid values:
o none - (default) Indicates that no dashing is used. A solid line.
o <dasharray> - A list of comma-separated <length>'s specified in pixels. All
<length>'s must positive values greater than zero. For example: stroke-
dash="5,3,2"
line-pattern-begin (first point): see line pattern values
line-pattern-end (last point): see line pattern values
Line pattern size default '2' to 3x stroke size. Other scaling for value '1' (2x of stroke
size) and value '3' (5x of stroke size).
37
The properties defined for a line can also be used to define how the outline of an area, e.g. a
sector, should be rendered.
Example: a red solid line which is 70% transparent and has a thickness of 3 pixels:
style="stroke:#FF0000;stroke-width:3;stroke-opacity:0.3;stroke-dash:none"
An area style defines how the inner area of a set of connected points should be rendered
graphically. To define the area style the following properties can are available:
fill: the color to fill an area with expressed as an hexadecimal RGB value. If the area
should not be filled, the value is none, which is the default value.
fill-opacity: the opacity of an area that is filled expressed as a decimal value between 0
(completely transparent) and 1 (opaque). The default value is 1, opaque.
fill-pattern: a pattern to fill the area with using the color defined by "fill". Valid values
are: Dotted, MediumDotted, VerticalLine, HorizontalLine, DiagonalUpwardLine,
DiagonalDownwardLine, DottedGrid, Grid, OutlinedDiamond, SolidDiamond,
DiagonalBrick. Corresponding patterns are shown below:
38
font-family: the name of the font to use. The default font-family is system specific, use
this attribute if you require a specific font. Keep in mind that the font may not exist in
the system rendering the document.
font-style: the style of the font with the following possible values:
normal, (default)
italic
font-weight: the weight of the font with the following possible values:
normal, (default)
bold
font-color: the color to render the text in expressed as an hexadecimal RGB value. The
default value is #000000 (black).
font-size: height[unit] defaults to px or specified physical units for scale-driven text
size. Possible values are:
px (pixels, default)
m (meters)
km (kilometers)
nm (nautical miles)
example: font-size:16px or font-size:12km
text-align: Specifies the alignment of the text with respect to the reference point (x, y)
prior to rotation. Valid values are: left, right, center (default).
vertical-align: Specifies the vertical alignment of the text with respect to the reference
point (x, y) prior to rotation. Valid values are: top, middle (default), bottom.
text-align and vertical-align are used to determine the geo-referenced anchor point (x, y) with
respect to a bounding box containing all text. The following diagram illustrates the nine
potential anchor points along with the required values of (text-align, vertical-align).
Example:
<nvg:text x="-123.3" y="37.5" rotation="45.0" style="font-weight:bold;font-color=#000000;text-
align:center;vertical-align:middle" uri="urn:guid:d9daaefe-067a-407f-bbcb-33f06e69ea4a">
<content> <![CDATA[TEXT
Pacific
Ocean]]></content>
</nvg:text>
39
4.5.1.16 Exclusion areas
Exclusions areas are holes in NVG areas. Elements considered true areas are (corresponding
exclusion elements in parenthesis):
polygon (linear-ring)
circle (circular-ring)
ellipse (elliptic-ring)
arcband (arcband-ring)
rect (rect-ring)
Any NVG areas may contain an <exclude> element listing individual exclusion areas as listed
above. Any exclusion area can be used in any NVG area.
Exclusion areas are defined only by their geospatial properties (eg. center, dimensions, points)
with no additional descriptive properties.
When exclusions areas are defined in full or partially outside of the containing area, it is
considered as an exclusion with no reversal of the shape area (i.e. the exclusion is clipped by
the bounded shape).
Example:
40
<nvg:circle cx="0" cy="0" uri="urn:guid:7579cc16-4b39-4b1e-910a-a51c08f8d687" r="10000">
<nvg:exclude>
<nvg:circular-ring cy="1" cx="1" r="10" />
<nvg:linear-ring points="0.5,0 1,2 2,3" />
</nvg:exclude>
</nvg:circle>
4.5.1.17 Symbology
The symbol attribute is used to associate symbology with a given shape. Its format is the
name of a standard followed by a colon and the text representation of the element in that
standard. That standard can be used to derive the graphical representation of the element.
If the standard specifies how an object should be rendered, the symbol attribute has
precedence over the style attribute.
app6a:code - The APP-6A contains a set of symbols for points that are defined by a 15
character code and modifiers. This code completely defines the graphical
representation of the warfighter graphic.
o Note: APP-6A has been superseded by APP-6B but is still widely used.
app6b:code - The APP-6B contains a set of symbols for points that are defined by a 15
character code and modifiers. This code completely defines the graphical
representation of the warfighter graphic.
app6c:code - The APP-6C contains a set of symbols for points that are defined by a
20-30 character code and modifiers. This code completely defines the graphical
representation of the warfighter graphic.
2525b:code - The MIL-STD-2525B contains a set of symbols for points that are
defined by a 15 character code and modifiers. This code completely defines the
graphical representation of the warfighter graphic.
2525c:code - The MIL-STD-2525C contains a set of symbols for points that are
defined by a 15 character code and modifiers. This code completely defines the
graphical representation of the warfighter graphic.
icon:url - Where url references an image file to be used as the desired symbol. The
center of the image is placed at the location as specified by x and y. The offsetting of
the image can be achieved by adding white space to the image to achieve the required
offset. The URL can be relative or fully specified. Only GIF and PNG images are
supported.
o Hint: Icon can be used to specify an image when the above military symbology
(APP-6A, APP-6B, APP-6C, MIL-STD-2525B or MIL-STD-2525C) are not
satisfactory.
41
<user_defined_symbol_set>:<user_defined_symbol> - Allow for domain specific
extensions to support additional symbology.
Being domain specific, providers cannot assume consumers/renderers to
understand such extensions and should expect the basic geometry to be used
for rendering. When more widely accepted, these extensions may need to be
formalized in the NVG specifications as a supported standard (that renders
should support).
Example:
symbol="2525b:SFSPCLCV-------"
symbol="app6a:SUA*WD---------"
symbol="icon:http://localhost/images/sym.gif"
symbol="icon:./sym.png"
symbol="simple:small_squares" // Domain specific example
The allowed binding between a specific symbology standard and NVG geometries are defined
as annexes to this document.
TTB_ANNEX_A_APPENDIX_1_APP6A_Binding.doc
TTB_ANNEX_A_APPENDIX_2_APP6B_Binding.doc
TTB_ANNEX_A_APPENDIX_3_MIL_STD_2525B_Binding.doc
TTB_ANNEX_A_APPENDIX_4_MIL_STD_2525C_Binding.doc
The modifiers attribute is used to associate additional information with the symbol attribute.
As such, the modifiers attribute will not exist without a corresponding symbol attribute.
With respect to APP-6A, APP-6B, APP-6C, MIL-STD-2525B and MIL-STD-2525C the
modifiers are used to encode the Symbol Modifier Fields as specified in the symbology
documentation.
The modifiers attribute encodes a list of key-value pairs. The key-value pair is delimited
with the ':' character. List items are delimited with the ';' character.
Example:
<nvg:point
uri="urn:guid:b2978f75-f379-4367-8f06-14a0f6041b08"
label="Point with modifiers"
x="5.30"
y="50.71"
symbol="app6a:SUA*MFCH-------"
modifiers="Z:32;X:1000"
42
/>
The modifiers in the above example are extracted from the APP-6A specification and express
the Altitude (X) and Speed (Z) of the unit represented by the point.
Attributes
version <string> The version of the NATO Vector Graphics (NVG) Data Format.
id <string> Unique Identifier for the NVG section.
{any} (optional) any named attribute. See Usage of any content
All the NVG Data Format examples rely on the following document root:
...(data)...
</nvg:nvg>
4.5.3 Elements
4.5.3.1 <text>
This element defines text to be rendered at the given geo-spatial coordinates. Line breaks
included in text element content should be carried through to the rendered form. In other
words, a text element including one or more line breaks (separating text) will appear as
multiple lines of text in the rendered form.
Sub-elements
<content> (mandatory) element to store the text object value. Line breaks included in
text element content should be carried through to the rendered form. In other
words, a text element including one or more line breaks (separating text) will
appear as multiple lines of text in the rendered form. Using CDATA content
is possible to express more complex text information.
metadata (optional) metadata. See Metadata.
ExtendedData (optional) extended data. See Extended Data.
textInfo (optional) additional human-readable text. See Identification attributes
TimeStamp (optional) DateTime (with timezone) representing any change of state of the
element.
TimeSpan (optional) Period to show/hide the element. See Time dimension.
extension (optional) contains {any content} of XML fragments. See Usage of any
content.
43
Attributes
x The x-axis (longitude) coordinate of the text.
y The y-axis (latitude) coordinate of the text
rotation (optional) rotation of the text around the reference point (x,y). The default
value (0.0 degrees) indicates regular horizontal reading. See Angles. The intent
is that the text progresses horizontally across the screen and reads left to right.
uri Unique Identifier. See Identification attributes
href (optional) URL to a human-readable content. See Descriptive attributes.
label (optional) Short Description. See Descriptive attributes.
style (optional) Rending description.
{any} (optional) any named attribute. See Usage of any content.
Examples:
4.5.3.2 <point>
Sub-elements
metadata (optional) metadata. See Metadata.
ExtendedData (optional) extended data. See Extended Data.
textInfo (optional) additional human-readable text. See Identification attributes
TimeStamp (optional) DateTime (with timezone) representing any change of state of the
element.
TimeSpan (optional) Period to show/hide the element. See Time dimension.
extension (optional) contains {any content} of XML fragments. See Usage of any
content.
Attributes
x The x-axis (longitude) coordinate of the point.
y The y-axis (latitude) coordinate of the point.
44
z (optional) altitude of the point. See Distance Units.
rotation (optional) rotation of the symbol. See Angles.
course (optional) direction the object is moving in, expressed as an angle. The default
value is 0.0 indicating North. See Angles.
speed (optional) the speed the object is moving with, see Speed.
symbol (optional) indication of what this element represents, see Symbology.
modifiers (optional) modifiers to the specified symbology, see Symbology.
style (optional) Rending description.
uri Unique Identifier. See Identification attributes.
href (optional) URL to a human-readable content. See Descriptive attributes.
label (optional) Short Description. See Descriptive attributes.
{any} (optional) any named attribute. See Usage of any content.
Example:
4.5.3.3 <multipoint>
45
The <multipoint/> tag allows for the encoding of these symbols.
Sub-elements
metadata (optional) metadata. See Metadata.
ExtendedData (optional) extended data. See Extended Data.
textInfo (optional) additional human-readable text. See Identification attributes
TimeStamp (optional) DateTime (with timezone) representing any change of state of the
element.
TimeSpan (optional) Period to show/hide the element. See Time dimension.
extension (optional) contains {any content} of XML fragments. See Usage of any
content.
Attributes
points an array of points which correspond to p1...pn of the multipoint symbol
definition.
symbol (optional) indication of what this element represents, see Symbology.
modifiers (optional) modifiers to the specified symbology, see Symbology
style (optional) Rending description
uri Unique Identifier. See Identification attributes
href (optional) URL to a human-readable content. See Descriptive attributes.
label (optional) Short Description. See Descriptive attributes
{any} (optional) any named attribute. See Usage of any content.
Example:
46
4.5.3.4 <circle>
Sub-elements
metadata (optional) metadata. See Metadata.
ExtendedData (optional) extended data. See Extended Data.
textInfo (optional) additional human-readable text. See Identification attributes
TimeStamp (optional) DateTime (with timezone) representing any change of state of the
element.
TimeSpan (optional) Period to show/hide the element. See Time dimension.
extension (optional) contains {any content} of XML fragments. See Usage of any
content.
exclude (optional) list of exclusion area(s). See Exclusion areas.
Attributes
cx The x-axis (longitude) coordinate of the circle center point.
cy The y-axis (latitude) coordinate of the circle center point
r The radius of the circle in meters. See Distance Units.
minaltitude (optional) minimum altitude for the area. See Distances.
maxaltitude (optional) maximum altitude for the area. See Distances.
symbol (optional) indication of what this element represents, see Symbology.
modifiers (optional) modifiers to the specified symbology, see Symbology
style (optional) Rending description
uri Unique Identifier. See Identification attributes
href (optional) URL to a human-readable content. See Descriptive attributes.
label (optional) Short Description. See Descriptive attributes
{any} (optional) any named attribute. See Usage of any content.
Example:
4.5.3.5 <ellipse>
Sub-elements
metadata (optional) metadata. See Metadata.
ExtendedData (optional) extended data. See Extended Data.
47
textInfo (optional) additional human-readable text. See Identification attributes
TimeStamp (optional) DateTime (with timezone) representing any change of state of the
element.
TimeSpan (optional) Period to show/hide the element. See Time dimension.
extension (optional) contains {any content} of XML fragments. See Usage of any
content.
exclude (optional) list of exclusion area(s). See Exclusion areas.
Attributes
cx The x-axis (longitude) coordinate of the ellipse center point
cy The y-axis (latitude) coordinate of the ellipse center point
rx the radius of the ellipse along the X axis (East/West) prior to rotation, in
meters. This number should be positive. See Distance Units.
ry the radius of the ellipse along the Y axis (North/South) prior to rotation, in
meters. This number should be positive. See Distance Units.
rotation (optional) rotation in the counter-clockwise direction around the center point
(cx, cy). The default value is 0.0 degrees rotation. See Angles.
minaltitude (optional) minimum altitude for the area. See Distances.
maxaltitude (optional) maximum altitude for the area. See Distances.
symbol (optional) indication of what this element represents, see Symbology.
modifiers (optional) modifiers to the specified symbology, see Symbology
style (optional) Rending description
uri Unique Identifier. See Identification attributes
href (optional) URL to a human-readable content. See Descriptive attributes.
label (optional) Short Description. See Descriptive attributes
{any} (optional) any named attribute. See Usage of any content.
Example:
4.5.3.6 <rect>
Sub-elements
metadata (optional) metadata. See Metadata.
ExtendedData (optional) extended data. See Extended Data.
textInfo (optional) additional human-readable text. See Identification attributes
TimeStamp (optional) DateTime (with timezone) representing any change of state of the
element.
48
TimeSpan (optional) Period to show/hide the element. See Time dimension.
extension (optional) contains {any content} of XML fragments. See Usage of any
content.
exclude (optional) list of exclusion area(s). See Exclusion areas.
Attributes
cx The longitude of the center point of the rectangle.
cy The latitude of the center point of the rectangle.
rx The dimension from center point to edge (half distance) of the rectangle along
the X axis (East/West) prior to rotation, in meters. This number should be
positive. See Distance Units.
ry The dimension from center point to edge (half distance) of the rectangle along
the Y axis (North/South) prior to rotation, in meters. This number should be
positive. See Distance Units.
rotation (optional) rotation in the counter-clockwise direction around the center point
(cx, cy). The default value is 0.0 degrees rotation. See Angles.
minaltitude (optional) minimum altitude for the area. See Distances.
maxaltitude (optional) maximum altitude for the area. See Distances.
symbol (optional) indication of what this element represents, see Symbology.
modifiers (optional) modifiers to the specified symbology, see Symbology
style (optional) Rending description
uri Unique Identifier. See Identification attributes
href (optional) URL to a human-readable content. See Descriptive attributes.
label (optional) Short Description. See Descriptive attributes
{any} (optional) any named attribute. See Usage of any content.
Example:
4.5.3.7 <polyline>
Sub-elements
metadata (optional) metadata. See Metadata.
ExtendedData (optional) extended data. See Extended Data.
textInfo (optional) additional human-readable text. See Identification attributes
TimeStamp (optional) DateTime (with timezone) representing any change of state of the
element.
49
TimeSpan (optional) Period to show/hide the element. See Time dimension.
extension (optional) contains {any content} of XML fragments. See Usage of any
content.
Attributes
points The points that make up the polyline.
leg-type (optional) line interpolation methodology, see Lines.
symbol (optional) indication of what this element represents, see Symbology.
modifiers (optional) modifiers to the specified symbology, see Symbology
style (optional) Rending description
uri Unique Identifier. See Identification attributes
href (optional) URL to a human-readable content. See Descriptive attributes.
label (optional) Short Description. See Descriptive attributes
{any} (optional) any named attribute. See Usage of any content.
Example:
4.5.3.8 <arrow>
Sub-elements
metadata (optional) metadata. See Metadata.
ExtendedData (optional) extended data. See Extended Data.
textInfo (optional) additional human-readable text. See Identification attributes
TimeStamp (optional) DateTime (with timezone) representing any change of state of the
element.
TimeSpan (optional) Period to show/hide the element. See Time dimension.
extension (optional) contains {any content} of XML fragments. See Usage of any
content.
Attributes
width Width of the arrow body. See Distance Units. Width must be greater than zero.
points The points that make up the arrow. The order of points defines the direction
proceeding from tail to point.
leg-type (optional) line interpolation methodology, see Lines.
50
symbol (optional) indication of what this element represents, see Symbology.
modifiers (optional) modifiers to the specified symbology, see Symbology
style (optional) Rending description
uri Unique Identifier. See Identification attributes
href (optional) URL to a human-readable content. See Descriptive attributes.
label (optional) Short Description. See Descriptive attributes
{any} (optional) any named attribute. See Usage of any content.
Rendering hints:
Example:
4.5.3.9 <corridor>
Sub-elements
metadata (optional) metadata. See Metadata.
ExtendedData (optional) extended data. See Extended Data.
textInfo (optional) additional human-readable text. See Identification attributes
TimeStamp (optional) DateTime (with timezone) representing any change of state of the
element.
TimeSpan (optional) Period to show/hide the element. See Time dimension.
51
extension (optional) contains {any content} of XML fragments. See Usage of any
content.
Attributes
width Width of the corridor. See Distance Units
points The waypoints of the corridor.
leg-type (optional) line interpolation methodology, see Lines.
minaltitude (optional) minimal altitude for a corridor.
maxaltitude (optional) maximal altitude for a corridor.
symbol (optional) indication of what this element represents, see Symbology.
modifiers (optional) modifiers to the specified symbology, see Symbology
style (optional) Rending description
uri Unique Identifier. See Identification attributes
href (optional) URL to a human-readable content. See Descriptive attributes.
label (optional) Short Description. See Descriptive attributes
{any} (optional) any named attribute. See Usage of any content.
Floor and ceiling of the corridor should be handled in the symbol modifiers as NVG primarily
supports rendering in two dimensions.
Example:
4.5.3.10 <orbit>
This element defines an orbit path to be rendered at the given geo-spatial coordinates.
52
Sub-elements
metadata (optional) metadata. See Metadata.
ExtendedData (optional) extended data. See Extended Data.
textInfo (optional) additional human-readable text. See Identification attributes
TimeStamp (optional) DateTime (with timezone) representing any change of state of the
element.
TimeSpan (optional) Period to show/hide the element. See Time dimension.
extension (optional) contains {any content} of XML fragments. See Usage of any
content.
Attributes
width Width of the orbit. See Distance Units
points List of 2 points of the supporting corridor defining the sides of the orbit
encoded as described in <polyline>. The orbit is centered on the line across
these 2 points.
minaltitude (optional) minimum altitude for the orbit. See Distances.
maxaltitude (optional) maximum altitude for the orbit. See Distances.
symbol (optional) indication of what this element represents, see Symbology.
modifiers (optional) modifiers to the specified symbology, see Symbology.
style (optional) Rending description.
uri Unique Identifier. See Identification attributes.
href (optional) URL to a human-readable content. See Descriptive attributes.
label (optional) Short Description. See Descriptive attributes.
{any} (optional) any named attribute. See Usage of any content.
Example:
4.5.3.11 <polygon>
Sub-elements
metadata (optional) metadata. See Metadata.
ExtendedData (optional) extended data. See Extended Data.
textInfo (optional) additional human-readable text. See Identification attributes
TimeStamp (optional) DateTime (with timezone) representing any change of state of the
element.
TimeSpan (optional) Period to show/hide the element. See Time dimension.
extension (optional) contains {any content} of XML fragments. See Usage of any
content.
exclude (optional) list of exclusion area(s). See Exclusion areas.
53
Attributes
points The points that make up the polygon
leg-type (optional) line interpolation methodology, see Lines.
minaltitude (optional) minimal altitude for the area.
maxaltitude (optional) maximal altitude for the area.
symbol (optional) indication of what this element represents, see Symbology.
modifiers (optional) modifiers to the specified symbology, see Symbology
style (optional) Rending description
uri Unique Identifier. See Identification attributes
href (optional) URL to a human-readable content. See Descriptive attributes.
label (optional) Short Description. See Descriptive attributes
{any} (optional) any named attribute. See Usage of any content.
Example:
4.5.3.12 <g>
The <g> element is a container used to group similar or related content. As such the <g>
element can contain shapes, content-item (<content-item>) and/or other grouping (<g> and
<composite>) elements. The <g> element can be nested to an arbitrary depth. The <g>
element will contain zero or more sub-elements.
Sub-elements
metadata (optional) metadata. See Metadata.
ExtendedData (optional) extended data. See Extended Data.
textInfo (optional) additional human-readable text. See Identification attributes
TimeStamp (optional) DateTime (with timezone) representing any change of state of
the element.
TimeSpan (optional) Period to show/hide the element. See Time dimension.
extension (optional) contains {any content} of XML fragments. See Usage of any
content.
<text>
<point>
<circle>
<ellipse>
<polyline>
<corridor>
<polygon>
<arc>
54
<arcband>
<multipoint>
<rect>
<orbit>
<arrow>
<content-item>
<composite>
<g>
Attributes
uri Unique Identifier. See Identification attributes
href (optional) URL to a human-readable content. See Descriptive attributes.
label (optional) Short Description. See Descriptive attributes
{any} (optional) any named attribute. See Usage of any content.
Example:
4.5.3.13 <composite>
The <composite> element is a container used to create a single graphic from multiple drawing
primitives. The <composite> element can contain all drawing primitives (i.e. <point>,
<polyline>, etc.) and content-item (<content-item>) but not the group (<g>) elements. The
<composite> element cannot be nested. The <composite> element will contain two or more
sub-elements.
From the rendering perspective the <composite> element cannot be decomposed. Either all
the sub-elements are rendered or they are not.
Sub-elements
metadata (optional) metadata. See Metadata.
ExtendedData (optional) extended data. See Extended Data.
textInfo (optional) additional human-readable text. See Identification attributes
TimeStamp (optional) DateTime (with timezone) representing any change of state of
the element.
TimeSpan (optional) Period to show/hide the element. See Time dimension.
extension (optional) contains {any content} of XML fragments. See Usage of any
content.
<text>
55
<point>
<circle>
<ellipse>
<polyline>
<corridor>
<polygon>
<arc>
<arcband>
<multipoint>
<rect>
<orbit>
<arrow>
<content-item>
Attributes
symbol (optional) indication of what this element represents, see Symbology.
modifiers (optional) modifiers to the specified symbology, see Symbology.
style (optional) Rending description.
uri Unique Identifier. See Identification attributes
href (optional) URL to a human-readable content. See Descriptive attributes.
label (optional) Short Description. See Descriptive attributes
{any} (optional) any named attribute. See Usage of any content.
Example:
4.5.3.14 <arc>
The <arc> element represents a segment of the outline of an ellipse. It is defined by the ellipse
it is part of and the start and end angle of the arc on that ellipse. The <arc> is defined in a
clockwise direction from the startangle to the endangle. See Angles.
When @startangle = @endangle modulo 360, the <arc> is closed and must be considered as a
continuous ellipse.
Sub-elements
metadata (optional) metadata. See Metadata.
ExtendedData (optional) extended data. See Extended Data.
textInfo (optional) additional human-readable text. See Identification attributes
TimeStamp (optional) DateTime (with timezone) representing any change of state of the
element.
56
TimeSpan (optional) Period to show/hide the element. See Time dimension.
extension (optional) contains {any content} of XML fragments. See Usage of any
content.
Attributes
cx The x-axis (longitude) coordinate of the ellipse center point
cy The y-axis (latitude) coordinate of the ellipse center point
rx The radius of the ellipse along the X axis (East/West) prior to rotation, in
meters. This number should be positive. See Distance Units.
ry The radius of the ellipse along the Y axis (North/South) prior to rotation, in
meters. This number should be positive. See Distance Units.
startangle The start angle of the arc along an ellipse prior to rotation. See Angles.
endangle the end angle of the arc along an ellipse prior to rotation. See Angles.
rotation (optional) rotation in the counter-clockwise direction around the center point
(cx, cy). The default value is 0.0 degrees rotation. See Angles.
symbol (optional) indication of what this element represents, see Symbology.
modifiers (optional) modifiers to the specified symbology, see Symbology.
style (optional) Rending description.
uri Unique Identifier. See Identification attributes.
href (optional) URL to a human-readable content. See Descriptive attributes.
label (optional) Short Description. See Descriptive attributes.
{any} (optional) any named attribute. See Usage of any content.
Note: an ellipse is defined by the length of its two axes. If no rotation is applied, the
first/major axis is parallel to the equator, while the second/minor axis is parallel to the
Greenwich meridian. In Cartesian space these are the directions of the x and y axis, which is
why the attributes are named rx and ry.
Example:
4.5.3.15 <arcband>
57
The <arcband> element represents an area between two concentric circles and two radials of
those circles. The <arcband> is defined by the two radii of the circles and the two angles of
the radials moving from @startangle to @endangle in a clockwise direction. See Angles. An
<arcband> can be a representation of radar coverage where the radar covers only a certain
range and certain angles.
When @startangle = @endangle modulo 360, the <arcband> is closed and must be considered
as a continuous ring area.
Sub-elements
metadata (optional) metadata. See Metadata.
ExtendedData (optional) extended data. See Extended Data.
textInfo (optional) additional human-readable text. See Identification attributes
TimeStamp (optional) DateTime (with timezone) representing any change of state of the
element.
TimeSpan (optional) Period to show/hide the element. See Time dimension.
extension (optional) contains {any content} of XML fragments. See Usage of any
content.
exclude (optional) list of exclusion area(s). See Exclusion areas.
Attributes
cx The x-axis (longitude) coordinate of the circle center point.
cy The y-axis (latitude) coordinate of the circle center point
minr The radius of the smaller circle, in meters. This number should be positive. See
Distance Units
maxr The radius of the larger circle, in meters. This number should be positive. See
Distance Units
startangle The angle of the first radial. See Angles.
endangle The angle of the second radial. See Angles.
minaltitude (optional) minimal altitude for the area.
maxaltitude (optional) maximal altitude for the area.
symbol (optional) indication of what this element represents, see Symbology.
modifiers (optional) modifiers to the specified symbology, see Symbology
style (optional) Rending description
58
uri Unique Identifier. See Identification attributes
href (optional) URL to a human-readable content. See Descriptive attributes.
label (optional) Short Description. See Descriptive attributes
{any} (optional) any named attribute. See Usage of any content.
Example:
4.5.3.16 <content-item>
The <content-item> element is used to represent content that cannot be otherwise defined in
the NATO Vector Graphics (NVG) Data Format. It is anticipated that this element will be
used to convey additional information that is not defined by its geometry.
Sub-elements
metadata (optional) metadata. See Metadata.
ExtendedData (optional) extended data. See Extended Data.
textInfo (optional) additional human-readable text. See Identification attributes
TimeStamp (optional) DateTime (with timezone) representing any change of state of the
element.
TimeSpan (optional) Period to show/hide the element. See Time dimension.
extension (optional) contains {any content} of XML fragments. See Usage of any
content.
Attributes
symbol (optional) indication of what this element represents, see Symbology.
modifiers (optional) modifiers to the specified symbology, see Symbology.
style (optional) Rending description.
uri Unique Identifier. See Identification attributes
label (optional) Short Description. See Descriptive attributes
href (optional) URL to a human-readable content. See Descriptive attributes.
{any} (optional) any named attribute. See Usage of any content.
Example:
59
<nvg:metadata>
<dc:title>HMS Invincible</dc:title>
<dc:publisher>JFC</dc:publisher>
<dc:identifier xsi:type="dcterms:URI">http://www.royal-
navy.mod.uk/server/show/nav.1278</dc:identifier>
<dcterms:modified xsi:type="dcterms:W3CDTF">2007-05-01</dcterms:modified>
</nvg:metadata>
</nvg:content-item>
4.5.3.17 <metadata>
The inclusion of metadata into the NATO Vector Graphics (NVG) Data Format is intended
to allow information providers to include amplifying information on a per-element basis. The
ultimate goal is to provide decision makers with more information about the displayed
elements so they can make informed decisions. Excluding this information may result in
decisions based upon ambiguities or misinformation.
The specification of the metadata content is no longer included as part of the NATO Vector
Graphics (NVG) Data Format. This allows for the NATO Vector Graphics (NVG) Data
Format to utilize evolving metadata specifications without requiring changes to the base
schemas. The following metadata specifications have been utilized with NATO Vector
Graphics (NVG) Data Format previously and continue to remain valid:
Guidance on the use of Metadata Element Descriptions for use in the NATO
Discovery Metadata Specification (NDMS) (AC/322-D(2006)0007)
Dublin Core Initiative
In NVG 2.0 the object metadata may be encoded using the <ExtendedData> and/or the
<metadata> structures. The provider must ensure the metadata information (keys) are not be
duplicated between the <metadata> element and the information in the <ExtendedData>
element.
Example
<nvg:nvg xsi:schemaLocation="https://tide.act.nato.int/schemas/2012/10/nvg
../nvg.data.2.0.xsd" version="2.0.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:nvg="https://tide.act.nato.int/schemas/2012/10/nvg" xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:dcterms="http://purl.org/dc/terms/" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<nvg:Schema schemaId="metadata">
<nvg:SimpleField id="dcterms:security.policy" type="string" label="Policy" />
<nvg:SimpleField id="dcterms:security.classification" type="string" label="Classification" />
<nvg:SimpleField id="dcterms:security.category" type="string" label="Category" />
</nvg:Schema>
<nvg:point uri="urn:md5:92988a38055add14bbf3d614ab1a15d2" label="Sample point" x="0" y="0">
<nvg:metadata>
<dc:title>HMS Invincible</dc:title>
<dc:publisher>JFC Naples</dc:publisher>
<dc:identifier xsi:type="dcterms:URI">http://www.royal-
navy.mod.uk/server/show/nav.1278</dc:identifier>
<dcterms:modified xsi:type="dcterms:W3CDTF">2007-05-10</dcterms:modified>
</nvg:metadata>
<nvg:ExtendedData schemaRef="#metadata">
<nvg:SimpleData key="dcterms:security.policy">NATO</nvg:SimpleData>
<nvg:SimpleData key="dcterms:security.classification">UNCLASSIFIED</nvg:SimpleData>
<nvg:SimpleData key="dcterms:security.category">RELEASABLE FOR INTERNET
60
TRANSMISSION</nvg:SimpleData>
</nvg:ExtendedData>
<nvg:textInfo>Example point with metadata</nvg:textInfo>
</nvg:point>
</nvg:nvg>
4.5.3.17.1.1 Recommendation 1
Implementers should base their XML applications on XML Schemas rather than XML DTDs.
4.5.3.17.1.2 Recommendation 2
Implementers should use XML Namespaces to uniquely identify DC elements, element
refinements and coding schemes.
4.5.3.17.1.3 Recommendation 3
Implementers should encode properties as XML elements and values as the content to those
elements.
rather than:
4.5.3.17.1.4 Recommendation 4
Multiple property values should be encoded by repeating the XML element for that property.
Example:
<dc:title>First title</dc:title>
<dc:title>Second Title</dc:title>
4.5.3.17.1.5 Recommendation 5
Element refinements should be treated in the same way as other properties.
Example:
<dcterms:available>2007-05-02</dcterms:available>
61
4.5.3.17.1.6 Recommendation 6
Encoding schemes should be implemented using the 'xsi:type' attribute of the XML element
for the property.
Example:
<dc:identifier xsi:type="dcterms:URI">http://tide.act.nato.int/</dc:identifier>
4.5.3.17.1.7 Recommendation 7
Element refinements and encoding schemes should use the names specified in the DCMI
Metadata Terms recommendations (listed as the 'term name', not as the 'Label').
4.5.3.17.1.8 Recommendation 8
Where the language of the value is indicated, it should be encoded using the 'xml:lang'
attribute.
Example:
<dc:subject xml:lang="en">military</dc:subject>
4.5.3.17.1.9 Recommendation 9
All metadata elements should be grouped within a tag called <metadata>.
Example:
4.5.3.18 <ExtendedData>
Extended data is a list of information associated with NVG objects in order to have an easy
way:
for the producer to sum-up essential data associated with NVG objects
for the consumer to display data such as listing it inside a table and performing
additional filtering/sorting
62
a label (or Display Name)
a description
a type
a unit of measure
a value
As a typical example, a Provider is able to define several levels of keys in the response to be
returned by the producer as a capability:
level 0: no key/value
level 1: basic (most important) key/values (for example: around 5)
level 2: medium (relevant to many) key/values (for example: around 15)
level 3: detailed (extended information) key/values (above 20)
Definitions
The implementation adds two main elements in the NVG Data Format (inspired from KML
but with a lot of variation):
Key definitions (aka <SimpleField>) are mandatory (when ExtendedData is used) and
are designed to have a centrally-defined location (aka <Schema>) for keys inside a
NVG document and prevent from repeating the key definition value inside each data
item.
Several <Schema> may be used to group related keys into well-defined schemas.
Sub-elements
<SimpleData>
<Section>
Attributes
schemaRef A mandatory local (#) reference to a <Schema> element contained
within the same document.
Example:
<nvg:nvg version="2.0.2">
<nvg:Schema schemaId="security">
<nvg:SimpleField id="dcterms:security.policy" type="string" label="Policy" />
<nvg:SimpleField id="dcterms:security.classification" type="string" label="Classification" />
<nvg:SimpleField id="dcterms:security.category" type="string" label="Category" />
</nvg:Schema>
<nvg:Schema schemaId="cargo">
63
<nvg:SimpleField id="cargo.loadclass" type="string" label="Load Class" />
<nvg:SimpleField id="cargo.quantity" type="string" label="Volume" unit="g" />
<nvg:SimpleField id="cargo.friendlyname" type="string" label="Name" />
</nvg:Schema>
<nvg:Schema schemaId="ship">
<nvg:SimpleField id="IMO" type="string" label="IMO" />
<nvg:SimpleField id="PortOfOrigin" type="string" label="Port of origin" />
<nvg:SimpleField id="PortOfDestination" type="string" label="Port of destination" />
</nvg:Schema>
<nvg:point uri="urn:md5:92988a38055add14bbf3d614ab1a15d2" label="Sample point" x="0" y="0">
<nvg:ExtendedData schemaRef="#security">
<nvg:SimpleData key="dcterms:security.policy">NATO</nvg:SimpleData>
<nvg:SimpleData key="dcterms:security.classification">UNCLASSIFIED</nvg:SimpleData>
<nvg:SimpleData key="dcterms:security.category">RELEASABLE FOR INTERNET
TRANSMISSION</nvg:SimpleData>
<nvg:Section label="Ship information" schemaRef="#ship">
<nvg:SimpleData key="IMO">IMO-123234553</nvg:SimpleData>
<nvg:SimpleData key="PortOfOrigin">Dakar</nvg:SimpleData>
<nvg:SimpleData key="PortOfDestination">Berlin</nvg:SimpleData>
</nvg:Section>
<nvg:Section label="Cargo (primary)" schemaRef="#cargo">
<nvg:SimpleData key="cargo.loadclass">III.B</nvg:SimpleData>
<nvg:SimpleData key="cargo.quantity">12000</nvg:SimpleData>
<nvg:SimpleData key="cargo.friendlyname">Potatoes</nvg:SimpleData>
</nvg:Section>
<nvg:Section label="Cargo (secondary)" schemaRef="#cargo">
<nvg:SimpleData key="cargo.loadclass">IV.C</nvg:SimpleData>
<nvg:SimpleData key="cargo.quantity" unit="car">67</nvg:SimpleData>
<nvg:SimpleData key="cargo.friendlyname">Vehicules</nvg:SimpleData>
</nvg:Section>
</nvg:ExtendedData>
<nvg:textInfo>Example point with extended data</nvg:textInfo>
</nvg:point>
</nvg:nvg>
4.5.3.19 <SimpleData>
Attributes
key mandatory attribute, associated with the value of the <SimpleData>,
references the id attribute from a <SimpleField> definition.
unit (optional) unit of measure for the value if different from the one
defined by corresponding SimpleField. See Unit of Measurement.
(value) value of the <SimpleData>
The (value) of <SimpleData> is encoded between the start and end tags.
4.5.3.20 <Section>
Sub-elements
<SimpleData>
64
Attributes
schemaRef a mandatory local (#) reference to a <Schema> element contained
within the same document.
4.5.3.21 <Schema>
Sub-elements
<SimpleField>
Attributes
schemaId mandatory schema identifier
4.5.3.22 <SimpleField>
Attributes
id mandatory attribute defined uniquely to be used as a reference by
every data element
type mandatory attribute that defines the XSD type of the value. Can be
any xsd:anySimpleType values named without namespace prefix (like
"string", "dateTime")
description optional attribute used to describe the meaning of the key.
label optional attribute used by a consumer to display user-friendly header
for the value. If not present, it is an implementation issue to decide
what to display (usually id can be used)
unit optional attribute to define the unit of measure for the value. See Unit
of Measurement.
65
5 Protocol Example
This section provides an example of the information flow associated with the NATO Vector
Graphics (NVG) Protocol.
NVG service providers are registered according to the TIDE Service Discovery specification
under the _tinf-nvg protocol name. The following image depicts an NVG service provider
discovered via mDNS.
The NVG Source service provider has registered with the following parameters:
IP Address
66
Port
8080 - the port on which the service provider is listening for new connections
service_wsdl
service_name
version
2.0.0 - the version of the NATO Vector Graphics (NVG) Protocol supported
Using the above information we can construct the following URL to the NVG service provider:
http://192.168.1.6:8080/NvgSource/NVGService?WSDL
Using the URL defined from the registry entry we can retrieve the service description using an
HTTP GET. The following is the result of such an operation:
Using the retrieved WSDL, the service metadata and knowledge of the NATO Vector Graphics
(NVG) Protocol you can determine the following:
http://192.168.1.6:8080/NvgSource/NVGService
67
Operation
GetCapabilities
With this information, we execute the following SOAP request to retrieve the capabilities
document:
5.1.3.1 Request
POST http://192.168.1.6:8080/NvgSource/NVGService HTTP/1.1
Content-Type: text/xml;charset=UTF-8
SOAPAction: "https://tide.act.nato.int/wsdl/2012/nvg/GetCapabilities"
User-Agent: Jakarta Commons-HttpClient/3.1
Host: localhost:8080
Connection: Keep-Alive
Content-Length: 240
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:nvg="https://tide.act.nato.int/wsdl/2012/nvg">
<soapenv:Header />
<soapenv:Body>
<nvg:GetCapabilities />
</soapenv:Body>
</soapenv:Envelope>
5.1.3.2 Response
The NVG provider will respond with the capabilities document. This document describes the
server-side transforms that can be applied to the resulting NVG data. The capabilities document
also contains information to assist in the presentation of selection criteria to the user.
The following capabilities document contains a multiple selection list ('primitives') to assist the
user in defining the required subset of information available from the server.
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Transfer-Encoding: chunked
Server: Jetty(6.1.x)
3BE
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:nvg="https://tide.act.nato.int/wsdl/2012/nvg"
xmlns:nvg1="https://tide.act.nato.int/schemas/2012/10/nvg">
<soapenv:Header />
<soapenv:Body>
<nvg:GetCapabilitiesResponse>
<nvg1:nvg_capabilities version="2.0.0">
<nvg1:select id="primitives" list="true" multiple="true" name="Primitives"
required="true">
<nvg1:help name="Primitives">
<nvg1:text>Select from the available NVG primitives.</nvg1:text>
</nvg1:help>
<nvg1:values>
<nvg1:value name="Points" id="point" />
<nvg1:value name="Lines" id="line" />
68
<nvg1:value name="Polygons" id="polygon" />
</nvg1:values>
</nvg1:select>
</nvg1:nvg_capabilities>
</nvg:GetCapabilitiesResponse>
</soapenv:Body>
</soapenv:Envelope>
0
The user determined selection criteria are encoded in a filter document and the GetNvg operation
is invoked on the server as follows:
5.1.4.1 Request
POST http://192.168.1.6:8080/NvgSource/NVGService HTTP/1.1
Content-Type: text/xml;charset=UTF-8
SOAPAction: "https://tide.act.nato.int/wsdl/2012/nvg/GetNvg"
User-Agent: Jakarta Commons-HttpClient/3.1
Host: 192.168.1.6:8080
Connection: Keep-Alive
Content-Length: 580
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:nvg="https://tide.act.nato.int/wsdl/2012/nvg"
xmlns:nvg1="https://tide.act.nato.int/schemas/2012/10/nvg">
<soapenv:Header />
<soapenv:Body>
<nvg:GetNvg>
<nvg1:nvg_filter version="2.0.0">
<nvg1:select_response refid="primitives">
<nvg1:selected>point</nvg1:selected>
<nvg1:selected>line</nvg1:selected>
</nvg1:select_response>
</nvg1:nvg_filter>
</nvg:GetNvg>
</soapenv:Body>
</soapenv:Envelope>
5.1.4.2 Response
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Transfer-Encoding: chunked
Server: Jetty(6.1.x)
260
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:nvg="https://tide.act.nato.int/wsdl/2012/nvg"
xmlns:nvg1="https://tide.act.nato.int/schemas/2012/10/nvg">
<soapenv:Header />
<soapenv:Body>
<nvg:GetNvgResponse>
<nvg1:nvg version="2.0.2">
<nvg1:point uri="urn:guid:1f7fea0f-fa3f-4454-a541-3f6f5cf5a19d" y="-1" x="-
1" label="POINT" />
69
<nvg1:polyline uri="urn:guid:3122aaa2-98cf-421a-9a69-2a6ea447701e" points="0,0 0,1
1,0" label="LINE" />
</nvg1:nvg>
</nvg:GetNvgResponse>
</soapenv:Body>
</soapenv:Envelope>
0
70
Appendix 1 - APP-6A Symbology Binding
The APP-6A symbology binding is presented in the following file:
TTB_ANNEX_N_APPENDIX_1_APP6A_Binding
TTB_ANNEX_N_APPENDIX_2_APP6B_Binding
TTB_ANNEX_N_APPENDIX_3_MIL_STD_2525B_Binding
TTB_ANNEX_N_APPENDIX_4_MIL_STD_2525C_Binding
TTB_ANNEX_N_APPENDIX_5_APP6C_Binding
71