FINAL_HSHQDN-17-R-0002_RPM_RP_RFP-Atch_14-PRIDE_ICD-2017-1-19.docx

DOCX document 361 KB Posted

Attached to
FINAL RFP HSHQDN-17-R-0002 DNDO RPM RP
Solicitation number
DRAFT_RFP_HSHQDN-17-R-000XX_RPM-RP
Issued by

About this file

Attachment 14 PRIDE ICD

View the file

Other files

File Type Posted
A0003_HSHQDN-17-R-0002_SF30.pdf PDF
A0002_HSHQDN-17-R-0002_SF30-16a.pdf PDF
Final-Version-VendorQuestionsAndAnswers_2_24_17.pdf PDF
FINAL_HSHQDN-17-R-0002_RPM_RP_RFP-Atch_02-Statement_of_Requirements-2017_02_23.docx DOCX document
FINAL_HSHQDN-17-R-0002_RPM_RP_RFP-Atch_10-Bailment_Agreement-2017-01-19.docx DOCX document
FINAL_HSHQDN-17-R-0002_RPM_RP_RFP-Atch_04-RFP_Questions_Form-2017-1-19.docx DOCX document
FINAL_HSHQDN-17-R-0002_RPM_RP_RFP-Atch_18-Quarterly_Report_Template-2017-1-19.xlsx XLSX spreadsheet
FINAL_HSHQDN-17-R-0002_RPM_RP_RFP-Atch_09-Maintenance_Past_Performance_Questionnaire-2017-1-27.docx DOCX document
FINAL_HSHQDN-17-R-0002_RPM_RP_RFP-Atch_02-Statement_of_Requirements-2017-01-30.pdf PDF
FINAL_HSHQDN-17-R-0002_RPM_RP_RFP-Atch_05-System_Architecture_Update_Plan-2017-1-27.docx DOCX document
FINAL_HSHQDN-17-R-0002_RPM_RP_RFP-Atch_01-IDIQ_Pricing_List-2017-1-27.xlsx XLSX spreadsheet
FINAL_HSHQDN-17-R-0002_RPM_RP_RFP-MAIN_DOCUMENT-2017-02-03.pdf PDF
HSHQDN-17-R-0002_A0001_SF30.pdf PDF
Attachment_20_-_Vendor_Q&A.pdf PDF
FINAL_HSHQDN-17-R-0002_RPM_RP_RFP-Atch_08-Delivery_Past_Performance_Questionnaire-2017-1-27.docx DOCX document
FINAL_HSHQDN-17-R-0002_RPM_RP_RFP-Atch_05-System_Architecture_Update_Plan-2017-1-19.docx DOCX document
FINAL_HSHQDN-17-R-0002_RPM_RP_RFP-Atch_19-List_of_Material_Available_Only_from_Contracting_Officer-2017-1-19.docx DOCX document
FINAL_HSHQDN-17-R-0002_RPM_RP_RFP-Atch_17-Configuration_Management_Plan-2017-1-19.docx DOCX document
FINAL_HSHQDN-17-R-0002_RPM_RP_RFP-Atch_11-C-to-C_Non_Disclosure-2017-1-19.docx DOCX document
FINAL_HSHQDN-17-R-0002_RPM_RP_RFP-Atch_13-Government_Furnished_Property-2017-1-19.docx DOCX document
FINAL_HSHQDN-17-R-0002_RPM_RP_RFP-Atch_02-Statement_of_Requirements-2017-01-19.pdf PDF
FINAL_HSHQDN-17-R-0002_RPM_RP_RFP-Atch_06-Maintenance_Plan-2017-1-19.docx DOCX document
FINAL_HSHQDN-17-R-0002_RPM_RP_RFP-Atch_10-Bailment_Agreement-2017-01-19.pdf PDF
FINAL_HSHQDN-17-R-0002_RPM_RP_RFP-Atch_07-Replay_Tool_Requirements_Checklist-2017-1-19.docx DOCX document
FINAL_HSHQDN-17-R-000xx_RPM_RP_RFP-Atch_01-IDIQ_Pricing_List-2017-1-19.xlsx XLSX spreadsheet
FINAL_HSHQDN-17-R-0002_RPM_RP_RFP-Atch_03-Contract_Data_Requirements_List-2017-1-19.pdf PDF
FINAL_HSHQDN-17-R-0002_RPM_RP_RFP-Atch_12-Lifecycle_Support-2017-1-19.docx DOCX document
FINAL_HSHQDN-17-R-0002_RPM_RP_RFP-MAIN_DOCUMENT-2017-01-19.pdf PDF
FINAL_HSHQDN-17-R-0002RPM_RP_RFP-Atch_08-Delivery_Past_Performance_Questionnaire-2017-1-19.docx DOCX document
FINAL_HSHQDN-17-R-0002_RPM_RP_RFP-Atch_16-RPM_Role-2017-1-19.docx DOCX document
FINAL_HSHQDN-17-R-0002_RPM_RP_RFP-Atch_21-Acquisition_Strategy_Diagram-2017-01-19.pdf PDF
FINAL_HSHQDN-17-R-0002_RPM_RP_RFP-Atch_15-Benchmarks-2017-1-19.docx DOCX document
FINAL_HSHQDN-17-R-0002RPM_RP_RFP-Atch_04-RFP_Questions_Form-2017-1-19.docx DOCX document
FINAL_HSHQDN-17-R-0002_RPM_RP_RFP-Atch_09-Maintenance_Past_Performance_Questionnaire-2017-1-19.docx DOCX document
Copy_of_FINAL_HSHQDN-17-R-0002_RPM_RP_RFP-Atch_18-Quarterly_Report_Template-2017-1-19.xlsx XLSX spreadsheet
DRAFT_HSHQDC-17-R-000xx_RPM_RP_RFP-2016-10-07_Atch16_RPM_Role.docx DOCX document
DRAFT_HSHQDC-17-R-000xx_RPM_RP_RFP-2016-10-07_Atch5_System_Architecture_Update_Plan.pdf PDF
DRAFT_HSHQDC-17-R-000xx_RPM_RP_RFP-2016-10-07_Atch9_Maintenance_Past_Performance_Questionnaire.pdf PDF
DRAFT_HSHQDC-17-R-000xx_RPM_RP_RFP-2016-10-07_Atch4_RFP_Questions_Form.pdf PDF
DRAFT_HSHQDC-17-R-000xx_RPM_RP_RFP-2016-10-07_Atch14_PRIDE_ICD.pdf PDF
DRAFT_HSHQDC-17-R-000xx_RPM_RP_RFP-2016-10-07_Atch12_Lifecycle_Support.pdf PDF
DRAFT_HSHQDC-17-R-000xx_RPM_RP_RFP-2016-10-07_Atch3_Contract_Data_Requirements_List.pdf PDF
DRAFT_HSHQDC-17-R-000xx_RPM_RP_RFP-2016-10-07_Atch1_IDIQ_Pricing_List.xlsx XLSX spreadsheet
DRAFT_HSHQDC-17-R-000xx_RPM_RP_RFP-2016-10-07_Atch13_Government_Furnished_Property.pdf PDF
DRAFT_HSHQDC-17-R-000xx_RPM_RP_RFP-2016-10-07_Atch11_C-to-C_Non_Disclosure.pdf PDF
DRAFT_HSHQDC-17-R-000xx_RPM_RP_RFP-2016-10-07_Atch2_Statement_Of_Requirements.pdf PDF
DRAFT_HSHQDC-17-R-000xx_RPM_RP_RFP-2016-10-07_Atch8_Delivery_Past_Performance_Questionnaire.pdf PDF
DRAFT_HSHQDC-17-R-000xx_RPM_RP_RFP-2016-10-07_Atch15_System_Performance_Statement.pdf PDF
DRAFT_HSHQDC-17-R-000xx_RPM_RP_RFP-2016-10-07_Atch10_Bailment_Agreement.pdf PDF
DRAFT_HSHQDN-17-R-000XX_Attachment_18__Quarterly_Report_Template.xlsx XLSX spreadsheet
Show 40 more

