<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<xsd:schema xmlns:toif="http://schema.omg.org/spec/TOIF/1.0/toif" 
xmlns:xmi="http://www.omg.org/spec/XMI/20131001"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
targetNamespace="http://schema.omg.org/spec/TOIF/1.0/toif">
    <xsd:import namespace="http://www.omg.org/spec/XMI/20131001"
        schemaLocation="http://www.omg.org/spec/XMI/20131001/XMI.xsd"/>
<xsd:complexType name="Finding">
    <xsd:complexContent>
      <xsd:extension base="toif:BasicEntity">
        <xsd:choice maxOccurs="unbounded" minOccurs="0">
          <xsd:element name="confidence" type="toif:Confidence"/>
          <xsd:element name="criticality" type="toif:Criticality"/>
        </xsd:choice>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="Finding" type="toif:Finding"/>
  <xsd:complexType abstract="true" name="BasicEntity">
    <xsd:complexContent>
      <xsd:extension base="toif:Entity"/>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="BasicEntity" type="toif:BasicEntity"/>
  <xsd:complexType abstract="true" name="Entity">
    <xsd:complexContent>
      <xsd:extension base="toif:TOIFElement">
        <xsd:attribute name="idref" type="xsd:string"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="Entity" type="toif:Entity"/>
  <xsd:complexType abstract="true" name="TOIFElement">
    <xsd:complexContent>
      <xsd:extension base="toif:Element"/>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="TOIFElement" type="toif:TOIFElement"/>
  <xsd:complexType abstract="true" name="Element">
    <xsd:choice maxOccurs="unbounded" minOccurs="0">
      <xsd:element ref="xmi:Extension"/>
    </xsd:choice>
    <xsd:attribute ref="xmi:id"/>
    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
  </xsd:complexType>
  <xsd:element name="Element" type="toif:Element"/>
  <xsd:complexType name="Confidence">
    <xsd:complexContent>
      <xsd:extension base="toif:Attribute">
        <xsd:attribute name="level" type="xsd:string" use="required"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="Confidence" type="toif:Confidence"/>
  <xsd:complexType abstract="true" name="Attribute">
    <xsd:complexContent>
      <xsd:extension base="toif:Element"/>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="Attribute" type="toif:Attribute"/>
  <xsd:complexType name="Criticality">
    <xsd:complexContent>
      <xsd:extension base="toif:Attribute">
        <xsd:attribute name="level" type="xsd:string" use="required"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="Criticality" type="toif:Criticality"/>
  <xsd:complexType name="CWEIdentifier">
    <xsd:complexContent>
      <xsd:extension base="toif:WeaknessTypeIdentifier"/>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="CWEIdentifier" type="toif:CWEIdentifier"/>
  <xsd:complexType abstract="true" name="WeaknessTypeIdentifier">
    <xsd:complexContent>
      <xsd:extension base="toif:BasicEntity">
        <xsd:choice maxOccurs="unbounded" minOccurs="0">
          <xsd:element name="description" type="toif:Description"/>
          <xsd:element name="name" type="toif:Name"/>
        </xsd:choice>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="WeaknessTypeIdentifier" type="toif:WeaknessTypeIdentifier"/>
  <xsd:complexType name="Description">
    <xsd:complexContent>
      <xsd:extension base="toif:Attribute">
        <xsd:attribute name="text" type="xsd:string" use="required"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="Description" type="toif:Description"/>
  <xsd:complexType name="Name">
    <xsd:complexContent>
      <xsd:extension base="toif:Attribute">
        <xsd:attribute name="name" type="xsd:string" use="required"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="Name" type="toif:Name"/>
  <xsd:complexType name="FindingIsDefinedAsCWE">
    <xsd:complexContent>
      <xsd:extension base="toif:FindingFact">
        <xsd:choice maxOccurs="unbounded" minOccurs="0">
          <xsd:element name="finding" type="toif:Finding"/>
          <xsd:element name="cwe" type="toif:CWEIdentifier"/>
        </xsd:choice>
        <xsd:attribute name="finding" type="xsd:string"/>
        <xsd:attribute name="cwe" type="xsd:string"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="FindingIsDefinedAsCWE" type="toif:FindingIsDefinedAsCWE"/>
  <xsd:complexType abstract="true" name="FindingFact">
    <xsd:complexContent>
      <xsd:extension base="toif:Fact"/>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="FindingFact" type="toif:FindingFact"/>
  <xsd:complexType abstract="true" name="Fact">
    <xsd:complexContent>
      <xsd:extension base="toif:TOIFElement"/>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="Fact" type="toif:Fact"/>
  <xsd:complexType name="CodeLocation">
    <xsd:complexContent>
      <xsd:extension base="toif:BasicEntity">
        <xsd:choice maxOccurs="unbounded" minOccurs="0">
          <xsd:element name="offset" type="toif:Offset"/>
          <xsd:element name="position" type="toif:Position"/>
          <xsd:element name="linenumber" type="toif:Linenumber"/>
        </xsd:choice>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="CodeLocation" type="toif:CodeLocation"/>
  <xsd:complexType name="Offset">
    <xsd:complexContent>
      <xsd:extension base="toif:Attribute">
        <xsd:attribute name="offset" type="xsd:string" use="required"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="Offset" type="toif:Offset"/>
  <xsd:complexType name="Position">
    <xsd:complexContent>
      <xsd:extension base="toif:Attribute">
        <xsd:attribute name="position" type="xsd:string" use="required"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="Position" type="toif:Position"/>
  <xsd:complexType name="Linenumber">
    <xsd:complexContent>
      <xsd:extension base="toif:Attribute">
        <xsd:attribute name="linenumber" type="xsd:string" use="required"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="Linenumber" type="toif:Linenumber"/>
  <xsd:complexType name="WeaknessDescription">
    <xsd:complexContent>
      <xsd:extension base="toif:BasicEntity">
        <xsd:choice maxOccurs="unbounded" minOccurs="0">
          <xsd:element name="text" type="toif:Description"/>
        </xsd:choice>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="WeaknessDescription" type="toif:WeaknessDescription"/>
  <xsd:complexType name="FindingHasCodeLocation">
    <xsd:complexContent>
      <xsd:extension base="toif:FindingFact">
        <xsd:choice maxOccurs="unbounded" minOccurs="0">
          <xsd:element name="finding" type="toif:Finding"/>
          <xsd:element name="location" type="toif:CodeLocation"/>
        </xsd:choice>
        <xsd:attribute name="finding" type="xsd:string"/>
        <xsd:attribute name="location" type="xsd:string"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="FindingHasCodeLocation" type="toif:FindingHasCodeLocation"/>
  <xsd:complexType name="FindingIsReportedAsType">
    <xsd:complexContent>
      <xsd:extension base="toif:FindingFact">
        <xsd:choice maxOccurs="unbounded" minOccurs="0">
          <xsd:element name="finding" type="toif:Finding"/>
          <xsd:element name="type" type="toif:WeaknessDescription"/>
        </xsd:choice>
        <xsd:attribute name="finding" type="xsd:string"/>
        <xsd:attribute name="type" type="xsd:string"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="FindingIsReportedAsType" type="toif:FindingIsReportedAsType"/>
  <xsd:complexType name="File">
    <xsd:complexContent>
      <xsd:extension base="toif:BasicEntity">
        <xsd:choice maxOccurs="unbounded" minOccurs="0">
          <xsd:element name="checksum" type="toif:Checksum"/>
          <xsd:element name="version" type="toif:Version"/>
          <xsd:element name="name" type="toif:Name"/>
        </xsd:choice>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="File" type="toif:File"/>
  <xsd:complexType name="Checksum">
    <xsd:complexContent>
      <xsd:extension base="toif:Attribute">
        <xsd:attribute name="checksum" type="xsd:string" use="required"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="Checksum" type="toif:Checksum"/>
  <xsd:complexType name="Version">
    <xsd:complexContent>
      <xsd:extension base="toif:Attribute">
        <xsd:attribute name="version" type="xsd:string" use="required"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="Version" type="toif:Version"/>
  <xsd:complexType name="CodeLocationReferencesFile">
    <xsd:complexContent>
      <xsd:extension base="toif:CodeLocationFact">
        <xsd:choice maxOccurs="unbounded" minOccurs="0">
          <xsd:element name="location" type="toif:CodeLocation"/>
          <xsd:element name="file" type="toif:File"/>
        </xsd:choice>
        <xsd:attribute name="location" type="xsd:string"/>
        <xsd:attribute name="file" type="xsd:string"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="CodeLocationReferencesFile" type="toif:CodeLocationReferencesFile"/>
  <xsd:complexType abstract="true" name="CodeLocationFact">
    <xsd:complexContent>
      <xsd:extension base="toif:Fact"/>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="CodeLocationFact" type="toif:CodeLocationFact"/>
  <xsd:complexType name="Directory">
    <xsd:complexContent>
      <xsd:extension base="toif:BasicEntity">
        <xsd:choice maxOccurs="unbounded" minOccurs="0">
          <xsd:element name="name" type="toif:Name"/>
        </xsd:choice>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="Directory" type="toif:Directory"/>
  <xsd:complexType name="DirectoryIsContainedInDirectory">
    <xsd:complexContent>
      <xsd:extension base="toif:CodeLocationFact">
        <xsd:choice maxOccurs="unbounded" minOccurs="0">
          <xsd:element name="directory2" type="toif:Directory"/>
          <xsd:element name="directory1" type="toif:Directory"/>
        </xsd:choice>
        <xsd:attribute name="directory2" type="xsd:string"/>
        <xsd:attribute name="directory1" type="xsd:string"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="DirectoryIsContainedInDirectory" type="toif:DirectoryIsContainedInDirectory"/>
  <xsd:complexType name="FileIsContainedInDirectory">
    <xsd:complexContent>
      <xsd:extension base="toif:CodeLocationFact">
        <xsd:choice maxOccurs="unbounded" minOccurs="0">
          <xsd:element name="directory" type="toif:Directory"/>
          <xsd:element name="file" type="toif:File"/>
        </xsd:choice>
        <xsd:attribute name="directory" type="xsd:string"/>
        <xsd:attribute name="file" type="xsd:string"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="FileIsContainedInDirectory" type="toif:FileIsContainedInDirectory"/>
  <xsd:complexType name="Statement">
    <xsd:complexContent>
      <xsd:extension base="toif:BasicEntity">
        <xsd:choice maxOccurs="unbounded" minOccurs="0">
          <xsd:element name="description" type="toif:Description"/>
        </xsd:choice>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="Statement" type="toif:Statement"/>
  <xsd:complexType name="StatementHasCodeLocation">
    <xsd:complexContent>
      <xsd:extension base="toif:SemanticFact">
        <xsd:choice maxOccurs="unbounded" minOccurs="0">
          <xsd:element name="statement" type="toif:Statement"/>
          <xsd:element name="location" type="toif:CodeLocation"/>
        </xsd:choice>
        <xsd:attribute name="statement" type="xsd:string"/>
        <xsd:attribute name="location" type="xsd:string"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="StatementHasCodeLocation" type="toif:StatementHasCodeLocation"/>
  <xsd:complexType abstract="true" name="SemanticFact">
    <xsd:complexContent>
      <xsd:extension base="toif:Fact"/>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="SemanticFact" type="toif:SemanticFact"/>
  <xsd:complexType name="StatementIsPrecededByStatement">
    <xsd:complexContent>
      <xsd:extension base="toif:SemanticFact">
        <xsd:choice maxOccurs="unbounded" minOccurs="0">
          <xsd:element name="statement2" type="toif:Statement"/>
          <xsd:element name="statement1" type="toif:Statement"/>
        </xsd:choice>
        <xsd:attribute name="statement2" type="xsd:string"/>
        <xsd:attribute name="statement1" type="xsd:string"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="StatementIsPrecededByStatement" type="toif:StatementIsPrecededByStatement"/>
  <xsd:complexType name="StatementIsInvolvedInFinding">
    <xsd:complexContent>
      <xsd:extension base="toif:SemanticFact">
        <xsd:choice maxOccurs="unbounded" minOccurs="0">
          <xsd:element name="statement" type="toif:Statement"/>
          <xsd:element name="finding" type="toif:Finding"/>
        </xsd:choice>
        <xsd:attribute name="statement" type="xsd:string"/>
        <xsd:attribute name="finding" type="xsd:string"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="StatementIsInvolvedInFinding" type="toif:StatementIsInvolvedInFinding"/>
  <xsd:complexType name="StatementIsSinkOfFinding">
    <xsd:complexContent>
      <xsd:extension base="toif:SemanticFact">
        <xsd:choice maxOccurs="unbounded" minOccurs="0">
          <xsd:element name="statement" type="toif:Statement"/>
          <xsd:element name="finding" type="toif:Finding"/>
        </xsd:choice>
        <xsd:attribute name="statement" type="xsd:string"/>
        <xsd:attribute name="finding" type="xsd:string"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="StatementIsSinkOfFinding" type="toif:StatementIsSinkOfFinding"/>
  <xsd:complexType name="StatementIsSourceOfFinding">
    <xsd:complexContent>
      <xsd:extension base="toif:SemanticFact">
        <xsd:choice maxOccurs="unbounded" minOccurs="0">
          <xsd:element name="statement" type="toif:Statement"/>
          <xsd:element name="finding" type="toif:Finding"/>
        </xsd:choice>
        <xsd:attribute name="statement" type="xsd:string"/>
        <xsd:attribute name="finding" type="xsd:string"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="StatementIsSourceOfFinding" type="toif:StatementIsSourceOfFinding"/>
  <xsd:complexType name="DataElement">
    <xsd:complexContent>
      <xsd:extension base="toif:BasicEntity">
        <xsd:choice maxOccurs="unbounded" minOccurs="0">
          <xsd:element name="name" type="toif:Name"/>
          <xsd:element name="description" type="toif:Description"/>
        </xsd:choice>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="DataElement" type="toif:DataElement"/>
  <xsd:complexType name="DataIsInvolvedInFinding">
    <xsd:complexContent>
      <xsd:extension base="toif:SemanticFact">
        <xsd:choice maxOccurs="unbounded" minOccurs="0">
          <xsd:element name="data" type="toif:DataElement"/>
          <xsd:element name="finding" type="toif:Finding"/>
        </xsd:choice>
        <xsd:attribute name="data" type="xsd:string"/>
        <xsd:attribute name="finding" type="xsd:string"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="DataIsInvolvedInFinding" type="toif:DataIsInvolvedInFinding"/>
  <xsd:complexType name="DataIsInvolvedInStatement">
    <xsd:complexContent>
      <xsd:extension base="toif:SemanticFact">
        <xsd:choice maxOccurs="unbounded" minOccurs="0">
          <xsd:element name="data" type="toif:DataElement"/>
          <xsd:element name="statement" type="toif:Statement"/>
        </xsd:choice>
        <xsd:attribute name="data" type="xsd:string"/>
        <xsd:attribute name="statement" type="xsd:string"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="DataIsInvolvedInStatement" type="toif:DataIsInvolvedInStatement"/>
  <xsd:complexType name="TOIFSegment">
    <xsd:complexContent>
      <xsd:extension base="toif:Element">
        <xsd:choice maxOccurs="unbounded" minOccurs="0">
          <xsd:element name="fact" type="toif:TOIFElement"/>
          <xsd:element name="name" type="toif:Name"/>
          <xsd:element name="description" type="toif:Description"/>
        </xsd:choice>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="TOIFSegment" type="toif:TOIFSegment"/>
  <xsd:complexType name="Date">
    <xsd:complexContent>
      <xsd:extension base="toif:HousekeepingEntity"/>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="Date" type="toif:Date"/>
  <xsd:complexType abstract="true" name="HousekeepingEntity">
    <xsd:complexContent>
      <xsd:extension base="toif:Entity"/>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="HousekeepingEntity" type="toif:HousekeepingEntity"/>
  <xsd:complexType name="Generator">
    <xsd:complexContent>
      <xsd:extension base="toif:Tool"/>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="Generator" type="toif:Generator"/>
  <xsd:complexType abstract="true" name="Tool">
    <xsd:complexContent>
      <xsd:extension base="toif:HousekeepingEntity">
        <xsd:choice maxOccurs="unbounded" minOccurs="0">
          <xsd:element name="version" type="toif:Version"/>
          <xsd:element name="name" type="toif:Name"/>
          <xsd:element name="description" type="toif:Description"/>
        </xsd:choice>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="Tool" type="toif:Tool"/>
  <xsd:complexType name="Person">
    <xsd:complexContent>
      <xsd:extension base="toif:HousekeepingEntity">
        <xsd:choice maxOccurs="unbounded" minOccurs="0">
          <xsd:element name="name" type="toif:Name"/>
          <xsd:element name="phone" type="toif:Phone"/>
          <xsd:element name="email" type="toif:EmailAddress"/>
        </xsd:choice>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="Person" type="toif:Person"/>
  <xsd:complexType abstract="true" name="CitingAgent">
    <xsd:complexContent>
      <xsd:extension base="toif:Element"/>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="CitingAgent" type="toif:CitingAgent"/>
  <xsd:complexType name="Phone">
    <xsd:complexContent>
      <xsd:extension base="toif:Attribute">
        <xsd:attribute name="phone" type="xsd:string" use="required"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="Phone" type="toif:Phone"/>
  <xsd:complexType name="EmailAddress">
    <xsd:complexContent>
      <xsd:extension base="toif:Attribute">
        <xsd:attribute name="email" type="xsd:string" use="required"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="EmailAddress" type="toif:EmailAddress"/>
  <xsd:complexType name="Organization">
    <xsd:complexContent>
      <xsd:extension base="toif:HousekeepingEntity">
        <xsd:choice maxOccurs="unbounded" minOccurs="0">
          <xsd:element name="description" type="toif:Description"/>
          <xsd:element name="name" type="toif:Name"/>
          <xsd:element name="address" type="toif:Address"/>
          <xsd:element name="phone" type="toif:Phone"/>
          <xsd:element name="email" type="toif:EmailAddress"/>
        </xsd:choice>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="Organization" type="toif:Organization"/>
  <xsd:complexType name="Address">
    <xsd:complexContent>
      <xsd:extension base="toif:Attribute">
        <xsd:attribute name="address" type="xsd:string" use="required"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="Address" type="toif:Address"/>
  <xsd:complexType name="Adaptor">
    <xsd:complexContent>
      <xsd:extension base="toif:Tool"/>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="Adaptor" type="toif:Adaptor"/>
  <xsd:complexType name="BuildtIsGeneratedAtDate">
    <xsd:complexContent>
      <xsd:extension base="toif:BuildFact">
        <xsd:choice maxOccurs="unbounded" minOccurs="0">
          <xsd:element name="build" type="toif:Build"/>
          <xsd:element name="date" type="toif:Date"/>
        </xsd:choice>
        <xsd:attribute name="build" type="xsd:string"/>
        <xsd:attribute name="date" type="xsd:string"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="BuildtIsGeneratedAtDate" type="toif:BuildtIsGeneratedAtDate"/>
  <xsd:complexType abstract="true" name="BuildFact">
    <xsd:complexContent>
      <xsd:extension base="toif:Fact"/>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="BuildFact" type="toif:BuildFact"/>
  <xsd:complexType name="Build">
    <xsd:complexContent>
      <xsd:extension base="toif:HousekeepingEntity">
        <xsd:choice maxOccurs="unbounded" minOccurs="0">
          <xsd:element name="name" type="toif:Name"/>
          <xsd:element name="description" type="toif:Description"/>
        </xsd:choice>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="Build" type="toif:Build"/>
  <xsd:complexType name="BuildIsGeneratedByPerson">
    <xsd:complexContent>
      <xsd:extension base="toif:BuildFact">
        <xsd:choice maxOccurs="unbounded" minOccurs="0">
          <xsd:element name="build" type="toif:Build"/>
          <xsd:element name="person" type="toif:Person"/>
        </xsd:choice>
        <xsd:attribute name="build" type="xsd:string"/>
        <xsd:attribute name="person" type="xsd:string"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="BuildIsGeneratedByPerson" type="toif:BuildIsGeneratedByPerson"/>
  <xsd:complexType name="BuildIsProducedByOrganization">
    <xsd:complexContent>
      <xsd:extension base="toif:BuildFact">
        <xsd:choice maxOccurs="unbounded" minOccurs="0">
          <xsd:element name="build" type="toif:Build"/>
          <xsd:element name="organization" type="toif:Organization"/>
        </xsd:choice>
        <xsd:attribute name="build" type="xsd:string"/>
        <xsd:attribute name="organization" type="xsd:string"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="BuildIsProducedByOrganization" type="toif:BuildIsProducedByOrganization"/>
  <xsd:complexType name="BuildIsOwnedByOrganization">
    <xsd:complexContent>
      <xsd:extension base="toif:BuildFact">
        <xsd:choice maxOccurs="unbounded" minOccurs="0">
          <xsd:element name="build" type="toif:Build"/>
          <xsd:element name="organization" type="toif:Organization"/>
        </xsd:choice>
        <xsd:attribute name="build" type="xsd:string"/>
        <xsd:attribute name="organization" type="xsd:string"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="BuildIsOwnedByOrganization" type="toif:BuildIsOwnedByOrganization"/>
  <xsd:complexType name="BuildIsSupervisedByPerson">
    <xsd:complexContent>
      <xsd:extension base="toif:BuildFact">
        <xsd:choice maxOccurs="unbounded" minOccurs="0">
          <xsd:element name="person" type="toif:Person"/>
          <xsd:element name="build" type="toif:Build"/>
        </xsd:choice>
        <xsd:attribute name="person" type="xsd:string"/>
        <xsd:attribute name="build" type="xsd:string"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="BuildIsSupervisedByPerson" type="toif:BuildIsSupervisedByPerson"/>
  <xsd:complexType name="Project">
    <xsd:complexContent>
      <xsd:extension base="toif:HousekeepingEntity">
        <xsd:choice maxOccurs="unbounded" minOccurs="0">
          <xsd:element name="description" type="toif:Description"/>
          <xsd:element name="name" type="toif:Name"/>
        </xsd:choice>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="Project" type="toif:Project"/>
  <xsd:complexType name="Role">
    <xsd:complexContent>
      <xsd:extension base="toif:HousekeepingEntity">
        <xsd:choice maxOccurs="unbounded" minOccurs="0">
          <xsd:element name="name" type="toif:Name"/>
          <xsd:element name="description" type="toif:Description"/>
        </xsd:choice>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="Role" type="toif:Role"/>
  <xsd:complexType name="OrganizationIsInvolvedInProjectAsRole">
    <xsd:complexContent>
      <xsd:extension base="toif:ProjectFact">
        <xsd:choice maxOccurs="unbounded" minOccurs="0">
          <xsd:element name="project" type="toif:Project"/>
          <xsd:element name="organization" type="toif:Organization"/>
          <xsd:element name="role" type="toif:Role"/>
        </xsd:choice>
        <xsd:attribute name="project" type="xsd:string"/>
        <xsd:attribute name="organization" type="xsd:string"/>
        <xsd:attribute name="role" type="xsd:string"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="OrganizationIsInvolvedInProjectAsRole" type="toif:OrganizationIsInvolvedInProjectAsRole"/>
  <xsd:complexType abstract="true" name="ProjectFact">
    <xsd:complexContent>
      <xsd:extension base="toif:Fact"/>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="ProjectFact" type="toif:ProjectFact"/>
  <xsd:complexType name="PersonIsInvolvedInProjectAsRole">
    <xsd:complexContent>
      <xsd:extension base="toif:ProjectFact">
        <xsd:choice maxOccurs="unbounded" minOccurs="0">
          <xsd:element name="project" type="toif:Project"/>
          <xsd:element name="role" type="toif:Role"/>
          <xsd:element name="person" type="toif:Person"/>
        </xsd:choice>
        <xsd:attribute name="project" type="xsd:string"/>
        <xsd:attribute name="role" type="xsd:string"/>
        <xsd:attribute name="person" type="xsd:string"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="PersonIsInvolvedInProjectAsRole" type="toif:PersonIsInvolvedInProjectAsRole"/>
  <xsd:complexType name="AdaptorSupportsGenerator">
    <xsd:complexContent>
      <xsd:extension base="toif:ToolFact">
        <xsd:choice maxOccurs="unbounded" minOccurs="0">
          <xsd:element name="generator" type="toif:Generator"/>
          <xsd:element name="adaptor" type="toif:Adaptor"/>
        </xsd:choice>
        <xsd:attribute name="generator" type="xsd:string"/>
        <xsd:attribute name="adaptor" type="xsd:string"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="AdaptorSupportsGenerator" type="toif:AdaptorSupportsGenerator"/>
  <xsd:complexType abstract="true" name="ToolFact">
    <xsd:complexContent>
      <xsd:extension base="toif:Fact"/>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="ToolFact" type="toif:ToolFact"/>
  <xsd:complexType name="Vendor">
    <xsd:complexContent>
      <xsd:extension base="toif:Organization"/>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="Vendor" type="toif:Vendor"/>
  <xsd:complexType name="ToolIsSuppliedByVendor">
    <xsd:complexContent>
      <xsd:extension base="toif:ToolFact">
        <xsd:choice maxOccurs="unbounded" minOccurs="0">
          <xsd:element name="tool" type="toif:Tool"/>
          <xsd:element name="vendor" type="toif:Vendor"/>
        </xsd:choice>
        <xsd:attribute name="tool" type="xsd:string"/>
        <xsd:attribute name="vendor" type="xsd:string"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="ToolIsSuppliedByVendor" type="toif:ToolIsSuppliedByVendor"/>
  <xsd:complexType name="OrganizationIsPartOfOrganizationAsRole">
    <xsd:complexContent>
      <xsd:extension base="toif:ProjectFact">
        <xsd:choice maxOccurs="unbounded" minOccurs="0">
          <xsd:element name="organization2" type="toif:Organization"/>
          <xsd:element name="role" type="toif:Role"/>
          <xsd:element name="organization" type="toif:Organization"/>
        </xsd:choice>
        <xsd:attribute name="organization2" type="xsd:string"/>
        <xsd:attribute name="role" type="xsd:string"/>
        <xsd:attribute name="organization" type="xsd:string"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="OrganizationIsPartOfOrganizationAsRole" type="toif:OrganizationIsPartOfOrganizationAsRole"/>
  <xsd:complexType name="PersonIsEmployedByOrganizationAsRole">
    <xsd:complexContent>
      <xsd:extension base="toif:ProjectFact">
        <xsd:choice maxOccurs="unbounded" minOccurs="0">
          <xsd:element name="person" type="toif:Person"/>
          <xsd:element name="role" type="toif:Role"/>
          <xsd:element name="organization" type="toif:Organization"/>
        </xsd:choice>
        <xsd:attribute name="person" type="xsd:string"/>
        <xsd:attribute name="role" type="xsd:string"/>
        <xsd:attribute name="organization" type="xsd:string"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="PersonIsEmployedByOrganizationAsRole" type="toif:PersonIsEmployedByOrganizationAsRole"/>
  <xsd:complexType name="BuildIsRelatedToProject">
    <xsd:complexContent>
      <xsd:extension base="toif:BuildFact">
        <xsd:choice maxOccurs="unbounded" minOccurs="0">
          <xsd:element name="project" type="toif:Project"/>
          <xsd:element name="build" type="toif:Build"/>
        </xsd:choice>
        <xsd:attribute name="project" type="xsd:string"/>
        <xsd:attribute name="build" type="xsd:string"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="BuildIsRelatedToProject" type="toif:BuildIsRelatedToProject"/>
  <xsd:complexType name="OrchestrationTool">
    <xsd:complexContent>
      <xsd:extension base="toif:Tool"/>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="OrchestrationTool" type="toif:OrchestrationTool"/>
  <xsd:complexType name="SFPIdentifier">
    <xsd:complexContent>
      <xsd:extension base="toif:WeaknessTypeIdentifier"/>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="SFPIdentifier" type="toif:SFPIdentifier"/>
  <xsd:complexType name="CWEBelongsToSFP">
    <xsd:complexContent>
      <xsd:extension base="toif:WeaknessTypeFact">
        <xsd:choice maxOccurs="unbounded" minOccurs="0">
          <xsd:element name="cwe" type="toif:CWEIdentifier"/>
          <xsd:element name="sfp" type="toif:SFPIdentifier"/>
        </xsd:choice>
        <xsd:attribute name="cwe" type="xsd:string"/>
        <xsd:attribute name="sfp" type="xsd:string"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="CWEBelongsToSFP" type="toif:CWEBelongsToSFP"/>
  <xsd:complexType abstract="true" name="WeaknessTypeFact">
    <xsd:complexContent>
      <xsd:extension base="toif:Fact"/>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="WeaknessTypeFact" type="toif:WeaknessTypeFact"/>
  <xsd:complexType name="SFPCluster">
    <xsd:complexContent>
      <xsd:extension base="toif:WeaknessTypeIdentifier"/>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="SFPCluster" type="toif:SFPCluster"/>
  <xsd:complexType name="SFPBelongsToCluster">
    <xsd:complexContent>
      <xsd:extension base="toif:WeaknessTypeFact">
        <xsd:choice maxOccurs="unbounded" minOccurs="0">
          <xsd:element name="sfpcluster" type="toif:SFPCluster"/>
          <xsd:element name="sfp" type="toif:SFPIdentifier"/>
        </xsd:choice>
        <xsd:attribute name="sfpcluster" type="xsd:string"/>
        <xsd:attribute name="sfp" type="xsd:string"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="SFPBelongsToCluster" type="toif:SFPBelongsToCluster"/>
  <xsd:complexType name="AdaptorIsCapableOfFindingCWE">
    <xsd:complexContent>
      <xsd:extension base="toif:ToolFact">
        <xsd:choice maxOccurs="unbounded" minOccurs="0">
          <xsd:element name="adaptor" type="toif:Adaptor"/>
          <xsd:element name="cwe" type="toif:CWEIdentifier"/>
          <xsd:element name="confidence" type="toif:Confidence"/>
        </xsd:choice>
        <xsd:attribute name="adaptor" type="xsd:string"/>
        <xsd:attribute name="cwe" type="xsd:string"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="AdaptorIsCapableOfFindingCWE" type="toif:AdaptorIsCapableOfFindingCWE"/>
  <xsd:complexType name="FindingIsReportedByGenerator">
    <xsd:complexContent>
      <xsd:extension base="toif:FindingFact">
        <xsd:choice maxOccurs="unbounded" minOccurs="0">
          <xsd:element name="finding" type="toif:Finding"/>
          <xsd:element name="generator" type="toif:Generator"/>
        </xsd:choice>
        <xsd:attribute name="finding" type="xsd:string"/>
        <xsd:attribute name="generator" type="xsd:string"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="FindingIsReportedByGenerator" type="toif:FindingIsReportedByGenerator"/>
  <xsd:complexType name="FindingIsReportedInBuild">
    <xsd:complexContent>
      <xsd:extension base="toif:FindingFact">
        <xsd:choice maxOccurs="unbounded" minOccurs="0">
          <xsd:element name="build" type="toif:Build"/>
          <xsd:element name="finding" type="toif:Finding"/>
        </xsd:choice>
        <xsd:attribute name="build" type="xsd:string"/>
        <xsd:attribute name="finding" type="xsd:string"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="FindingIsReportedInBuild" type="toif:FindingIsReportedInBuild"/>
  <xsd:complexType name="FileBelongsToProject">
    <xsd:complexContent>
      <xsd:extension base="toif:ProjectFact">
        <xsd:choice maxOccurs="unbounded" minOccurs="0">
          <xsd:element name="file" type="toif:File"/>
          <xsd:element name="project" type="toif:Project"/>
        </xsd:choice>
        <xsd:attribute name="file" type="xsd:string"/>
        <xsd:attribute name="project" type="xsd:string"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="FileBelongsToProject" type="toif:FileBelongsToProject"/>
  <xsd:complexType name="FindingIsProducedByAdaptor">
    <xsd:complexContent>
      <xsd:extension base="toif:FindingFact">
        <xsd:choice maxOccurs="unbounded" minOccurs="0">
          <xsd:element name="finding" type="toif:Finding"/>
          <xsd:element name="adaptor" type="toif:Adaptor"/>
        </xsd:choice>
        <xsd:attribute name="finding" type="xsd:string"/>
        <xsd:attribute name="adaptor" type="xsd:string"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="FindingIsProducedByAdaptor" type="toif:FindingIsProducedByAdaptor"/>
  <xsd:complexType name="BuildIsOrchestratedByTool">
    <xsd:complexContent>
      <xsd:extension base="toif:BuildFact">
        <xsd:choice maxOccurs="unbounded" minOccurs="0">
          <xsd:element name="build" type="toif:Build"/>
          <xsd:element name="tool" type="toif:OrchestrationTool"/>
        </xsd:choice>
        <xsd:attribute name="build" type="xsd:string"/>
        <xsd:attribute name="tool" type="xsd:string"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="BuildIsOrchestratedByTool" type="toif:BuildIsOrchestratedByTool"/>
  <xsd:complexType name="FindingReferencesFile">
    <xsd:complexContent>
      <xsd:extension base="toif:FindingFact">
        <xsd:choice maxOccurs="unbounded" minOccurs="0">
          <xsd:element name="finding" type="toif:Finding"/>
          <xsd:element name="file" type="toif:File"/>
        </xsd:choice>
        <xsd:attribute name="finding" type="xsd:string"/>
        <xsd:attribute name="file" type="xsd:string"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="FindingReferencesFile" type="toif:FindingReferencesFile"/>
  <xsd:complexType name="ProjectIsOwnedByOrganization">
    <xsd:complexContent>
      <xsd:extension base="toif:ProjectFact">
        <xsd:choice maxOccurs="unbounded" minOccurs="0">
          <xsd:element name="project" type="toif:Project"/>
          <xsd:element name="organization" type="toif:Organization"/>
        </xsd:choice>
        <xsd:attribute name="project" type="xsd:string"/>
        <xsd:attribute name="organization" type="xsd:string"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="ProjectIsOwnedByOrganization" type="toif:ProjectIsOwnedByOrganization"/>
  <xsd:complexType name="DirectoryBelongsToProject">
    <xsd:complexContent>
      <xsd:extension base="toif:ProjectFact">
        <xsd:choice maxOccurs="unbounded" minOccurs="0">
          <xsd:element name="directory" type="toif:Directory"/>
          <xsd:element name="project" type="toif:Project"/>
        </xsd:choice>
        <xsd:attribute name="directory" type="xsd:string"/>
        <xsd:attribute name="project" type="xsd:string"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="DirectoryBelongsToProject" type="toif:DirectoryBelongsToProject"/>
  <xsd:complexType name="DataIsDefinedAtCodeLocation">
    <xsd:choice maxOccurs="unbounded" minOccurs="0">
      <xsd:element name="location" type="toif:CodeLocation"/>
      <xsd:element name="data" type="toif:DataElement"/>
      <xsd:element ref="xmi:Extension"/>
    </xsd:choice>
    <xsd:attribute ref="xmi:id"/>
    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
    <xsd:attribute name="location" type="xsd:string"/>
    <xsd:attribute name="data" type="xsd:string"/>
  </xsd:complexType>
  <xsd:element name="DataIsDefinedAtCodeLocation" type="toif:DataIsDefinedAtCodeLocation"/>
  <xsd:complexType abstract="true" name="EvidentialRecord">
    <xsd:complexContent>
      <xsd:extension base="toif:TOIFElement"/>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="EvidentialRecord" type="toif:EvidentialRecord"/>
  <xsd:complexType name="BuildRecord">
    <xsd:complexContent>
      <xsd:extension base="toif:EvidentialRecord">
        <xsd:choice maxOccurs="unbounded" minOccurs="0">
          <xsd:element name="file" type="toif:File"/>
          <xsd:element name="adaptor" type="toif:Adaptor"/>
          <xsd:element name="build" type="toif:Build"/>
          <xsd:element name="generator" type="toif:Generator"/>
        </xsd:choice>
        <xsd:attribute name="numberOfFindings" type="xsd:string" use="required"/>
        <xsd:attribute name="file" type="xsd:string"/>
        <xsd:attribute name="adaptor" type="xsd:string"/>
        <xsd:attribute name="build" type="xsd:string"/>
        <xsd:attribute name="generator" type="xsd:string"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="BuildRecord" type="toif:BuildRecord"/>
  <xsd:complexType name="CompileRecord">
    <xsd:complexContent>
      <xsd:extension base="toif:EvidentialRecord">
        <xsd:choice maxOccurs="unbounded" minOccurs="0">
          <xsd:element name="file" type="toif:File"/>
          <xsd:element name="project" type="toif:Project"/>
        </xsd:choice>
        <xsd:attribute name="compiler" type="xsd:string" use="required"/>
        <xsd:attribute name="options" type="xsd:string" use="required"/>
        <xsd:attribute name="file" type="xsd:string"/>
        <xsd:attribute name="project" type="xsd:string"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="CompileRecord" type="toif:CompileRecord"/>
  <xsd:complexType name="GeneratorRecord">
    <xsd:complexContent>
      <xsd:extension base="toif:EvidentialRecord">
        <xsd:choice maxOccurs="unbounded" minOccurs="0">
          <xsd:element name="build" type="toif:Build"/>
          <xsd:element name="generator" type="toif:Generator"/>
          <xsd:element name="file" type="toif:File"/>
        </xsd:choice>
        <xsd:attribute name="options" type="xsd:string" use="required"/>
        <xsd:attribute name="build" type="xsd:string"/>
        <xsd:attribute name="generator" type="xsd:string"/>
        <xsd:attribute name="file" type="xsd:string"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="GeneratorRecord" type="toif:GeneratorRecord"/>
  <xsd:complexType name="Weakness">
    <xsd:complexContent>
      <xsd:extension base="toif:BasicEntity">
        <xsd:choice maxOccurs="unbounded" minOccurs="0">
          <xsd:element name="description" type="toif:Description"/>
          <xsd:element name="confidence" type="toif:Confidence"/>
          <xsd:element name="criticality" type="toif:Criticality"/>
        </xsd:choice>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="Weakness" type="toif:Weakness"/>
  <xsd:complexType name="WeaknessHasCodeLocation">
    <xsd:complexContent>
      <xsd:extension base="toif:WeaknessFact">
        <xsd:choice maxOccurs="unbounded" minOccurs="0">
          <xsd:element name="weakness" type="toif:Weakness"/>
          <xsd:element name="codeLocation" type="toif:CodeLocation"/>
        </xsd:choice>
        <xsd:attribute name="weakness" type="xsd:string"/>
        <xsd:attribute name="codeLocation" type="xsd:string"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="WeaknessHasCodeLocation" type="toif:WeaknessHasCodeLocation"/>
  <xsd:complexType abstract="true" name="WeaknessFact">
    <xsd:complexContent>
      <xsd:extension base="toif:Fact"/>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="WeaknessFact" type="toif:WeaknessFact"/>
  <xsd:complexType name="WeaknessReferencesFile">
    <xsd:complexContent>
      <xsd:extension base="toif:WeaknessFact">
        <xsd:choice maxOccurs="unbounded" minOccurs="0">
          <xsd:element name="weakness" type="toif:Weakness"/>
          <xsd:element name="file" type="toif:File"/>
        </xsd:choice>
        <xsd:attribute name="weakness" type="xsd:string"/>
        <xsd:attribute name="file" type="xsd:string"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="WeaknessReferencesFile" type="toif:WeaknessReferencesFile"/>
  <xsd:complexType name="WeaknessIsDefinedAsCWE">
    <xsd:complexContent>
      <xsd:extension base="toif:WeaknessFact">
        <xsd:choice maxOccurs="unbounded" minOccurs="0">
          <xsd:element name="weakness" type="toif:Weakness"/>
          <xsd:element name="cwe" type="toif:CWEIdentifier"/>
        </xsd:choice>
        <xsd:attribute name="weakness" type="xsd:string"/>
        <xsd:attribute name="cwe" type="xsd:string"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="WeaknessIsDefinedAsCWE" type="toif:WeaknessIsDefinedAsCWE"/>
  <xsd:complexType name="Citing">
    <xsd:complexContent>
      <xsd:extension base="toif:BasicEntity">
        <xsd:choice maxOccurs="unbounded" minOccurs="0">
          <xsd:element name="description" type="toif:Description"/>
          <xsd:element name="verdict" type="toif:Verdict"/>
          <xsd:element name="confidence" type="toif:Confidence"/>
          <xsd:element name="pattern" type="toif:CodePattern"/>
        </xsd:choice>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="Citing" type="toif:Citing"/>
  <xsd:complexType name="Verdict">
    <xsd:complexContent>
      <xsd:extension base="toif:Attribute">
        <xsd:attribute name="isValidWeakness" type="xsd:string" use="required"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="Verdict" type="toif:Verdict"/>
  <xsd:complexType name="CodePattern">
    <xsd:choice maxOccurs="unbounded" minOccurs="0">
      <xsd:element ref="xmi:Extension"/>
    </xsd:choice>
    <xsd:attribute ref="xmi:id"/>
    <xsd:attributeGroup ref="xmi:ObjectAttribs"/>
    <xsd:attribute name="text" type="xsd:string" use="required"/>
  </xsd:complexType>
  <xsd:element name="CodePattern" type="toif:CodePattern"/>
  <xsd:complexType name="AnalyticsTool">
    <xsd:complexContent>
      <xsd:extension base="toif:Tool"/>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="AnalyticsTool" type="toif:AnalyticsTool"/>
  <xsd:complexType name="CitingIsGeneratedAtDate">
    <xsd:complexContent>
      <xsd:extension base="toif:WeaknessFact">
        <xsd:choice maxOccurs="unbounded" minOccurs="0">
          <xsd:element name="citing" type="toif:Citing"/>
          <xsd:element name="date" type="toif:Date"/>
        </xsd:choice>
        <xsd:attribute name="citing" type="xsd:string"/>
        <xsd:attribute name="date" type="xsd:string"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="CitingIsGeneratedAtDate" type="toif:CitingIsGeneratedAtDate"/>
  <xsd:complexType name="CitingIsGeneratedByAgent">
    <xsd:complexContent>
      <xsd:extension base="toif:WeaknessFact">
        <xsd:choice maxOccurs="unbounded" minOccurs="0">
          <xsd:element name="agent" type="toif:CitingAgent"/>
          <xsd:element name="citing" type="toif:Citing"/>
        </xsd:choice>
        <xsd:attribute name="agent" type="xsd:string"/>
        <xsd:attribute name="citing" type="xsd:string"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="CitingIsGeneratedByAgent" type="toif:CitingIsGeneratedByAgent"/>
  <xsd:complexType name="CitingReferencesWeakness">
    <xsd:complexContent>
      <xsd:extension base="toif:WeaknessFact">
        <xsd:choice maxOccurs="unbounded" minOccurs="0">
          <xsd:element name="citing" type="toif:Citing"/>
          <xsd:element name="weakness" type="toif:Weakness"/>
        </xsd:choice>
        <xsd:attribute name="citing" type="xsd:string"/>
        <xsd:attribute name="weakness" type="xsd:string"/>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:element name="CitingReferencesWeakness" type="toif:CitingReferencesWeakness"/>
</xsd:schema>
