-- XSD schema extracted from ITU-T J.302 (10/2016)

<?xml version="1.0" encoding="UTF-8"?> <schema xmlns:ARSTV="urn:arstv:ver1:represent:ARSTVmetadata:2011:07" xmlns:mpeg7="urn:mpeg:mpeg7:schema:2001" xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:arstv:ver1:represent:ARSTVmetadata:2011:07" elementFormDefault="qualified" attributeFormDefault="unqualified"> <import namespace="urn:mpeg:mpeg7:schema:2001" schemaLocation="mpeg7-cdp-2004.xsd"/> <!-- ################################################ --> <element name="ARSTV" type="ARSTV:ARSTVType"/> <complexType name="ARSTVType"> <sequence> <element name="DescriptionMetadata" type="mpeg7:DescriptionMetadataType" minOccurs="0"/> <element name="InitialInstruction" type="abm:InitialInstructionType" minOccurs="0" maxOccurs="unbounded"/> <element name="Instruction" type="ARSTM:InstructionType" minOccurs="0" maxOccurs="unbounded"/> </sequence> </complexType> <!-- ################################################ --> <!-- Inital Instruction type --> <!-- ################################################ --> <element name="InitInstruction" type="arstv:InitialInstructionType"/> <complexType name="InitialInstructionType"> <sequence> <element name="AugmentedObject" type="arstv:AugmentedObjectType" maxOccurs="unbounded"/> </sequence> <attribute name="id" type="ID" use="optional"/> <attribute name="contentsNum" type="unsignedInt" use="optional"/> </complexType> <!-- ################################################ --> <!-- Instruction Base type --> <!-- ################################################ --> <complexType name="InstructionBaseType" abstract="true"> <complexContent> <restriction base="anyType"> <attribute name="id" type="ID" use="optional"/> </restriction> </complexContent> </complexType> <!-- ################################################ --> <!-- Instruction type --> <!-- ################################################ --> <complexType name="InstructionType"> <complexContent> <extension base="ARSTV:InstructionBaseType"> <sequence> <element name="ReferenceResources" type="arstv:ReferenceResourcesType" minOccurs="0"/> <element name="AugmentationRegion" type=" arstv:AugmentationRegionType" /> <element name="AugmentedObject" type=" arstv:AugmentedObjectType" /> <element name="EnvironmentInfo" type=" arstv:EnvironmentInfoType" minOccurs="0" maxOccurs="unbounded"/> <element name="UserInteraction" type=" arstv:UserInteractionType" minOccurs="0" maxOccurs="unbounded"/> </sequence> <attribute name="firstInstFlag" type="boolean" use="required"/> <attribute name="augRegionIndicator" type="unsignedInt" use="required"/> <attribute name="pts" type="unsignedInt" use="required"/> <attribute name="duration" type="unsignedInt" use="required"/> <attribute name="timeScale" type="unsignedInt" use="required"/> <attribute name="numInstruction" type="unsignedInt" use="required"/> <attribute name="priority" type="unsignedInt" use="required"/> </extension> </complexContent> </complexType> <!-- ########################################## --> <!-- Definition of Reference Resource Type --> <!-- ########################################## --> <complexType name="ReferenceResourcesType"> <sequence> <element name="Resources" type="string" maxOccurs="unbounded"/> </sequence> </complexType> <!-- ########################################## --> <!-- Definition of Augmentation Region Type --> <!-- ########################################## --> <complexType name="AugmentationRegionType"> <sequence> <element name="TransformMatrix" type="ARSTV:FloatMatrixType" minOccurs="0"/> <element name="Coordinates" type="ARSTV:CoordinateType" minOccurs="0"/> <element name="SRT" type="ARSTV:SRTType" minOccurs="0"/> </sequence> </complexType> <complexType name="CoordinateType"> <attribute name="x1" type="ARSTV:zeroToOneType" use="required"/> <attribute name="y1" type="ARSTV:zeroToOneType" use="required"/> <attribute name="z1" type="ARSTV:minusOneToOneType" use="required"/> <attribute name="x2" type="ARSTV:zeroToOneType" use="required"/> <attribute name="y2" type="ARSTV:zeroToOneType" use="required"/> <attribute name="z2" type="ARSTV:minusOneToOneType" use="required"/> <attribute name="x3" type="ARSTV:zeroToOneType" use="required"/> <attribute name="y3" type="ARSTV:zeroToOneType" use="required"/> <attribute name="z3" type="ARSTV:minusOneToOneType" use="required"/> <attribute name="x4" type="ARSTV:zeroToOneType" use="required"/> <attribute name="y4" type="ARSTV:zeroToOneType" use="required"/> <attribute name="z4" type="ARSTV:minusOneToOneType" use="required"/> </complexType> <complexType name="SRTType"> <attribute name="sx" type="float" use="required"/> <attribute name="sy" type="float" use="required"/> <attribute name="sz" type="float" use="required"/> <attribute name="rx" type="float" use="required"/> <attribute name="ry" type="float" use="required"/> <attribute name="rz" type="float" use="required"/> <attribute name="tx" type="float" use="required"/> <attribute name="ty" type="float" use="required"/> <attribute name="tz" type="float" use="required"/> </complexType> <!-- FloatMatrixType --> <complexType name="FloatMatrixType"> <simpleContent> <extension base="ARSTV:FloatVector"> <attribute ref="mpeg7:dim" use="required"/> </extension> </simpleContent> </complexType> <simpleType name="FloatVector"> <list itemType="float"/> </simpleType> <simpleType name="zeroToOneType"> <restriction base="float"> <minInclusive value="0.0"/> <maxInclusive value="+1.0"/> </restriction> </simpleType> <simpleType name="minusOneToOneType"> <restriction base="float"> <minInclusive value="-1.0"/> <maxInclusive value="+1.0"/> </restriction> </simpleType> <!-- ########################################## --> <!-- Definition of Augmented Object Type --> <!-- ########################################## --> <complexType name="AugmentedObjectType"> <choice> <element name="Inline" type="mpeg7:InlineMediaType" minOccurs="0"/> <element name="Remote" type="anyURI" minOccurs="0"/> <element name="Tactile" type="arstv:TactileType" minOccurs="0"/> </choice> <attribute name="targetID" type="anyURI" use="optional"/> <attribute name="clearFlag" type="boolean" use="optional"/> <attribute name="service" type="unsignedInt" use="optional" default="1"/> <simpleType> <restriction base="string"> <enumeration value="happy"/> <enumeration value="sad"/> <enumeration value="angry"/> <enumeration value="sick"/> </restriction> </simpleType> </attribute> </complexType> <!-- ########################################## --> <!-- Definition of Tactile Type --> <!-- ########################################## --> <complexType name="TactileType"> <sequence> <element name="ArrayIntensity" type="mpeg7:FloatMatrixType"/> </sequence> <attribute name="tactileEffect" type="arstv:tactileEffectType" use="required"/> <attribute name="timeSamples" type="positiveInteger" use="required"/> </complexType> <simpleType name="tactileEffectType"> <restriction base="string"> <enumeration value="pressure"/> <enumeration value="vibration"/> <enumeration value="electric"/> </restriction> </simpleType> <!-- ########################################## --> <!-- Definition of Environment Info Type --> <!-- ########################################## --> <complexType name="EnvironmentInfoType"> <sequence> <element name="GlobalPosition" type="arstv:GlobalPositionType" minOccurs="0" maxOccurs="unbounded"/> <element name="Light" type="arstv:LightType" minOccurs="0" maxOccurs="unbounded"/> <element name="Camera" type="arstv:CameraType" minOccurs="0" maxOccurs="unbounded"/> </sequence> </complexType> <!--#################################### --> <!--Definition of Global Position type --> <!--#################################### --> <complexType name="GlobalPositionType"> <sequence> <element name="Address" type="mpeg7:PlaceType" minOccurs="0"/> </sequence> <attribute name="longitude" use="required"> <simpleType> <restriction base="double"> <minInclusive value="-180.0"/> <maxInclusive value="180.0"/> </restriction> </simpleType> </attribute> <attribute name="latitude" use="required"> <simpleType> <restriction base="double"> <minInclusive value="-90.0"/> <maxInclusive value="90.0"/> </restriction> </simpleType> </attribute> </complexType> <!--#################################### --> <!--Definition of Light type --> <!--#################################### --> <complexType name="LightType"> <sequence> <element name="Position" type="ARSTV:DirectionType" minOccurs="0"/> <element name="Rotation" type="ARSTV:RotationType" minOccurs="0"/> </sequence> <attribute name="type" type="unsignedInt" use="optional"/> <attribute name="color" type="ARSTV:ColorType" use="optional"/> <attribute name="intensity" type="ARSTV:zeroToOneType"/> </complexType> <complexType name="PositionType"> <attribute name="px" type="float" use="optional"/> <attribute name="py" type="float" use="optional"/> <attribute name="pz" type="float" use="optional"/> </complexType> <complexType name="RotationType"> <attribute name="vx" type="float" use="optional"/> <attribute name="vy" type="float" use="optional"/> <attribute name="vz" type="float" use="optional"/> </complexType> <!--#################################### --> <!--Definition of Color type --> <!--#################################### --> <simpleType name="ColorType"> <restriction base="NMTOKEN"> <whiteSpace value="collapse"/> <pattern value="#[0-9A-Fa-f]{6}"/> </restriction> </simpleType> <!--#################################### --> <!--Definition of Camera type --> <!--#################################### --> <complexType name="CameraType"> <attribute name="fov" type="float" use="optional"/> </complexType> <!-- ########################################## --> <!-- Definition of User Interaction Type --> <!-- ########################################## --> <complexType name="UserInteractionType"> <sequence> <element name="Resource" type="arstv:ResourceType" minOccurs="0"/> <element name="SRT" type="arstv:SRTType" minOccurs="0"/> </sequence> <attribute name="event" type="unsignedInt" use="optional"/> </complexType> </schema>