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