Latest 50 of 54 listed here. See the rest on GovTribe.

On GovTribe

Work with this file

  • Download the original file
  • Contacts named in this file
  • Similar government files
  • Ask GovTribe AI about this file

Text version

Radiation Portal Monitor Project PRIDE Interface Control Document for Radiation Portal Monitors

Revision 0 - DRAFT

RJ Carter

July 13, 2016

Radiation Portal Monitor Replacement Program

RFP HSHQDN-17-R-0002

Attachment 14

TM-1097-DRAFT

PNNL-XXXXX

Prepared for the U.S. Department of Homeland Security Domestic Nuclear Detection Office under U.S. Department of Energy Contract DE-AC05-76RL01830

DISCLAIMER

This report was prepared as an account of work sponsored by an agency of the United States Government. Neither the United States Government nor any agency thereof, nor Battelle Memorial Institute, nor any of their employees, makes any warranty, express or implied, or assumes any legal liability or responsibility for the accuracy, completeness, or usefulness of any information, apparatus, product, or process disclosed, or represents that its use would not infringe privately owned rights. Reference herein to any specific commercial product, process, or service by trade name, trademark, manufacturer, or otherwise does not necessarily constitute or imply its endorsement, recommendation, or favoring by the United States Government or any agency thereof, or Battelle Memorial Institute. The views and opinions of authors expressed herein do not necessarily state or reflect those of the United States Government or any agency thereof.

PACIFIC NORTHWEST NATIONAL LABORATORY

operated by

BATTELLE

for the

UNITED STATES DEPARTMENT OF ENERGY

under Contract DE-AC05-76RL01830

Radiation Portal Monitor Project PRIDE Interface Control Document for Radiation Portal Monitors

RJ Carter

July 13, 2016

Prepared for the U.S. Department of Homeland Security Domestic Nuclear Detection Office under U.S. Department of Energy Contract DE-AC05-76RL01830

Pacific Northwest National Laboratory Richland, Washington 99352

TM-1097-DRAFT

PNNL-XXXXX

Revision Log and Approvals PRIDE Interface Control Document for Radiation Portal Monitors

Rev. No.
Date
Describe Changes
Pages Changed
0
7/13/2016
Draft document issued.
NA
Name and Title
Approvals
Date

Richard Carter, Responsbile Author

Kevin Dorow, Engineering Task Manager

Michael Bettinson, RPMP Manager

Note: Document approvals that were received via email are retained in the project records.

RADS ADC Identifier: xhndoL

Acronyms and Abbreviations

CBPU.S. Customs and Border Protection
COTScommercial off-the-shelf
DHSU.S. Department of Homeland Security
DNDODomestic Nuclear Detection Office
ICDInterface Control Document
PRIDEPort Radiation Inspection, Detection, and Evaluation
RPMradiation portal monitor

Page vii of vii Contents

