﻿<?xml version="1.0" encoding="utf-8"?>
<xsd:schema targetNamespace="http://oval.mitre.org/XMLSchema/oval-definitions-5" elementFormDefault="qualified" version="5.3" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:oval="http://oval.mitre.org/XMLSchema/oval-common-5" xmlns:oval-def="http://oval.mitre.org/XMLSchema/oval-definitions-5" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:sch="http://purl.oclc.org/dsdl/schematron">
  <xsd:import namespace="http://oval.mitre.org/XMLSchema/oval-common-5" schemaLocation="oval-common-schema.xsd" />
  <xsd:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="xmldsig-core-schema.xsd" />
  <xsd:element name="oval_definitions">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element name="generator" type="oval:GeneratorType" minOccurs="1" maxOccurs="1" />
        <xsd:element name="definitions" type="oval-def:DefinitionsType" minOccurs="0" maxOccurs="1" />
        <xsd:element name="tests" type="oval-def:TestsType" minOccurs="0" maxOccurs="1" />
        <xsd:element name="objects" type="oval-def:ObjectsType" minOccurs="0" maxOccurs="1" />
        <xsd:element name="states" type="oval-def:StatesType" minOccurs="0" maxOccurs="1" />
        <xsd:element name="variables" type="oval-def:VariablesType" minOccurs="0" maxOccurs="1" />
        <xsd:element ref="ds:Signature" minOccurs="0" maxOccurs="1" />
      </xsd:sequence>
    </xsd:complexType>
    <xsd:key name="definitionKey">
      <xsd:selector xpath="oval-def:definitions/oval-def:definition" />
      <xsd:field xpath="@id" />
    </xsd:key>
    <xsd:key name="testKey">
      <xsd:selector xpath="oval-def:tests/*" />
      <xsd:field xpath="@id" />
    </xsd:key>
    <xsd:key name="objectKey">
      <xsd:selector xpath="oval-def:objects/*" />
      <xsd:field xpath="@id" />
    </xsd:key>
    <xsd:key name="stateKey">
      <xsd:selector xpath="oval-def:states/*" />
      <xsd:field xpath="@id" />
    </xsd:key>
    <xsd:key name="variableKey">
      <xsd:selector xpath="oval-def:variables/*" />
      <xsd:field xpath="@id" />
    </xsd:key>
    <xsd:keyref name="extendKeyRef" refer="oval-def:definitionKey">
      <xsd:selector xpath=".//*" />
      <xsd:field xpath="@definition_ref" />
    </xsd:keyref>
    <xsd:keyref name="testKeyRef" refer="oval-def:testKey">
      <xsd:selector xpath=".//*" />
      <xsd:field xpath="@test_ref" />
    </xsd:keyref>
    <xsd:keyref name="objectKeyRef" refer="oval-def:objectKey">
      <xsd:selector xpath=".//*" />
      <xsd:field xpath="@object_ref" />
    </xsd:keyref>
    <xsd:keyref name="stateKeyRef" refer="oval-def:stateKey">
      <xsd:selector xpath=".//*" />
      <xsd:field xpath="@state_ref" />
    </xsd:keyref>
    <xsd:keyref name="variableKeyRef" refer="oval-def:variableKey">
      <xsd:selector xpath=".//*" />
      <xsd:field xpath="@var_ref" />
    </xsd:keyref>
    <xsd:keyref name="object_referenceKeyRef" refer="oval-def:objectKey">
      <xsd:selector xpath=".//oval-def:object_reference" />
      <xsd:field xpath="." />
    </xsd:keyref>
    <xsd:keyref name="filterKeyRef" refer="oval-def:stateKey">
      <xsd:selector xpath=".//oval-def:filter" />
      <xsd:field xpath="." />
    </xsd:keyref>
  </xsd:element>
  <xsd:complexType name="DefinitionsType">
    <xsd:sequence>
      <xsd:element name="definition" type="oval-def:DefinitionType" minOccurs="1" maxOccurs="unbounded" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="DefinitionType">
    <xsd:sequence>
      <xsd:element ref="ds:Signature" minOccurs="0" maxOccurs="1" />
      <xsd:element name="metadata" type="oval-def:MetadataType" minOccurs="1" maxOccurs="1" />
      <xsd:element name="notes" type="oval-def:NotesType" minOccurs="0" maxOccurs="1" />
      <xsd:element name="criteria" type="oval-def:CriteriaType" minOccurs="0" maxOccurs="1" />
    </xsd:sequence>
    <xsd:attribute name="id" type="oval:DefinitionIDPattern" use="required" />
    <xsd:attribute name="version" type="xsd:nonNegativeInteger" use="required" />
    <xsd:attribute name="class" type="oval-def:ClassEnumeration" use="required" />
    <xsd:attribute name="deprecated" type="xsd:boolean" use="optional" default="false" />
  </xsd:complexType>
  <xsd:complexType name="MetadataType">
    <xsd:sequence>
      <xsd:element name="title" type="xsd:string" minOccurs="1" maxOccurs="1" />
      <xsd:element name="affected" type="oval-def:AffectedType" minOccurs="0" maxOccurs="unbounded" />
      <xsd:element name="reference" type="oval-def:ReferenceType" minOccurs="0" maxOccurs="unbounded" />
      <xsd:element name="description" type="xsd:string" minOccurs="1" maxOccurs="1" />
      <xsd:any minOccurs="0" maxOccurs="unbounded" processContents="skip" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="AffectedType">
    <xsd:sequence>
      <xsd:element name="platform" type="xsd:string" minOccurs="0" maxOccurs="unbounded" />
      <xsd:element name="product" type="xsd:string" minOccurs="0" maxOccurs="unbounded" />
    </xsd:sequence>
    <xsd:attribute name="family" type="oval:FamilyEnumeration" use="required" />
  </xsd:complexType>
  <xsd:complexType name="ReferenceType">
    <xsd:attribute name="source" type="xsd:string" use="required" />
    <xsd:attribute name="ref_id" type="xsd:string" use="required" />
    <xsd:attribute name="ref_url" type="xsd:anyURI" use="optional" />
  </xsd:complexType>
  <xsd:complexType name="NotesType">
    <xsd:sequence>
      <xsd:element name="note" type="xsd:string" minOccurs="1" maxOccurs="unbounded" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="CriteriaType">
    <xsd:choice minOccurs="1" maxOccurs="unbounded">
      <xsd:element name="criteria" type="oval-def:CriteriaType" />
      <xsd:element name="criterion" type="oval-def:CriterionType" />
      <xsd:element name="extend_definition" type="oval-def:ExtendDefinitionType" />
    </xsd:choice>
    <xsd:attribute name="operator" type="oval:OperatorEnumeration" use="optional" default="AND" />
    <xsd:attribute name="negate" type="xsd:boolean" use="optional" default="false" />
    <xsd:attribute name="comment" type="oval:NonEmptyStringType" use="optional" />
  </xsd:complexType>
  <xsd:complexType name="CriterionType">
    <xsd:attribute name="test_ref" type="oval:TestIDPattern" use="required" />
    <xsd:attribute name="negate" type="xsd:boolean" use="optional" default="false" />
    <xsd:attribute name="comment" type="oval:NonEmptyStringType" use="optional" />
  </xsd:complexType>
  <xsd:complexType name="ExtendDefinitionType">
    <xsd:attribute name="definition_ref" type="oval:DefinitionIDPattern" use="required" />
    <xsd:attribute name="negate" type="xsd:boolean" use="optional" default="false" />
    <xsd:attribute name="comment" type="oval:NonEmptyStringType" use="optional" />
  </xsd:complexType>
  <xsd:complexType name="TestsType">
    <xsd:sequence>
      <xsd:element ref="oval-def:test" minOccurs="1" maxOccurs="unbounded" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:element name="test" type="oval-def:TestType" abstract="true" />
  <xsd:complexType name="TestType">
    <xsd:sequence>
      <xsd:element ref="ds:Signature" minOccurs="0" maxOccurs="1" />
      <xsd:element name="notes" type="oval-def:NotesType" minOccurs="0" maxOccurs="1" />
    </xsd:sequence>
    <xsd:attribute name="id" type="oval:TestIDPattern" use="required" />
    <xsd:attribute name="version" type="xsd:nonNegativeInteger" use="required" />
    <xsd:attribute name="check_existence" type="oval:ExistenceEnumeration" use="optional" default="at_least_one_exists" />
    <xsd:attribute name="check" type="oval:CheckEnumeration" use="required" />
    <xsd:attribute name="comment" type="oval:NonEmptyStringType" use="required" />
    <xsd:attribute name="deprecated" type="xsd:boolean" use="optional" default="false" />
  </xsd:complexType>
  <xsd:complexType name="ObjectRefType">
    <xsd:attribute name="object_ref" type="oval:ObjectIDPattern" use="required" />
  </xsd:complexType>
  <xsd:complexType name="StateRefType">
    <xsd:attribute name="state_ref" type="oval:StateIDPattern" use="required" />
  </xsd:complexType>
  <xsd:complexType name="ObjectsType">
    <xsd:sequence>
      <xsd:element ref="oval-def:object" minOccurs="1" maxOccurs="unbounded" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:element name="object" type="oval-def:ObjectType" abstract="true" />
  <xsd:complexType name="ObjectType">
    <xsd:sequence>
      <xsd:element ref="ds:Signature" minOccurs="0" maxOccurs="1" />
      <xsd:element name="notes" type="oval-def:NotesType" minOccurs="0" maxOccurs="1" />
    </xsd:sequence>
    <xsd:attribute name="id" type="oval:ObjectIDPattern" use="required" />
    <xsd:attribute name="version" type="xsd:nonNegativeInteger" use="required" />
    <xsd:attribute name="comment" type="oval:NonEmptyStringType" use="optional" />
    <xsd:attribute name="deprecated" type="xsd:boolean" use="optional" default="false" />
  </xsd:complexType>
  <xsd:element name="set">
    <xsd:complexType>
      <xsd:choice>
        <xsd:sequence>
          <xsd:element ref="oval-def:set" minOccurs="1" maxOccurs="2" />
        </xsd:sequence>
        <xsd:sequence>
          <xsd:element name="object_reference" type="oval:ObjectIDPattern" minOccurs="1" maxOccurs="2" />
          <xsd:element name="filter" type="oval:StateIDPattern" minOccurs="0" maxOccurs="unbounded" />
        </xsd:sequence>
      </xsd:choice>
      <xsd:attribute name="set_operator" type="oval-def:SetOperatorEnumeration" use="optional" default="UNION" />
    </xsd:complexType>
  </xsd:element>
  <xsd:complexType name="StatesType">
    <xsd:sequence>
      <xsd:element ref="oval-def:state" minOccurs="1" maxOccurs="unbounded" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:element name="state" type="oval-def:StateType" abstract="true" />
  <xsd:complexType name="StateType">
    <xsd:sequence>
      <xsd:element ref="ds:Signature" minOccurs="0" maxOccurs="1" />
      <xsd:element name="notes" type="oval-def:NotesType" minOccurs="0" maxOccurs="1" />
    </xsd:sequence>
    <xsd:attribute name="id" type="oval:StateIDPattern" use="required" />
    <xsd:attribute name="version" type="xsd:nonNegativeInteger" use="required" />
    <xsd:attribute name="operator" type="oval:OperatorEnumeration" use="optional" default="AND" />
    <xsd:attribute name="comment" type="oval:NonEmptyStringType" use="optional" />
    <xsd:attribute name="deprecated" type="xsd:boolean" use="optional" default="false" />
  </xsd:complexType>
  <xsd:complexType name="VariablesType">
    <xsd:sequence>
      <xsd:element ref="oval-def:variable" minOccurs="1" maxOccurs="unbounded" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:element name="variable" type="oval-def:VariableType" abstract="true" />
  <xsd:complexType name="VariableType">
    <xsd:sequence>
      <xsd:element ref="ds:Signature" minOccurs="0" maxOccurs="1" />
    </xsd:sequence>
    <xsd:attribute name="id" type="oval:VariableIDPattern" use="required" />
    <xsd:attribute name="version" type="xsd:nonNegativeInteger" use="required" />
    <xsd:attribute name="datatype" type="oval:DatatypeEnumeration" use="required" />
    <xsd:attribute name="comment" type="oval:NonEmptyStringType" use="required" />
    <xsd:attribute name="deprecated" type="xsd:boolean" use="optional" default="false" />
  </xsd:complexType>
  <xsd:element name="external_variable" substitutionGroup="oval-def:variable">
    <xsd:complexType>
      <xsd:complexContent>
        <xsd:extension base="oval-def:VariableType">
          <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="possible_value" type="oval-def:PossibleValueType" />
            <xsd:element name="possible_restriction" type="oval-def:PossibleRestrictionType" />
          </xsd:choice>
        </xsd:extension>
      </xsd:complexContent>
    </xsd:complexType>
  </xsd:element>
  <xsd:complexType name="PossibleValueType">
    <xsd:simpleContent>
      <xsd:extension base="xsd:anySimpleType">
        <xsd:attribute name="hint" type="xsd:string" use="required" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="PossibleRestrictionType">
    <xsd:choice>
      <xsd:element name="restriction" type="oval-def:RestrictionType" minOccurs="1" maxOccurs="unbounded" />
    </xsd:choice>
    <xsd:attribute name="hint" type="xsd:string" use="required" />
  </xsd:complexType>
  <xsd:complexType name="RestrictionType">
    <xsd:simpleContent>
      <xsd:extension base="xsd:anySimpleType">
        <xsd:attribute name="operation" type="oval:OperationEnumeration" use="required" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:element name="constant_variable" substitutionGroup="oval-def:variable">
    <xsd:complexType>
      <xsd:complexContent>
        <xsd:extension base="oval-def:VariableType">
          <xsd:sequence>
            <xsd:element name="value" type="oval-def:ValueType" minOccurs="1" maxOccurs="unbounded" />
          </xsd:sequence>
        </xsd:extension>
      </xsd:complexContent>
    </xsd:complexType>
  </xsd:element>
  <xsd:complexType name="ValueType">
    <xsd:simpleContent>
      <xsd:extension base="xsd:anySimpleType" />
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:element name="local_variable" substitutionGroup="oval-def:variable">
    <xsd:complexType>
      <xsd:complexContent>
        <xsd:extension base="oval-def:VariableType">
          <xsd:sequence>
            <xsd:group ref="oval-def:ComponentGroup" minOccurs="1" maxOccurs="1" />
          </xsd:sequence>
        </xsd:extension>
      </xsd:complexContent>
    </xsd:complexType>
  </xsd:element>
  <xsd:group name="ComponentGroup">
    <xsd:choice>
      <xsd:element name="object_component" type="oval-def:ObjectComponentType" />
      <xsd:element name="variable_component" type="oval-def:VariableComponentType" />
      <xsd:element name="literal_component" type="xsd:anySimpleType" />
      <xsd:group ref="oval-def:FunctionGroup" />
    </xsd:choice>
  </xsd:group>
  <xsd:complexType name="ObjectComponentType">
    <xsd:attribute name="object_ref" type="oval:ObjectIDPattern" use="required" />
    <xsd:attribute name="item_field" type="xsd:string" use="required" />
  </xsd:complexType>
  <xsd:complexType name="VariableComponentType">
    <xsd:attribute name="var_ref" type="oval:VariableIDPattern" use="required" />
  </xsd:complexType>
  <xsd:group name="FunctionGroup">
    <xsd:choice>
      <xsd:element name="begin" type="oval-def:BeginFunctionType" />
      <xsd:element name="concat" type="oval-def:ConcatFunctionType" />
      <xsd:element name="end" type="oval-def:EndFunctionType" />
      <xsd:element name="escape_regex" type="oval-def:EscapeRegexFunctionType" />
      <xsd:element name="split" type="oval-def:SplitFunctionType" />
      <xsd:element name="substring" type="oval-def:SubstringFunctionType" />
    </xsd:choice>
  </xsd:group>
  <xsd:complexType name="BeginFunctionType">
    <xsd:sequence minOccurs="1" maxOccurs="1">
      <xsd:group ref="oval-def:ComponentGroup" />
    </xsd:sequence>
    <xsd:attribute name="character" type="xsd:string" use="required" />
  </xsd:complexType>
  <xsd:complexType name="ConcatFunctionType">
    <xsd:sequence minOccurs="2" maxOccurs="unbounded">
      <xsd:group ref="oval-def:ComponentGroup" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="EndFunctionType">
    <xsd:sequence minOccurs="1" maxOccurs="1">
      <xsd:group ref="oval-def:ComponentGroup" />
    </xsd:sequence>
    <xsd:attribute name="character" type="xsd:string" use="required" />
  </xsd:complexType>
  <xsd:complexType name="EscapeRegexFunctionType">
    <xsd:sequence minOccurs="1" maxOccurs="1">
      <xsd:group ref="oval-def:ComponentGroup" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="SplitFunctionType">
    <xsd:sequence minOccurs="1" maxOccurs="1">
      <xsd:group ref="oval-def:ComponentGroup" />
    </xsd:sequence>
    <xsd:attribute name="delimiter" type="xsd:string" use="required" />
  </xsd:complexType>
  <xsd:complexType name="SubstringFunctionType">
    <xsd:sequence minOccurs="1" maxOccurs="1">
      <xsd:group ref="oval-def:ComponentGroup" />
    </xsd:sequence>
    <xsd:attribute name="substring_start" type="xsd:int" use="required" />
    <xsd:attribute name="substring_length" type="xsd:int" use="required" />
  </xsd:complexType>
  <xsd:simpleType name="ClassEnumeration">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="compliance" />
      <xsd:enumeration value="inventory" />
      <xsd:enumeration value="miscellaneous" />
      <xsd:enumeration value="patch" />
      <xsd:enumeration value="vulnerability" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="SetOperatorEnumeration">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="COMPLEMENT" />
      <xsd:enumeration value="INTERSECTION" />
      <xsd:enumeration value="UNION" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:complexType name="EntityBaseType" abstract="true">
    <xsd:simpleContent>
      <xsd:extension base="xsd:anySimpleType">
        <xsd:attribute name="datatype" type="oval:DatatypeEnumeration" use="optional" default="string" />
        <xsd:attribute name="operation" type="oval:OperationEnumeration" use="optional" default="equals" />
        <xsd:attribute name="mask" type="xsd:boolean" use="optional" default="false" />
        <xsd:attribute name="var_ref" type="oval:VariableIDPattern" use="optional" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="EntityObjectBaseType" abstract="true">
    <xsd:simpleContent>
      <xsd:extension base="oval-def:EntityBaseType">
        <xsd:attribute name="var_check" type="oval:CheckEnumeration" use="optional" default="all" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="EntityObjectAnyType">
    <xsd:simpleContent>
      <xsd:extension base="oval-def:EntityObjectBaseType" />
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="EntityObjectBinaryType">
    <xsd:simpleContent>
      <xsd:restriction base="oval-def:EntityObjectBaseType">
        <xsd:simpleType>
          <xsd:union memberTypes="xsd:hexBinary oval:EmptyStringType" />
        </xsd:simpleType>
      </xsd:restriction>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="EntityObjectBoolType">
    <xsd:simpleContent>
      <xsd:restriction base="oval-def:EntityObjectBaseType">
        <xsd:simpleType>
          <xsd:union memberTypes="xsd:boolean oval:EmptyStringType" />
        </xsd:simpleType>
      </xsd:restriction>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="EntityObjectFloatType">
    <xsd:simpleContent>
      <xsd:restriction base="oval-def:EntityObjectBaseType">
        <xsd:simpleType>
          <xsd:union memberTypes="xsd:float oval:EmptyStringType" />
        </xsd:simpleType>
      </xsd:restriction>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="EntityObjectIntType">
    <xsd:simpleContent>
      <xsd:restriction base="oval-def:EntityObjectBaseType">
        <xsd:simpleType>
          <xsd:union memberTypes="xsd:integer oval:EmptyStringType" />
        </xsd:simpleType>
      </xsd:restriction>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="EntityObjectStringType">
    <xsd:simpleContent>
      <xsd:restriction base="oval-def:EntityObjectBaseType">
        <xsd:simpleType>
          <xsd:restriction base="xsd:string" />
        </xsd:simpleType>
      </xsd:restriction>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="EntityStateBaseType" abstract="true">
    <xsd:simpleContent>
      <xsd:extension base="oval-def:EntityBaseType">
        <xsd:attribute name="entity_check" type="oval:CheckEnumeration" use="optional" default="all" />
        <xsd:attribute name="var_check" type="oval:CheckEnumeration" use="optional" default="all" />
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="EntityStateAnyType">
    <xsd:simpleContent>
      <xsd:extension base="oval-def:EntityStateBaseType" />
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="EntityStateBinaryType">
    <xsd:simpleContent>
      <xsd:restriction base="oval-def:EntityStateBaseType">
        <xsd:simpleType>
          <xsd:union memberTypes="xsd:hexBinary oval:EmptyStringType" />
        </xsd:simpleType>
      </xsd:restriction>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="EntityStateBoolType">
    <xsd:simpleContent>
      <xsd:restriction base="oval-def:EntityStateBaseType">
        <xsd:simpleType>
          <xsd:union memberTypes="xsd:boolean oval:EmptyStringType" />
        </xsd:simpleType>
      </xsd:restriction>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="EntityStateFloatType">
    <xsd:simpleContent>
      <xsd:restriction base="oval-def:EntityStateBaseType">
        <xsd:simpleType>
          <xsd:union memberTypes="xsd:float oval:EmptyStringType" />
        </xsd:simpleType>
      </xsd:restriction>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="EntityStateIntType">
    <xsd:simpleContent>
      <xsd:restriction base="oval-def:EntityStateBaseType">
        <xsd:simpleType>
          <xsd:union memberTypes="xsd:integer oval:EmptyStringType" />
        </xsd:simpleType>
      </xsd:restriction>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="EntityStateStringType">
    <xsd:simpleContent>
      <xsd:restriction base="oval-def:EntityStateBaseType">
        <xsd:simpleType>
          <xsd:restriction base="xsd:string" />
        </xsd:simpleType>
      </xsd:restriction>
    </xsd:simpleContent>
  </xsd:complexType>
</xsd:schema>