<?xml version="1.0" encoding="UTF-8" ?>
<!-- Generated by Turbo XML 2.3.1.100. Conforms to w3c http://www.w3.org/2001/XMLSchema -->
<xs:schema targetNamespace="http://www.imsglobal.org/xsd/imsvdex_v1p0" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.imsglobal.org/xsd/imsvdex_v1p0">
  <xs:element name="vdex" type="vdexType" block="#all"/>
  <xs:element name="metadata" type="metadataType" block="#all"/>
  <xs:element name="langstring" type="langstringType" block="#all"/>
  <xs:element name="caption" type="langstringBag" block="#all"/>
  <xs:element name="description" type="descriptionType" block="#all"/>
  <xs:element name="term" type="termType" block="#all"/>
  <xs:element name="relationship" type="relationshipType" block="#all"/>
  <xs:element name="mediaDescriptor" type="mediaDescriptorType" block="#all"/>
  <xs:element name="mediaLocator" type="mediaLocatorType" block="#all"/>
  <xs:element name="targetTerm" type="termRefType" block="#all"/>
  <xs:element name="sourceTerm" type="termRefType" block="#all"/>
  <xs:complexType name="identifierType">
    <xs:simpleContent>
      <xs:extension base="xs:normalizedString">
        <xs:anyAttribute namespace="##other" processContents="lax"/>
      </xs:extension>       
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="mediaLocatorType">
    <xs:simpleContent>
      <xs:extension base="xs:anyURI">
        <xs:anyAttribute namespace="##other" processContents="lax"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="mediaDescriptorType">
    <xs:sequence>
      <xs:element ref="mediaLocator"/>
      <xs:element name="interpretationNote" type="descriptionType" block="#all" minOccurs="0"/>
      <xs:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="relationshipType">
    <xs:sequence>
      <xs:element name="relationshipIdentifier" type="identifierType" block="#all" minOccurs="0"/>
      <xs:element ref="sourceTerm"/>
      <xs:element ref="targetTerm"/>
      <xs:element name="relationshipType" type="vocabType" block="#all" minOccurs="0"/>
      <xs:element ref="metadata" minOccurs="0" maxOccurs="unbounded"/>
      <xs:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="termType">
    <xs:sequence>
      <xs:element name="termIdentifier" type="identifierType" block="#all"/>
      <xs:element ref="caption" minOccurs="0"/>
      <xs:element ref="description" minOccurs="0"/>
      <xs:element ref="mediaDescriptor" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element ref="metadata" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element ref="term" minOccurs="0" maxOccurs="unbounded"/>
      <xs:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attribute name="orderSignificant" type="xs:boolean" default="false"/>
    <xs:attribute name="validIndex" type="xs:boolean" default="true"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="metadataType">
    <xs:sequence>
      <xs:any namespace="##other" processContents="skip" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="vdexType">
    <xs:sequence>
      <xs:element name="vocabName" type="langstringBag" block="#all" minOccurs="0"/>
      <xs:element name="vocabIdentifier" type="vocabIdentifierType" block="#all" minOccurs="0"/>
      <xs:element ref="term" maxOccurs="unbounded"/>
      <xs:element ref="relationship" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element ref="metadata" minOccurs="0" maxOccurs="unbounded"/>
      <xs:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attribute name="orderSignificant" type="xs:boolean" default="false"/>
    <xs:attribute name="profileType" type="vdexProfilesType" default="lax"/>
    <xs:attribute name="language" type="xs:language"/>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="langstringType">
    <xs:simpleContent>
      <xs:extension base="xs:string">
        <xs:attribute name="language" type="xs:language"/>
        <xs:anyAttribute namespace="##other" processContents="lax"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="langstringBag">
    <xs:sequence>
      <xs:element ref="langstring" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:anyAttribute namespace="##other" processContents="lax"/>
  </xs:complexType>
  <xs:complexType name="vocabType">
    <xs:simpleContent>
      <xs:extension base="xs:string">
        <xs:attribute name="source" type="xs:anyURI" use="required"/>
        <xs:anyAttribute namespace="##other" processContents="lax"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="descriptionType">
    <xs:complexContent>
      <xs:extension base="langstringBag"/>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="vocabIdentifierType">
    <xs:simpleContent>
      <xs:extension base="identifierType">
        <xs:attribute name="isRegistered" type="xs:boolean" default="false"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="termRefType">
    <xs:simpleContent>
      <xs:extension base="identifierType">
        <xs:attribute name="vocabularyIdentifier" type="xs:anyURI"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:simpleType name="vdexProfilesType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="lax"/>
      <xs:enumeration value="hierarchicalTokenTerms"/>
      <xs:enumeration value="flatTokenTerms"/>
      <xs:enumeration value="glossaryOrDictionary"/>
      <xs:enumeration value="thesaurus"/>
    </xs:restriction>
  </xs:simpleType>
</xs:schema>