Revision Log and Approvalsiv
Acronyms and Abbreviationsv
1Scope1
1.1Overview1
1.2Document Organization1
1.3Limitations and Restrictions1
2Additional References2
3Interface Requirements3
3.1Interface Identification and Description3
3.2Communication Mechanism3
3.2.1Message Flow3
3.2.2XML Messaging3
4RPM Events4
4.1SCAN4
4.2IMAGE4
4.3METADATA4
4.4OCR4
4.5OCRUPDATE4
4.6RELEASEDATA4
4.7REQUEST5
4.8BACKGROUND5
4.9ACK5
4.10CONFIG5
4.11THREATSTATUS5
4.12HEALTHSTATUS5
4.13SYSEVENT5
5N25 Messages6
5.1Changes from N25 Version 1.456
5.1.1Structural Changes6
5.1.2XML Schema Best Practices6
5.1.3ANSI N42.427
5.2Data Dictionary7
Appendix A – N25 Version 2.0 (proposed) Schema8
EventMessage.xsd8
N25BaseDataTypes.xsd11
DeviceHealthAndConfigMessage.xsd20
GeneralInstrumentMessage.xsd23
PortOperationsInfoMessage.xsd29
RadiationInstrumentMessage.xsd43
RequestMessage.xsd44
SystemAuditMessage.xsd46
Appendix B Sample Messages48
Ack.xml48
Background.xml48
Config.xml52
ConfigAccess.xml52
Health.xml53
Image.xml62
Login.xml63
Logout.xml63
Metadata.xml64
Ocr.xml66
OcrUpdate.xml66
ReleaseData.xml67
Request.xml69
Restart.xml70
Scan.xml70
Scan_alarmed.xml77
SysEvent.xml84
Threat.xml85

Table Table 1. Data Dictionary 7

Scope This Interface Control Document (ICD) is intended for use by radiation detection equipment vendors to develop interfaces for interoperable systems that can be used by the U.S. Department of Homeland Security (DHS) to integrate equipment manufactured by different vendors into radiation portal monitor (RPM) systems to be used at U.S. ports of entry.

The ICD specifies the interfaces between the RPM control module and external systems. This document does not specify other interfaces related to the RPM system, such as the interface between individual sensors and the control module, the command and control interface, or the interface to analysis modules.

Overview This ICD defines a set of eXtensible Markup Language (XML) messages and supporting XML schemas (.xsd file extensions) describing the communication from the RPM command module to external systems.

Document Organization This document 1) lists the events that are expected to occur within an RPM system for which external systems will be interested in receiving data and 2) provides the structure for the XML messages that the RPM system will use to communicate that data to external systems. The messages will conform to an XML schema that is provided. This schema is an update to the N25 schema. The schema files and sample message files are included as attachments to this document.

Limitations and Restrictions This document is limited to specifying the use of XML, a text-oriented language, for interactions between an RPM system and external systems that use the data generated by the RPMs. It is not intended to define communications that occur between components within an RPM system.

Additional References ANSI N42.42-2012. American National Standard Data Format for Radiation Detectors Used for Homeland Security (Revision of ANSI N42.42-2006).

Domestic Nuclear Detection Office (DNDO). 2007. Interface Control Document 1 (ICD-1) for DNDO Radiation Measurement Files. January 19, 2007. Document Number 600-ALIPT-000019 v 2.00.

Domestic Nuclear Detection Office. 2006. Interface Control Document 2 (ICD-2) for DNDO Radiation Analysis Results. December 20, 2006. Document Number 600-ALIPT-000020 v 1.10.

Customs and Border Protection, 2014. DHS CBP N.25 Standardized Messaging Protocol. June 26, 2014. V 1.6.0.0.

Interface Requirements This section describes the communication interface between the RPM control modules and external systems. This section describes the steps needed to establish and sustain communications, and how XML messages are sent to the external systems.

Interface Identification and Description This ICD applies to the communications from the RPM control modules to external systems such as the local data archiving system or PRIDE system that transfers messages to the U.S. Customs and Border Protection (CBP) national RPM data repository.

Communication Mechanism While it is imperative to have ensured delivery of messages from the RPM system to any external systems, it should not be incumbent upon the control module to track which messages each external systems subscribe to and ensure that the correct messages are sent to each system. Instead, the control module will be responsible for posting the event messages to a commercial off-the-shelf (COTS) message queuing system such as IBM Websphere MQ or Microsoft MQ. The external systems will subscribe to the appropriate queues to receive messages. The message queue will ensure delivery of the messages to the subscribing external systems.

External systems, such as PRIDE, may request some types of information from the RPM system. The external system will post a message to a queue and the RPM system will respond to it.

Message Flow The control module will create messages in response to events that occur within the RPM system and will add these messages to an established, outgoing message queue. The control module will also monitor a second, incoming queue for request messages coming from external systems and will respond to those messages.

External systems, such as PRIDE, will subscribe to the outgoing message queue to receive the messages posted by the RPM system. PRIDE will forward messages to the CBP national RPM data repository.

XML Messaging The messages generated by the control module will adhere to the XML schema described in this document. This schema is a modification to the N25 messaging protocol currently used by the PRIDE system to transfer RPM data from ports of entry to the CBP national data repository.

RPM Events Messages are triggered by events in the RPM system. The RPM system will send a message for the event types described in the following sections.

SCAN

A SCAN event consists of a vehicle traversing a portal or otherwise being examined. One SCAN event is generated for each such traversal, resulting in a SCAN message. The SCAN message contains both the raw RPM data and any analysis results, including any alarms triggered by the SCAN event. Each scan will have a unique Scan ID, which is used to link other events, such as IMAGE and METADATA events to the scan.

IMAGE

An IMAGE event occurs when a visual image of a vehicle is taken during a SCAN or when a chart is created from data captured during a scan. One IMAGE event is generated for each image taken or created, and one IMAGE message is generated for each IMAGE event, and the type of image is specified within the message. The IMAGE message is linked to a SCAN message via the Scan ID field.

METADATA

A METADATA event occurs when an inspection officer enters data collected during an inspection such as driver information (name, license number, date of birth, etc.), cargo information (commodity, shipper, etc.), or inspection results. The METADATA message is associated with a specific SCAN message via the Scan ID field.

OCR

An OCR event occurs if an optical character recognition (OCR) system runs separate, but in parallel to the radiation detection system. An OCR event occurs when the OCR system produces a result. The OCR message is linked to a specific SCAN message via the Scan ID field.

OCRUPDATE

An OCRUPDATE event occurs when the results from an OCR system are manually updated to correct errors.

RELEASEDATA

