The Video Asset Description (VAD) Project

Home Page
What is a VAD?
Work Plan
Resources
Contact

What is a VAD?

General Structure | Sample VAD | VAD Schema

A VAD file is:

  • A well-formed XML document that:
    • Validated against the MPEG7 CDP XSD schema.
    • Conforms to any constraint developed in the context of the VAD project.

The structure of a typical CDP file is:

<!-- An XML declaration -->
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- An MPEG7 element -->
<Mpeg7 [...] >
<!-- An optional metadata element -->
<DescriptionMetadata>
[...]
</DescriptionMetadata>
<!-- One or more description element -->
<Description xsi:type="ContentEntityType">
[...]
</Description>
</Mpeg7>

 

Sample VAD

Download Sample VAD
<?xml version="1.0" encoding="UTF-8"?>
<Mpeg7 xmlns="urn:mpeg:mpeg7:schema:2001" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:mpeg:mpeg7:schema:2001 CDPschemaFromMP7P11.xsd">
  <!--Mpeg7 is the root element of every MPEG-7 document instance, and a document instance that conforms to an MPEG-7 profile, such as CDP, must also validate against the master MPEG-7 schema-->
  <DescriptionProfile profileAndLevelIndication="urn:mpeg:mpeg7:profiles:2004:CDP" />
  <DescriptionMetadata>
    <Version>1.2</Version>
    <Comment>
      <KeywordAnnotation>
        <Keyword type="main">colors</Keyword>
      </KeywordAnnotation>
      <KeywordAnnotation>
        <Keyword type="secondary">defaultColor</Keyword>
        <Keyword>green</Keyword>
      </KeywordAnnotation>
      <KeywordAnnotation>
        <Keyword type="secondary">threshold</Keyword>
        <Keyword>red</Keyword>
      </KeywordAnnotation>
      <KeywordAnnotation>
        <Keyword type="secondary">color1</Keyword>
        <Keyword>yellow</Keyword>
      </KeywordAnnotation>
      <FreeTextAnnotation>
        Roughly analogous to MPAA's "Parental Guidance" (PG) rating
      </FreeTextAnnotation>
      <KeywordAnnotation>
        <Keyword type="secondary">color2</Keyword>
        <Keyword>red</Keyword>
      </KeywordAnnotation>
      <FreeTextAnnotation>
        Roughly analogous to MPAA's PG-13 or R rating
      </FreeTextAnnotation>
      <KeywordAnnotation>
        <Keyword type="secondary">color3</Keyword>
        <Keyword>green</Keyword>
      </KeywordAnnotation>
      <FreeTextAnnotation>
        Roughly analogous to MPAA's "General Audiences" (G) rating
      </FreeTextAnnotation>
    </Comment>
    <PrivateIdentifier>Chocolat</PrivateIdentifier>
  </DescriptionMetadata>
  <Description xsi:type="ContentEntityType">
    <MultimediaContent xsi:type="AudioVisualType">
      <AudioVisual>
        <MediaInformation>
          <MediaIdentification>
            <EntityIdentifier type="DVDUniqueID" organization="DVDForum">963853ef726b5104</EntityIdentifier>
          </MediaIdentification>
          <MediaProfile>
            <MediaFormat>
              <Content href="urn:mpeg:mpeg7:cs:ContentCS:2001:2">
                <Name>AudioVisual</Name>
              </Content>
              <Medium href="urn:mpeg:mpeg7:cs:MediumCS:2001:1.3">
                <Name>DVD</Name>
              </Medium>
            </MediaFormat>
          </MediaProfile>
        </MediaInformation>
      </AudioVisual>
    </MultimediaContent>
  </Description>
  <!--After the DescriptionMetadata element, a CDP file consists of a sequence of Description elements; the above Description provides information about the medium of the video asset, in this case a DVD-->
  <Description xsi:type="ContentEntityType">
    <MultimediaContent xsi:type="VideoType">
      <Video id="ChocFilmCriticV1">
        <TemporalDecomposition>
          <VideoSegment id="C1">
            <TextAnnotation type="ClipName">
              <FreeTextAnnotation>Chapter 1 - stuff</FreeTextAnnotation>
            </TextAnnotation>
            <TextAnnotation type="Clip Synopsis">
              <FreeTextAnnotation>stuff</FreeTextAnnotation>
            </TextAnnotation>
            <MediaTime>
              <MediaTimePoint>T00:00:00:01</MediaTimePoint>
              <MediaDuration>PT00H05M00S03F</MediaDuration>
            </MediaTime>
            <TemporalDecomposition>
              <VideoSegment id="C1-S1">
                <TextAnnotation type="ClipName">
                  <FreeTextAnnotation>Scene 1 - stuff</FreeTextAnnotation>
                </TextAnnotation>
                <MediaTime>
                  <MediaTimePoint>T00:00:00:01</MediaTimePoint>
                  <MediaDuration>PT00H02M47S28F</MediaDuration>
                </MediaTime>
              </VideoSegment>
              <VideoSegment>
                <TextAnnotation type="RefName">
                  <FreeTextAnnotation>Chapter Questions</FreeTextAnnotation>
                </TextAnnotation>
              </VideoSegment>
              <VideoSegmentRef href="%DATADIR\ChocFC\Questions_1.html" />
              <VideoSegment>
                <TextAnnotation type="RefName">
                  <FreeTextAnnotation>Chapter Synopsis</FreeTextAnnotation>
                </TextAnnotation>
              </VideoSegment>
              <VideoSegmentRef href="%DATADIR\ChocFC\Synopsis_1.html" />
              <VideoSegment id="C1-S2">
                <TextAnnotation type="ClipName">
                  <FreeTextAnnotation>Scene 2 - Lent</FreeTextAnnotation>
                </TextAnnotation>
                <TextAnnotation type="Note">
                  <FreeTextAnnotation>Notice the pulpit to the left</FreeTextAnnotation>
                </TextAnnotation>
                <MediaTime>
                  <MediaTimePoint>T00:02:48:00</MediaTimePoint>
                  <MediaDuration>PT00H00M15S10F</MediaDuration>
                </MediaTime>
              </VideoSegment>
              <VideoSegment>
                <TextAnnotation type="RefName">
                  <FreeTextAnnotation>Explanation of Lent</FreeTextAnnotation>
                </TextAnnotation>
              </VideoSegment>
              <VideoSegmentRef href="%DATADIR\ChocFC\Lent.html" />
              <VideoSegment>
                <TextAnnotation type="RefName">
                  <FreeTextAnnotation>Chapter Questions</FreeTextAnnotation>
                </TextAnnotation>
              </VideoSegment>
              <VideoSegmentRef href="%DATADIR\ChocFC\Questions_1.html" />
              <VideoSegment>
                <TextAnnotation type="RefName">
                  <FreeTextAnnotation>Chapter Synopsis</FreeTextAnnotation>
                </TextAnnotation>
              </VideoSegment>
              <VideoSegmentRef href="%DATADIR\ChocFC\Synopsis_1.html" />
              <VideoSegment id="C1-S3">
                <TextAnnotation type="ClipName">
                  <FreeTextAnnotation>Scene 3 - stuff</FreeTextAnnotation>
                </TextAnnotation>
                <MediaTime>
                  <MediaTimePoint>T00:03:03:11</MediaTimePoint>
                  <MediaDuration>PT00H01M56S23F</MediaDuration>
                </MediaTime>
              </VideoSegment>
              <VideoSegment>
                <TextAnnotation type="RefName">
                  <FreeTextAnnotation>Chapter Questions</FreeTextAnnotation>
                </TextAnnotation>
              </VideoSegment>
              <VideoSegmentRef href="%DATADIR\ChocFC\Questions_1.html" />
              <VideoSegment>
                <TextAnnotation type="RefName">
                  <FreeTextAnnotation>Chapter Synopsis</FreeTextAnnotation>
                </TextAnnotation>
              </VideoSegment>
              <VideoSegmentRef href="%DATADIR\ChocFC\Synopsis_1.html" />
            </TemporalDecomposition>
          </VideoSegment>
          <VideoSegment id="C2">
            <TextAnnotation type="ClipName">
              <FreeTextAnnotation>Chapter 2 - stuff</FreeTextAnnotation>
            </TextAnnotation>
            <TextAnnotation type="Clip Synopsis">
              <FreeTextAnnotation>stuff</FreeTextAnnotation>
            </TextAnnotation>
            <MediaTime>
              <MediaTimePoint>T00:05:00:05</MediaTimePoint>
              <MediaDuration>PT00H02M11S29F</MediaDuration>
            </MediaTime>
          </VideoSegment>
          <VideoSegment id="C3">
            <TextAnnotation type="ClipName">
              <FreeTextAnnotation>Chapter 3 - more stuff</FreeTextAnnotation>
            </TextAnnotation>
            <TextAnnotation type="Clip Synopsis">
              <FreeTextAnnotation>stuff</FreeTextAnnotation>
            </TextAnnotation>
            <MediaTime>
              <MediaTimePoint>T00:07:12:05</MediaTimePoint>
              <MediaDuration>PT00H03M32S29F</MediaDuration>
            </MediaTime>
          </VideoSegment>
          <VideoSegment id="C4">
            <TextAnnotation type="ClipName">
              <FreeTextAnnotation>Chapter 4 - more stuff</FreeTextAnnotation>
            </TextAnnotation>
            <TextAnnotation type="Clip Synopsis">
              <FreeTextAnnotation>stuff</FreeTextAnnotation>
            </TextAnnotation>
            <MediaTime>
              <MediaTimePoint>T00:10:45:05</MediaTimePoint>
              <MediaDuration>PT00H04M18S28F</MediaDuration>
            </MediaTime>
          </VideoSegment>
          <VideoSegment id="C5">
            <TextAnnotation type="ClipName">
              <FreeTextAnnotation>Chapter 5 - more stuff</FreeTextAnnotation>
            </TextAnnotation>
            <TextAnnotation type="Clip Synopsis">
              <FreeTextAnnotation>stuff</FreeTextAnnotation>
            </TextAnnotation>
            <MediaTime>
              <MediaTimePoint>T00:15:04:04</MediaTimePoint>
              <MediaDuration>PT00H02M13S10F</MediaDuration>
            </MediaTime>
          </VideoSegment>
        </TemporalDecomposition>
      </Video>
    </MultimediaContent>
    <!--The above MultimediaContent element defines a hierarchical segmentation of the video asset , and the one  below segments the audio portion of the asset, in this case trivially into one long segment.-->
    <MultimediaContent xsi:type="AudioType">
      <Audio id="AudioID" />
    </MultimediaContent>
  </Description>
