0% found this document useful (0 votes)
638 views72 pages

TTB ANNEX N NATO Vector Graphics v2.0

This document describes version 4.0 of the TIDE Transformational Baseline specification, which defines protocols and formats for requesting and streaming NATO vector graphics data between clients and servers. The specification defines an XML-based request/response protocol using SOAP over HTTP, along with a streaming protocol. It also defines XML formats for capabilities descriptions, filters, and the vector graphics data itself. The document provides details on port types, operations, compliance with web service standards, and requirements for various components of the TIDE system.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
638 views72 pages

TTB ANNEX N NATO Vector Graphics v2.0

This document describes version 4.0 of the TIDE Transformational Baseline specification, which defines protocols and formats for requesting and streaming NATO vector graphics data between clients and servers. The specification defines an XML-based request/response protocol using SOAP over HTTP, along with a streaming protocol. It also defines XML formats for capabilities descriptions, filters, and the vector graphics data itself. The document provides details on port types, operations, compliance with web service standards, and requirements for various components of the TIDE system.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 72

TIDE Transformational Baseline

Version 4.0

NATO VECTOR GRAPHICS


PROTOCOL
DOCUMENT CONTROL PAGE

VERSION HISTORY

Version Author Date Reason for Change Superseded Document


1.0 NC3A 2 Nov 08 Initial Version
1.1 NC3A 19 Nov 08 Incorporated comments
1.2 NC3A 21 Nov 08 Added appendix refs,
formatting
1.3 NC3A 28 Nov 08 Release Version
1.3 rev1 NC3A 28 Jan 09 Editorial Changes from ACT 1.3
1.3 rev2 NC3A 4 Dec 09 Corrected examples and 1.3 rev1
annex references
1.4 NC3A 22 Dec 09 TTB V3.0 revisions 1.3 rev 2
1.4rev1 NC3A 04 Mar 10 Removed course and speed 1.4
from <arc> and <ellipse>
2.0 NCIA 06 Feb 13 Updated to reflect TTB v4.0 1.4rev1
and NVG v2.0 revisions
2.0rev1 NCIA 18 Oct 13 Updated samples to utilize 2.0
recommended SOAPAction
URIs. Added attributes
(symbol, modifiers and
style) to <composite> and
<content-item>. These
modifications remain
compatible with v2.0.
Included NVG Streaming
Protocol.
2.0rev2 NCIA 22 May 15 Updated the documentation 2.0rev1
to reflect approved TIDE
Proposals: 140 (symbology
attribute on content-item and
composite), 145 (Incorrect
unit of speed), 148
(optionality of URIs), 149
(text missing style), updated
examples to use version
2.0.2 of the data format.

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.

By capitalizing on NATO Network Enabled Capability (NNEC) developments, reusing


existing capabilities as the foundation and by focusing on human cognitive processes, TIDE
aims to quickly provide a joint Command, Control, Communication, Computer, Intelligence,
Surveillance and Reconnaissance (C4ISR) capability. The TIDE Consortium seeks to break
down current stovepipe barriers and place strong focus on rapid reaction forces and effects-
based planning, decision-making and execution.

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:

TIDE Events http://tide.act.nato.int


Document Maintainer Mr. Mark Postal, mark.postal@ncia.nato.int
Sponsor Mr. Johan Goossens, johan.goossens@act.nato.int

2 References

 NATO Vector Graphics (NVG) Protocol,