A RELEASEDATA event occurs when a convoy, usually a train, exits a facility. The message associated with the RELEASEDATA event identifies the vehicles or containers in the convoy and includes references to the RPM scans for those vehicles or containers.

REQUEST

REQUEST events are generated external to the RPM system and are used by other systems to request the health status, threat level status, or configuration settings of the RPM.

BACKGROUND

A BACKGROUND event is generated on a timed basis, usually every 5 minutes. The message associated with the BACKGROUND event provides updated background radiation readings for an RPM.

ACK

An ACK event is generated when a user acknowledges a radiation alarm on an RPM.

CONFIG

CONFIG events occur upon a change to the configuration parameters of a device in the RPM system or in response to a REQUEST event.

THREATSTATUS

A THREATSTATUS event triggers the generation of a threat level report. These can occur on a timed basis, in response to a change in the threat level settings, or in response to a REQUEST event.

HEALTHSTATUS

A HEALTHSTATUS event triggers the generation of a health status report. These can occur on a timed basis or in response to a REQUEST event.

SYSEVENT

A SYSEVENT event occurs when there is a system error or event in the RPM system that requires logging, but does not require a dedicated event type. There are several subtypes of the system event:

· LOGON – Occurs when a user logs on to the RPM system.

· LOGOFF – Occurs when a user logs off of the RPM system.

· CONFIGACCESS – Occurs when a user accesses the configuration options in the RPM software.

· SYSPASS – Occurs when there is a change in the RPM system password.

· UPGRADE – Occurs when there is a software upgrade to an RPM system.

· RESTART – Occurs when an RPM restarts.

· SYSTEMEVENT – Is used for events that do not fall into one of the other categories.

N25 Messages Events occurring within the RPM system trigger the generation of XML messages. These messages adhere to a modified version of the N25 schema. The updated schema is tentatively being called N25 version 2.0.

Changes from N25 Version 1.45 Structural Changes Version 1.45 of the N25 schema is actually six schemas, one for each N25 message type. The schemas all use the same namespace, and include some redundancy. Each of the six schemas uses an include statement to reference the MessageHeader.xsd file, which, like the name implies, contains the definition for the message header that is included in each N25 message. Having six separate, overlapping schemas is problematic when writing software that utilizes the N25 protocol.

In the proposed version 2.0 of N25, the inclusion is inverted. The new EventMessage.xsd file defines the elements that are common across all N25. These are the document root element, <EventMessage>, and the elements <Message Header> and <MessageContent>. Each message type is still defined in its own file, and the EventMessage.xsd references these files via include statements. Elements of the N25 schema that are common across multiple message types, but not common to all messages, are defined in a new file called N25BaseDataTypes.xsd. This file is referenced in an include statement in each of the schema files for the individual message types. Every schema file is a valid XML schema file if its included files are present. This reorganization results in a single schema that supports all six message types.

The document element for all N25 messages has been changed from <MessageEnvelope> to <EventMessage>. The new name is intended to be more descriptive, and the change allows programs built to parse N25 messages to easily distinguish version 2.0 messages from messages built to an earlier version of the N25 schema.

XML Schema Best Practices The following XML schema best practices have been applied in an attempt to make the N25 schema easier to use and to incorporate into automated tools:

· The only elements defined at the root level of a schema are elements that are intended to be used as document elements. Since all N25 messages use the <EventMessage> element as the document element, this is the only element defined at the root level of the N25 schema.

· Element type definitions use distinct names. Prior versions of N25 used the same name for some type definitions and instances of elements that used that type definition.

· No attributes are defined at the top level of the N25 schema as this can cause problems with the namespace that applies to those attributes. Instead, attributes are defined within attribute groups or within the type definition that uses the attribute.

· Uniquely identify all schema components with the id attribute.

· Redundant definitions are combined. For example, the elements <ScanIdentifierData> and <DeviceIdentifier> are both defined in multiple locations in a prior version of the N25 protocol. Some of the definitions are identical, and some have slight differences such as a change in the order of the contained elements.

· Consistent naming:

· Inconsistent abbreviations are expanded.

· Enumerations are named the same as the element or attribute for which they enumerate values with a prefix of “enum.”

· Date and time values are typed as xs:dateTime.

· Unused type definitions are removed.

ANSI N42.42

The N25 schema has been updated to use the latest version of the ANSI N42.42 schema as of the writing of this document: version 0.0.54, dated February 1, 2012, also known as ANSI N42.42-2012. Because the ICD1 and ICD2 specifications predate this version of ANSI N42.42, the proposed changes to N25 do not adhere to ICD1 or ICD2. Content written to the older standard (N42.42-2006) will not validate against this updated N25 schema.

Data Dictionary Table 1. Data Dictionary

Message Name
Message Definition
DeviceHealthAndConfigMessage
Purpose
Used to communicate health and configuration status for RPM system components.
Events
CONFIG, HEALTH, THREAT

GeneralInstrumentMessage

Purpose
Used to communicate data from instruments other than radiation detectors.
Events
IMAGE, OCR, OCRUPDATE
PortOperationsInfoMessage
Purpose
Used to communicate information related to operations at a port of entry.
Events
ACK, RELEASEDATA
RadiationInstrumentMessage
Purpose
Used to communicate data from a radiation sensor.
Events
BACKGROUND, SCAN
RequestMessage
Purpose
Used by external systems to make requests for data from an RPM system.

Events

SystemAuditMessage
Purpose
Used to communicate system events that need to be logged.
Events
ACK, CONFIGACCESS, LOGIN, LOGOUT, METADATA, RESTART, SYSEVENT

Appendix A – N25 Version 2.0 (proposed) Schema

The content of each of the XML files that make up the proposed N25 version 2.0 schema are listed below.

EventMessage.xsd <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns="http://dhs.cbp.gov/ats/SFIGateway" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://dhs.cbp.gov/ats/SFIGateway" elementFormDefault="qualified" attributeFormDefault="unqualified">