</Mpeg7>
 

VAD Schema

Download VAD Schema
<?xml version="1.0" encoding="UTF-8"?>
<schema targetNamespace="urn:mpeg:mpeg7:schema:2001" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:mpeg7="urn:mpeg:mpeg7:schema:2001" elementFormDefault="qualified" attributeFormDefault="unqualified">
  
  <!-- Mpeg7 -->
  <element name="Mpeg7">
    <complexType>
      <complexContent>
        <extension base="mpeg7:Mpeg7Type">
          <sequence>
            <element name="Description" type="mpeg7:CompleteDescriptionType" maxOccurs="unbounded"/>
          </sequence>
        </extension>
      </complexContent>
    </complexType>
  </element>

  <!-- Mpeg7BaseType -->
  <complexType name="Mpeg7BaseType" abstract="true">
    <complexContent>
      <restriction base="anyType"/>
    </complexContent>
  </complexType>
  <!-- DType -->
  <complexType name="DType" abstract="true">
    <complexContent>
      <extension base="mpeg7:Mpeg7BaseType"/>
    </complexContent>
  </complexType>
  <!-- DSType -->
  <complexType name="DSType" abstract="true">
    <complexContent>
      <extension base="mpeg7:Mpeg7BaseType">
        <sequence>
          <element name="Header" type="mpeg7:HeaderType" minOccurs="0" maxOccurs="unbounded"/>
        </sequence>
        <attribute name="id" type="ID" use="optional"/>
        <attributeGroup ref="mpeg7:timePropertyGrp"/>
        <attributeGroup ref="mpeg7:mediaTimePropertyGrp"/>
      </extension>
    </complexContent>
  </complexType>
  <!-- HeaderType -->
  <complexType name="HeaderType" abstract="true">
    <complexContent>
      <extension base="mpeg7:Mpeg7BaseType">
        <attribute name="id" type="ID" use="optional"/>
      </extension>
    </complexContent>
  </complexType>
  <!-- Mpeg7Type -->
  <complexType name="Mpeg7Type" abstract="true">
    <sequence>
      <element name="DescriptionProfile" type="mpeg7:DescriptionProfileType" minOccurs="0"/>
      <element name="DescriptionMetadata" type="mpeg7:DescriptionMetadataType" minOccurs="0"/>
    </sequence>
    <!-- <attribute ref="xml:lang" use="optional"/> -->
    <attributeGroup ref="mpeg7:timePropertyGrp"/>
    <attributeGroup ref="mpeg7:mediaTimePropertyGrp"/>
  </complexType>
  <!-- DescriptionProfileType -->
  <complexType name="DescriptionProfileType">
    <attribute name="profileAndLevelIndication" use="required">
      <simpleType>
        <list itemType="anyURI"/>
      </simpleType>
    </attribute>
  </complexType>
  
  <!-- CompleteDescriptionType -->
  <complexType name="CompleteDescriptionType" abstract="true">
    <sequence>
      <element name="DescriptionMetadata" type="mpeg7:DescriptionMetadataType" minOccurs="0"/>
      <element name="Relationships" type="mpeg7:GraphType" minOccurs="0" maxOccurs="unbounded"/>
      <element name="OrderingKey" type="mpeg7:OrderingKeyType" minOccurs="0" maxOccurs="unbounded"/>
    </sequence>
  </complexType>
  <!-- ContentDescriptionType -->
  <complexType name="ContentDescriptionType" abstract="true">
    <complexContent>
      <extension base="mpeg7:CompleteDescriptionType">
        <sequence>
          <element name="Affective" type="mpeg7:AffectiveType" minOccurs="0" maxOccurs="unbounded"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <!-- ContentEntityType -->
  <complexType name="ContentEntityType">
    <complexContent>
      <extension base="mpeg7:ContentDescriptionType">
        <sequence>
          <element name="MultimediaContent" type="mpeg7:MultimediaContentType" maxOccurs="unbounded"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <!-- MultimediaContentType -->
  <complexType name="MultimediaContentType" abstract="true">
    <complexContent>
      <extension base="mpeg7:DSType"/>
    </complexContent>
  </complexType>
  <!-- ImageType -->
  <complexType name="ImageType">
    <complexContent>
      <extension base="mpeg7:MultimediaContentType">
        <sequence>
          <element name="Image" type="mpeg7:StillRegionType"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <!-- VideoType -->
  <complexType name="VideoType">
    <complexContent>
      <extension base="mpeg7:MultimediaContentType">
        <sequence>
          <element name="Video" type="mpeg7:VideoSegmentType"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <!-- AudioType -->
  <complexType name="AudioType">
    <complexContent>
      <extension base="mpeg7:MultimediaContentType">
        <sequence>
          <element name="Audio" type="mpeg7:AudioSegmentType"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <!-- AudioVisualType -->
  <complexType name="AudioVisualType">
    <complexContent>
      <extension base="mpeg7:MultimediaContentType">
        <sequence>
          <element name="AudioVisual" type="mpeg7:AudioVisualSegmentType"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <!-- MultimediaCollectionType -->
  <complexType name="MultimediaCollectionType">
    <complexContent>
      <extension base="mpeg7:MultimediaContentType">
        <choice>
          <element name="Collection" type="mpeg7:CollectionType" maxOccurs="unbounded"/>
          <element name="StructuredCollection" type="mpeg7:StructuredCollectionType" maxOccurs="unbounded"/>
        </choice>
      </extension>
    </complexContent>
  </complexType>
  <!-- DescriptionMetadataType -->
  <complexType name="DescriptionMetadataType">
    <complexContent>
      <extension base="mpeg7:HeaderType">
        <sequence>
          <element name="Confidence" type="mpeg7:zeroToOneType" minOccurs="0"/>
          <element name="Version" type="string" minOccurs="0"/>
          <element name="LastUpdate" type="mpeg7:timePointType" minOccurs="0"/>
          <element name="Comment" type="mpeg7:TextAnnotationType" minOccurs="0"/>
          <element name="PublicIdentifier" type="mpeg7:UniqueIDType" minOccurs="0" maxOccurs="unbounded"/>
          <element name="PrivateIdentifier" type="string" minOccurs="0" maxOccurs="unbounded"/>
          <element name="Creator" type="mpeg7:CreatorType" minOccurs="0" maxOccurs="unbounded"/>
          <element name="CreationLocation" type="mpeg7:PlaceType" minOccurs="0"/>
          <element name="CreationTime" type="mpeg7:timePointType" minOccurs="0"/>
          <element name="Instrument" type="mpeg7:CreationToolType" minOccurs="0" maxOccurs="unbounded"/>
          <element name="Rights" type="mpeg7:RightsType" minOccurs="0"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <!-- zeroToOneType -->
  <simpleType name="zeroToOneType">
    <restriction base="float">
      <minInclusive value="0.0"/>
      <maxInclusive value="1.0"/>
    </restriction>
  </simpleType>
  <!-- minusOneToOneType -->
  <simpleType name="minusOneToOneType">
    <restriction base="float">
      <minInclusive value="-1.0"/>
      <maxInclusive value="+1.0"/>
    </restriction>
  </simpleType>
  <!-- nonNegativeReal -->
  <simpleType name="nonNegativeReal">
    <restriction base="double">
      <minInclusive value="0.0"/>
    </restriction>
  </simpleType>
  <!-- integerVector -->
  <simpleType name="integerVector">
    <list itemType="integer"/>
  </simpleType>
  <!-- floatVector -->
  <simpleType name="floatVector">
    <list itemType="float"/>
  </simpleType>
  <!-- IntegerMatrixType -->
  <complexType name="IntegerMatrixType">
    <simpleContent>
      <extension base="mpeg7:integerVector">
        <attribute ref="mpeg7:dim" use="required"/>
      </extension>
    </simpleContent>
  </complexType>
  <!-- FloatMatrixType -->
  <complexType name="FloatMatrixType">
    <simpleContent>
      <extension base="mpeg7:floatVector">
        <attribute ref="mpeg7:dim" use="required"/>
      </extension>
    </simpleContent>
  </complexType>
  <!-- mimeType -->
  <simpleType name="mimeType">
    <restriction base="string">
      <whiteSpace value="collapse"/>
      <pattern value='[!--[\(\)<>@,;:\\"/\[\]\?=]]+/[!--[\(\)<>@,;:\\"/\[\]\?=]]+'/>
    </restriction>
  </simpleType>
  <!-- countryCode -->
  <simpleType name="countryCode">
    <restriction base="string">
      <whiteSpace value="collapse"/>
      <pattern value="[a-zA-Z]{2}"/>
    </restriction>
  </simpleType>
  <!-- regionCode -->
  <simpleType name="regionCode">
    <restriction base="string">
      <whiteSpace value="collapse"/>
      <pattern value="[a-zA-Z]{2}(-[a-zA-Z0-9]{1,3})?"/>
    </restriction>
  </simpleType>
  <!-- currencyCode -->
  <simpleType name="currencyCode">
    <restriction base="string">
      <whiteSpace value="collapse"/>
      <pattern value="[a-zA-Z]{3}"/>
    </restriction>
  </simpleType>
  <!-- referenceGrp -->
  <attributeGroup name="referenceGrp">
    <attribute name="idref" type="IDREF" use="optional"/>
    <attribute name="xpath" type="mpeg7:xPathRefType" use="optional"/>
    <attribute name="href" type="anyURI" use="optional"/>
  </attributeGroup>
  <!-- ReferenceType -->
  <complexType name="ReferenceType">
    <attributeGroup ref="mpeg7:referenceGrp"/>
  </complexType>
  <!-- xPathType -->
  <simpleType name="xPathType">
    <restriction base="token"/>
  </simpleType>
  <!-- xPathRefType -->
  <simpleType name="xPathRefType">
    <restriction base="mpeg7:xPathType">
      <pattern value="/?((((child::)?((\i\c*:)?(\i\c*)(\[\d+\])?))|\.|(\.\.))/)*((((child::)?((\i\c*:)?(\i\c*)(\[\d+\])?))|\.)|((attribute::|@)((\i\c*:)?(\i\c*|\*))))"/>
    </restriction>
  </simpleType>
  <!-- xPathSelectorType -->
  <simpleType name="xPathSelectorType">
    <restriction base="mpeg7:xPathType">
      <pattern value="(/|((//|/)?(((child::)?((\i\c*:)?(\i\c*|\*)))|\.|\.\.)((//|/)(((child::)?((\i\c*:)?(\i\c*|\*)))|\.|\.\.))*))(\|/|((//|/)?(((child::)?((\i\c*:)?(\i\c*|\*)))|\.|\.\.)((//|/)(((child::)?((\i\c*:)?(\i\c*|\*)))|\.|\.\.))*))*"/>
    </restriction>
  </simpleType>
  <!-- Definition of xPathAbsoluteSelector datatype -->
  <simpleType name="xPathAbsoluteSelectorType">
    <restriction base="mpeg7:xPathSelectorType">
      <pattern value="(/|((//|/)(((child::)?((\i\c*:)?(\i\c*|\*)))|\.))*)(\|(/|((//|/)(((child::)?((\i\c*:)?(\i\c*|\*)))|\.))*))*"/>
    </restriction>
  </simpleType>
  <!-- xPathFieldType -->
  <simpleType name="xPathFieldType">
    <restriction base="mpeg7:xPathType">
      <pattern value="(\.//)?((((child::)?((\i\c*:)?(\i\c*|\*)))|\.)/)*((((child::)?((\i\c*:)?(\i\c*|\*)))|\.)|((attribute::|@)((\i\c*:)?(\i\c*|\*))))(\|(\.//)?((((child::)?((\i\c*:)?(\i\c*|\*)))|\.)/)*((((child::)?((\i\c*:)?(\i\c*|\*)))|\.)|((attribute::|@)((\i\c*:)?(\i\c*|\*)))))*"/>
    </restriction>
  </simpleType>
  <!-- UniqueIDType -->
  <complexType name="UniqueIDType">
    <simpleContent>
      <extension base="string">
        <attribute name="type" type="NMTOKEN" use="optional" default="URI"/>
        <attribute name="organization" type="NMTOKEN" use="optional"/>
        <attribute name="authority" type="NMTOKEN" use="optional"/>
        <attribute name="encoding" use="optional" default="text">
          <simpleType>
            <restriction base="string">
              <enumeration value="text"/>
              <enumeration value="base16"/>
              <enumeration value="base64"/>
            </restriction>
          </simpleType>
        </attribute>
      </extension>
    </simpleContent>
  </complexType>
  <!-- TimeType -->
  <complexType name="TimeType">
    <sequence>
      <choice>
        <element name="TimePoint" type="mpeg7:timePointType"/>
        <element name="RelTimePoint" type="mpeg7:RelTimePointType"/>
        <element name="RelIncrTimePoint" type="mpeg7:RelIncrTimePointType"/>
      </choice>
      <choice minOccurs="0">
        <element name="Duration" type="mpeg7:durationType"/>
        <element name="IncrDuration" type="mpeg7:IncrDurationType"/>
      </choice>
    </sequence>
  </complexType>
  <!-- timePointType -->
  <simpleType name="timePointType">
    <restriction base="mpeg7:basicTimePointType">
      <pattern value="(\-?\d+(\-\d{2}(\-\d{2})?)?)?(T\d{2}(:\d{2}(:\d{2}(:\d+)?)?)?)?(F\d+)?((\-|\+)\d{2}:\d{2})?"/>
    </restriction>
  </simpleType>
  <!-- durationType -->
  <simpleType name="durationType">
    <restriction base="mpeg7:basicDurationType">
      <pattern value="\-?P(\d+D)?(T(\d+H)?(\d+M)?(\d+S)?(\d+N)?)?(\d+F)?((\-|\+)\d{2}:\d{2}Z)?"/>
    </restriction>
  </simpleType>
  <!-- IncrDurationType -->
  <complexType name="IncrDurationType">
    <simpleContent>
      <extension base="integer">
        <attribute name="timeUnit" type="mpeg7:durationType" use="optional"/>
      </extension>
    </simpleContent>
  </complexType>
  <!-- timeOffsetType -->
  <simpleType name="timeOffsetType">
    <restriction base="mpeg7:basicDurationType">
      <pattern value="\-?P(\d+D)?(T(\d+H)?(\d+M)?(\d+S)?(\d+N)?)?(\d+F)?((\-|\+)\d{2}:\d{2}Z)?"/>
    </restriction>
  </simpleType>
  <!-- RelTimePointType -->
  <complexType name="RelTimePointType">
    <simpleContent>
      <extension base="mpeg7:timeOffsetType">
        <attribute name="timeBase" type="mpeg7:xPathRefType" use="optional"/>
      </extension>
    </simpleContent>
  </complexType>
  <!-- RelIncrTimePointType -->
  <complexType name="RelIncrTimePointType">
    <simpleContent>
      <extension base="integer">
        <attribute name="timeUnit" type="mpeg7:durationType" use="optional"/>
        <attribute name="timeBase" type="mpeg7:xPathRefType" use="optional"/>
      </extension>
    </simpleContent>
  </complexType>
  <!-- timePropertyGrp -->
  <attributeGroup name="timePropertyGrp">
    <attribute name="timeBase" type="mpeg7:xPathRefType" use="optional"/>
    <attribute name="timeUnit" type="mpeg7:durationType" use="optional"/>
  </attributeGroup>
  <!-- MediaTimeType -->
  <complexType name="MediaTimeType">
    <sequence>
      <choice>
        <element name="MediaTimePoint" type="mpeg7:mediaTimePointType"/>
        <element name="MediaRelTimePoint" type="mpeg7:MediaRelTimePointType"/>
        <element name="MediaRelIncrTimePoint" type="mpeg7:MediaRelIncrTimePointType"/>
      </choice>
      <choice minOccurs="0">
        <element name="MediaDuration" type="mpeg7:mediaDurationType"/>
        <element name="MediaIncrDuration" type="mpeg7:MediaIncrDurationType"/>
      </choice>
    </sequence>
  </complexType>
  <!-- mediaTimePointType -->
  <simpleType name="mediaTimePointType">
    <restriction base="mpeg7:basicTimePointType">
      <pattern value="(\-?\d+(\-\d{2}(\-\d{2})?)?)?(T\d{2}(:\d{2}(:\d{2}(:\d+)?)?)?)?(F\d+)?"/>
    </restriction>
  </simpleType>
  <!-- mediaDurationType -->
  <simpleType name="mediaDurationType">
    <restriction base="mpeg7:basicDurationType">
      <pattern value="\-?P(\d+D)?(T(\d+H)?(\d+M)?(\d+S)?(\d+N)?)?(\d+F)?"/>
    </restriction>
  </simpleType>
  <!-- MediaIncrDurationType -->
  <complexType name="MediaIncrDurationType">
    <simpleContent>
      <extension base="integer">
        <attribute name="mediaTimeUnit" type="mpeg7:mediaDurationType" use="optional"/>
      </extension>
    </simpleContent>
  </complexType>
  <!-- mediaTimeOffsetType -->
  <simpleType name="mediaTimeOffsetType">
    <restriction base="mpeg7:basicDurationType">
      <pattern value="\-?P(\d+D)?(T(\d+H)?(\d+M)?(\d+S)?(\d+N)?)?(\d+F)?"/>
    </restriction>
  </simpleType>
  <!-- MediaRelTimePointType -->
  <complexType name="MediaRelTimePointType">
    <simpleContent>
      <extension base="mpeg7:mediaTimeOffsetType">
        <attribute name="mediaTimeBase" type="mpeg7:xPathRefType" use="optional"/>
      </extension>
    </simpleContent>
  </complexType>
  <!-- MediaRelIncrTimePointType -->
  <complexType name="MediaRelIncrTimePointType">
    <simpleContent>
      <extension base="integer">
        <attribute name="mediaTimeUnit" type="mpeg7:mediaDurationType" use="optional"/>
        <attribute name="mediaTimeBase" type="mpeg7:xPathRefType" use="optional"/>
      </extension>
    </simpleContent>
  </complexType>
  <!-- ########################################################## -->
  <!-- Definition of mediaTimeProperty attribute group (6.4.16) -->
  <!-- ########################################################## -->
  <!-- Definition of mediaTimePropertyGrp attribute group -->
  <attributeGroup name="mediaTimePropertyGrp">
    <attribute name="mediaTimeBase" type="mpeg7:xPathRefType" use="optional"/>
    <attribute name="mediaTimeUnit" type="mpeg7:mediaDurationType" use="optional"/>
  </attributeGroup>
  <!-- MediaLocatorType -->
  <complexType name="MediaLocatorType">
    <sequence>
      <choice minOccurs="0">
        <element name="MediaUri" type="anyURI"/>
        <element name="InlineMedia" type="mpeg7:InlineMediaType"/>
      </choice>
      <element name="StreamID" type="nonNegativeInteger" minOccurs="0"/>
    </sequence>
  </complexType>
  <!-- InlineMediaType -->
  <complexType name="InlineMediaType">
    <choice>
      <element name="MediaData16" type="hexBinary"/>
      <element name="MediaData64" type="base64Binary"/>
    </choice>
    <attribute name="type" type="mpeg7:mimeType" use="required"/>
  </complexType>
  <!-- TemporalSegmentLocatorType -->
  <complexType name="TemporalSegmentLocatorType">
    <complexContent>
      <extension base="mpeg7:MediaLocatorType">
        <choice minOccurs="0">
          <element name="MediaTime" type="mpeg7:MediaTimeType"/>
          <element name="BytePosition">
            <complexType>
              <attribute name="offset" type="nonNegativeInteger" use="required"/>
              <attribute name="length" type="positiveInteger" use="optional"/>
            </complexType>
          </element>
        </choice>
      </extension>
    </complexContent>
  </complexType>
  <!-- ImageLocatorType -->
  <complexType name="ImageLocatorType">
    <complexContent>
      <extension base="mpeg7:MediaLocatorType">
        <choice minOccurs="0">
          <element name="MediaTimePoint" type="mpeg7:mediaTimePointType"/>
          <element name="MediaRelTimePoint" type="mpeg7:MediaRelTimePointType"/>
          <element name="MediaRelIncrTimePoint" type="mpeg7:MediaRelIncrTimePointType"/>
          <element name="BytePosition">
            <complexType>
              <attribute name="offset" type="nonNegativeInteger" use="required"/>
              <attribute name="length" type="positiveInteger" use="optional"/>
            </complexType>
          </element>
        </choice>
      </extension>
    </complexContent>
  </complexType>
  <!-- TextualBaseType -->
  <complexType name="TextualBaseType" abstract="true">
    <simpleContent>
      <extension base="string">
        <!-- <attribute ref="xml:lang" use="optional"/> -->
      </extension>
    </simpleContent>
  </complexType>
  <!-- TextualType -->
  <complexType name="TextualType">
    <simpleContent>
      <extension base="mpeg7:TextualBaseType"/>
    </simpleContent>
  </complexType>
  <!-- TextAnnotationType -->
  <complexType name="TextAnnotationType">
    <choice maxOccurs="unbounded">
      <element name="FreeTextAnnotation" type="mpeg7:TextualType"/>
      <element name="StructuredAnnotation" type="mpeg7:StructuredAnnotationType"/>
      <element name="DependencyStructure" type="mpeg7:DependencyStructureType"/>
      <element name="KeywordAnnotation" type="mpeg7:KeywordAnnotationType"/>
    </choice>
    <attribute name="relevance" type="mpeg7:zeroToOneType" use="optional"/>
    <attribute name="confidence" type="mpeg7:zeroToOneType" use="optional"/>
    <!-- <attribute ref="xml:lang"/> -->
  </complexType>
  <!-- StructuredAnnotationType -->
  <complexType name="StructuredAnnotationType">
    <sequence>
      <element name="Who" type="mpeg7:TermUseType" minOccurs="0" maxOccurs="unbounded"/>
      <element name="WhatObject" type="mpeg7:TermUseType" minOccurs="0" maxOccurs="unbounded"/>
      <element name="WhatAction" type="mpeg7:TermUseType" minOccurs="0" maxOccurs="unbounded"/>
      <element name="Where" type="mpeg7:TermUseType" minOccurs="0" maxOccurs="unbounded"/>
      <element name="When" type="mpeg7:TermUseType" minOccurs="0" maxOccurs="unbounded"/>
      <element name="Why" type="mpeg7:TermUseType" minOccurs="0" maxOccurs="unbounded"/>
      <element name="How" type="mpeg7:TermUseType" minOccurs="0" maxOccurs="unbounded"/>
    </sequence>
    <!-- <attribute ref="xml:lang" use="optional"/> -->
  </complexType>
  <!-- KeywordAnnotationType -->
  <complexType name="KeywordAnnotationType">
    <sequence>
      <element name="Keyword" maxOccurs="unbounded">
        <complexType>
          <simpleContent>
            <extension base="mpeg7:TextualType">
              <attribute name="type" use="optional" default="main">
                <simpleType>
                  <restriction base="NMTOKEN">
                    <enumeration value="main"/>
                    <enumeration value="secondary"/>
                    <enumeration value="other"/>
                  </restriction>
                </simpleType>
              </attribute>
            </extension>
          </simpleContent>
        </complexType>
      </element>
    </sequence>
    <!-- <attribute ref="xml:lang" use="optional"/> -->
  </complexType>
  <!-- DependencyStructureType -->
  <complexType name="DependencyStructureType">
    <sequence>
      <element name="Sentence" type="mpeg7:DependencyStructurePhraseType" maxOccurs="unbounded"/>
    </sequence>
    <!-- <attribute ref="xml:lang" use="optional"/> -->
  </complexType>
  <!-- DependencyStructurePhraseType -->
  <complexType name="DependencyStructurePhraseType">
    <sequence>
      <choice minOccurs="0" maxOccurs="unbounded">
        <element name="Quotation" type="mpeg7:DependencyStructurePhraseType"/>
        <element name="Phrase" type="mpeg7:DependencyStructurePhraseType"/>
      </choice>
      <choice>
        <element name="Head" type="mpeg7:WordFormType"/>
        <element name="CompoundHead" type="mpeg7:NonDependencyStructurePhraseType"/>
      </choice>
      <choice minOccurs="0" maxOccurs="unbounded">
        <element name="Quotation" type="mpeg7:DependencyStructurePhraseType"/>
        <element name="Phrase" type="mpeg7:DependencyStructurePhraseType"/>
      </choice>
    </sequence>
    <attribute name="id" type="ID" use="optional"/>
    <attribute name="equal" type="IDREF" use="optional"/>
    <attribute name="operator" use="optional">
      <simpleType>
        <union memberTypes="mpeg7:dependencyOperatorType mpeg7:termReferenceType"/>
      </simpleType>
    </attribute>
    <attribute name="functionWord" type="string" use="optional"/>
    <attribute name="synthesis" type="NMTOKEN" use="optional" fixed="dependency"/>
  </complexType>
  <!-- WordFormType -->
  <complexType name="WordFormType">
    <simpleContent>
      <extension base="string">
        <attribute name="terms" use="optional">
          <simpleType>
            <list itemType="mpeg7:termReferenceType"/>
          </simpleType>
        </attribute>
        <attribute name="id" type="ID" use="optional"/>
        <attribute name="equal" type="IDREF" use="optional"/>
        <attribute name="type" use="optional">
          <simpleType>
            <list>
              <simpleType>
                <union>
                  <simpleType>
                    <restriction base="NMTOKEN">
                      <enumeration value="noun"/>
                      <enumeration value="pronoun"/>
                      <enumeration value="adjective"/>
                      <enumeration value="verb"/>
                      <enumeration value="adverb"/>
                      <enumeration value="conjunction"/>
                      <enumeration value="preposition"/>
                      <enumeration value="postposition"/>
                      <enumeration value="article"/>
                      <enumeration value="interjection"/>
                    </restriction>
                  </simpleType>
                  <simpleType>
                    <restriction base="mpeg7:termReferenceType"/>
                  </simpleType>
                </union>
              </simpleType>
            </list>
          </simpleType>
        </attribute>
        <attribute name="baseForm" type="string" use="optional"/>
      </extension>
    </simpleContent>
  </complexType>
  <!-- NonDependencyStructurePhraseType -->
  <complexType name="NonDependencyStructurePhraseType">
    <choice minOccurs="2" maxOccurs="unbounded">
      <element name="Quotation" type="mpeg7:DependencyStructurePhraseType"/>
      <element name="Phrase" type="mpeg7:DependencyStructurePhraseType"/>
      <element name="Word" type="mpeg7:WordFormType"/>
      <element name="NonDependencyPhrase" type="mpeg7:NonDependencyStructurePhraseType"/>
    </choice>
    <attribute name="id" type="ID" use="optional"/>
    <attribute name="equal" type="IDREF" use="optional"/>
    <attribute name="synthesis" use="optional" default="unspecified">
      <simpleType>
        <restriction base="NMTOKEN">
          <enumeration value="unspecified"/>
          <enumeration value="coordination"/>
        </restriction>
      </simpleType>
    </attribute>
  </complexType>
  <!-- dependencyOperatorType -->
  <simpleType name="dependencyOperatorType">
    <union>
      <simpleType>
        <restriction base="NMTOKEN">
          <enumeration value="subject"/>
          <enumeration value="object"/>
          <enumeration value="indirectObject"/>
          <enumeration value="predicate"/>
          <enumeration value="expletive"/>
          <enumeration value="nonRestrictive"/>
        </restriction>
      </simpleType>
    </union>
  </simpleType>
  <!-- termRelationQualifierType -->
  <simpleType name="termRelationQualifierType">
    <union>
      <simpleType>
        <restriction base="NMTOKEN">
          <enumeration value="NT"/>
          <enumeration value="BT"/>
          <enumeration value="RT"/>
          <enumeration value="US"/>
          <enumeration value="UF"/>
        </restriction>
      </simpleType>
      <simpleType>
        <restriction base="mpeg7:termReferenceType"/>
      </simpleType>
    </union>
  </simpleType>
  <!-- InlineTermDefinitionType -->
  <complexType name="InlineTermDefinitionType" abstract="true">
    <sequence>
      <element name="Name" minOccurs="0" maxOccurs="unbounded">
        <complexType>
          <simpleContent>
            <extension base="mpeg7:TextualType">
              <attribute name="preferred" type="boolean" use="optional"/>
            </extension>
          </simpleContent>
        </complexType>
      </element>
      <element name="Definition" type="mpeg7:TextualType" minOccurs="0" maxOccurs="unbounded"/>
      <element name="Term" minOccurs="0" maxOccurs="unbounded">
        <complexType>
          <complexContent>
            <extension base="mpeg7:InlineTermDefinitionType">
              <attribute name="relation" type="mpeg7:termRelationQualifierType" use="optional" default="NT"/>
              <attribute name="termID" type="NMTOKEN"/>
            </extension>
          </complexContent>
        </complexType>
      </element>
    </sequence>
  </complexType>
  <!-- TermUseType -->
  <complexType name="TermUseType">
    <complexContent>
      <extension base="mpeg7:InlineTermDefinitionType">
        <attribute name="href" type="mpeg7:termReferenceType" use="optional"/>
      </extension>
    </complexContent>
  </complexType>
  <!-- ControlledTermUseType -->
  <complexType name="ControlledTermUseType">
    <complexContent>
      <extension base="mpeg7:InlineTermDefinitionType">
        <attribute name="href" type="mpeg7:termReferenceType" use="required"/>
      </extension>
    </complexContent>
  </complexType>
  <!-- termReferenceType -->
  <simpleType name="termReferenceType">
    <union>
      <simpleType>
        <restriction base="NMTOKEN">
          <whiteSpace value="collapse"/>
          <pattern value=":[^:]+:[^:]+"/>
        </restriction>
      </simpleType>
      <simpleType>
        <restriction base="anyURI"/>
      </simpleType>
    </union>
  </simpleType>
  <!-- AgentType -->
  <complexType name="AgentType" abstract="true">
    <complexContent>
      <extension base="mpeg7:DSType">
        <sequence>
          <element name="Icon" type="mpeg7:MediaLocatorType" minOccurs="0" maxOccurs="unbounded"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <!-- PersonType -->
  <complexType name="PersonType">
    <complexContent>
      <extension base="mpeg7:AgentType">
        <sequence>
          <choice maxOccurs="unbounded">
            <element name="Name" type="mpeg7:PersonNameType"/>
            <element name="NameTerm" type="mpeg7:ControlledTermUseType"/>
          </choice>
          <element name="Affiliation" minOccurs="0" maxOccurs="unbounded">
            <complexType>
              <choice>
                <element name="Organization" type="mpeg7:OrganizationType"/>
                <element name="OrganizationRef" type="mpeg7:ReferenceType"/>
                <element name="PersonGroup" type="mpeg7:PersonGroupType"/>
                <element name="PersonGroupRef" type="mpeg7:ReferenceType"/>
              </choice>
            </complexType>
          </element>
          <element name="Citizenship" type="mpeg7:countryCode" minOccurs="0" maxOccurs="unbounded"/>
          <choice minOccurs="0">
            <element name="Address" type="mpeg7:PlaceType"/>
            <element name="AddressRef" type="mpeg7:ReferenceType"/>
          </choice>
          <element name="ElectronicAddress" type="mpeg7:ElectronicAddressType" minOccurs="0" maxOccurs="unbounded"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <!-- PersonGroupType -->
  <complexType name="PersonGroupType">
    <complexContent>
      <extension base="mpeg7:AgentType">
        <sequence>
          <element name="Name" minOccurs="0" maxOccurs="unbounded">
            <complexType>
              <simpleContent>
                <extension base="mpeg7:TextualType">
                  <attribute name="type" use="optional">
                    <simpleType>
                      <restriction base="NMTOKEN">
                        <enumeration value="former"/>
                        <enumeration value="variant"/>
                        <enumeration value="main"/>
                      </restriction>
                    </simpleType>
                  </attribute>
                </extension>
              </simpleContent>
            </complexType>
          </element>
          <element name="NameTerm" minOccurs="0" maxOccurs="unbounded">
            <complexType>
              <complexContent>
                <extension base="mpeg7:ControlledTermUseType">
                  <attribute name="type" use="optional">
                    <simpleType>
                      <restriction base="NMTOKEN">
                        <enumeration value="former"/>
                        <enumeration value="variant"/>
                        <enumeration value="main"/>
                      </restriction>
                    </simpleType>
                  </attribute>
                </extension>
              </complexContent>
            </complexType>
          </element>
          <element name="Kind" type="mpeg7:TermUseType" minOccurs="0"/>
          <choice minOccurs="0" maxOccurs="unbounded">
            <element name="Member" type="mpeg7:PersonType"/>
            <element name="MemberRef" type="mpeg7:ReferenceType"/>
          </choice>
          <choice minOccurs="0">
            <element name="Jurisdiction" type="mpeg7:PlaceType"/>
            <element name="JurisdictionRef" type="mpeg7:ReferenceType"/>
          </choice>
          <choice minOccurs="0">
            <element name="Address" type="mpeg7:PlaceType"/>
            <element name="AddressRef" type="mpeg7:ReferenceType"/>
          </choice>
          <element name="ElectronicAddress" type="mpeg7:ElectronicAddressType" minOccurs="0"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <!-- OrganizationType -->
  <complexType name="OrganizationType">
    <complexContent>
      <extension base="mpeg7:AgentType">
        <sequence>
          <element name="Name" minOccurs="0" maxOccurs="unbounded">
            <complexType>
              <simpleContent>
                <extension base="mpeg7:TextualType">
                  <attribute name="type" use="optional">
                    <simpleType>
                      <restriction base="NMTOKEN">
                        <enumeration value="former"/>
                        <enumeration value="variant"/>
                        <enumeration value="main"/>
                      </restriction>
                    </simpleType>
                  </attribute>
                </extension>
              </simpleContent>
            </complexType>
          </element>
          <element name="NameTerm" minOccurs="0" maxOccurs="unbounded">
            <complexType>
              <complexContent>
                <extension base="mpeg7:ControlledTermUseType">
                  <attribute name="type" use="optional">
                    <simpleType>
                      <restriction base="NMTOKEN">
                        <enumeration value="former"/>
                        <enumeration value="variant"/>
                        <enumeration value="main"/>
                      </restriction>
                    </simpleType>
                  </attribute>
                </extension>
              </complexContent>
            </complexType>
          </element>
          <element name="Kind" type="mpeg7:TermUseType" minOccurs="0"/>
          <choice minOccurs="0" maxOccurs="unbounded">
            <element name="Contact" type="mpeg7:AgentType"/>
            <element name="ContactRef" type="mpeg7:ReferenceType"/>
          </choice>
          <choice minOccurs="0">
            <element name="Jurisdiction" type="mpeg7:PlaceType"/>
            <element name="JurisdictionRef" type="mpeg7:ReferenceType"/>
          </choice>
          <choice minOccurs="0">
            <element name="Address" type="mpeg7:PlaceType"/>
            <element name="AddressRef" type="mpeg7:ReferenceType"/>
          </choice>
          <element name="ElectronicAddress" type="mpeg7:ElectronicAddressType" minOccurs="0"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <!-- PersonNameType -->
  <complexType name="PersonNameType">
    <sequence>
      <choice maxOccurs="unbounded">
        <element name="GivenName" type="mpeg7:NameComponentType"/>
        <element name="FamilyName" type="mpeg7:NameComponentType" minOccurs="0"/>
        <element name="Title" type="mpeg7:NameComponentType" minOccurs="0"/>
        <element name="Numeration" type="string" minOccurs="0"/>
      </choice>
    </sequence>
    <attribute name="dateFrom" type="mpeg7:timePointType" use="optional"/>
    <attribute name="dateTo" type="mpeg7:timePointType" use="optional"/>
    <attribute name="type" use="optional">
      <simpleType>
        <restriction base="NMTOKEN">
          <enumeration value="former"/>
          <enumeration value="variant"/>
          <enumeration value="main"/>
        </restriction>
      </simpleType>
    </attribute>
    <!-- <attribute ref="xml:lang" use="optional"/> -->
  </complexType>
  <!-- NameComponentType -->
  <complexType name="NameComponentType">
    <simpleContent>
      <extension base="mpeg7:TextualBaseType">
        <attribute name="initial" type="string" use="optional"/>
        <attribute name="abbrev" type="string" use="optional"/>
      </extension>
    </simpleContent>
  </complexType>
  <!-- ElectronicAddressType -->
  <complexType name="ElectronicAddressType">
    <sequence>
      <element name="Telephone" type="string" minOccurs="0" maxOccurs="unbounded"/>
      <element name="Fax" type="string" minOccurs="0" maxOccurs="unbounded"/>
      <element name="Email" type="string" minOccurs="0" maxOccurs="unbounded"/>
      <element name="Url" type="anyURI" minOccurs="0" maxOccurs="unbounded"/>
    </sequence>
  </complexType>
  <!-- PlaceType -->
  <complexType name="PlaceType">
    <complexContent>
      <extension base="mpeg7:DSType">
        <sequence>
          <element name="Name" type="mpeg7:TextualType" minOccurs="0" maxOccurs="unbounded"/>
          <element name="NameTerm" type="mpeg7:ControlledTermUseType" minOccurs="0" maxOccurs="unbounded"/>
          <element name="Role" type="mpeg7:TermUseType" minOccurs="0"/>
          <element name="GeographicPosition" minOccurs="0">
            <complexType>
              <sequence>
                <element name="Point" type="mpeg7:GeographicPointType"/>
              </sequence>
              <attribute name="datum" type="string" use="optional"/>
            </complexType>
          </element>
          <element name="AstronomicalBody" type="mpeg7:TermUseType" minOccurs="0" maxOccurs="unbounded"/>
          <element name="Region" type="mpeg7:regionCode" minOccurs="0" maxOccurs="unbounded"/>
          <element name="AdministrativeUnit" minOccurs="0" maxOccurs="unbounded">
            <complexType>
              <simpleContent>
                <extension base="string">
                  <attribute name="type" type="string" use="optional"/>
                </extension>
              </simpleContent>
            </complexType>
          </element>
          <element name="PostalAddress" minOccurs="0">
            <complexType>
              <sequence>
                <element name="AddressLine" type="mpeg7:TextualType" maxOccurs="unbounded"/>
                <element name="PostingIdentifier" type="mpeg7:TextualType" minOccurs="0"/>
              </sequence>
              <!-- <attribute ref="xml:lang" use="optional"/> -->
            </complexType>
          </element>
          <element name="InternalCoordinates" type="string" minOccurs="0"/>
        </sequence>
        <!-- <attribute ref="xml:lang" use="optional"/> -->
      </extension>
    </complexContent>
  </complexType>
  <!-- GeographicPointType -->
  <complexType name="GeographicPointType">
    <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>
    <attribute name="altitude" type="double" use="optional"/>
  </complexType>
  <!-- GraphType -->
  <complexType name="GraphType">
    <complexContent>
      <extension base="mpeg7:DSType">
        <choice minOccurs="0" maxOccurs="unbounded">
          <element name="Node">
            <complexType>
              <complexContent>
                <extension base="mpeg7:ReferenceType">
                  <sequence>
                    <element name="Name" type="mpeg7:TermUseType" minOccurs="0"/>
                  </sequence>
                  <attribute name="id" type="ID" use="optional"/>
                </extension>
              </complexContent>
            </complexType>
          </element>
          <element name="Relation" type="mpeg7:RelationType"/>
        </choice>
      </extension>
    </complexContent>
  </complexType>
  <!-- RelationType -->
  <complexType name="RelationType">
    <complexContent>
      <extension base="mpeg7:DSType">
        <attribute name="type" type="mpeg7:termReferenceType" use="optional"/>
        <attribute name="source" use="optional">
          <simpleType>
            <list itemType="anyURI"/>
          </simpleType>
        </attribute>
        <attribute name="target">
          <simpleType>
            <list itemType="anyURI"/>
          </simpleType>
        </attribute>
        <attribute name="directed" type="boolean" use="optional" default="true"/>
        <attribute name="strength" type="mpeg7:zeroToOneType" use="optional" default="1.0"/>
      </extension>
    </complexContent>
  </complexType>
  <!-- OrderingKeyType -->
  <complexType name="OrderingKeyType">
    <complexContent>
      <extension base="mpeg7:HeaderType">
        <sequence>
          <element name="Selector">
            <complexType>
              <attribute name="xpath" type="mpeg7:xPathSelectorType"/>
            </complexType>
          </element>
          <element name="Field" maxOccurs="unbounded">
            <complexType>
              <attribute name="xpath" type="mpeg7:xPathFieldType"/>
            </complexType>
          </element>
        </sequence>
        <attribute name="name" type="string" use="optional"/>
        <attribute name="semantics" type="string" use="optional"/>
        <attribute name="direction" use="optional" default="descending">
          <simpleType>
            <restriction base="NMTOKEN">
              <enumeration value="descending"/>
              <enumeration value="ascending"/>
            </restriction>
          </simpleType>
        </attribute>
      </extension>
    </complexContent>
  </complexType>
  <!-- AffectiveType -->
  <complexType name="AffectiveType">
    <complexContent>
      <extension base="mpeg7:DSType">
        <sequence>
          <element name="Type" type="mpeg7:TermUseType"/>
          <element name="Score" minOccurs="2" maxOccurs="unbounded">
            <complexType>
              <simpleContent>
                <extension base="mpeg7:minusOneToOneType">
                  <attributeGroup ref="mpeg7:referenceGrp"/>
                </extension>
              </simpleContent>
            </complexType>
          </element>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <!-- MediaInformationType -->
  <complexType name="MediaInformationType">
    <complexContent>
      <extension base="mpeg7:DSType">
        <sequence>
          <element name="MediaIdentification" type="mpeg7:MediaIdentificationType" minOccurs="0"/>
          <element name="MediaProfile" type="mpeg7:MediaProfileType" maxOccurs="unbounded"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <!-- MediaIdentificationType -->
  <complexType name="MediaIdentificationType">
    <complexContent>
      <extension base="mpeg7:DType">
        <sequence>
          <element name="EntityIdentifier" type="mpeg7:UniqueIDType"/>
          <element name="AudioDomain" type="mpeg7:ControlledTermUseType" minOccurs="0" maxOccurs="unbounded"/>
          <element name="VideoDomain" type="mpeg7:ControlledTermUseType" minOccurs="0" maxOccurs="unbounded"/>
          <element name="ImageDomain" type="mpeg7:ControlledTermUseType" minOccurs="0" maxOccurs="unbounded"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>
  <!-- MediaProfileType -->
  <complexType name="MediaProfileType">
    <complexContent>
      <extension base="mpeg7:DSType">
        <sequence>
          <element name="ComponentMediaProfile" type="mpeg7:MediaProfileType" minOccurs="0" maxOccurs="unbounded"/>
          <element name="MediaFormat" type="mpeg7:MediaFormatType" minOccurs="0"/>
          <element name="MediaTranscodingHints" type="mpeg7:MediaTranscodingHintsType" minOccurs="0"/>
          <element name="MediaQuality" type="mpeg7:MediaQualityType" minOccurs="0"/>
          <element name="MediaInstance" type="mpeg7:MediaInstanceType" minOccurs="0" maxOccurs="unbounded"/>
        </sequence>
        <attribute name="master" type="boolean" use="optional" default="false"/>
      </extension>
    </complexContent>
  </complexType>
  <!-- MediaFormatType -->
  <complexType name="MediaFormatType">
    <complexContent>
      <extension base="mpeg7:DType">
        <sequence>
          <element name="Content" type="mpeg7:ControlledTermUseType"/>
          <element name="Medium" type="mpeg7:ControlledTermUseType" minOccurs="0"/>
          <element name="FileFormat" type="mpeg7:ControlledTermUseType" minOccurs="0"/>
          <element name="FileSize" type="nonNegativeInteger" minOccurs="0"/>
          <element name="System" type="mpeg7:ControlledTermUseType" minOccurs="0"/>
          <element name="Bandwidth" type="float" minOccurs="0"/>
          <element name="BitRate" minOccurs="0">
            <complexType>
              <simpleContent>
                <extension base="nonNegativeInteger">
                  <attribute name="variable" type="boolean" use="optional" default="false"/>
                  <attribute name="minimum" type="nonNegativeInteger" use="optional"/>
                  <attribute name="average" type="nonNegativeInteger" use="optional"/>
                  <attribute name="maximum" type="nonNegativeInteger" use="optional"/>
                </extension>
              </simpleContent>
            </complexType>
          </element>
          <element name="TargetChannelBitRate" type="nonNegativeInteger" minOccurs="0"/>
          <element name="ScalableCoding" minOccurs="0">
            <simpleType>
              <union>
                <simpleType>
                  <restriction base="NMTOKEN">
                    <enumeration value="spatial"/>
                    <enumeration value="temporal"/>
                    <enumeration value="snr"/>
                    <enumeration value="fgs"/>
                  </restriction>
                </simpleType>
                <simpleType>
                  <restriction base="mpeg7:termReferenceType"/>
                </simpleType>
              </union>
            </simpleType>
          </element>
          <element name="VisualCoding" minOccurs="0">
            <complexType>
              <sequence>
                <element name="Format" minOccurs="0">
                  <complexType>
                    <complexContent>
                      <extension base="mpeg7:ControlledTermUseType">
                        <attribute name="colorDomain" use="optional" default="color">
                          <simpleType>
                            <union>
                              <simpleType>
                                <restriction base="NMTOKEN">
                                  <enumeration value="binary"/>
                                  <enumeration value="color"/>
                                  <enumeration value="graylevel"/>
                                  <enumeration value="colorized"/>
                                </restriction>
                              </simpleType>
                              <simpleType>
                                <restriction base="mpeg7:termReferenceType"/>
                              </simpleType>
                            </union>
                          </simple