ABCDEFGHIJKLMNOPQRST
1
Element  Name Context. Class. Attribute. RepresentationDefinition and (Optionality) Profile Implementation Notes (Note: table names in the document will be prepended with cap_, a * after the name of the field means it can be extended further by a inheriting template)Template Implementation NotesAlert message Implementation NotesNotes or Value DomainStageSpecificationImplementationReviewTest PassedTest Fail
2
alertcap.
alert.
group
The container for all component parts of the alert message (REQUIRED) `profile` table contains the profile constraints for each field in <alert>. Follow this column for columns under the alert_profile table. Fields id and meta fields are not mentioned below, assume their presence. "-" means field does not apply here. Unless otherwise stated, data type is string, array is a string of space separated value or some serializationtemplate table contains templates for CAP alerts, will extend zero or more profiles. profile field holds a space seperated list of profile.ids. Assume id and meta fields. "-" means field does not apply herealert table contains actual cap alerts. Can extend exactly one template: referenced in the template_id field. Assume id and meta fields.Surrounds CAP alert message sub-elements.
MUST include the xmlns attribute referencing the CAP URN as the namespace, e.g.:
<cap:alert xmlns:cap="urn:oasis:names:tc:emergency:cap:1.2">
[sub-elements]
</cap:alert>
In addition to the specified sub-elements, MAY contain one or more <info> blocks.
Count00000
3
identifier cap.
alert.
identifier.
identifier
The identifier of the alert message (REQUIRED) identifier_prefix, identifier_suffix-identifier (unique key)A number or string uniquely identifying this message, assigned by the sender.
MUST NOT include spaces, commas or restricted characters (< and &).
4
sendercap.
alert.
sender.
identifier
The identifier of the sender of the alert message (REQUIRED)sender_suffixsendersender (to flavour: use s3meta to construct this?)Identifies the originator of this alert. Guaranteed by assigner to be unique globally; e.g., may be based on an Internet domain name.
MUST NOT include spaces, commas or restricted characters (< and &).
5
sentcap.
alert.
sent.
time
The time and date of the origination of the alert message (REQUIRED)--sent (to flavour: s3meta provides this?)(1) The date and time SHALL be represented in the DateTime Data Type (See Implementation Notes) format (e.g., "2002-05-24T16:49:00-07:00" for 24 May 2002 at 16:49 PDT).
(2) Alphabetic timezone designators such as “Z” MUST NOT be used. The timezone for UTC MUST be represented as “-00:00”.
6
statuscap.
alert.
status.
code
The code denoting the appropriate handling of the alert message (REQUIRED)allowes_statuses: arraystatus = "Draft"statusCode Values:
“Actual” - Actionable by all targeted recipients
“Exercise” - Actionable only by designated exercise participants; exercise identifier SHOULD appear in <note>
“System” - For messages that support alert network internal functions
“Test” - Technical testing only, all recipients disregard
“Draft” – A preliminary template or draft, not actionable in its current form
7
msgTypecap.
alert.
msgType.
code
The code denoting the nature of the alert message (REQUIRED)-- (only applies to "Alert" and "Update")msg_typeCode Values:
“Alert” - Initial information requiring attention by targeted recipients
“Update” - Updates and supercedes the earlier message(s) identified in <references>
“Cancel” - Cancels the earlier message(s) identified in <references>
“Ack” - Acknowledges receipt and acceptance of the message(s) identified in <references>
“Error” - Indicates rejection of the message(s) identified in <references>; explanation SHOULD appear in <note>
8
source cap.
alert.
source.
identifier
The text identifying the source of the alert message (OPTIONAL)sourcesourcesource The particular source of this alert; e.g., an operator or a specific device.
9
scopecap.
alert.
scope.
code
The code denoting the intended distribution of the alert message (REQUIRED)allowed_scopes: arrayscope (fixed?)scopeCode Values:
“Public” - For general dissemination to unrestricted audiences
“Restricted” - For dissemination only to users with a known operational requirement (see <restriction>, below)
“Private” - For dissemination only to specified addresses (see <addresses>, below)
10
restrictioncap.
alert.
restriction.
text
The text describing the rule for limiting distribution of the restricted alert message (CONDITIONAL)restrictionrestriction (required if scope=restricted)restrictionUsed when <scope> value is "Restricted".
11
addressescap.
alert.
addresses.
group
The group listing of intended recipients of the alert message (CONDITIONAL)address (how can we pre-define addresses in the profile?)addressaddressRequired when <scope> is “Private”, optional when <scope> is “Public” or “Restricted”.
Each recipient SHALL be identified by an identifier or an address.
Multiple space-delimited addresses MAY be included. Addresses including whitespace MUST be enclosed in double-quotes.
12
codecap.
alert.
code.
code
The code denoting the special handling of the alert message (OPTIONAL)codes: arraycodes: arraycodes: array (cannot be space separated)Any user-defined flag or special code used to flag the alert message for special handling.
Multiple instances MAY occur.
13
note cap.
alert.
note.
text
The text describing the purpose or significance of the alert message (OPTIONAL)-notenoteThe message note is primarily intended for use with <status> “Exercise” and <msgType> “Error”.
15
incidentscap.
alert.
incidents.
group
The group listing naming the referent incident(s) of the alert message (OPTIONAL)-incedents: array (references to incidents) we already have the irs module, ideally we should use the incident data model defined there, does this mean irs will be a dependency?)incidents: array (references to incidents)Used to collate multiple messages referring to different aspects of the same incident.
If multiple incident identifiers are referenced, they SHALL be separated by whitespace. Incident names including whitespace SHALL be surrounded by double-quotes.
16
infocap.
alertInfo.
info.
group
The container for all component parts of the info sub-element of the alert message (OPTIONAL)profile_info table defines constraints for info elements, one or more of these are referenced by profile table. apart from the implicit fields (id, meta) we need a display_name to display a descriptive name for the profiletemplate_info table sets down template for info element, one for each language. Referenced by template table. These fields may contain [variables in square brackets] that need to be substituted in the alert. How do we extract these? how do we infer datatypes? display_name field holds a descriptive name for the templateinfo table containing actual info elements referenced by alerts. one for each language a given alert is sent out inMultiple occurrences are permitted within a single <alert>. If targeting of multiple <info> blocks in the same language overlaps, information in later blocks may expand but may not override the corresponding values in earlier ones. Each set of <info> blocks containing the same language identifier SHALL be treated as a separate sequence.
In addition to the specified sub-elements, MAY contain one or more <resource> blocks and/or one or more <area> blocks.
17
languagecap.
alertInfo.
language.
code
The code denoting the language of the info sub-element of the alert message (OPTIONAL)language: can be pre-definedlanguagelanguageCode Values: Natural language identifier per [RFC 3066].
If not present, an implicit default value of "en-US" SHALL be assumed.
A null value in this element SHALL be considered equivalent to “en-US.”
18
categorycap.
alertInfo.
category.
code
The code denoting the category of the subject event of the alert message (REQUIRED)categorycategorycategoryCode Values:
“Geo” - Geophysical (inc. landslide)
“Met” - Meteorological (inc. flood)
“Safety” - General emergency and public safety
“Security” - Law enforcement, military, homeland and local/private security
“Rescue” - Rescue and recovery
“Fire” - Fire suppression and rescue
“Health” - Medical and public health
“Env” - Pollution and other environmental
“Transport” - Public and private transportation
“Infra” - Utility, telecommunication, other non-transport infrastructure
“CBRNE” – Chemical, Biological, Radiological, Nuclear or High-Yield Explosive threat or attack
“Other” - Other events
Multiple instances MAY occur within an <info> block.
19
eventcap.
alertInfo.
event.
text
The text denoting the type of the subject event of the alert message (REQUIRED)eventeventevent
20
responseTypecap.
alertInfo.
responseType.
code
The code denoting the type of action recommended for the target audience (OPTIONAL)response_typeresponse_typeresponse_type(1) Code Values:
“Shelter” – Take shelter in place or per <instruction>
“Evacuate” – Relocate as instructed in the <instruction>
“Prepare” – Make preparations per the <instruction>
“Execute” – Execute a pre-planned activity identified in <instruction>
“Avoid” – Avoid the subject event as per the <instruction>
“Monitor” – Attend to information sources as described in <instruction>
“Assess” – Evaluate the information in this message. (This value SHOULD NOT be used in public warning applications.)
“AllClear” – The subject event no longer poses a threat or concern and any follow on action is described in <instruction>
“None” – No action recommended
(2) Multiple instances MAY occur within an <info> block.
21
urgencycap.
alertInfo.
urgency.
code
The code denoting the urgency of the subject event of the alert message (REQUIRED)urgencyurgencyurgency(1) The <urgency>, <severity>, and <certainty> elements collectively distinguish less emphatic from more emphatic messages.
(2) Code Values:
“Immediate” - Responsive action SHOULD be taken immediately
“Expected” - Responsive action SHOULD be taken soon (within next hour)
“Future” - Responsive action SHOULD be taken in the near future
“Past” - Responsive action is no longer required
“Unknown” - Urgency not known
22
severitycap.
alertInfo.
severity.
code
The code denoting the severity of the subject event of the alert message (REQUIRED)severityseverityseverity(1) The <urgency>, <severity>, and <certainty> elements collectively distinguish less emphatic from more emphatic messages.
(2) Code Values:
“Extreme” - Extraordinary threat to life or property
“Severe” - Significant threat to life or property
“Moderate” - Possible threat to life or property
“Minor” – Minimal to no known threat to life or property
“Unknown” - Severity unknown
23
certaintycap.
alertInfo.
certainty.
code
The code denoting the certainty of the subject event of the alert message (REQUIRED)certainty (example profile: An observed earthquake in Sri Lanka, alert for police agencies)certaintycertainty(1) The <urgency>, <severity>, and <certainty> elements collectively distinguish less emphatic from more emphatic messages.
(2) Code Values:
“Observed” – Determined to have occurred or to be ongoing
“Likely” - Likely (p > ~50%)
“Possible” - Possible but not likely (p <= ~50%)
“Unlikely” - Not expected to occur (p ~ 0)
“Unknown” - Certainty unknown
(3) For backward compatibility with CAP 1.0, the deprecated value of “Very Likely” SHOULD be treated as equivalent to “Likely”.
24
audiencecap.
alertInfo.
audience.
text
The text describing the intended audience of the alert message (OPTIONAL)audienceaudienceaudience 
25
eventCode cap.
alertInfo.
eventCode.
code
A system-specific code identifying the event type of the alert message (OPTIONAL)event_code: map (how do we serialize this?)event_code: mapevent_code: map(1) Any system-specific code for event typing, in the form:
<eventCode>
<valueName>valueName</valueName>
<value>value</value>
</eventCode>
where the content of “valueName” is a user-assigned string designating the domain of the code, and the content of “value” is a string (which may represent a number) denoting the value itself (e.g., valueName ="SAME" and value="CEM").
(2) Values of “valueName” that are acronyms SHOULD be represented in all capital letters without periods (e.g., SAME, FIPS, ZIP).
Multiple instances MAY occur within an <info> block.
26
effectivecap.
alertInfo.
effective.
time
The effective time of the information of the alert message (OPTIONAL)--effective(1) The date and time SHALL be represented in the DateTime Data Type (See Implementation Notes) format (e.g., “2002-05-24T16:49:00-07:00for 24 May 2002 at 16: 49 PDT).
(2) Alphabetic timezone designators such as “Z” MUST NOT be used. The timezone for UTC MUST be represented as “-00:00”.
(3) If this item is not included, the effective time SHALL be assumed to be the same as in <sent>.
27
onsetcap.
alertInfo.
onset.
time
The expected time of the beginning of the subject event of the alert message (OPTIONAL)--onset(1) The date and time SHALL be represented in the DateTime Data Type (See Implementation Notes) format (e.g., “2002-05-24T16:49:00-07:00" for 24 May 2002 at 16: 49 PDT).
(2) Alphabetic timezone designators such as “Z” MUST NOT be used. The timezone for UTC MUST be represented as “-00:00”.
28
expirescap.
alertInfo.
expires.
time
The expiry time of the information of the alert message (OPTIONAL)--expires(1) The date and time SHALL be represented in the DateTime Data Type (See Implementation Notes) format (e.g., “2002-05-24T16:49:00-07:00” for 24 May 2002 at 16:49 PDT).
(2) Alphabetic timezone designators such as “Z” MUST NOT be used. The timezone for UTC MUST be represented as “-00:00”.
(3) If this item is not provided, each recipient is free to set its own policy as to when the message is no longer in effect.
29
senderNamecap.
alertInfo.
senderName.
text
The text naming the originator of the alert message (OPTIONAL)sender_name* (human readable: is this further editable? how do we make it so?)sender_name*sender_nameThe human-readable name of the agency or authority issuing this alert.
30
headlinecap.
alertInfo.
headline.
text
The text headline of the alert message (OPTIONAL)headline* (further editable in templates and alerts)headline (further editable in alerts)headlineA brief human-readable headline. Note that some displays (for example, short messaging service devices) may only present this headline; it SHOULD be made as direct and actionable as possible while remaining short. 160 characters MAY be a useful target limit for headline length.
31
descriptioncap.
alertInfo.
description.
text
The text describing the subject event of the alert message (OPTIONAL)description* (how can anything generic be here?)description (with [variables])descriptionAn extended human readable description of the hazard or event that occasioned this message.
32
instructioncap.
alertInfo.
instruction.
text
The text describing the recommended action to be taken by recipients of the alert message (OPTIONAL)instruction* (^ same question applies)instruction* (with [variables])instructionAn extended human readable instruction to targeted recipients. If different instructions are intended for different recipients, they should be represented by use of multiple <info> blocks.
33
webcap
alertInfo.
web.
identifier
The identifier of the hyperlink associating additional information with the alert message (OPTIONAL)--webA full, absolute URI for an HTML page or other text resource with additional or reference information regarding this alert.
34
contactcap.
alertInfo.
contact.
text
The text describing the contact for follow-up and confirmation of the alert message (OPTIONAL)contact*contact*contact 
35
parametercap.
alertInfo.
parameter.
code
A system-specific additional parameter associated with the alert message (OPTIONAL)parameter*: mapparameter*: mapparameter(1) Any system-specific datum, in the form:
<parameter>
<valueName>valueName</valueName>
<value>value</value>
</parameter>
where the content of “valueName” is a user-assigned string designating the domain of the code, and the content of “value” is a string (which may represent a number) denoting the value itself (e.g., valueName ="SAME" and value="CIV").
(2) Values of “valueName” that are acronyms SHOULD be represented in all capital letters without periods (e.g., SAME, FIPS, ZIP).
(3) Multiple instances MAY occur within an <info> block.
37
resourceDesccap.
alertInfoResource.
resourceDesc.
text
The text describing the type and content of the resource file (REQUIRED)--resource_descThe human-readable text describing the type and content, such as “map” or “photo”, of the resource file.
38
mimeTypecap.
alertInfoResource.
mimeType.
identifier
The identifier of the MIME content type and sub-type describing the resource file (REQUIRED)--mime_typeMIME content type and sub-type as described in [RFC 2046]. (As of this document, the current IANA registered MIME types are listed at http://www.iana.org/assignments/media-types/)
39
sizecap.
alertInfoResource.
size.
integer
The integer indicating the size of the resource file (OPTIONAL)--sizeApproximate size of the resource file in bytes.
For <uri> based resources, <size> SHOULD be included if available.
40
uricap.
alertInfoResource.
uri.
identifier
The identifier of the hyperlink for the resource file (OPTIONAL)--uriA full absolute URI, typically a Uniform Resource Locator that can be used to retrieve the resource over the Internet
OR
a relative URI to name the content of a <derefUri> element if one is present in this resource block.
42
digestcap.
alertInfoResource.
digest.
code
The code representing the digital digest (“hash”) computed from the resource file (OPTIONAL)--digestCalculated using the Secure Hash Algorithm (SHA-1) per [FIPS 180-2].
43
areacap.
alertInfoArea.
area.
group
The container for all component parts of the area sub-element of the info sub-element of the alert message (OPTIONAL)area_profile: referenced by profile table rows?area: use gis module here, will need to implement representation in WGS 84 format. Implementational manual: http://www2.icao.int/en/pbn/ICAO%20Documentation/GNSS%20and%20WGS%2084/Eurocontrol%20WGS%2084.pdf(1) Multiple occurrences permitted, in which case the target area for the <info> block is the union of all the included <area> blocks.
(2) MAY contain one or multiple instances of <polygon>, <circle> or <geocode>. If multiple <polygon>, <circle> or <geocode> elements are included, the area described by this <area> block is represented by the union of all the included elements.
44
areaDesccap.
alertInfoArea.
areaDesc.
text
The text describing the affected area of the alert message (REQUIRED)area description*-What about this field?A text description of the affected area.
45
polygoncap.
alertInfoArea.
polygon.
group
The paired values of points defining a polygon that delineates the affected area of the alert message (OPTIONAL)bounding_box (for centering the map here)-(1) Code Values: The geographic polygon is represented by a whitespace-delimited list of [WGS 84] coordinate pairs. (See WGS 84 Note at end of this section)
(2) A minimum of 4 coordinate pairs MUST be present and the first and last pairs of coordinates MUST be the same.
(3) Multiple instances MAY occur within an <area> block.
46
circlecap.
alertInfoArea.
circle.
group
The paired values of a point and radius delineating the affected area of the alert message (OPTIONAL)--(1) Code Values: The circular area is represented by a central point given as a [WGS 84] coordinate pair followed by a space character and a radius value in kilometers. (See WGS 84 Note at end of this section)
(2) Multiple instances MAY occur within an <area> block.
47
geocodecap.
alertInfoArea.
geocode.
code
The geographic code delineating the affected area of the alert message (OPTIONAL)--geocode(1) Any geographically-based code to describe a message target area, in the form:
<geocode>
<valueName>valueName</valueName>
<value>value</value>
</geocode>
where the content of “valueName” is a user-assigned string designating the domain of the code, and the content of “value” is a string (which may represent a number) denoting the value itself (e.g., valueName ="SAME" and value="006113").
(2) Values of “valueName” that are acronyms SHOULD be represented in all capital letters without periods (e.g., SAME, FIPS, ZIP).
(3) Multiple instances MAY occur within an <area> block.
(4) This element is primarily for compatibility with other systems. Use of this element presumes knowledge of the coding system on the part of recipients; therefore, for interoperability, it SHOULD be used in concert with an equivalent description in the more universally understood <polygon> and <circle> forms whenever possible.
48
altitudecap.
alertInfoArea.
altitude.
quantity
The specific or minimum altitude of the affected area of the alert message (OPTIONAL)--altitude(1) If used with the <ceiling> element this value is the lower limit of a range. Otherwise, this value specifies a specific altitude.
(2) The altitude measure is in feet above mean sea level per the [WGS 84] datum.
49
ceilingcap.
alertInfoArea.
ceiling.
quantity
The maximum altitude of the affected area of the alert message
(CONDITIONAL)
--ceiling(1) MUST NOT be used except in combination with the <altitude> element.
(2) The ceiling measure is in feet above mean sea level per the [WGS 84] datum.
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103