<xs:include schemaLocation="DeviceHealthAndConfigMessage.xsd"/>
<xs:include schemaLocation="GeneralInstrumentMessage.xsd"/>
<xs:include schemaLocation="PortOperationsInfoMessage.xsd"/>
<xs:include schemaLocation="RadiationInstrumentMessage.xsd"/>
<xs:include schemaLocation="RequestMessage.xsd"/>
<xs:include schemaLocation="SystemAuditMessage.xsd"/>
<xs:element name="EventMessage" id="N25.EventMessage">
<xs:annotation>
<xs:documentation>Message Envelope is the root element of the N25</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="MessageHeader" type="MessageHeaderType"/>
<xs:element name="MessageContent">
<xs:complexType>
<xs:choice>
<xs:element name="DeviceHealthAndConfigMessage" type="DeviceHealthAndConfigMessageType"/>
<xs:element name="GeneralInstrumentMessage" type="GeneralInstrumentMessageType"/>
<xs:element name="PortOperationsInfoMessage" type="PortOperationsInfoMessageType"/>
<xs:element name="RadiationInstrumentMessage" type="RadiationInstrumentMessageType"/>
<xs:element name="RequestMessage" type="RequestMessageType"/>
<xs:element name="SystemAuditMessage" type="SystemAuditMessageType"/>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="MessageHeaderType" id="N25.MessageHeaderType">
<xs:sequence>
<xs:element name="Remark" type="xs:string" minOccurs="0"/>
<xs:element name="MessageID" type="xs:string" nillable="false"/>
<xs:element name="MessageType" type="enumMessageType" nillable="false"/>
<xs:element name="N25Version" type="enumN25Version" nillable="false"/>
<xs:element name="MessageCreationDateTime" type="xs:dateTime" minOccurs="0">
<xs:annotation>
<xs:documentation>Date and Time when this message was created

</xs:documentation>

</xs:annotation>
</xs:element>
<xs:element name="MessageSentDateTime" type="xs:dateTime" minOccurs="0">
<xs:annotation>
<xs:documentation>Date and Time when this message was sent

</xs:documentation>

</xs:annotation>
</xs:element>
<xs:element name="MessageOriginLocation" type="MessageLocation">
<xs:annotation>
<xs:documentation>Message Origin Details</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="MessagePriority" type="enumMessagePriority" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="MessageLocation" id="N25.MessageLocation">
<xs:annotation>
<xs:documentation>Details identifying the origin or endpoint location of message data</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="UNLocationCode" type="xs:string" minOccurs="0"/>
<xs:element name="InspectionSiteID" type="xs:string" minOccurs="0"/>
<xs:element name="Port" type="PortType" minOccurs="0">
<xs:annotation>
<xs:documentation>Data identifying the Port</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Terminal" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation>The identifier of the Terminal</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="SystemID" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation>This could be CAS Identifier or Supervisory Computer Identifier depending on the context</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="IPaddress" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation>IP address of system lcation</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Remark" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation>Remark</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="enumMessageType" id="N25.enumMessageType">
<xs:restriction base="xs:string">
<xs:enumeration value="DeviceHealthAndConfigMessage"/>
<xs:enumeration value="GeneralInstrumentMessage"/>
<xs:enumeration value="PortOperationsInfoMessage"/>
<xs:enumeration value="RadiationInstrumentMessage"/>
<xs:enumeration value="RequestMessage"/>
<xs:enumeration value="SystemAuditMessage"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="enumN25Version" id="N25.enumN25Version">
<xs:annotation>
<xs:documentation>Because this version of the N25 schema is not backward compatible, versions prior to 2.0 are not listed in this enumeraiton.</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="2.0"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="enumMessagePriority">
<xs:restriction base="xs:string">
<xs:enumeration value="VeryHigh"/>
<xs:enumeration value="High"/>
<xs:enumeration value="Normal"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="enumEventType">
<xs:restriction base="xs:string">
<xs:enumeration value="Ack"/>
<xs:enumeration value="Background"/>
<xs:enumeration value="Config"/>
<xs:enumeration value="ConfigAccess"/>
<xs:enumeration value="Health"/>
<xs:enumeration value="Image"/>
<xs:enumeration value="LogEvent"/>
<xs:enumeration value="Metadata"/>
<xs:enumeration value="Ocr"/>
<xs:enumeration value="OcrUpdate"/>
<xs:enumeration value="ReleaseData"/>
<xs:enumeration value="Request"/>
<xs:enumeration value="Scan"/>
<xs:enumeration value="SysEvent"/>
<xs:enumeration value=""/>
</xs:restriction>
</xs:simpleType>

</xs:schema>

N25BaseDataTypes.xsd <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns="http://dhs.cbp.gov/ats/SFIGateway" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://dhs.cbp.gov/ats/SFIGateway" elementFormDefault="qualified" attributeFormDefault="unqualified">