(https://tide.act.nato.int/mediawiki/index.php/NVG)
 TIDE Service Discovery,
(https://tide.act.nato.int/mediawiki/index.php/TIDE_Service_Discovery)
 TIDE Guidelines for Encoding Metadata in XML,
(https://tide.act.nato.int/mediawiki/index.php/TIDE_Guidelines_for_Encoding_Metad
ata_in_XML)
 Guidance on the use of Metadata Element Descriptions for use in the NATO
Discovery Metadata Specification (NDMS) (AC/322-D(2006)0007)
 Dublin Core Metadata Initiative, (http://dublincore.org/)
 WS-I Basic Profile 1.1 Specifications, (http://www.ws-i.org/Profiles/BasicProfile-
1.1.html)
 Scalable Vector Graphics (SVG), (http://www.w3.org/TR/SVG/)

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:

 Provide a simple specification for encoding battle-space information to support


geospatial viewing.
 Provide support for military symbology.
 Allow drill down from rendered battle-space information to more detailed content not
available in the NVG Data Format.

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)

The NVG Protocol most recently is maintained by the TIDE Community


(http://tide.act.nato.int). The TIDE Community is a technical coalition of the willing
consisting of NATO and National members. To find the latest experimental version of the
NVG Protocol, see:

 https://tide.act.nato.int/mediawiki/index.php/NVG

To raise an issue or feature request to the community use the following links:

 Change Proposals, (https://tide.act.nato.int/mediawiki/index.php/TIDE_Proposals)

4.1 Request / Response Protocol

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

The GetCapabilities operation is used to retrieve a description of the capabilities supported by


the service instance. Although it is optional, it is typically the first operation to be invoked
with the service. The GetCapabilities operation:

 Defines the GetCapabilities wrapper element for input message.


 Defines the GetCapabilitiesResponse wrapper element for output message.
 Must support a request message using an empty GetCapabilities element.
 Must return a response message using an nvg_capabilities document within a
GetCapabilitiesResponse element.

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:

 Defines the GetNvg wrapper element for input message.


 Defines the GetNvgResponse wrapper element for output message.
 Must support a request message using a nvg_filter within a GetNvg element.
 Must return a response message using a nvg document within a GetNvgResponse
element.

4.1.1.3 Basic Profile 1.1 Compliance


4.1.1.3.1 Binding Rules

The Binding must be according to Basic Profile 1.1 rules. The minimum set of rules ensuring
service interoperability is:

 the SOAP Binding style must be set to document


 the SOAP Binding transport must be set to HTTP
(http://schemas.xmlsoap.org/soap/http)
 Per operation, the SOAPAction can be present but the provider should not rely on it to
route messages, and instead use the message element inside the body
 Per operation, the style must be set to document
 Per operation, the input and output SOAP body must use literal

4.1.1.3.2 Service Rules

7
The Service description should follow Basic Profile 1.1 rules. A minimum set of rules can be
expressed as:

 The service should be defined by at least one Port


 If the Service has more than one Port defined, each Port should have a unique name
 the Port must link to the NVGPortType2012 via a Binding (following the Binding
rules)
 the SOAP Address location must define the Port's endpoint

4.1.1.4 Service Registration

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

Value: Name of the NVG Service inside the WSDL


version Presence: mandatory

Value: The NVG Protocol version supported by the service.

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:

An NVG Producer shall:

Advertise service by implementing Core Service Discovery requirements for


NVG-P01.
service provider.
NVG-P01-
Use _tinf-nvg._tcp service type to advertise service in mDNS.
01
NVG-P01-
Use "2.0.0" as the value for the service version.
02
NVG-P01-
Add NVG specific metadata TXT records fields to service advertisement.
03
The producer shall accept all requests via HTTP using SOAP
NVG-P02.
document/literal encoding.
The producer shall accept a request with no document as the input to the
NVG-P03.
GetCapabilities method.
The producer shall respond to a valid GetCapabilities method invocation with a
NVG-P04.
valid nvg_capabilities document.
The producer shall accept a valid nvg_filter document as the input to the GetNvg
NVG-P05.
method
The producer shall respond to a valid GetNvg method invocation with a valid nvg
NVG-P06.
document.
The producer shall add the data format version attribute to all nvg and
NVG-P07.
nvg_capabilities documents

An NVG Consumer shall:

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

The above requirements share the following attributes:

 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:

Versio Namespace Schema Location


n
2.0.0 https://tide.act.nato.int/schemas/2012/1 https://tide.act.nato.int/schemas/2012/10/nv
0/nvg/streaming g/streaming/nvg.streaming.sub.2.0.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.

4.2.1.1 Producer PortType

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:

 Defines the Subscribe wrapper element for input message.


 Defines the SubscribeResponse wrapper element for output message.
 Must support a request message using a nvg_filter within a Subscribe element.
 Must support a request message using a consumerWSDL within a Subscribe element.
 Must support a request message using a serviceName within a Subscribe element.
 May support a request message using a proposed subscriptionID within a Subscribe
element.
 Must return a response message using a subscriptionID document within a
SubscribeResponse element.

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:

 Defines the Cancel wrapper element for input message.


 Defines the CancelResponse wrapper element for output message.
 Must support a request message using a proposed subscriptionID within a Cancel
element.

4.2.1.3 Basic Profile 1.1 Compliance


4.2.1.3.1 Binding Rules

13
See section: 4.1.1.3.1

4.2.1.3.2 Service Rules

The Service description should follow Basic Profile 1.1 rules. A minimum set of rules can be
expressed as:

 The provider service shall be defined by at least two Ports


o Each Port defined by the service shall have a unique name
o One Port must link to the NVGPortType2012 via a Binding (following the
Binding rules)
o One Port must link to the SubscriptionProducerPortType via a Binding
(following the Binding rules)
o the SOAP Address location must define the Port's endpoint

 The consumer service shall be defined by at least one Port


o Each Port defined by the service shall have a unique name
o One Port must link to the SubscriptionConsumerPortType via a Binding
(following the Binding rules)
o the SOAP Address location must define the Port's endpoint

4.2.1.3.3 Protocol Rules

4.2.1.3.3.1 Message Sequence Rules

Rule 1: handling documentMode

 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.

Rule 2: handling update sequences

 for strict sequencing of updates within the same subscription:


o the Provider shall use previousSync and currentSync attributes as a chained list
between message updates,
o the Consumer shall interpret the presence of previousSync to match the
currentSync attribute of the previous received message. In this respect, the
Consumer is always in a position to control whether it is synchronised with the
Provider updates or whether the synchronisation has been lost.
o if the Consumer detect a mis-synchronisation (broken chained list), it may
implement different recovery scenario.
 to allow for strict sequencing in the chained list, values used in the previousSync and
currentSync attributes shall be unique for a single subscription over time.
 no order relationship should be derived from the previousSync and currentSync
attributes.

14
 If the provider uses the currentSync attribute, the subscription chain shall be handled
as Strict sequencing by the Consumer.

4.2.1.3.3.2 Content Update Rules

The differential updates for NVG content should follow these rules:

Rule 1: URI

 Updatable objects are identified by the @uri attribute


 @uri with a persistent value across messages is mandatory for objects in order to be
updated.

Rule 2: hierarchy insertion

 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 3: default as creation

 Update objects not created before must be treated as creation

Rule 4: deletions

 Object with the remove attribute set must be deleted


 Group with the remove attribute set must be deleted including all its content
 Anchors cannot have remove attribute (only valid for NVG1.4/1.5)

Rule 5: anchors (only valid for NVG1.4/1.5)

 Anchor must be updated with the enclosed object:


o Anchor identity is derived from the enclosed objects
o Update object must be the single content of the anchor (one object per anchor)
 Anchor with a single content are replaced
 Anchor with multiple content:
o the previous object is removed from its anchor
o the current anchor is added as a sibling of the previous anchor

Rule 6: document-level properties

 Properties are updated on last-one-wins if present. If not present, it means 'no-change'.


This applies to:
o id or classification,
o metadata
o ExtendedData

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

Value: name of the NVG Streaming Service inside the WSDL.


version Presence: mandatory

Value: the NVG Streaming Protocol runtime version supported by the


service (runtime = corresponding NVG Protocol version (2.0, etc.))

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.

Figure 2 Sequence Diagram


Event NVG Consumer NVG Provider
Sequen
ce
1 Register service according to the TIDE

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:

A NVG Streaming Producer shall:

NVG-SP-P01. Implement requirements for Request-Response NVG producer.


NVG-SP-P02. Implement generic Tide Subscribe-Publish Streaming Protocols requirements
for the producer.
NVG-SP-P02- Use '_tinf-sp-nvg' service type.
01
NVG-SP-P02- Add nvg_service Service Discovery property to specify the name of the
02 related NVG Request-Response service.
NVG-SP-P02- Accept the Consumer WSDL URL and service name, optionally a
03 subscription identifier and a nvg_filter document as a subscription filter.
NVG-SP-P02- Return a subscriptionID as a response to the subscription request.
04
NVG-SP-P03 Publish updates to the original NVG document to the Consumer using TIDE
XML Diff attributes(see 4.2.3).
NVG-SP-P03- Initial state of the NVG document shall be sent with a complete NVG
01 document.
NVG-SP-P03- Publisher shall set the subscriptionID attribute corresponding to the
02 subscription to discriminate between different ones if required.
NVG-SP-P04 Stop publishing updates corresponding to a subscription upon the reception
of a Cancel message.

A NVG Streaming Consumer shall:

NVG-SP-C01. Discover NVG Streaming Service Producer using '_tinf-sp-nvg' service


type.
NVG-SP-C02. Discover related Request-Response NVG Service using the name retrieved
from the 'nvg_service' Service Discovery property
NVG-SP-C03. Invoke the NVG Capabilities method of the Request-Response service
(Request-Response call)
NVG-SP-C04. Implement generic Tide Subscribe-Publish Streaming Protocols
requirements for the consumer.
NVG-SP-C04-01 Provide a NVG filter (nvg_filter) as a subscription filter, the WSDL URL
and the service name inside to send the updates to, and a optional
subscription identifier.
NVG-SP-C04-02 Be able to handle updates received using a NVG document augmented with
TIDE XML Diff attributes (see 4.2.3).
NVG-SP-C04-03 Be able to correlate received updates to subscriptions based on the
subscriptionID attribute.

18
The light version of the NVG Streaming Protocol is a compact version to enable simpler
Publisher/Subscriber interaction.

For the Producer

 no NVG-SP-P01: No capabilities available


 NVG-SP-P02-03: no nvg_filter present in the request

For the Consumer

 no NVG-SP-C02
 no NVG-SP-C03
 NVG-SP-C04-01: no nvg_filter present in the request

4.2.3 TIDE XML Diff attribute

For completion of this specification, the definition of the TIDE XML Diff attribute is
published below.

Attributes applicable to the NVG document:

Attributes
previousSync <string> any string
currentSync <string> any string
documentMode <string> { partial ; complete } (default: complete)
subscriptionID <string> any string

Attribute applicable to any item within an XML document:

Attributes
remove boolean fixed value to 'true'

XML Schema for attributes

Version Namespace Schema Location


1.0.0 http://tide.act.nato.int/schemas/2010/10 http://tide.act.nato.int/schemas/2010/10/dif
/diff/ f/tide.diff.2010.xsd

Usage example

<?xml version="1.0" encoding="UTF-8"?>


<nvg:nvg version="2.0.2"
xmlns:nvg="http://tide.act.nato.int/schemas/2012/10/nvg"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:diff="http://tide.act.nato.int/schemas/2010/10/diff"
diff:previousSync="1"
diff:currentSync="2"

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>

4.3 Capabilities Format

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 serves the following purposes:

1. Support the development of a request filter.


2. Support the presentation of the server's capabilities to a user for the final
determination of the request filter.

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 Document Element

4.3.1.1 <nvg_capabilities>

The NVG capabilities document element.

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 Common Elements

4.3.2.1 <text>

Descriptive text oriented toward the end-user.

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

<input>, <select>, <table>, <matrix>

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>

Column header description.

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>

Row header description and content type.

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.

Sample input capability

<input type="string" id="areaName" name="Area Name" length="30" required="false">


<help name="Area Name" text="Enter the name, or partial name, of an area to appear on the
map." />
</input>

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.

Sample select capability

<select id="types" name="Types" required="true" multiple="true" list="true">


<help name="Types" text="Select the types that are to appear on the map." />
<values>
<value id="R" name="Real World" />

23
<value id="E" name="Live Training" />
<value id="S" name="Simulated" />
</values>
</select>

4.3.3.3 <table>

The <table> tag is used to group similar operation/filter items together.

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.

Sample table capability

<table id="timelate" name="Timelate" column_labels="Track,Max Minutes">


<help name="Timelate" text="Enter the maximum number of minutes latency since the last
report for each category. An empty or zero (0) value indicates no maximum." />
<input type="int" id="timelate_maritime" name="Maritime" />
<input type="int" id="timelate_air" name="Air" />
<input type="int" id="timelate_land" name="Land" />
</table>

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.

Sample matrix capability

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.

4.4.1 Document Element

4.4.1.1 <nvg_filter> Document

The NVG filter document element.

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.

Valid response values

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

will be represented as a string containing latitude and longitude in decimal degrees


and separated by a comma (as in NVG Data Format). Example: "-115.0,32.0". An
Xml Schema type exists and can be used to support this validation:
PositionInputResponsetype

Boolean values

will be represented with: "true" or "false". An Xml Schema type exists and can be
used to support this validation: BooleanInputResponseType

Date Time and Date values

will be represented in XSD date-time format. Xml Schema types exists and can be
used to support this validation: DateInputResponsetype,
DatetimeInputResponsetype

Sample filter response

<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.

Sample select response

<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.

Sample matrix response

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

The matrix row identifier.

Attributes
refid <string> Element identifier (see Filter Format id attribute) from the
corresponding capabilities document.

Applies to

<matrix_response>

4.4.2.6 <cell>

The matrix cell identifier

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

<nvg_filter version="2.0.0" xsi:schemaLocation="https://tide.act.nato.int/schemas/2012/10/nvg


https://tide.act.nato.int/schemas/2012/10/nvg/nvg.filter.2.0.xsd" xmlns="https://tide.act.nato.in
t/schemas/2012/10/nvg" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<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>

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>

4.5 Data Format

The NATO Vector Graphics (NVG) Data Format, originally inspired from Scalable Vector
Graphics (SVG), aims to provide the following capability:

 Provide a simple specification for encoding battle-space information to support


geospatial viewing.
 Provide support for military symbology.
 Allow drill down from rendered battle-space information to more detailed content not
available in the NVG Data Format.

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.

4.5.1 Global Concepts

4.5.1.1 World Coordinates

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.

4.5.1.2 Positional Units

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.

All positional attributes are to be interpreted as a longitude or latitude coordinates in the


WGS-84 geo-reference. The first coordinate, noted as x or cx (for center points), should be
interpreted as a longitude. Positive values should be interpreted as east of the Greenwich
meridian, negative values should be interpreted as west of the Greenwich meridian. The
second coordinate, noted as y or cy (for center point), should be interpreted as a latitude.
Positive values should be interpreted as north of the equator; negative values should be
interpreted as south of the equator.

List of points are interpreted as a sequence of (longitude,latitude) pairs corresponding to a


sequence of (x,y) coordinates separated by space.

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.

4.5.1.3 Distance Units

Measures of geographic distances are expressed in meters.

Measure of altitude distances are expressed in meters relative (positive or negative) to the
datum surface of WGS-84 (reference system for NVG coordinates).

4.5.1.4 Speed Units

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:

 Rhumb Line – constant heading

 Great Circle – shortest path

The “leg-type” attribute is available on select geometries and used to indicate the desired
interpolation methodology. This attribute has the following acceptable values:

 rhumb-line – Rhumb Line

 great-circle – Great Circle (default)

4.5.1.7 Unit of Measurement


Where the unit of measurement is variable, the following standard abbreviations should be
used before expanding to domain specific abbreviations:

Quantity Symbol Base Unit


temperature C degree Celsius
mass g gram
length m meter
length nm nautical mile
area m2 square meter
volume m3 cubic meter
volume l liter (10-3m3)
speed mps meters per second
duration s seconds

4.5.1.8 Extensibility

The NATO Vector Graphics (NVG) Data Format can be extended in the following ways:

 Selected elements can be extended with additional attributes. Where allowed it is


denoted by the optional {any} attribute.

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.

4.5.1.9 XML Labeling

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:

<nvg:nvg version="2.0.2" 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:mbc="urn:int:nato:ia:metadatabinding:draft"
xmlns:slab="urn:int:nato:ia:xmlsecuritylabel:xmlconfidentialitylabel:draft"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<nvg:point href="http://www.google.com/search?q=point" id="justapoint" label="Sample
point" uri="urn:md5:92988a38055add14bbf3d614ab1a15d2" x="0" y="0">
<nvg:textInfo>Example point with extended data</nvg:textInfo>
</nvg:point>
<nvg:extension>
<nvg:BindingInformation>
<mbc:MetadataBindingContainer>
<mbc:MetadataBinding>
<mbc:Metadata metadataType="OriginatorConfidentialityLabel">
<slab:ConfidentialityLabel>
<slab:ConfidentialityInformation>
<slab:PolicyIdentifier>MOCK</slab:PolicyIdentifier>
<slab:Classification>Unclassified</slab:Classification>
</slab:ConfidentialityInformation>
</slab:ConfidentialityLabel>
</mbc:Metadata>
<mbc:DataReference URI=" " />
</mbc:MetadataBinding>
<mbc:MetadataBinding>

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>

4.5.1.10 Document Signing

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:

<nvg:nvg version="2.0.2" 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:mbc="urn:int:nato:ia:metadatabinding:draft"
xmlns:slab="urn:int:nato:ia:xmlsecuritylabel:xmlconfidentialitylabel:draft"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<nvg:point href="http://www.google.com/search?q=point" id="justapoint" label="Sample
point" uri="urn:md5:92988a38055add14bbf3d614ab1a15d2" x="0" y="0">
<nvg:textInfo>Example point with extended data</nvg:textInfo>
</nvg:point>
<nvg:extension>
<Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
<SignedInfo>
<CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-
20010315" />
<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />
<Reference URI="">
<Transforms>
<Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-
signature" />
</Transforms>
<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
<DigestValue>D9hIQAbEAi3YPge3fcV8eoAwVwE=</DigestValue>
</Reference>
</SignedInfo>
<SignatureValue>
XEQEMbV714pJ38jxxvyt1ZtzbaGQ2R672dtWuqriV3VKcPSSlMHMffuZ6sScL/WXigf6pAGVuiky
L/i+WFloXWOF/h+PUSwUtSKKbeh6wyqlDSG+c3bBeaXTyWZ9QhbumqJs6Y+W1/3fw3vm6aukeScc
nTgR6V1i/LJCSKBut1pz0bbjFkAhS3SGFU5/XkuO2LcIoiQxZW6YdabQp5AM5pClKQVUlzpGlAO1
fUGi5dmY1Vg+Psy6WCLKKoTk9s9+6hyBsMa1GM+4GaNtbYXyc4rwF5cpCi2fKpN8ZfFPfFrGRyuU
Kb9cBHyqAFn1/7ODWrDSqfISjYU2BC1ntahkag== </SignatureValue>
<KeyInfo>
<X509Data>
<X509SubjectNameCN=www>.cloudexp.com,OU=Development,O=CloudExp.com,L=East
Coast,ST=VA,C=US</X509SubjectName>
<X509Certificate>
MIIDajCCAlKgAwIBAgIETuu4CDANBgkqhkiG9w0BAQUFADB3MQswCQYDVQQGEwJVUzELMAkGA1UE
CBMCVkExEzARBgNVBAcTCkVhc3QgQ29hc3QxFTATBgNVBAoTDENsb3VkRXhwLmNvbTEUMBIGA1UE

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>

4.5.1.11 Usage of any content

{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.

{any content}

(optional) any XML fragments, in local or externally declared namespaces, optionally


defined and validated by declared corresponding schemas. Content should not be
expected to be preserved in transfers of NVG documents between different systems.

4.5.1.12 Identification attributes

uri

(optional) a Uniform Resource Identifier (URI) that uniquely identifies the object, see
(http://en.wikipedia.org/wiki/URI_scheme) for more details.

4.5.1.13 Descriptive attributes

label

(optional) A textual representation of this element, usually a short text.

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

(optional) Additional human-readable XML element in addition to @label atribute


that may contain CDATA and/or active content. Long text content should be placed
here.

4.5.1.14 Time Dimension

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.

<nvg:point uri=" uri="urn:guid:1f14923e-ec4a-43bc-bbf3-2d408a1224c1" x="0" y="0" label="Sample


Point" symbol="app6a:SUA*MFCH-------" modifiers="Z:32;X:1000">
<nvg:textInfo>Example point for documentation to be displayed between 24-Oct and 26-Oct, last
updated on the 01-Sep</nvg:textInfo>
<nvg:TimeStamp>2012-09-01T09:45:00Z</nvg:TimeStamp>
<nvg:TimeSpan>
<nvg:begin>2012-10-24T12:01:00Z</nvg:begin>
<nvg:end>2012-10-26T12:01:00Z</nvg:end>
</nvg:TimeSpan>
</nvg:point>

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.

4.5.1.15.1 Line Style

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 valid values are: None, Arrow, OpenArrow, StealthArrow,


DiamondArrow, OvalArrow:

 line-pattern-begin-size: a value from 1 to 3


 line-pattern-end-size: a value from 1 to 3

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"

4.5.1.15.2 Area Style

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:

4.5.1.15.3 Text Style


A text style defines how a text should be rendered graphically. The text style only applies to
the <text> element. The following properties can be used:

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

4.5.1.17.1 symbol attribute

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.

NVG currently supports the following encodings of the symbol 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.

In addition, NVG also supports:

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).

If the defined symbology bindings (APP-6A, APP-6B, APP-6C, MIL-STD-2525B or MIL-


STD-2525C) are not satisfactory, use icon to specify an image.

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

4.5.1.17.2 Symbol / Geometry Mappings

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

4.5.1.17.3 modifiers attribute

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.

4.5.2 <nvg> Document Element

The NATO Vector Graphics (NVG) Data Format document element.

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:

<nvg:nvg version="2.0.2" 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/">

...(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:

<nvg:text uri="urn:guid:adad7dd6-ab0f-491a-989f-86756e2c6886" x="1.5" y="53.5" rotation="26"


style="font-family:Lucida Sans;font-color:#3333ff;font-size:100">
<nvg:content>North Sea</nvg:content>
</nvg:text>

<nvg:text uri="urn:guid:4590109a-7e8c-4e5b-b906-5428d0151084" x="-10" y="10" rotation="350">


<nvg:content>Atlantic
Ocean</nvg:content>
</nvg:text>

<nvg:text uri="urn:guid:4a20afca-4333-4dc4-b5b4-eb99eb51335b" x="-12" y="12" rotation="40">


<nvg:content><![CDATA[this is first line
Next line will be here]]></nvg:content>
</nvg:text>

4.5.3.2 <point>

This element defines a point to be rendered at the given geo-spatial coordinates.

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:

Two points rendered using MIL-STD-2525B symbology.

<nvg:point label="My sample point" x="10" y="11" uri="urn:guid:bdf2fc05-8e39-4e98-852b-


f49df7ff8e39"/>

<nvg:point label="CBT SPT NBC unit sample" x="10" y="12" symbol="app6a:S*G*UUA---


*****" uri="urn:guid:b922f0cc-eded-4f78-90bc-58aa5d754bb1"/>

<nvg:point label="Vessel" x="1.75" y="51.16" course="262.53" speed="7.5" symbol="2525b:SFSPCLCV-


------" uri="urn:guid:3b3cda40-9ecc-4977-96d4-03fed77e3205"/>

<nvg:point label="Point with modifiers" x="5.30" y="50.71" symbol="app6a:SUA*MFCH-------"


modifiers="Z:32;X:1000" uri="urn:guid:2bc990e2-195d-46ef-9172-600a7c5a822e"/>

<nvg:point label="My styled point" x="10" y="13" style="fill:#ff00bb" uri="urn:guid:81f3166e-


d83b-4609-b813-54fb3b871c81"/>

<!-- Using an icon to represent a factory at a point -->


<nvg:point label="My iconed point" x="10" y="13" symbol="icon:./factory.png"
uri="urn:guid:064d8291-2c0e-43e7-b3bf-6e676ef92e1c"/>

4.5.3.3 <multipoint>

Several of the APP-6A, APP-6B, APP-6C, MIL-STD-2525B and MIL-STD-2525C symbols


are represented by multiple points and cannot be mapped onto NVG point, line, area, etc. For
example, a blocking task requires three points as shown below.

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:

<nvg:multipoint label="Block activity" symbol="app6a:G*T*GB----*****" modifiers="B=-


I" points="1,0 1,1 -1,0.5" uri="urn:guid:8461f397-ecbe-4274-8110-1c39591779b8"/>

<nvg:multipoint label="GUARDING activity" symbol="app6a:G*T*GSG---*****" points="0,1 1,0 -


1,0" uri="urn:guid:0865fb7e-7c21-4fef-a983-b9dbe0a3a1a0"/>

<nvg:multipoint label="DELAY activity" symbol="app6a:G*T*GL----*****" points="1,0 1,1 -


1,1" uri="urn:guid:e5ea843b-78d3-45c0-9361-387d17b5f596"/>

46
4.5.3.4 <circle>

This element defines a circle to be rendered at the given geo-spatial coordinates.

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:

<nvg:circle label="Bare circle on equator" r="500000" cx="0" cy="0" uri="urn:guid:b3b34502-e023-


4abb-96b1-6b0b833b490d"/>

<nvg:circle label="Bare circle close to North" r="500000" cx="0" cy="80" uri="urn:guid:be2808da-


760a-49d2-b4a0-9d591c15c5b0"/>

<nvg:circle label="Styled circle" r="5000" cx="0" cy="10" style="stroke-width:4;stroke-


dash:15;fill:#66ff66;fill-opacity:0.5" uri="urn:guid:7bdc7cec-fa45-4139-bf6b-ec60beef8283"/>

4.5.3.5 <ellipse>

This element defines an ellipse to be rendered at the given geo-spatial coordinates.

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:

<nvg:ellipse label="Bare ellipse on equator" rx="15000" ry="50000" cx="0" cy="0"


uri="urn:guid:18fd3b2f-0f9d-44c4-a488-ebdab30cd251"/>

<nvg:ellipse label="Styled ellipse" rx="15000" ry="50000" cx="0" cy="0" rotation="10"


style="stroke-width:4;stroke-dash:15;fill:#66ff66;fill-opacity:0.5" uri="urn:guid:14b86aed-352b-
463f-9ad4-a75099c3678f"/>

4.5.3.6 <rect>

This element defines a rectangle to be rendered at the given geo-spatial coordinate.

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:

<nvg:rect uri="urn:md5:12345" label="Styled


rectangle" cx="0" cy="0" rx="2000" ry="5000" rotation="20" minaltitude="0" maxaltitude="10000"
style="stroke-width:4;stroke-dash:15;fill:#66ff66;fill-opacity:0.5" uri="urn:guid:d6138d6f-2730-
4dfe-a899-8d7ea2fe5fb0">
<nvg:textInfo>Example rectangle for documentation</nvg:textInfo>
</nvg:rect>

4.5.3.7 <polyline>

This element defines a polyline to be rendered at the given geo-spatial coordinates.

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:

<nvg:polyline label="My test polyline" uri="urn:int.nato.act:tide:nvg:samples:#polyline.001"


points="0,0 1,1 1,2 2,3 3,0" />

nvg:polyline label="Enemy line" uri="urn:int.nato.act:tide:nvg:samples:#polyline.002"


symbol="app6a:GHC*MGAUAE*****" style="stroke-width:4" points="0,0 1,1 1,2 2,3 3,0" />

4.5.3.8 <arrow>

The arrow represents a directed corridor and is used to indicate movement.

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:

<nvg:arrow label="Basic arrow" points="0,0 0.1,0.1 0.2,0.1" width="5000" style="stroke-


width:5;stroke-dash:10;fill:none" uri="urn:guid:52580661-3b14-48fd-8c9d-946b0a953b8b"/>

<nvg:arrow label="Counter-attack arrow" points="0,0 0.5,0 0.5,1 1,1.3" width="15000"


symbol="app6a:G*T*GK----*****" uri="urn:guid:f93ef8af-dbed-4483-a8ee-174a1cd780b3"/>

4.5.3.9 <corridor>

This element defines a corridor to be rendered at the given geo-spatial coordinates.

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:

<nvg:corridor label="Sample corridor" points="0,0 1,1 2,1


2,2" width="500" uri="urn:guid:f3b2a6cf-eaec-4c90-8ea7-4c136d1edade"/>

<nvg:corridor label="Air corridor" points="0,1 1,2 2,2 2,3" width="1000" symbol="app6a:G*C*MALC-


-*****" uri="urn:guid:fa5a42b9-075d-48f3-af18-13ac9e75f31d"/>

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:

<nvg:orbit label="Sample orbit" points="0,0 1,1" width="2500" uri="urn:guid:329a156c-c440-417d-


8e2d-0bf444b2a7a5"/>

4.5.3.11 <polygon>

This element defines a polygon to be rendered at the given geo-spatial coordinates.

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:

<nvg:polygon label="My test polygon" uri="urn:int.nato.act:tide:nvg:samples:#polygon.001"


points="0,0 1,1 1,2 2,3 3,0" />

<nvg:polygon label="Enemy area" uri="urn:int.nato.act:tide:nvg:samples:#polygon.002"


symbol="app6a:GHC*MGAUAE*****" style="stroke-width:4" points="0,0 1,1 1,2 2,3 3,0" />

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:

<nvg:g label="facilities" uri="urn:guid:90fbda1e-ffa2-4570-9d0d-b3770e81254c">


<nvg:g label="bridges" />
<nvg:g label="hospitals">
<nvg:point x="1.0" y="1.0" label="Red Cross Hospital" style="fill:#ff0000"
uri="urn:guid:58b6d10e-3139-4ed0-b6ac-858e8da3edbc"/>
<nvg:point x="2.0" y="1.0" label="City Hospital" style="fill:#ff0000"
uri="urn:guid:bd3fb676-b415-45d9-9642-f79d888c9e4a"/>
</nvg:g>
</nvg:g>

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:

<nvg:composite label="My simple composite" uri="urn:guid:7d56d068-3ec2-4c44-a91e-7a178cad7c02">


<nvg:point x="1" y="2" label="My Point inside the arc shape" uri="urn:guid:7d56d068-3ec2-
4c44-a91e-7a178cad7c02#1"/>
<nvg:arc label="My sample arcband" cx="1" cy="2" rx="200" ry="300" startangle="160"
endangle="10" uri="urn:guid:7d56d068-3ec2-4c44-a91e-7a178cad7c02#2"/>
</nvg:composite>

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:

<nvg:arc label="My sample


arcband" cx="1" cy="2" rx="200" ry="300" startangle="160" endangle="10" uri="urn:guid:8e5472c2-
e712-4fdd-a13e-9d7593b06ea4"/>

<nvg:arc label="Symbolized (Enemy)


arcband" cx="1" cy="2" rx="200" ry="300" startangle="10" endangle="230" symbol="app6a:GHC*MGAUAE
*****" uri="urn:guid:6de5bb09-b8db-4b38-81b7-ad154c7e3dd2"/>

<nvg:arc label="Styled sample" cx="-


77.03" cy="32.19" rx="500" ry="800" startangle="315" endangle="5" style="stroke:#00ff00;stroke-
width:5;stroke-dash:none;" uri="urn:guid:a7923872-e74e-4fb7-a2e3-5b2547c02915"/>

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:

<nvg:arcband label="My sample


arcband" cx="1" cy="2" minr="200" maxr="2000" startangle="10" endangle="60" uri="urn:guid:a6e5abc3-
8311-4b0b-a398-80550af20e42"/>

<nvg:arcband label="Symbolized (Enemy) arcband" cx="1.2" cy="2" minr="200" maxr="2000"


startangle="10" endangle="60" symbol="app6a:GHC*MGAUAE*****" uri="urn:guid:d578988b-b06b-413d-86a8-
46b70c9262ca"/>

<nvg:arcband label="Styled sample" cx="-77.03" cy="32.19" minr="468000" maxr="791000"


startangle="315" endangle="5" style="stroke:#00ff00;stroke-opacity:1.0;stroke-width:1;stroke-
dash:none;fill:#66ff66;fill-opacity:0.40;" uri="urn:guid:8139fb30-f4b1-474d-b79e-77495e2ef1c9"/>

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:

<nvg:content-item label="HMS Invincible" uri="urn:guid:8142a488-4cbc-4a56-9f47-769acf1f9b75">

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 Metadata Encoding Guidelines

Recommendations to follow when applying metadata to NVG elements:

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.

For example, use:

<dc:title>Dublin Core in XML</dc:title>

rather than:

<dc:title value="Dublin Core in XML" />

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:

<nvg:point label="HMS Invincible" x="5.30" y="50.71" symbol="2525b:SFSPCLCV-------"


uri="urn:guid:72758844-dad9-4d2c-bd30-f6ccad20d032">
<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:point>

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

Each piece of information can contain:

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):

1. defines a <SimpleField> element to store the key definition


2. defines a <SimpleData> element to store the value

 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.

The data group (<ExtendedData>) is defined below:

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>

The data element (<SimpleData>) contains the following definition:

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>

<Section> is used to group related and/or repetitive information.

Sub-elements
<SimpleData>

64
Attributes
schemaRef a mandatory local (#) reference to a <Schema> element contained
within the same document.

4.5.3.21 <Schema>

The key definition group (<Schema>) is defined below:

Sub-elements
<SimpleField>

Attributes
schemaId mandatory schema identifier

4.5.3.22 <SimpleField>

The key definition (<SimpleField>) contains the following definition:

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.

5.1 Consumer Sequence


 Discovery NVG service providers
 Repeat for each, or selected, NVG service providers
o Request the service description (WSDL)
o Determine the available port address and operations.
o Request the NVG Capabilities document from the service provider using the
GetCapabilities operation
o Formulate a NVG Filter based on the NVG Capabilities document
o Request NVG content based on the NVG Filter using the GetNvg operation
o Decode and process NVG content

5.1.1 Service Discovery

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

192.168.1.6 - the IP address of the service provider

66
Port

8080 - the port on which the service provider is listening for new connections

service_wsdl

/NvgSource/NVGService?wsdl - the URL to the service description in WSDL format

service_name

NVGService - the 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

5.1.2 Retrieving the Service Description

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:

<?xml version="1.0" encoding="utf-16"?>


<definitions targetNamespace="urn:your:namespace:here" xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="urn:your:namespace:here"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
</import namespace="urn:your:namespace:here"
location="/NvgSource/NVGService?WSDL&amp;interface=NVGBinding2012&amp;part=nvg.binding2012.wsdl">
</types>
<service name="NvgService">
<port name="NvgPort20" binding="tns:NVGBinding2012">
<soap:address location="http://192.168.1.6:8080/NvgSource/NVGService" />
</port>
</service>
</definitions>

5.1.3 Get Capabilities

Using the retrieved WSDL, the service metadata and knowledge of the NATO Vector Graphics
(NVG) Protocol you can determine the following:

Service Port Address

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

5.1.4 Get NVG

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

The response contains the resulting NVG data document.

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

Appendix 2 - APP-6B Symbology Binding

The APP-6B symbology binding is presented in the following file:

 TTB_ANNEX_N_APPENDIX_2_APP6B_Binding

Appendix 3- MIL-STD-2525B Symbology Binding


The MIL-STD-2525B symbology binding is presented in the following file:

 TTB_ANNEX_N_APPENDIX_3_MIL_STD_2525B_Binding

Appendix 4- MIL-STD-2525C Symbology Binding

The MIL-STD-2525C symbology binding is presented in the following file:

 TTB_ANNEX_N_APPENDIX_4_MIL_STD_2525C_Binding

Appendix 5 - APP-6C Symbology Binding

The APP-6C symbology binding is presented in the following file:

 TTB_ANNEX_N_APPENDIX_5_APP6C_Binding

71

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy