-- XML schema extracted from ITU-T H.783 (V2) (05/2019)
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns:dsam="http://www.itu.int/xml-namespace/itu-t/h.783/dsam" xmlns:ca="urn:ietf:params:xml:ns:pidf:geopriv10:civicAddr" xmlns:gml="http://www.opengis.net/gml" xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.itu.int/xml-namespace/itu-t/h.783/dsam" elementFormDefault="qualified">
<annotation>
<documentation xml:lang="en">
<![CDATA[This schema is for the audience measurement of digital signages (ITU-T H.783).
The namespace of the schema is "http://www.itu.int/xml-namespace/itu-t/h.783/dsam", and
its preferred namespace prefix is "dsam".]]>
</documentation>
</annotation>
<import namespace="urn:ietf:params:xml:ns:pidf:geopriv10:civicAddr" schemaLocation="rfc5139.xsd"/>
<import namespace="http://www.opengis.net/gml" schemaLocation="./gml/2.1.2/gml.xsd"/>
<import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/03/xml.xsd"/>
<!-- ========================================================= -->
<!-- ========================================================= -->
<!-- Basic Data Types -->
<!-- ========================================================= -->
<!-- ========================================================= -->
<complexType name="IDREFType">
<attribute name="idref" type="NMTOKEN" use="required"/>
</complexType>
<complexType name="IDREFSType">
<attribute name="idrefs" type="NMTOKENS" use="required"/>
</complexType>
<!-- ========================================================= -->
<!-- ========================================================= -->
<!-- Metadata for Audience & Environment Information -->
<!-- ========================================================= -->
<!-- ========================================================= -->
<!-- -->
<!-- ============================================== -->
<!-- 1. Audience Information (Table 2) -->
<!-- ============================================== -->
<complexType name="AudienceInformationType">
<sequence>
<element name="AgeGroup" type="dsam:AgeGroupType" minOccurs="0"/>
<element name="GenderGroup" type="dsam:GenderGroupType" minOccurs="0"/>
<element name="Relation" type="dsam:RelationType" minOccurs="0"/>
<element name="Activity" type="dsam:ActivityType" minOccurs="0"/>
<element name="AudienceDistance" type="dsam:DistanceType" minOccurs="0"/>
<element name="VehicleNumber" type="nonNegativeInteger" minOccurs="0"/>
</sequence>
</complexType>
<!-- ============================================== -->
<complexType name="AgeGroupType">
<sequence>
<element name="ChildNumber" type="nonNegativeInteger" minOccurs="0"/>
<element name="YoungAdultNumber" type="nonNegativeInteger" minOccurs="0"/>
<element name="AdultNumber" type="nonNegativeInteger" minOccurs="0"/>
<element name="SeniorNumber" type="nonNegativeInteger" minOccurs="0"/>
</sequence>
</complexType>
<!-- ============================================== -->
<complexType name="GenderGroupType">
<sequence>
<element name="MaleNumber" type="nonNegativeInteger" minOccurs="0"/>
<element name="FemaleNumber" type="nonNegativeInteger" minOccurs="0"/>
</sequence>
</complexType>
<!-- ============================================== -->
<complexType name="RelationType">
<sequence>
<element name="FamilyGroupNumber" type="nonNegativeInteger" minOccurs="0"/>
<element name="FriendsGroupNumber" type="nonNegativeInteger" minOccurs="0"/>
</sequence>
</complexType>
<!-- ============================================== -->
<complexType name="ActivityType">
<sequence>
<element name="ActiveAudienceNumber" type="nonNegativeInteger" minOccurs="0"/>
<element name="PassiveAudienceNumber" type="nonNegativeInteger" minOccurs="0"/>
<element name="PasserByNumber" type="nonNegativeInteger" minOccurs="0"/>
<element name="AverageViewingTime" type="nonNegativeInteger" minOccurs="0"/>
</sequence>
</complexType>
<!-- ============================================== -->
<complexType name="DistanceType">
<simpleContent>
<extension base="nonNegativeInteger">
<attribute name="unit" type="dsam:LengthUnitType" use="optional" default="m"/>
</extension>
</simpleContent>
</complexType>
<simpleType name="LengthUnitType">
<restriction base="NMTOKEN">
<enumeration value="cm"/>
<enumeration value="m"/>
<enumeration value="inch"/>
<enumeration value="feet"/>
<enumeration value="Other"/>
</restriction>
</simpleType>
<!-- ============================================== -->
<!-- 2. Environmental Information (Table 3) -->
<!-- ============================================== -->
<complexType name="EnvironmentInformationType">
<sequence>
<element name="BrightnessLevel" type="nonNegativeInteger" minOccurs="0"/>
<element name="SoundLevel" type="dsam:SoundPressureLevelType" minOccurs="0"/>
<element name="Temperature" type="dsam:TemperatureType" minOccurs="0"/>
<element name="Humidity" type="dsam:ObservedDataValueType" minOccurs="0"/>
<element name="WeatherDescriptionList" type="dsam:WeatherDescriptionListType" minOccurs="0"/>
</sequence>
</complexType>
<!-- ============================================== -->
<complexType name="SoundPressureLevelType">
<simpleContent>
<extension base="nonNegativeInteger">
<attribute name="unit" type="NMTOKEN" use="optional" default="dB"/>
</extension>
</simpleContent>
</complexType>
<!-- ============================================== -->
<complexType name="TemperatureType">
<simpleContent>
<extension base="integer">
<attribute name="unit" type="dsam:TemperatureUnitType" use="optional" default="Celsius"/>
</extension>
</simpleContent>
</complexType>
<simpleType name="TemperatureUnitType">
<restriction base="NMTOKEN">
<enumeration value="Celsius"/>
<enumeration value="Fahrenheit"/>
<enumeration value="Other"/>
</restriction>
</simpleType>
<!-- ============================================== -->
<complexType name="ObservedDataValueType">
<simpleContent>
<extension base="nonNegativeInteger">
<attribute name="unit" type="dsam:ValueUnitType" use="optional" default="Percentage"/>
</extension>
</simpleContent>
</complexType>
<simpleType name="ValueUnitType">
<restriction base="NMTOKEN">
<enumeration value="Percentage"/>
<enumeration value="Absolute"/>
<enumeration value="Other"/>
</restriction>
</simpleType>
<!-- ============================================== -->
<simpleType name="WeatherDescriptionListType">
<list itemType="dsam:WeatherDescriptionType"/>
</simpleType>
<simpleType name="WeatherDescriptionType">
<restriction base="NMTOKEN">
<enumeration value="Snowy"/>
<enumeration value="Rainy"/>
<enumeration value="Sunny"/>
<enumeration value="Cloudy"/>
<enumeration value="Windy"/>
<enumeration value="Other"/>
</restriction>
</simpleType>
<!-- ========================================================= -->
<!-- ========================================================= -->
<!-- Metadata for AM Messages -->
<!-- ========================================================= -->
<!-- ========================================================= -->
<!-- -->
<!-- ============================================== -->
<!-- 1. Configuration for AM data (Table 4) -->
<!-- ============================================== -->
<element name="Configuration" type="dsam:ConfigurationType"/>
<complexType name="ConfigurationType">
<sequence>
<element name="MeasurementTarget" type="dsam:MeasurementTargetType" minOccurs="0"/>
<element name="MeasurmentCategory" type="dsam:MeasurmentCategoryType" minOccurs="0"/>
<element name="MeasurementSchedule" type="dsam:MeasurementScheduleType" maxOccurs="unbounded"/>
<element name="MeasurementDeliverySchedule" type="dsam:MeasurementDeliveryScheduleType" minOccurs="0"/>
</sequence>
<attribute name="measurementRequestId" type="NMTOKEN" use="required"/>
<attribute name="aggregationFunctionIdref" type="NMTOKEN" use="required"/>
</complexType>
<!-- ============================================== -->
<!-- Measurement Target (Table 5) -->
<!-- ============================================== -->
<complexType name="MeasurementTargetType">
<sequence>
<element name="TargetTerminalDeviceList" type="dsam:IDREFSType" minOccurs="0"/>
<element name="TargetTerminalGroupList" type="dsam:IDREFSType" minOccurs="0"/>
</sequence>
</complexType>
<!-- ============================================== -->
<!-- Measurment Category (Table 6) -->
<!-- ============================================== -->
<complexType name="MeasurmentCategoryType">
<sequence>
<element name="MeasurementCategoryAudience" type="dsam:MeasurementCategoryAudienceType" minOccurs="0" maxOccurs="unbounded"/>
<element name="MeasurementCategoryAmbient" type="dsam:MeasurementCategoryAmbientType" minOccurs="0" maxOccurs="unbounded"/>
<element name="MeasurmentLocationInclusion" type="dsam:MeasurmentLocationInclusionType" minOccurs="0"/>
</sequence>
</complexType>
<!-- ============================================== -->
<complexType name="MeasurementCategoryAudienceType">
<sequence>
<element name="AudienceCategoryList" type="dsam:AudienceCategoryListType" minOccurs="0"/>
<element name="AllAudienceCategoryExceptList" type="dsam:AudienceCategoryListType" minOccurs="0"/>
</sequence>
</complexType>
<!-- ============================================== -->
<simpleType name="AudienceCategoryListType">
<list itemType="dsam:AudienceCategoryType"/>
</simpleType>
<simpleType name="AudienceCategoryType">
<restriction base="NMTOKEN">
<enumeration value="AgeGroup"/>
<enumeration value="GenderGroup"/>
<enumeration value="Relation"/>
<enumeration value="Activity"/>
<enumeration value="AudienceDistance"/>
<enumeration value="VehicleNumber"/>
<enumeration value="Other"/>
</restriction>
</simpleType>
<!-- ============================================== -->
<complexType name="MeasurementCategoryAmbientType">
<sequence>
<element name="AmbientCategoryList" type="dsam:AmbientCategoryListType" minOccurs="0"/>
<element name="AllAmbientCategoryExceptList" type="dsam:AmbientCategoryListType" minOccurs="0"/>
</sequence>
</complexType>
<!-- ============================================== -->
<simpleType name="AmbientCategoryListType">
<list itemType="dsam:AmbientCategoryType"/>
</simpleType>
<simpleType name="AmbientCategoryType">
<restriction base="NMTOKEN">
<enumeration value="Brightness"/>
<enumeration value="SoundLevel"/>
<enumeration value="Temperature"/>
<enumeration value="Humidity"/>
<enumeration value="Weather"/>
<enumeration value="Other"/>
</restriction>
</simpleType>
<!-- ============================================== -->
<simpleType name="MeasurmentLocationInclusionType">
<restriction base="NMTOKEN">
<enumeration value="Inclusion"/>
<enumeration value="Exclusion"/>
</restriction>
</simpleType>
<!-- ============================================== -->
<!-- Measurement Schedule (Table 7) -->
<!-- ============================================== -->
<complexType name="MeasurementScheduleType">
<sequence>
<element name="MeasurementPeriod" type="dsam:MeasurementPeriodType" minOccurs="0" maxOccurs="unbounded"/>
<element name="MeasurmentInterval" type="dsam:TimeIntervalType" minOccurs="0"/>
</sequence>
</complexType>
<!-- ============================================== -->
<complexType name="MeasurementPeriodType">
<sequence>
<element name="AppliedDayOfTheWeekList" type="dsam:DayOfTheWeekListType" default="Everyday" minOccurs="0"/>
</sequence>
<attribute name="startDay" type="date" use="optional"/>
<attribute name="endDay" type="date" use="optional"/>
<attribute name="startTime" type="time" use="optional"/>
<attribute name="endTime" type="time" use="optional" default="23:59:59.99"/>
</complexType>
<!-- ============================================== -->
<simpleType name="DayOfTheWeekListType">
<list itemType="dsam:DayOfTheWeekType"/>
</simpleType>
<simpleType name="DayOfTheWeekType">
<restriction base="NMTOKEN">
<enumeration value="Sunday"/>
<enumeration value="Monday"/>
<enumeration value="Tuesday"/>
<enumeration value="Wednesday"/>
<enumeration value="Thursday"/>
<enumeration value="Friday"/>
<enumeration value="Saturday"/>
<enumeration value="Weekday"/>
<enumeration value="Weedend"/>
<enumeration value="PublicHoliday"/>
<enumeration value="Everyday"/>
<enumeration value="Other"/>
</restriction>
</simpleType>
<!-- ============================================== -->
<complexType name="TimeIntervalType">
<simpleContent>
<extension base="nonNegativeInteger">
<attribute name="unit" type="dsam:TimeUnitType" use="optional"/>
</extension>
</simpleContent>
</complexType>
<simpleType name="TimeUnitType">
<restriction base="NMTOKEN">
<enumeration value="Hour"/>
<enumeration value="Minute"/>
<enumeration value="Second"/>
<enumeration value="Other"/>
</restriction>
</simpleType>
<!-- ============================================== -->
<!-- Measurement Delivery Schedule (Table 8) -->
<!-- ============================================== -->
<complexType name="MeasurementDeliveryScheduleType">
<sequence>
<element name="DeliveryAddress" type="anyURI" minOccurs="0" maxOccurs="unbounded"/>
<element name="ImmediatePush" type="dsam:ImmediatePushType" minOccurs="0"/>
<element name="DelayedDelivery" type="dsam:DelayedDeliveryType" minOccurs="0"/>
<element name="Pull" type="dsam:PushType" minOccurs="0"/>
</sequence>
</complexType>
<!-- ============================================== -->
<complexType name="ImmediatePushType">
<sequence>
<element name="MeasurementReportNumberByPush" type="positiveInteger" minOccurs="0"/>
</sequence>
</complexType>
<!-- ============================================== -->
<complexType name="DelayedDeliveryType">
<sequence>
<element name="DeliveryWindow" type="dsam:TimePeriodType" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</complexType>
<!-- ============================================== -->
<complexType name="TimePeriodType">
<attribute name="startTime" type="time" use="optional"/>
<attribute name="endTime" type="time" use="optional"/>
</complexType>
<!-- ============================================== -->
<complexType name="PushType">
<!-- TBD -->
</complexType>
<!-- ============================================== -->
<!-- 2. Measurement Report Request (Table 9) -->
<!-- ============================================== -->
<element name="MeasurementReportRequest" type="dsam:MeasurementReportRequestType"/>
<complexType name="MeasurementReportRequestType">
<attribute name="measurementRequestIdrefs" type="NMTOKENS" use="required"/>
</complexType>
<!-- ============================================== -->
<!-- 3. Measurement Report Package (Table 10) -->
<!-- ============================================== -->
<element name="MeasurementReportPackage" type="dsam:MeasurementReportPackageType"/>
<complexType name="MeasurementReportPackageType">
<sequence>
<element name="MeasurementReport" type="dsam:MeasurementReportType" maxOccurs="unbounded"/>
</sequence>
<attribute name="terminalDeviceIdref" type="NMTOKEN" use="required"/>
</complexType>
<!-- ============================================== -->
<!-- Measurement Report (Table 11) -->
<!-- ============================================== -->
<complexType name="MeasurementReportType">
<sequence>
<element name="MeasurementReportTriggerTime" type="dateTime"/>
<element name="MeasuringTime" type="dateTime" minOccurs="0"/>
<element name="MeasuringLocation" type="dsam:MeasuringLocationType" minOccurs="0"/>
<element name="MeasuringInformation" type="dsam:MeasuringInformationType"/>
</sequence>
<attribute name="measurementRequestIdref" type="NMTOKEN" use="required"/>
</complexType>
<!-- ============================================== -->
<complexType name="MeasuringLocationType">
<sequence>
<element name="GeoLocation" type="gml:PointType" minOccurs="0"/>
<element name="PostalLocation" type="ca:civicAddress" minOccurs="0"/>
</sequence>
</complexType>
<!-- ============================================== -->
<complexType name="MeasuringInformationType">
<sequence>
<element name="AudienceInformation" type="dsam:AudienceInformationWithDetectionMethodType" minOccurs="0" maxOccurs="unbounded"/>
<element name="EnvironmentInformation" type="dsam:EnvironmentInformationWithDetectionMethodType" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</complexType>
<!-- ============================================== -->
<complexType name="AudienceInformationWithDetectionMethodType">
<complexContent>
<extension base="dsam:AudienceInformationType">
<sequence>
<element name="AudienceDetectionMethod" type="dsam:AudienceDetectionMethodType" minOccurs="0"/>
</sequence>
</extension>
</complexContent>
</complexType>
<!-- ============================================== -->
<simpleType name="AudienceDetectionMethodType">
<restriction base="NMTOKEN">
<enumeration value="Camera"/>
<enumeration value="Microphone"/>
<enumeration value="TouchScreen"/>
<enumeration value="RFIDReader"/>
<enumeration value="Other"/>
</restriction>
</simpleType>
<!-- ============================================== -->
<complexType name="EnvironmentInformationWithDetectionMethodType">
<complexContent>
<extension base="dsam:EnvironmentInformationType">
<sequence>
<element name="EnvironmentDetectionMethod" type="dsam:EnvironmentDetectionMethodType" minOccurs="0"/>
</sequence>
</extension>
</complexContent>
</complexType>
<!-- ============================================== -->
<simpleType name="EnvironmentDetectionMethodType">
<restriction base="NMTOKEN">
<enumeration value="Thermometer"/>
<enumeration value="Other"/>
</restriction>
</simpleType>
</schema>