<xs:attributeGroup name="UserAuditAttributes">
<xs:annotation>
<xs:documentation>Attributes for events initiated by a user.</xs:documentation>
</xs:annotation>
<xs:attribute name="EventDateTime" type="xs:dateTime" use="required"/>
<xs:attribute name="UserName" type="xs:string" use="required"/>
<xs:attribute name="OperatingMode" type="enumOperatingMode" use="optional"/>
<xs:attribute name="RequestingAgency" type="xs:string" use="optional"/>
<xs:attribute name="RequestID" type="xs:string" use="optional"/>
<xs:attribute name="RequestLevel" type="enumRequestLevel" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="SystemAuditAttributes">
<xs:annotation>
<xs:documentation>Attributes for system events that may or may not be associated with an individual user.</xs:documentation>
</xs:annotation>
<xs:attribute name="EventDateTime" type="xs:dateTime" use="required"/>
<xs:attribute name="UserName" type="xs:string" use="optional"/>
<xs:attribute name="OperatingMode" type="enumOperatingMode" use="optional"/>
<xs:attribute name="RequestingAgency" type="xs:string" use="optional"/>
<xs:attribute name="RequestID" type="xs:string" use="optional"/>
<xs:attribute name="RequestLevel" type="enumRequestLevel" use="optional"/>
</xs:attributeGroup>
<xs:attributeGroup name="RequestAttributes">
<xs:annotation>
<xs:documentation>Attributes for requests.</xs:documentation>
</xs:annotation>
<xs:attribute name="EventDateTime" type="xs:dateTime" use="required"/>
<xs:attribute name="RequestID" type="xs:string" use="required"/>
<xs:attribute name="RequestLevel" type="enumRequestLevel" use="optional"/>
</xs:attributeGroup>
<xs:complexType name="Error">
<xs:annotation>
<xs:documentation>Error Code and Description</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="ErrorCode" type="xs:string" minOccurs="0"/>
<xs:element name="ErrorDescription" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="PortType">
<xs:annotation>
<xs:documentation>Details identifying a Shipping Port</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="Comment" type="xs:string" minOccurs="0"/>
<xs:element name="PortID" type="xs:string">
<xs:annotation>
<xs:documentation>The UN identifier of the Port</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="PortName" type="xs:string">
<xs:annotation>
<xs:documentation>Port Name</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="City" type="xs:string">
<xs:annotation>
<xs:documentation>Port City</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Country" type="xs:string">
<xs:annotation>
<xs:documentation>Country - 2 Char ISO code</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Terminal" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="Name" minOccurs="0"/>
<xs:element name="Description" minOccurs="0"/>
<xs:element name="InspectionSite" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="Name"/>
<xs:element name="InspectionSiteID"/>
<xs:element name="Lanes" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ScanIdentifierDataType">
<xs:sequence>
<xs:element name="ScanItemID" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation>Container Number, Vehicle Identifier etc</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ScanItemIDType" type="enumIDType" minOccurs="0"/>
<xs:element name="ScanItemType" type="enumScanItemType" minOccurs="0"/>
<xs:element name="TraversalID" minOccurs="0">
<xs:annotation>
<xs:documentation>The unique ID given for this traversal. A value of -1 indicates the value is unknown </xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ScanID" minOccurs="0">
<xs:annotation>
<xs:documentation>The unique ID for this scan. </xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="DeviceIdentifierType">
<xs:sequence>
<xs:element name="DeviceType" type="enumDeviceType" minOccurs="0"/>
<xs:element name="DeviceVendor" minOccurs="0"/>
<xs:element name="DeviceModel" type="xs:string" minOccurs="0"/>
<xs:element name="DeviceVersion" type="xs:string" minOccurs="0"/>
<xs:element name="DeviceID" type="xs:string" minOccurs="0"/>
<xs:element name="ComponentType" type="enumComponentType"/>
<xs:element name="ComponentID" type="xs:string" minOccurs="0"/>
<xs:element name="DeviceInfoTimeStamp" type="xs:string" minOccurs="0"/>
<xs:element name="SoftwareVersion" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="InstrumentInformation">
<xs:annotation>
<xs:documentation>Description of the instrument</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="Remark" type="xs:string" minOccurs="0"/>
<xs:element name="InstrumentType" type="enumInstrumentType" minOccurs="0">
<xs:annotation>
<xs:documentation>Instrument type (e.g., spectrometer, personal radiation detector, ...)</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Manufacturer" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation>Instrument manufacturer</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="InstrumentModel" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation>Instrument model</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="InstrumentVersion" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation>Instrument version</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="InstrumentID" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation>Instrument identification (e.g., serial number)</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ProbeType" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation>Description of intrument's probe (i.e., detector)</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="InstrumentMode" type="enumInstrumentMode" minOccurs="0">
<xs:annotation>
<xs:documentation>Instrument mode (measure, calibrate, test, ...)</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="QualityControl" type="QualityControl" minOccurs="0">
<xs:annotation>
<xs:documentation>Instrument quality control information</xs:documentation>
</xs:annotation>
</xs:element>
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<xs:complexType name="QualityControl">
<xs:annotation>
<xs:documentation>Quality control information</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="Remark" type="xs:string" minOccurs="0"/>
<xs:element name="InspectionDate" type="xs:dateTime" minOccurs="0">
<xs:annotation>
<xs:documentation>Date of most recent instrument inspection</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="InService" type="xs:boolean" minOccurs="0">
<xs:annotation>
<xs:documentation>Is the instrument in service?</xs:documentation>
</xs:annotation>
</xs:element>
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<xs:complexType name="NameValuePair">
<xs:annotation>
<xs:documentation> To capture name-value pairs</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="Name" type="xs:string"/>
<xs:element name="Value" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="doubleUnc">
<xs:annotation>
<xs:documentation>Double value with uncertainty: first entry is value, second entry is uncertainty (absolute error, one standard deviation)</xs:documentation>
</xs:annotation>
<xs:restriction base="doubleList">
<xs:length value="2"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="durationUnc">
<xs:annotation>
<xs:documentation>Duration (time) value with uncertainty: first entry is value, second entry is uncertainty (absolute error, one standard deviation)</xs:documentation>
</xs:annotation>
<xs:restriction base="durationList">
<xs:length value="2"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="coordinateList">
<xs:annotation>
<xs:documentation>Geographic coordinates: first two entries are latitude and longitude; third entry (optional) is elevation in meters relative to ellipsoid</xs:documentation>
</xs:annotation>
<xs:restriction base="decimalList">
<xs:minLength value="2"/>
<xs:maxLength value="3"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="booleanList">
<xs:annotation>
<xs:documentation>List of booleans</xs:documentation>
</xs:annotation>
<xs:list itemType="xs:boolean"/>
</xs:simpleType>
<xs:simpleType name="decimalList">
<xs:annotation>
<xs:documentation>List of decimals</xs:documentation>
</xs:annotation>
<xs:list itemType="xs:decimal"/>
</xs:simpleType>
<xs:simpleType name="doubleList">
<xs:annotation>
<xs:documentation>List of doubles</xs:documentation>
</xs:annotation>
<xs:list itemType="xs:double"/>
</xs:simpleType>
<xs:simpleType name="durationList">
<xs:annotation>
<xs:documentation>List of durations</xs:documentation>
</xs:annotation>
<xs:list itemType="xs:duration"/>
</xs:simpleType>
<xs:simpleType name="nonNegativeIntegerList">
<xs:annotation>
<xs:documentation>List of nonNegativeIntegers</xs:documentation>
</xs:annotation>
<xs:list itemType="xs:nonNegativeInteger"/>
</xs:simpleType>
<xs:complexType name="Coordinates">
<xs:annotation>
<xs:documentation>Geographical coordinates (latitude, longitude, optional elevation)</xs:documentation>
</xs:annotation>
<xs:simpleContent>
<xs:extension base="coordinateList">
<xs:attribute name="Datum" type="xs:positiveInteger">
<xs:annotation>
<xs:documentation>EPSG map datum reference identification number (see www.epsg.org)</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="Time" type="xs:dateTime">
<xs:annotation>
<xs:documentation>Date/time of coordinates measurement</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:simpleType name="enumComponentType">
<xs:annotation>
<xs:documentation>Is this a Generic Device or ControlBox, SCS,Computer,</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="Device"/>
<xs:enumeration value="ControlBox"/>
<xs:enumeration value="SCS"/>
<xs:enumeration value="PCS"/>
<xs:enumeration value="Computer"/>
<xs:enumeration value="Detector"/>
<xs:enumeration value="Sensor"/>
<xs:enumeration value="Annuciator"/>
<xs:enumeration value="Switch"/>
<xs:enumeration value="Other"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="enumDeviceType">
<xs:annotation>
<xs:documentation>Is this a Generic Device or ControlBox, LPR, OCR, RPM,</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="PortalMonitor"/>
<xs:enumeration value="SpecPortal"/>
<xs:enumeration value="RadionuclideIdentifier"/>
<xs:enumeration value="PersonalRadiationDetector"/>
<xs:enumeration value="SurveyMeter"/>
<xs:enumeration value="Spectrometer"/>
<xs:enumeration value="VISImage"/>
<xs:enumeration value="RadioGraphDevice"/>
<xs:enumeration value="OCR"/>
<xs:enumeration value="LPR"/>
<xs:enumeration value="Other"/>
<xs:enumeration value="Unavailable"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="enumRequestLevel">
<xs:restriction base="xs:string">
<xs:enumeration value="FullRequest"/>
<xs:enumeration value="PartialRequest"/>
<xs:enumeration value="SingleRequest"/>
<xs:enumeration value="TradeDataRequest"/>
<xs:enumeration value="ScanDataRequest"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="enumCredentialsType">
<xs:annotation>
<xs:documentation/>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="Authenticated"/>
<xs:enumeration value="Not Authenticated"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="enumInstrumentType">
<xs:annotation>
<xs:documentation>Instrument type</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="PortalMonitor"/>
<xs:enumeration value="SpecPortal"/>
<xs:enumeration value="RadionuclideIdentifier"/>
<xs:enumeration value="PersonalRadiationDetector"/>
<xs:enumeration value="SurveyMeter"/>
<xs:enumeration value="Spectrometer"/>
<xs:enumeration value="VISImage"/>
<xs:enumeration value="RadioGraphDevice"/>
<xs:enumeration value="OCR"/>
<xs:enumeration value="LPR"/>
<xs:enumeration value="Other"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="enumInstrumentMode">
<xs:annotation>
<xs:documentation>Instrument mode</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="Measure"/>
<xs:enumeration value="Calibrate"/>
<xs:enumeration value="Test"/>
<xs:enumeration value="Other"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="enumOperatingMode">
<xs:annotation>
<xs:documentation>LIVE or SIMULATED</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="LIVE"/>
<xs:enumeration value="SIMULATED"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="enumThreatLevelSetting">
<xs:annotation>
<xs:documentation>This is non-color threat level setting which is a standard way to denote threat level because threat color may not be valid for all devices</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="Highest"/>
<xs:enumeration value="High"/>
<xs:enumeration value="Medium"/>
<xs:enumeration value="Low"/>
<xs:enumeration value="Lowest"/>
<xs:enumeration value="Uknown"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="enumThreatLevelColor">
<xs:annotation>
<xs:documentation/>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="RED"/>
<xs:enumeration value="ORANGE"/>
<xs:enumeration value="YELLOW"/>
<xs:enumeration value="BLUE"/>
<xs:enumeration value="GREEN"/>
<xs:enumeration value="UNKNOWN"/>
<xs:enumeration value="INACTIVE"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="enumIDType">
<xs:restriction base="xs:string">
<xs:enumeration value="ContainerNumber"/>
<xs:enumeration value="VIN"/>
<xs:enumeration value="LicensePlateNumber"/>
<xs:enumeration value="VehicleID"/>
<xs:enumeration value="BarCodeID"/>
<xs:enumeration value="PackageID"/>
<xs:enumeration value="Unavailable"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="enumScanItemType">
<xs:restriction base="xs:string">
<xs:enumeration value="Container"/>
<xs:enumeration value="Vehicle"/>
<xs:enumeration value="Package"/>
<xs:enumeration value="UnknownType"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="enumSpeedUnits">
<xs:annotation>
<xs:documentation>Speed units</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="kph"/>
<xs:enumeration value="m/s"/>
<xs:enumeration value="mph"/>
<xs:enumeration value="fps"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="enumDistanceUnits">
<xs:annotation>
<xs:documentation>Distance units</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="mm"/>
<xs:enumeration value="cm"/>
<xs:enumeration value="m"/>
<xs:enumeration value="km"/>
<xs:enumeration value="in"/>
<xs:enumeration value="ft"/>
<xs:enumeration value="mi"/>
</xs:restriction>
</xs:simpleType>

</xs:schema>

DeviceHealthAndConfigMessage.xsd <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns="http://dhs.cbp.gov/ats/SFIGateway" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://dhs.cbp.gov/ats/SFIGateway" elementFormDefault="qualified" attributeFormDefault="unqualified">

<xs:include schemaLocation="N25BaseDataTypes.xsd"/>
<xs:complexType name="DeviceHealthAndConfigMessageType">
<xs:sequence>
<xs:element name="GlobalConfigData" type="GlobalConfigDataType" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Notification Table Activity code: GLOBALCONFIG</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="InstrumentUpgradeData" type="InstrumentUpgradeDataType" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Notification Table Activity code: UPGRADE</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="DeviceHealthStatus" type="DeviceHealthStatusType" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Notification Table Activity code: HEALTHSTATUS</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="DeviceThreatLevelSetting" type="DeviceThreatLevelSettingType" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Notification Table Activity code: THREATSTATUS</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="GlobalConfigDataType">
<xs:sequence>
<xs:element name="ConfigInformation">
<xs:complexType>
<xs:sequence>
<xs:element name="DeviceParameters" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="Config" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="Name" type="xs:string" use="required"/>
<xs:attribute name="Value" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="DeviceCommunicationStatus" type="enumDeviceStatus" minOccurs="0"/>
<xs:element name="DeviceIdentifier" type="DeviceIdentifierType" nillable="true" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="CredentialsVerified" type="enumCredentialsType" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attributeGroup ref="SystemAuditAttributes"/>
</xs:complexType>
<xs:complexType name="InstrumentUpgradeDataType">
<xs:sequence>
<xs:element name="UpgradeInformation">
<xs:complexType>
<xs:sequence>
<xs:element name="PrevVersion" type="xs:string"/>
<xs:element name="CurrVersion" type="xs:string"/>
<xs:element name="CredentialsVerified" type="enumCredentialsType" minOccurs="0"/>
<xs:element name="DeviceIdentifier" type="DeviceIdentifierType" nillable="true" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="InstrumentInformation" type="InstrumentInformation" minOccurs="0">
<xs:annotation>
<xs:documentation>Description of the instrument</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
<xs:attributeGroup ref="SystemAuditAttributes"/>
</xs:complexType>
<xs:complexType name="DeviceHealthStatusType">
<xs:sequence>
<xs:element name="HealthReport" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Report on each control box that was requested in the HealthStatusRequest message</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="DeviceIdentifier" type="DeviceIdentifierType" minOccurs="0"/>
<xs:element name="DeviceCommunicationStatus" type="enumDeviceStatus" minOccurs="0"/>
<xs:element name="HealthStatus" type="enumHealthStatus" minOccurs="0"/>
<xs:element name="HealthDetails" type="NameValuePair" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:any namespace="##other" minOccurs="0"/>
</xs:sequence>
<xs:attributeGroup ref="SystemAuditAttributes"/>
</xs:complexType>
<xs:complexType name="DeviceThreatLevelSettingType">
<xs:sequence>
<xs:element name="ThreatLevelReport" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>The threat level being reported for this CB. For example, if the ControlBoxStatus is "configured and not communicating", the ThreatLevel and EventDateTime will reflect a threat level that was at a previous date/time. If the ControlBoxStatus is "configured and communicating", then the current threat level and current date/time are to be entered. If the ControlBoxStatus is "configure" or "unknown", then a 0000-00-00T00:00:00Z will be entered.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="DeviceIdentifier" type="DeviceIdentifierType" nillable="true" minOccurs="0"/>
<xs:element name="DeviceCommunicationStatus" type="enumDeviceStatus" minOccurs="0"/>
<xs:element name="ThreatLevelColor" type="enumThreatLevelColor" minOccurs="0"/>
<xs:element name="ThreatLevelSetting" type="enumThreatLevelSetting" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attributeGroup ref="SystemAuditAttributes"/>
</xs:complexType>
<xs:simpleType name="enumHealthStatus">
<xs:annotation>
<xs:documentation/>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="Full Functionality"/>
<xs:enumeration value="Partial Functionality"/>
<xs:enumeration value="No Functionality"/>
<xs:enumeration value="Unknown"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="enumDeviceStatus">
<xs:restriction base="xs:string">
<xs:enumeration value="Configured and Communicating"/>
<xs:enumeration value="Configured and Not Communicating"/>
<xs:enumeration value="Not Configured"/>
<xs:enumeration value="Unknown"/>
</xs:restriction>
</xs:simpleType>

</xs:schema>

GeneralInstrumentMessage.xsd <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns="http://dhs.cbp.gov/ats/SFIGateway" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://dhs.cbp.gov/ats/SFIGateway" elementFormDefault="qualified" attributeFormDefault="unqualified">

<xs:include schemaLocation="N25BaseDataTypes.xsd"/>
<xs:complexType name="GeneralInstrumentMessageType">
<xs:sequence>
<xs:element name="ReadingType">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Scan"/>
<xs:enumeration value="Background"/>
<xs:enumeration value="Analysis"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="ScanIdentifierData" type="ScanIdentifierDataType"/>
<xs:element name="InstrumentData" type="InstrumentDataType"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="InstrumentDataType">
<xs:annotation>
<xs:documentation>Contains instrument data in the form of Measurement elements</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="Remark" type="xs:string" minOccurs="0"/>
<xs:element name="Measurement" type="Measurement" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>A "measurement" from an instrument</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Calibration" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:annotation>

This is the start of the file's text. The full file is on GovTribe.

File details come from the government source that posted it. Updated .