<?xml version="1.0" encoding="utf-8"?>
<definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:s0="http://igem.uwaterloo.ca/service" name="BioMortarDB" targetNamespace="http://igem.uwaterloo.ca/service" xmlns="http://schemas.xmlsoap.org/wsdl/">
  <types>
    <xs:schema elementFormDefault="qualified" targetNamespace="http://igem.uwaterloo.ca/service" xmlns:xs="http://www.w3.org/2001/XMLSchema">
      <xs:element name="GetVersion">
        <xs:complexType />
      </xs:element>
      <xs:element name="GetVersionResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="0" maxOccurs="1" name="GetVersionResult" type="xs:string" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="GetDSName">
        <xs:complexType />
      </xs:element>
      <xs:element name="GetDSNameResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="0" maxOccurs="1" name="GetDSNameResult" type="xs:string" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="WhoAmI">
        <xs:complexType />
      </xs:element>
      <xs:element name="WhoAmIResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="0" maxOccurs="1" name="WhoAmIResult" type="xs:string" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="GetNonce">
        <xs:complexType />
      </xs:element>
      <xs:element name="GetNonceResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="0" maxOccurs="1" name="GetNonceResult" type="xs:string" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="GetUserId">
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="0" maxOccurs="1" name="username" type="xs:string" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="GetUserIdResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="1" maxOccurs="1" name="GetUserIdResult" type="xs:int" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="Login">
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="0" maxOccurs="1" name="hash" type="xs:string" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="LoginResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="1" maxOccurs="1" name="LoginResult" type="xs:boolean" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="LoadAntibiotic">
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="1" maxOccurs="1" name="id" type="xs:int" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:complexType name="Antibiotic">
        <xs:sequence>
          <xs:element minOccurs="1" maxOccurs="1" name="id" type="xs:int" />
          <xs:element minOccurs="0" maxOccurs="1" name="name" type="xs:string" />
          <xs:element minOccurs="0" maxOccurs="1" name="colour" type="xs:string" />
        </xs:sequence>
      </xs:complexType>
      <xs:element name="LoadAntibioticResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="0" maxOccurs="1" name="LoadAntibioticResult" type="s0:Antibiotic" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="StoreAntibiotic">
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="0" maxOccurs="1" name="obj" type="s0:Antibiotic" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="StoreAntibioticResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="0" maxOccurs="1" name="StoreAntibioticResult" type="s0:Antibiotic" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="ListAntibiotics">
        <xs:complexType />
      </xs:element>
      <xs:complexType name="ArrayOfAntibiotic">
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="Antibiotic" nillable="true" type="s0:Antibiotic" />
        </xs:sequence>
      </xs:complexType>
      <xs:element name="ListAntibioticsResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="0" maxOccurs="1" name="ListAntibioticsResult" type="s0:ArrayOfAntibiotic" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="LoadChassis">
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="1" maxOccurs="1" name="id" type="xs:int" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:complexType name="Chassis">
        <xs:sequence>
          <xs:element minOccurs="1" maxOccurs="1" name="id" type="xs:int" />
          <xs:element minOccurs="0" maxOccurs="1" name="name" type="xs:string" />
          <xs:element minOccurs="0" maxOccurs="1" name="bbpart" type="xs:string" />
          <xs:element minOccurs="0" maxOccurs="1" name="note" type="xs:string" />
        </xs:sequence>
      </xs:complexType>
      <xs:element name="LoadChassisResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="0" maxOccurs="1" name="LoadChassisResult" type="s0:Chassis" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="StoreChassis">
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="0" maxOccurs="1" name="obj" type="s0:Chassis" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="StoreChassisResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="0" maxOccurs="1" name="StoreChassisResult" type="s0:Chassis" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="ListChassis">
        <xs:complexType />
      </xs:element>
      <xs:complexType name="ArrayOfChassis">
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="Chassis" nillable="true" type="s0:Chassis" />
        </xs:sequence>
      </xs:complexType>
      <xs:element name="ListChassisResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="0" maxOccurs="1" name="ListChassisResult" type="s0:ArrayOfChassis" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="LoadVector">
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="1" maxOccurs="1" name="id" type="xs:int" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:complexType name="Vector">
        <xs:sequence>
          <xs:element minOccurs="1" maxOccurs="1" name="id" type="xs:int" />
          <xs:element minOccurs="0" maxOccurs="1" name="name" type="xs:string" />
          <xs:element minOccurs="0" maxOccurs="1" name="bbpart" type="xs:string" />
          <xs:element minOccurs="0" maxOccurs="1" name="note" type="xs:string" />
          <xs:element minOccurs="0" maxOccurs="1" name="markers" type="s0:ArrayOfAntibiotic" />
        </xs:sequence>
      </xs:complexType>
      <xs:element name="LoadVectorResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="0" maxOccurs="1" name="LoadVectorResult" type="s0:Vector" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="StoreVector">
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="0" maxOccurs="1" name="obj" type="s0:Vector" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="StoreVectorResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="0" maxOccurs="1" name="StoreVectorResult" type="s0:Vector" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="ListVector">
        <xs:complexType />
      </xs:element>
      <xs:complexType name="ArrayOfVector">
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="Vector" nillable="true" type="s0:Vector" />
        </xs:sequence>
      </xs:complexType>
      <xs:element name="ListVectorResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="0" maxOccurs="1" name="ListVectorResult" type="s0:ArrayOfVector" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="LoadPart">
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="1" maxOccurs="1" name="id" type="xs:int" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:complexType name="Part">
        <xs:complexContent mixed="false">
          <xs:extension base="s0:PartialPart">
            <xs:sequence>
              <xs:element minOccurs="0" maxOccurs="1" name="sequence" type="xs:string" />
              <xs:element minOccurs="0" maxOccurs="1" name="children" type="s0:ArrayOfSubPart" />
              <xs:element minOccurs="0" maxOccurs="1" name="notes" type="xs:string" />
              <xs:element minOccurs="0" maxOccurs="1" name="locations" type="s0:ArrayOfLocation" />
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:complexType name="ArrayOfSubPart">
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="SubPart" nillable="true" type="s0:SubPart" />
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="SubPart">
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="1" name="piece" type="s0:PartialPart" />
          <xs:element minOccurs="1" maxOccurs="1" name="order" type="xs:int" />
          <xs:element minOccurs="1" maxOccurs="1" name="piecetype" type="xs:int" />
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="PartialPart">
        <xs:sequence>
          <xs:element minOccurs="1" maxOccurs="1" name="id" type="xs:int" />
          <xs:element minOccurs="1" maxOccurs="1" name="type" type="xs:int" />
          <xs:element minOccurs="0" maxOccurs="1" name="code" type="xs:string" />
          <xs:element minOccurs="0" maxOccurs="1" name="fullname" type="xs:string" />
          <xs:element minOccurs="0" maxOccurs="1" name="bbpart" type="xs:string" />
          <xs:element minOccurs="1" maxOccurs="1" name="dnalength" type="xs:int" />
          <xs:element minOccurs="1" maxOccurs="1" name="usage" type="xs:int" />
          <xs:element minOccurs="1" maxOccurs="1" name="editablesequence" type="xs:boolean" />
          <xs:element minOccurs="1" maxOccurs="1" name="created" type="xs:dateTime" />
          <xs:element minOccurs="0" maxOccurs="1" name="creator" type="xs:string" />
          <xs:element minOccurs="1" maxOccurs="1" name="modified" type="xs:dateTime" />
          <xs:element minOccurs="1" maxOccurs="1" name="deleted" type="xs:boolean" />
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfLocation">
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="Location" nillable="true" type="s0:Location" />
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="Location">
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="1" name="location" type="xs:string" />
          <xs:element minOccurs="1" maxOccurs="1" name="vectorid" type="xs:int" />
          <xs:element minOccurs="1" maxOccurs="1" name="chassisid" type="xs:int" />
          <xs:element minOccurs="1" maxOccurs="1" name="statusid" type="xs:int" />
          <xs:element minOccurs="1" maxOccurs="1" name="concentration" type="xs:int" />
          <xs:element minOccurs="1" maxOccurs="1" name="entrydate" type="xs:dateTime" />
          <xs:element minOccurs="0" maxOccurs="1" name="enterer" type="xs:string" />
        </xs:sequence>
      </xs:complexType>
      <xs:element name="LoadPartResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="0" maxOccurs="1" name="LoadPartResult" type="s0:Part" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="StorePart">
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="0" maxOccurs="1" name="obj" type="s0:Part" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="StorePartResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="0" maxOccurs="1" name="StorePartResult" type="s0:Part" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="FindSubPart">
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="1" maxOccurs="1" name="parentpart" type="xs:int" />
            <xs:element minOccurs="1" maxOccurs="1" name="typeconstraint" type="xs:int" />
            <xs:element minOccurs="1" maxOccurs="1" name="typeis" type="xs:boolean" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:complexType name="ArrayOfPart">
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="Part" nillable="true" type="s0:Part" />
        </xs:sequence>
      </xs:complexType>
      <xs:element name="FindSubPartResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="0" maxOccurs="1" name="FindSubPartResult" type="s0:ArrayOfPart" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="CheckLocationOccupied">
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="1" maxOccurs="1" name="partid" type="xs:int" />
            <xs:element minOccurs="0" maxOccurs="1" name="location" type="xs:string" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="CheckLocationOccupiedResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="1" maxOccurs="1" name="CheckLocationOccupiedResult" type="xs:boolean" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="CheckBBPartOccupied">
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="1" maxOccurs="1" name="partid" type="xs:int" />
            <xs:element minOccurs="0" maxOccurs="1" name="bbpart" type="xs:string" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="CheckBBPartOccupiedResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="1" maxOccurs="1" name="CheckBBPartOccupiedResult" type="xs:boolean" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:complexType name="ArrayOfQuery">
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="Query" nillable="true" type="s0:Query" />
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="Query">
        <xs:sequence>
          <xs:element minOccurs="1" maxOccurs="1" name="id" type="xs:int" />
          <xs:element minOccurs="0" maxOccurs="1" name="name" type="xs:string" />
          <xs:element minOccurs="0" maxOccurs="1" name="parameters" type="s0:ArrayOfParameter" />
          <xs:element minOccurs="1" maxOccurs="1" name="invert" type="xs:boolean" />
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfParameter">
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="Parameter" nillable="true" type="s0:Parameter" />
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="Parameter">
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="1" name="name" type="xs:string" />
          <xs:element minOccurs="0" maxOccurs="1" name="fullname" type="xs:string" />
          <xs:element minOccurs="0" maxOccurs="1" name="description" type="xs:string" />
          <xs:element minOccurs="0" maxOccurs="1" name="type" type="xs:string" />
          <xs:element minOccurs="0" maxOccurs="1" name="value" />
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="Gel">
        <xs:sequence>
          <xs:element minOccurs="1" maxOccurs="1" name="id" type="xs:int" />
          <xs:element minOccurs="1" maxOccurs="1" name="date" type="xs:dateTime" />
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="Step">
        <xs:sequence>
          <xs:element minOccurs="1" maxOccurs="1" name="id" type="xs:int" />
          <xs:element minOccurs="0" maxOccurs="1" name="name" type="xs:string" />
          <xs:element minOccurs="1" maxOccurs="1" name="protocol" type="xs:int" />
          <xs:element minOccurs="1" maxOccurs="1" name="selector" type="xs:int" />
          <xs:element minOccurs="1" maxOccurs="1" name="created" type="xs:dateTime" />
          <xs:element minOccurs="0" maxOccurs="1" name="creator" type="xs:string" />
          <xs:element minOccurs="0" maxOccurs="1" name="notes" type="xs:string" />
          <xs:element minOccurs="1" maxOccurs="1" name="state" type="s0:StepState" />
        </xs:sequence>
      </xs:complexType>
      <xs:simpleType name="StepState">
        <xs:restriction base="xs:string">
          <xs:enumeration value="ToDoState" />
          <xs:enumeration value="OkState" />
          <xs:enumeration value="AbortState" />
        </xs:restriction>
      </xs:simpleType>
      <xs:complexType name="Batch">
        <xs:sequence>
          <xs:element minOccurs="1" maxOccurs="1" name="id" type="xs:int" />
          <xs:element minOccurs="1" maxOccurs="1" name="type" type="xs:int" />
          <xs:element minOccurs="1" maxOccurs="1" name="start" type="xs:dateTime" />
          <xs:element minOccurs="1" maxOccurs="1" name="end" type="xs:dateTime" />
          <xs:element minOccurs="0" maxOccurs="1" name="description" type="xs:string" />
          <xs:element minOccurs="0" maxOccurs="1" name="notes" type="xs:string" />
          <xs:element minOccurs="0" maxOccurs="1" name="parts" type="s0:ArrayOfPartialPart" />
          <xs:element minOccurs="0" maxOccurs="1" name="gels" type="s0:ArrayOfGel" />
          <xs:element minOccurs="0" maxOccurs="1" name="steps" type="s0:ArrayOfStep" />
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfPartialPart">
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="PartialPart" nillable="true" type="s0:PartialPart" />
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfGel">
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="Gel" nillable="true" type="s0:Gel" />
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfStep">
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="Step" nillable="true" type="s0:Step" />
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="Usage">
        <xs:sequence>
          <xs:element minOccurs="1" maxOccurs="1" name="id" type="xs:int" />
          <xs:element minOccurs="0" maxOccurs="1" name="description" type="xs:string" />
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="Piece">
        <xs:sequence>
          <xs:element minOccurs="1" maxOccurs="1" name="pieceid" type="xs:int" />
          <xs:element minOccurs="1" maxOccurs="1" name="required" type="xs:boolean" />
          <xs:element minOccurs="0" maxOccurs="1" name="name" type="xs:string" />
          <xs:element minOccurs="1" maxOccurs="1" name="typeconstraint" type="xs:int" />
          <xs:element minOccurs="1" maxOccurs="1" name="typeis" type="xs:boolean" />
          <xs:element minOccurs="1" maxOccurs="1" name="numberconstraint" type="xs:int" />
          <xs:element minOccurs="1" maxOccurs="1" name="ordered" type="xs:boolean" />
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="Method">
        <xs:sequence>
          <xs:element minOccurs="1" maxOccurs="1" name="protocol" type="xs:int" />
          <xs:element minOccurs="1" maxOccurs="1" name="type" type="xs:int" />
          <xs:element minOccurs="1" maxOccurs="1" name="selector" type="xs:int" />
          <xs:element minOccurs="1" maxOccurs="1" name="order" type="xs:int" />
          <xs:element minOccurs="0" maxOccurs="1" name="name" type="xs:string" />
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="Construction">
        <xs:sequence>
          <xs:element minOccurs="1" maxOccurs="1" name="id" type="xs:int" />
          <xs:element minOccurs="0" maxOccurs="1" name="name" type="xs:string" />
          <xs:element minOccurs="1" maxOccurs="1" name="editablesequence" type="xs:boolean" />
          <xs:element minOccurs="0" maxOccurs="1" name="pieces" type="s0:ArrayOfPiece" />
          <xs:element minOccurs="0" maxOccurs="1" name="methods" type="s0:ArrayOfMethod" />
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfPiece">
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="Piece" nillable="true" type="s0:Piece" />
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="ArrayOfMethod">
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="Method" nillable="true" type="s0:Method" />
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="Status">
        <xs:sequence>
          <xs:element minOccurs="1" maxOccurs="1" name="id" type="xs:int" />
          <xs:element minOccurs="0" maxOccurs="1" name="text" type="xs:string" />
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="Selector">
        <xs:sequence>
          <xs:element minOccurs="1" maxOccurs="1" name="id" type="xs:int" />
          <xs:element minOccurs="0" maxOccurs="1" name="name" type="xs:string" />
        </xs:sequence>
      </xs:complexType>
      <xs:complexType name="Protocol">
        <xs:sequence>
          <xs:element minOccurs="1" maxOccurs="1" name="id" type="xs:int" />
          <xs:element minOccurs="0" maxOccurs="1" name="name" type="xs:string" />
          <xs:element minOccurs="0" maxOccurs="1" name="defaultnotes" type="xs:string" />
          <xs:element minOccurs="0" maxOccurs="1" name="protocol">
            <xs:complexType mixed="true">
              <xs:sequence>
                <xs:any />
              </xs:sequence>
            </xs:complexType>
          </xs:element>
          <xs:element minOccurs="0" maxOccurs="1" name="methods" type="s0:ArrayOfMethod" />
        </xs:sequence>
      </xs:complexType>
      <xs:element name="QueryPart">
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="0" maxOccurs="1" name="querylist" type="s0:ArrayOfQuery" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="QueryPartResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="0" maxOccurs="1" name="QueryPartResult" type="s0:ArrayOfPart" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="LoadQuery">
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="1" maxOccurs="1" name="id" type="xs:int" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="LoadQueryResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="0" maxOccurs="1" name="LoadQueryResult" type="s0:Query" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="ListQuery">
        <xs:complexType />
      </xs:element>
      <xs:element name="ListQueryResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="0" maxOccurs="1" name="ListQueryResult" type="s0:ArrayOfQuery" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="LoadBatch">
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="1" maxOccurs="1" name="id" type="xs:int" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="LoadBatchResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="0" maxOccurs="1" name="LoadBatchResult" type="s0:Batch" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="StoreBatch">
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="0" maxOccurs="1" name="obj" type="s0:Batch" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="StoreBatchResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="0" maxOccurs="1" name="StoreBatchResult" type="s0:Batch" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="ListBatch">
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="1" maxOccurs="1" name="active" type="xs:boolean" />
            <xs:element minOccurs="1" maxOccurs="1" name="inactive" type="xs:boolean" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:complexType name="ArrayOfBatch">
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="Batch" nillable="true" type="s0:Batch" />
        </xs:sequence>
      </xs:complexType>
      <xs:element name="ListBatchResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="0" maxOccurs="1" name="ListBatchResult" type="s0:ArrayOfBatch" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="AddPartToBatch">
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="1" maxOccurs="1" name="partid" type="xs:int" />
            <xs:element minOccurs="1" maxOccurs="1" name="batchid" type="xs:int" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="AddPartToBatchResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="1" maxOccurs="1" name="AddPartToBatchResult" type="xs:boolean" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="DownloadGel">
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="1" maxOccurs="1" name="gelid" type="xs:int" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="DownloadGelResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="0" maxOccurs="1" name="DownloadGelResult" type="xs:base64Binary" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="UploadGel">
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="1" maxOccurs="1" name="batchid" type="xs:int" />
            <xs:element minOccurs="0" maxOccurs="1" name="image" type="xs:base64Binary" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="UploadGelResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="1" maxOccurs="1" name="UploadGelResult" type="xs:int" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="ListUsage">
        <xs:complexType />
      </xs:element>
      <xs:complexType name="ArrayOfUsage">
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="Usage" nillable="true" type="s0:Usage" />
        </xs:sequence>
      </xs:complexType>
      <xs:element name="ListUsageResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="0" maxOccurs="1" name="ListUsageResult" type="s0:ArrayOfUsage" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="ListConstruction">
        <xs:complexType />
      </xs:element>
      <xs:complexType name="ArrayOfConstruction">
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="Construction" nillable="true" type="s0:Construction" />
        </xs:sequence>
      </xs:complexType>
      <xs:element name="ListConstructionResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="0" maxOccurs="1" name="ListConstructionResult" type="s0:ArrayOfConstruction" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="StoreConstruction">
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="0" maxOccurs="1" name="construction" type="s0:Construction" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="StoreConstructionResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="1" maxOccurs="1" name="StoreConstructionResult" type="xs:boolean" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="ListStatuses">
        <xs:complexType />
      </xs:element>
      <xs:complexType name="ArrayOfStatus">
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="Status" nillable="true" type="s0:Status" />
        </xs:sequence>
      </xs:complexType>
      <xs:element name="ListStatusesResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="0" maxOccurs="1" name="ListStatusesResult" type="s0:ArrayOfStatus" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="ListSelectors">
        <xs:complexType />
      </xs:element>
      <xs:complexType name="ArrayOfSelector">
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="Selector" nillable="true" type="s0:Selector" />
        </xs:sequence>
      </xs:complexType>
      <xs:element name="ListSelectorsResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="0" maxOccurs="1" name="ListSelectorsResult" type="s0:ArrayOfSelector" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="LoadProtocol">
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="1" maxOccurs="1" name="id" type="xs:int" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="LoadProtocolResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="0" maxOccurs="1" name="LoadProtocolResult" type="s0:Protocol" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="StoreProtocol">
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="0" maxOccurs="1" name="obj" type="s0:Protocol" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="StoreProtocolResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="0" maxOccurs="1" name="StoreProtocolResult" type="s0:Protocol" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="ListProtocols">
        <xs:complexType />
      </xs:element>
      <xs:complexType name="ArrayOfProtocol">
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="Protocol" nillable="true" type="s0:Protocol" />
        </xs:sequence>
      </xs:complexType>
      <xs:element name="ListProtocolsResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="0" maxOccurs="1" name="ListProtocolsResult" type="s0:ArrayOfProtocol" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="DownloadBatchWorksheet">
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="1" maxOccurs="1" name="id" type="xs:int" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="DownloadBatchWorksheetResponse">
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="0" maxOccurs="1" name="DownloadBatchWorksheetResult" type="xs:base64Binary" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="string" nillable="true" type="xs:string" />
      <xs:element name="int" type="xs:int" />
      <xs:element name="boolean" type="xs:boolean" />
      <xs:element name="Antibiotic" nillable="true" type="s0:Antibiotic" />
      <xs:element name="ArrayOfAntibiotic" nillable="true" type="s0:ArrayOfAntibiotic" />
      <xs:element name="Chassis" nillable="true" type="s0:Chassis" />
      <xs:element name="ArrayOfChassis" nillable="true" type="s0:ArrayOfChassis" />
      <xs:element name="Vector" nillable="true" type="s0:Vector" />
      <xs:element name="ArrayOfVector" nillable="true" type="s0:ArrayOfVector" />
      <xs:element name="Part" type="s0:Part" />
      <xs:element name="ArrayOfPart" nillable="true" type="s0:ArrayOfPart" />
      <xs:element name="Query" nillable="true" type="s0:Query" />
      <xs:element name="ArrayOfQuery" nillable="true" type="s0:ArrayOfQuery" />
      <xs:element name="Batch" nillable="true" type="s0:Batch" />
      <xs:element name="ArrayOfBatch" nillable="true" type="s0:ArrayOfBatch" />
      <xs:element name="base64Binary" nillable="true" type="xs:base64Binary" />
      <xs:element name="ArrayOfUsage" nillable="true" type="s0:ArrayOfUsage" />
      <xs:element name="ArrayOfConstruction" nillable="true" type="s0:ArrayOfConstruction" />
      <xs:element name="ArrayOfStatus" nillable="true" type="s0:ArrayOfStatus" />
      <xs:element name="ArrayOfSelector" nillable="true" type="s0:ArrayOfSelector" />
      <xs:element name="Protocol" nillable="true" type="s0:Protocol" />
      <xs:element name="ArrayOfProtocol" nillable="true" type="s0:ArrayOfProtocol" />
    </xs:schema>
  </types>
  <message name="GetVersionSoapIn">
    <part name="parameters" element="s0:GetVersion" />
  </message>
  <message name="GetVersionSoapOut">
    <part name="parameters" element="s0:GetVersionResponse" />
  </message>
  <message name="GetDSNameSoapIn">
    <part name="parameters" element="s0:GetDSName" />
  </message>
  <message name="GetDSNameSoapOut">
    <part name="parameters" element="s0:GetDSNameResponse" />
  </message>
  <message name="WhoAmISoapIn">
    <part name="parameters" element="s0:WhoAmI" />
  </message>
  <message name="WhoAmISoapOut">
    <part name="parameters" element="s0:WhoAmIResponse" />
  </message>
  <message name="GetNonceSoapIn">
    <part name="parameters" element="s0:GetNonce" />
  </message>
  <message name="GetNonceSoapOut">
    <part name="parameters" element="s0:GetNonceResponse" />
  </message>
  <message name="GetUserIdSoapIn">
    <part name="parameters" element="s0:GetUserId" />
  </message>
  <message name="GetUserIdSoapOut">
    <part name="parameters" element="s0:GetUserIdResponse" />
  </message>
  <message name="LoginSoapIn">
    <part name="parameters" element="s0:Login" />
  </message>
  <message name="LoginSoapOut">
    <part name="parameters" element="s0:LoginResponse" />
  </message>
  <message name="LoadAntibioticSoapIn">
    <part name="parameters" element="s0:LoadAntibiotic" />
  </message>
  <message name="LoadAntibioticSoapOut">
    <part name="parameters" element="s0:LoadAntibioticResponse" />
  </message>
  <message name="StoreAntibioticSoapIn">
    <part name="parameters" element="s0:StoreAntibiotic" />
  </message>
  <message name="StoreAntibioticSoapOut">
    <part name="parameters" element="s0:StoreAntibioticResponse" />
  </message>
  <message name="ListAntibioticsSoapIn">
    <part name="parameters" element="s0:ListAntibiotics" />
  </message>
  <message name="ListAntibioticsSoapOut">
    <part name="parameters" element="s0:ListAntibioticsResponse" />
  </message>
  <message name="LoadChassisSoapIn">
    <part name="parameters" element="s0:LoadChassis" />
  </message>
  <message name="LoadChassisSoapOut">
    <part name="parameters" element="s0:LoadChassisResponse" />
  </message>
  <message name="StoreChassisSoapIn">
    <part name="parameters" element="s0:StoreChassis" />
  </message>
  <message name="StoreChassisSoapOut">
    <part name="parameters" element="s0:StoreChassisResponse" />
  </message>
  <message name="ListChassisSoapIn">
    <part name="parameters" element="s0:ListChassis" />
  </message>
  <message name="ListChassisSoapOut">
    <part name="parameters" element="s0:ListChassisResponse" />
  </message>
  <message name="LoadVectorSoapIn">
    <part name="parameters" element="s0:LoadVector" />
  </message>
  <message name="LoadVectorSoapOut">
    <part name="parameters" element="s0:LoadVectorResponse" />
  </message>
  <message name="StoreVectorSoapIn">
    <part name="parameters" element="s0:StoreVector" />
  </message>
  <message name="StoreVectorSoapOut">
    <part name="parameters" element="s0:StoreVectorResponse" />
  </message>
  <message name="ListVectorSoapIn">
    <part name="parameters" element="s0:ListVector" />
  </message>
  <message name="ListVectorSoapOut">
    <part name="parameters" element="s0:ListVectorResponse" />
  </message>
  <message name="LoadPartSoapIn">
    <part name="parameters" element="s0:LoadPart" />
  </message>
  <message name="LoadPartSoapOut">
    <part name="parameters" element="s0:LoadPartResponse" />
  </message>
  <message name="StorePartSoapIn">
    <part name="parameters" element="s0:StorePart" />
  </message>
  <message name="StorePartSoapOut">
    <part name="parameters" element="s0:StorePartResponse" />
  </message>
  <message name="FindSubPartSoapIn">
    <part name="parameters" element="s0:FindSubPart" />
  </message>
  <message name="FindSubPartSoapOut">
    <part name="parameters" element="s0:FindSubPartResponse" />
  </message>
  <message name="CheckLocationOccupiedSoapIn">
    <part name="parameters" element="s0:CheckLocationOccupied" />
  </message>
  <message name="CheckLocationOccupiedSoapOut">
    <part name="parameters" element="s0:CheckLocationOccupiedResponse" />
  </message>
  <message name="CheckBBPartOccupiedSoapIn">
    <part name="parameters" element="s0:CheckBBPartOccupied" />
  </message>
  <message name="CheckBBPartOccupiedSoapOut">
    <part name="parameters" element="s0:CheckBBPartOccupiedResponse" />
  </message>
  <message name="QueryPartSoapIn">
    <part name="parameters" element="s0:QueryPart" />
  </message>
  <message name="QueryPartSoapOut">
    <part name="parameters" element="s0:QueryPartResponse" />
  </message>
  <message name="LoadQuerySoapIn">
    <part name="parameters" element="s0:LoadQuery" />
  </message>
  <message name="LoadQuerySoapOut">
    <part name="parameters" element="s0:LoadQueryResponse" />
  </message>
  <message name="ListQuerySoapIn">
    <part name="parameters" element="s0:ListQuery" />
  </message>
  <message name="ListQuerySoapOut">
    <part name="parameters" element="s0:ListQueryResponse" />
  </message>
  <message name="LoadBatchSoapIn">
    <part name="parameters" element="s0:LoadBatch" />
  </message>
  <message name="LoadBatchSoapOut">
    <part name="parameters" element="s0:LoadBatchResponse" />
  </message>
  <message name="StoreBatchSoapIn">
    <part name="parameters" element="s0:StoreBatch" />
  </message>
  <message name="StoreBatchSoapOut">
    <part name="parameters" element="s0:StoreBatchResponse" />
  </message>
  <message name="ListBatchSoapIn">
    <part name="parameters" element="s0:ListBatch" />
  </message>
  <message name="ListBatchSoapOut">
    <part name="parameters" element="s0:ListBatchResponse" />
  </message>
  <message name="AddPartToBatchSoapIn">
    <part name="parameters" element="s0:AddPartToBatch" />
  </message>
  <message name="AddPartToBatchSoapOut">
    <part name="parameters" element="s0:AddPartToBatchResponse" />
  </message>
  <message name="DownloadGelSoapIn">
    <part name="parameters" element="s0:DownloadGel" />
  </message>
  <message name="DownloadGelSoapOut">
    <part name="parameters" element="s0:DownloadGelResponse" />
  </message>
  <message name="UploadGelSoapIn">
    <part name="parameters" element="s0:UploadGel" />
  </message>
  <message name="UploadGelSoapOut">
    <part name="parameters" element="s0:UploadGelResponse" />
  </message>
  <message name="ListUsageSoapIn">
    <part name="parameters" element="s0:ListUsage" />
  </message>
  <message name="ListUsageSoapOut">
    <part name="parameters" element="s0:ListUsageResponse" />
  </message>
  <message name="ListConstructionSoapIn">
    <part name="parameters" element="s0:ListConstruction" />
  </message>
  <message name="ListConstructionSoapOut">
    <part name="parameters" element="s0:ListConstructionResponse" />
  </message>
  <message name="StoreConstructionSoapIn">
    <part name="parameters" element="s0:StoreConstruction" />
  </message>
  <message name="StoreConstructionSoapOut">
    <part name="parameters" element="s0:StoreConstructionResponse" />
  </message>
  <message name="ListStatusesSoapIn">
    <part name="parameters" element="s0:ListStatuses" />
  </message>
  <message name="ListStatusesSoapOut">
    <part name="parameters" element="s0:ListStatusesResponse" />
  </message>
  <message name="ListSelectorsSoapIn">
    <part name="parameters" element="s0:ListSelectors" />
  </message>
  <message name="ListSelectorsSoapOut">
    <part name="parameters" element="s0:ListSelectorsResponse" />
  </message>
  <message name="LoadProtocolSoapIn">
    <part name="parameters" element="s0:LoadProtocol" />
  </message>
  <message name="LoadProtocolSoapOut">
    <part name="parameters" element="s0:LoadProtocolResponse" />
  </message>
  <message name="StoreProtocolSoapIn">
    <part name="parameters" element="s0:StoreProtocol" />
  </message>
  <message name="StoreProtocolSoapOut">
    <part name="parameters" element="s0:StoreProtocolResponse" />
  </message>
  <message name="ListProtocolsSoapIn">
    <part name="parameters" element="s0:ListProtocols" />
  </message>
  <message name="ListProtocolsSoapOut">
    <part name="parameters" element="s0:ListProtocolsResponse" />
  </message>
  <message name="DownloadBatchWorksheetSoapIn">
    <part name="parameters" element="s0:DownloadBatchWorksheet" />
  </message>
  <message name="DownloadBatchWorksheetSoapOut">
    <part name="parameters" element="s0:DownloadBatchWorksheetResponse" />
  </message>
  <message name="GetVersionHttpGetIn" />
  <message name="GetVersionHttpGetOut">
    <part name="Body" element="s0:string" />
  </message>
  <message name="GetDSNameHttpGetIn" />
  <message name="GetDSNameHttpGetOut">
    <part name="Body" element="s0:string" />
  </message>
  <message name="WhoAmIHttpGetIn" />
  <message name="WhoAmIHttpGetOut">
    <part name="Body" element="s0:string" />
  </message>
  <message name="GetNonceHttpGetIn" />
  <message name="GetNonceHttpGetOut">
    <part name="Body" element="s0:string" />
  </message>
  <message name="GetUserIdHttpGetIn">
    <part name="username" type="s:string" />
  </message>
  <message name="GetUserIdHttpGetOut">
    <part name="Body" element="s0:int" />
  </message>
  <message name="LoginHttpGetIn">
    <part name="hash" type="s:string" />
  </message>
  <message name="LoginHttpGetOut">
    <part name="Body" element="s0:boolean" />
  </message>
  <message name="LoadAntibioticHttpGetIn">
    <part name="id" type="s:int" />
  </message>
  <message name="LoadAntibioticHttpGetOut">
    <part name="Body" element="s0:Antibiotic" />
  </message>
  <message name="ListAntibioticsHttpGetIn" />
  <message name="ListAntibioticsHttpGetOut">
    <part name="Body" element="s0:ArrayOfAntibiotic" />
  </message>
  <message name="LoadChassisHttpGetIn">
    <part name="id" type="s:int" />
  </message>
  <message name="LoadChassisHttpGetOut">
    <part name="Body" element="s0:Chassis" />
  </message>
  <message name="ListChassisHttpGetIn" />
  <message name="ListChassisHttpGetOut">
    <part name="Body" element="s0:ArrayOfChassis" />
  </message>
  <message name="LoadVectorHttpGetIn">
    <part name="id" type="s:int" />
  </message>
  <message name="LoadVectorHttpGetOut">
    <part name="Body" element="s0:Vector" />
  </message>
  <message name="ListVectorHttpGetIn" />
  <message name="ListVectorHttpGetOut">
    <part name="Body" element="s0:ArrayOfVector" />
  </message>
  <message name="LoadPartHttpGetIn">
    <part name="id" type="s:int" />
  </message>
  <message name="LoadPartHttpGetOut">
    <part name="Body" element="s0:Part" />
  </message>
  <message name="FindSubPartHttpGetIn">
    <part name="parentpart" type="s:int" />
    <part name="typeconstraint" type="s:int" />
    <part name="typeis" type="s:boolean" />
  </message>
  <message name="FindSubPartHttpGetOut">
    <part name="Body" element="s0:ArrayOfPart" />
  </message>
  <message name="CheckLocationOccupiedHttpGetIn">
    <part name="partid" type="s:int" />
    <part name="location" type="s:string" />
  </message>
  <message name="CheckLocationOccupiedHttpGetOut">
    <part name="Body" element="s0:boolean" />
  </message>
  <message name="CheckBBPartOccupiedHttpGetIn">
    <part name="partid" type="s:int" />
    <part name="bbpart" type="s:string" />
  </message>
  <message name="CheckBBPartOccupiedHttpGetOut">
    <part name="Body" element="s0:boolean" />
  </message>
  <message name="LoadQueryHttpGetIn">
    <part name="id" type="s:int" />
  </message>
  <message name="LoadQueryHttpGetOut">
    <part name="Body" element="s0:Query" />
  </message>
  <message name="ListQueryHttpGetIn" />
  <message name="ListQueryHttpGetOut">
    <part name="Body" element="s0:ArrayOfQuery" />
  </message>
  <message name="LoadBatchHttpGetIn">
    <part name="id" type="s:int" />
  </message>
  <message name="LoadBatchHttpGetOut">
    <part name="Body" element="s0:Batch" />
  </message>
  <message name="ListBatchHttpGetIn">
    <part name="active" type="s:boolean" />
    <part name="inactive" type="s:boolean" />
  </message>
  <message name="ListBatchHttpGetOut">
    <part name="Body" element="s0:ArrayOfBatch" />
  </message>
  <message name="AddPartToBatchHttpGetIn">
    <part name="partid" type="s:int" />
    <part name="batchid" type="s:int" />
  </message>
  <message name="AddPartToBatchHttpGetOut">
    <part name="Body" element="s0:boolean" />
  </message>
  <message name="DownloadGelHttpGetIn">
    <part name="gelid" type="s:int" />
  </message>
  <message name="DownloadGelHttpGetOut">
    <part name="Body" element="s0:base64Binary" />
  </message>
  <message name="UploadGelHttpGetIn">
    <part name="batchid" type="s:int" />
    <part name="image" type="s:base64Binary" />
  </message>
  <message name="UploadGelHttpGetOut">
    <part name="Body" element="s0:int" />
  </message>
  <message name="ListUsageHttpGetIn" />
  <message name="ListUsageHttpGetOut">
    <part name="Body" element="s0:ArrayOfUsage" />
  </message>
  <message name="ListConstructionHttpGetIn" />
  <message name="ListConstructionHttpGetOut">
    <part name="Body" element="s0:ArrayOfConstruction" />
  </message>
  <message name="ListStatusesHttpGetIn" />
  <message name="ListStatusesHttpGetOut">
    <part name="Body" element="s0:ArrayOfStatus" />
  </message>
  <message name="ListSelectorsHttpGetIn" />
  <message name="ListSelectorsHttpGetOut">
    <part name="Body" element="s0:ArrayOfSelector" />
  </message>
  <message name="LoadProtocolHttpGetIn">
    <part name="id" type="s:int" />
  </message>
  <message name="LoadProtocolHttpGetOut">
    <part name="Body" element="s0:Protocol" />
  </message>
  <message name="ListProtocolsHttpGetIn" />
  <message name="ListProtocolsHttpGetOut">
    <part name="Body" element="s0:ArrayOfProtocol" />
  </message>
  <message name="DownloadBatchWorksheetHttpGetIn">
    <part name="id" type="s:int" />
  </message>
  <message name="DownloadBatchWorksheetHttpGetOut">
    <part name="Body" element="s0:base64Binary" />
  </message>
  <message name="GetVersionHttpPostIn" />
  <message name="GetVersionHttpPostOut">
    <part name="Body" element="s0:string" />
  </message>
  <message name="GetDSNameHttpPostIn" />
  <message name="GetDSNameHttpPostOut">
    <part name="Body" element="s0:string" />
  </message>
  <message name="WhoAmIHttpPostIn" />
  <message name="WhoAmIHttpPostOut">
    <part name="Body" element="s0:string" />
  </message>
  <message name="GetNonceHttpPostIn" />
  <message name="GetNonceHttpPostOut">
    <part name="Body" element="s0:string" />
  </message>
  <message name="GetUserIdHttpPostIn">
    <part name="username" type="s:string" />
  </message>
  <message name="GetUserIdHttpPostOut">
    <part name="Body" element="s0:int" />
  </message>
  <message name="LoginHttpPostIn">
    <part name="hash" type="s:string" />
  </message>
  <message name="LoginHttpPostOut">
    <part name="Body" element="s0:boolean" />
  </message>
  <message name="LoadAntibioticHttpPostIn">
    <part name="id" type="s:int" />
  </message>
  <message name="LoadAntibioticHttpPostOut">
    <part name="Body" element="s0:Antibiotic" />
  </message>
  <message name="ListAntibioticsHttpPostIn" />
  <message name="ListAntibioticsHttpPostOut">
    <part name="Body" element="s0:ArrayOfAntibiotic" />
  </message>
  <message name="LoadChassisHttpPostIn">
    <part name="id" type="s:int" />
  </message>
  <message name="LoadChassisHttpPostOut">
    <part name="Body" element="s0:Chassis" />
  </message>
  <message name="ListChassisHttpPostIn" />
  <message name="ListChassisHttpPostOut">
    <part name="Body" element="s0:ArrayOfChassis" />
  </message>
  <message name="LoadVectorHttpPostIn">
    <part name="id" type="s:int" />
  </message>
  <message name="LoadVectorHttpPostOut">
    <part name="Body" element="s0:Vector" />
  </message>
  <message name="ListVectorHttpPostIn" />
  <message name="ListVectorHttpPostOut">
    <part name="Body" element="s0:ArrayOfVector" />
  </message>
  <message name="LoadPartHttpPostIn">
    <part name="id" type="s:int" />
  </message>
  <message name="LoadPartHttpPostOut">
    <part name="Body" element="s0:Part" />
  </message>
  <message name="FindSubPartHttpPostIn">
    <part name="parentpart" type="s:int" />
    <part name="typeconstraint" type="s:int" />
    <part name="typeis" type="s:boolean" />
  </message>
  <message name="FindSubPartHttpPostOut">
    <part name="Body" element="s0:ArrayOfPart" />
  </message>
  <message name="CheckLocationOccupiedHttpPostIn">
    <part name="partid" type="s:int" />
    <part name="location" type="s:string" />
  </message>
  <message name="CheckLocationOccupiedHttpPostOut">
    <part name="Body" element="s0:boolean" />
  </message>
  <message name="CheckBBPartOccupiedHttpPostIn">
    <part name="partid" type="s:int" />
    <part name="bbpart" type="s:string" />
  </message>
  <message name="CheckBBPartOccupiedHttpPostOut">
    <part name="Body" element="s0:boolean" />
  </message>
  <message name="LoadQueryHttpPostIn">
    <part name="id" type="s:int" />
  </message>
  <message name="LoadQueryHttpPostOut">
    <part name="Body" element="s0:Query" />
  </message>
  <message name="ListQueryHttpPostIn" />
  <message name="ListQueryHttpPostOut">
    <part name="Body" element="s0:ArrayOfQuery" />
  </message>
  <message name="LoadBatchHttpPostIn">
    <part name="id" type="s:int" />
  </message>
  <message name="LoadBatchHttpPostOut">
    <part name="Body" element="s0:Batch" />
  </message>
  <message name="ListBatchHttpPostIn">
    <part name="active" type="s:boolean" />
    <part name="inactive" type="s:boolean" />
  </message>
  <message name="ListBatchHttpPostOut">
    <part name="Body" element="s0:ArrayOfBatch" />
  </message>
  <message name="AddPartToBatchHttpPostIn">
    <part name="partid" type="s:int" />
    <part name="batchid" type="s:int" />
  </message>
  <message name="AddPartToBatchHttpPostOut">
    <part name="Body" element="s0:boolean" />
  </message>
  <message name="DownloadGelHttpPostIn">
    <part name="gelid" type="s:int" />
  </message>
  <message name="DownloadGelHttpPostOut">
    <part name="Body" element="s0:base64Binary" />
  </message>
  <message name="UploadGelHttpPostIn">
    <part name="batchid" type="s:int" />
    <part name="image" type="s:base64Binary" />
  </message>
  <message name="UploadGelHttpPostOut">
    <part name="Body" element="s0:int" />
  </message>
  <message name="ListUsageHttpPostIn" />
  <message name="ListUsageHttpPostOut">
    <part name="Body" element="s0:ArrayOfUsage" />
  </message>
  <message name="ListConstructionHttpPostIn" />
  <message name="ListConstructionHttpPostOut">
    <part name="Body" element="s0:ArrayOfConstruction" />
  </message>
  <message name="ListStatusesHttpPostIn" />
  <message name="ListStatusesHttpPostOut">
    <part name="Body" element="s0:ArrayOfStatus" />
  </message>
  <message name="ListSelectorsHttpPostIn" />
  <message name="ListSelectorsHttpPostOut">
    <part name="Body" element="s0:ArrayOfSelector" />
  </message>
  <message name="LoadProtocolHttpPostIn">
    <part name="id" type="s:int" />
  </message>
  <message name="LoadProtocolHttpPostOut">
    <part name="Body" element="s0:Protocol" />
  </message>
  <message name="ListProtocolsHttpPostIn" />
  <message name="ListProtocolsHttpPostOut">
    <part name="Body" element="s0:ArrayOfProtocol" />
  </message>
  <message name="DownloadBatchWorksheetHttpPostIn">
    <part name="id" type="s:int" />
  </message>
  <message name="DownloadBatchWorksheetHttpPostOut">
    <part name="Body" element="s0:base64Binary" />
  </message>
  <portType name="BioMortarDBSoap">
    <operation name="GetVersion">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Get API version.</wsdl:documentation>
      <input message="s0:GetVersionSoapIn" />
      <output message="s0:GetVersionSoapOut" />
    </operation>
    <operation name="GetDSName">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Get datastore name.</wsdl:documentation>
      <input message="s0:GetDSNameSoapIn" />
      <output message="s0:GetDSNameSoapOut" />
    </operation>
    <operation name="WhoAmI">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Return user ID. Meant mostly as a keep alive.</wsdl:documentation>
      <input message="s0:WhoAmISoapIn" />
      <output message="s0:WhoAmISoapOut" />
    </operation>
    <operation name="GetNonce">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Prepare to login to the datastore for write access.</wsdl:documentation>
      <input message="s0:GetNonceSoapIn" />
      <output message="s0:GetNonceSoapOut" />
    </operation>
    <operation name="GetUserId">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Get a login ID to compute a MediaWiki hash.</wsdl:documentation>
      <input message="s0:GetUserIdSoapIn" />
      <output message="s0:GetUserIdSoapOut" />
    </operation>
    <operation name="Login">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Login to the datastore for write access.</wsdl:documentation>
      <input message="s0:LoginSoapIn" />
      <output message="s0:LoginSoapOut" />
    </operation>
    <operation name="LoadAntibiotic">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Pull an antibiotic from the datastore.</wsdl:documentation>
      <input message="s0:LoadAntibioticSoapIn" />
      <output message="s0:LoadAntibioticSoapOut" />
    </operation>
    <operation name="StoreAntibiotic">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Push an antibiotic to the datastore.</wsdl:documentation>
      <input message="s0:StoreAntibioticSoapIn" />
      <output message="s0:StoreAntibioticSoapOut" />
    </operation>
    <operation name="ListAntibiotics">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Pull all antibiotics from the datastore.</wsdl:documentation>
      <input message="s0:ListAntibioticsSoapIn" />
      <output message="s0:ListAntibioticsSoapOut" />
    </operation>
    <operation name="LoadChassis">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Pull a chassis from the datastore.</wsdl:documentation>
      <input message="s0:LoadChassisSoapIn" />
      <output message="s0:LoadChassisSoapOut" />
    </operation>
    <operation name="StoreChassis">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Push a chassis to the datastore.</wsdl:documentation>
      <input message="s0:StoreChassisSoapIn" />
      <output message="s0:StoreChassisSoapOut" />
    </operation>
    <operation name="ListChassis">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Pull all chassis from the datastore.</wsdl:documentation>
      <input message="s0:ListChassisSoapIn" />
      <output message="s0:ListChassisSoapOut" />
    </operation>
    <operation name="LoadVector">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Pull a vector from the datastore.</wsdl:documentation>
      <input message="s0:LoadVectorSoapIn" />
      <output message="s0:LoadVectorSoapOut" />
    </operation>
    <operation name="StoreVector">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Push a vector to the datastore.</wsdl:documentation>
      <input message="s0:StoreVectorSoapIn" />
      <output message="s0:StoreVectorSoapOut" />
    </operation>
    <operation name="ListVector">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Pull all vectors from the datastore.</wsdl:documentation>
      <input message="s0:ListVectorSoapIn" />
      <output message="s0:ListVectorSoapOut" />
    </operation>
    <operation name="LoadPart">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Pull a part from the datastore.</wsdl:documentation>
      <input message="s0:LoadPartSoapIn" />
      <output message="s0:LoadPartSoapOut" />
    </operation>
    <operation name="StorePart">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Push a part to the datastore.</wsdl:documentation>
      <input message="s0:StorePartSoapIn" />
      <output message="s0:StorePartSoapOut" />
    </operation>
    <operation name="FindSubPart">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Find parts matching for a construct from the datastore.</wsdl:documentation>
      <input message="s0:FindSubPartSoapIn" />
      <output message="s0:FindSubPartSoapOut" />
    </operation>
    <operation name="CheckLocationOccupied">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Check if a location is already in use.</wsdl:documentation>
      <input message="s0:CheckLocationOccupiedSoapIn" />
      <output message="s0:CheckLocationOccupiedSoapOut" />
    </operation>
    <operation name="CheckBBPartOccupied">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Check if a BioBrick part number is already present.</wsdl:documentation>
      <input message="s0:CheckBBPartOccupiedSoapIn" />
      <output message="s0:CheckBBPartOccupiedSoapOut" />
    </operation>
    <operation name="QueryPart">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Query parts from the datastore.</wsdl:documentation>
      <input message="s0:QueryPartSoapIn" />
      <output message="s0:QueryPartSoapOut" />
    </operation>
    <operation name="LoadQuery">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Pull a query from the datastore.</wsdl:documentation>
      <input message="s0:LoadQuerySoapIn" />
      <output message="s0:LoadQuerySoapOut" />
    </operation>
    <operation name="ListQuery">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Pull all queries from the datastore.</wsdl:documentation>
      <input message="s0:ListQuerySoapIn" />
      <output message="s0:ListQuerySoapOut" />
    </operation>
    <operation name="LoadBatch">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Pull a batch from the datastore.</wsdl:documentation>
      <input message="s0:LoadBatchSoapIn" />
      <output message="s0:LoadBatchSoapOut" />
    </operation>
    <operation name="StoreBatch">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Push a batch to the datastore.</wsdl:documentation>
      <input message="s0:StoreBatchSoapIn" />
      <output message="s0:StoreBatchSoapOut" />
    </operation>
    <operation name="ListBatch">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Pull batches from the datastore.</wsdl:documentation>
      <input message="s0:ListBatchSoapIn" />
      <output message="s0:ListBatchSoapOut" />
    </operation>
    <operation name="AddPartToBatch">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Add a part to a batch, checking they have compatible construction types.</wsdl:documentation>
      <input message="s0:AddPartToBatchSoapIn" />
      <output message="s0:AddPartToBatchSoapOut" />
    </operation>
    <operation name="DownloadGel">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Pull a gel image from the datastore.</wsdl:documentation>
      <input message="s0:DownloadGelSoapIn" />
      <output message="s0:DownloadGelSoapOut" />
    </operation>
    <operation name="UploadGel">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Push a gel image from the datastore.</wsdl:documentation>
      <input message="s0:UploadGelSoapIn" />
      <output message="s0:UploadGelSoapOut" />
    </operation>
    <operation name="ListUsage">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Pull part usages from the datastore.</wsdl:documentation>
      <input message="s0:ListUsageSoapIn" />
      <output message="s0:ListUsageSoapOut" />
    </operation>
    <operation name="ListConstruction">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Pull part construction types from the datastore.</wsdl:documentation>
      <input message="s0:ListConstructionSoapIn" />
      <output message="s0:ListConstructionSoapOut" />
    </operation>
    <operation name="StoreConstruction">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Store part construction types to the datastore.</wsdl:documentation>
      <input message="s0:StoreConstructionSoapIn" />
      <output message="s0:StoreConstructionSoapOut" />
    </operation>
    <operation name="ListStatuses">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Pull location status types from the datastore.</wsdl:documentation>
      <input message="s0:ListStatusesSoapIn" />
      <output message="s0:ListStatusesSoapOut" />
    </operation>
    <operation name="ListSelectors">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Pull protocol group selectors from the datastore.</wsdl:documentation>
      <input message="s0:ListSelectorsSoapIn" />
      <output message="s0:ListSelectorsSoapOut" />
    </operation>
    <operation name="LoadProtocol">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Pull a protocol from the datastore.</wsdl:documentation>
      <input message="s0:LoadProtocolSoapIn" />
      <output message="s0:LoadProtocolSoapOut" />
    </operation>
    <operation name="StoreProtocol">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Push a protocol to the datastore.</wsdl:documentation>
      <input message="s0:StoreProtocolSoapIn" />
      <output message="s0:StoreProtocolSoapOut" />
    </operation>
    <operation name="ListProtocols">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Pull all protocols from the datastore.</wsdl:documentation>
      <input message="s0:ListProtocolsSoapIn" />
      <output message="s0:ListProtocolsSoapOut" />
    </operation>
    <operation name="DownloadBatchWorksheet">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Download a worksheet for a step.</wsdl:documentation>
      <input message="s0:DownloadBatchWorksheetSoapIn" />
      <output message="s0:DownloadBatchWorksheetSoapOut" />
    </operation>
  </portType>
  <portType name="BioMortarDBSoap12">
    <operation name="GetVersion">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Get API version.</wsdl:documentation>
      <input message="s0:GetVersionSoapIn" />
      <output message="s0:GetVersionSoapOut" />
    </operation>
    <operation name="GetDSName">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Get datastore name.</wsdl:documentation>
      <input message="s0:GetDSNameSoapIn" />
      <output message="s0:GetDSNameSoapOut" />
    </operation>
    <operation name="WhoAmI">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Return user ID. Meant mostly as a keep alive.</wsdl:documentation>
      <input message="s0:WhoAmISoapIn" />
      <output message="s0:WhoAmISoapOut" />
    </operation>
    <operation name="GetNonce">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Prepare to login to the datastore for write access.</wsdl:documentation>
      <input message="s0:GetNonceSoapIn" />
      <output message="s0:GetNonceSoapOut" />
    </operation>
    <operation name="GetUserId">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Get a login ID to compute a MediaWiki hash.</wsdl:documentation>
      <input message="s0:GetUserIdSoapIn" />
      <output message="s0:GetUserIdSoapOut" />
    </operation>
    <operation name="Login">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Login to the datastore for write access.</wsdl:documentation>
      <input message="s0:LoginSoapIn" />
      <output message="s0:LoginSoapOut" />
    </operation>
    <operation name="LoadAntibiotic">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Pull an antibiotic from the datastore.</wsdl:documentation>
      <input message="s0:LoadAntibioticSoapIn" />
      <output message="s0:LoadAntibioticSoapOut" />
    </operation>
    <operation name="StoreAntibiotic">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Push an antibiotic to the datastore.</wsdl:documentation>
      <input message="s0:StoreAntibioticSoapIn" />
      <output message="s0:StoreAntibioticSoapOut" />
    </operation>
    <operation name="ListAntibiotics">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Pull all antibiotics from the datastore.</wsdl:documentation>
      <input message="s0:ListAntibioticsSoapIn" />
      <output message="s0:ListAntibioticsSoapOut" />
    </operation>
    <operation name="LoadChassis">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Pull a chassis from the datastore.</wsdl:documentation>
      <input message="s0:LoadChassisSoapIn" />
      <output message="s0:LoadChassisSoapOut" />
    </operation>
    <operation name="StoreChassis">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Push a chassis to the datastore.</wsdl:documentation>
      <input message="s0:StoreChassisSoapIn" />
      <output message="s0:StoreChassisSoapOut" />
    </operation>
    <operation name="ListChassis">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Pull all chassis from the datastore.</wsdl:documentation>
      <input message="s0:ListChassisSoapIn" />
      <output message="s0:ListChassisSoapOut" />
    </operation>
    <operation name="LoadVector">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Pull a vector from the datastore.</wsdl:documentation>
      <input message="s0:LoadVectorSoapIn" />
      <output message="s0:LoadVectorSoapOut" />
    </operation>
    <operation name="StoreVector">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Push a vector to the datastore.</wsdl:documentation>
      <input message="s0:StoreVectorSoapIn" />
      <output message="s0:StoreVectorSoapOut" />
    </operation>
    <operation name="ListVector">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Pull all vectors from the datastore.</wsdl:documentation>
      <input message="s0:ListVectorSoapIn" />
      <output message="s0:ListVectorSoapOut" />
    </operation>
    <operation name="LoadPart">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Pull a part from the datastore.</wsdl:documentation>
      <input message="s0:LoadPartSoapIn" />
      <output message="s0:LoadPartSoapOut" />
    </operation>
    <operation name="StorePart">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Push a part to the datastore.</wsdl:documentation>
      <input message="s0:StorePartSoapIn" />
      <output message="s0:StorePartSoapOut" />
    </operation>
    <operation name="FindSubPart">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Find parts matching for a construct from the datastore.</wsdl:documentation>
      <input message="s0:FindSubPartSoapIn" />
      <output message="s0:FindSubPartSoapOut" />
    </operation>
    <operation name="CheckLocationOccupied">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Check if a location is already in use.</wsdl:documentation>
      <input message="s0:CheckLocationOccupiedSoapIn" />
      <output message="s0:CheckLocationOccupiedSoapOut" />
    </operation>
    <operation name="CheckBBPartOccupied">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Check if a BioBrick part number is already present.</wsdl:documentation>
      <input message="s0:CheckBBPartOccupiedSoapIn" />
      <output message="s0:CheckBBPartOccupiedSoapOut" />
    </operation>
    <operation name="QueryPart">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Query parts from the datastore.</wsdl:documentation>
      <input message="s0:QueryPartSoapIn" />
      <output message="s0:QueryPartSoapOut" />
    </operation>
    <operation name="LoadQuery">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Pull a query from the datastore.</wsdl:documentation>
      <input message="s0:LoadQuerySoapIn" />
      <output message="s0:LoadQuerySoapOut" />
    </operation>
    <operation name="ListQuery">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Pull all queries from the datastore.</wsdl:documentation>
      <input message="s0:ListQuerySoapIn" />
      <output message="s0:ListQuerySoapOut" />
    </operation>
    <operation name="LoadBatch">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Pull a batch from the datastore.</wsdl:documentation>
      <input message="s0:LoadBatchSoapIn" />
      <output message="s0:LoadBatchSoapOut" />
    </operation>
    <operation name="StoreBatch">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Push a batch to the datastore.</wsdl:documentation>
      <input message="s0:StoreBatchSoapIn" />
      <output message="s0:StoreBatchSoapOut" />
    </operation>
    <operation name="ListBatch">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Pull batches from the datastore.</wsdl:documentation>
      <input message="s0:ListBatchSoapIn" />
      <output message="s0:ListBatchSoapOut" />
    </operation>
    <operation name="AddPartToBatch">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Add a part to a batch, checking they have compatible construction types.</wsdl:documentation>
      <input message="s0:AddPartToBatchSoapIn" />
      <output message="s0:AddPartToBatchSoapOut" />
    </operation>
    <operation name="DownloadGel">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Pull a gel image from the datastore.</wsdl:documentation>
      <input message="s0:DownloadGelSoapIn" />
      <output message="s0:DownloadGelSoapOut" />
    </operation>
    <operation name="UploadGel">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Push a gel image from the datastore.</wsdl:documentation>
      <input message="s0:UploadGelSoapIn" />
      <output message="s0:UploadGelSoapOut" />
    </operation>
    <operation name="ListUsage">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Pull part usages from the datastore.</wsdl:documentation>
      <input message="s0:ListUsageSoapIn" />
      <output message="s0:ListUsageSoapOut" />
    </operation>
    <operation name="ListConstruction">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Pull part construction types from the datastore.</wsdl:documentation>
      <input message="s0:ListConstructionSoapIn" />
      <output message="s0:ListConstructionSoapOut" />
    </operation>
    <operation name="StoreConstruction">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Store part construction types to the datastore.</wsdl:documentation>
      <input message="s0:StoreConstructionSoapIn" />
      <output message="s0:StoreConstructionSoapOut" />
    </operation>
    <operation name="ListStatuses">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Pull location status types from the datastore.</wsdl:documentation>
      <input message="s0:ListStatusesSoapIn" />
      <output message="s0:ListStatusesSoapOut" />
    </operation>
    <operation name="ListSelectors">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Pull protocol group selectors from the datastore.</wsdl:documentation>
      <input message="s0:ListSelectorsSoapIn" />
      <output message="s0:ListSelectorsSoapOut" />
    </operation>
    <operation name="LoadProtocol">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Pull a protocol from the datastore.</wsdl:documentation>
      <input message="s0:LoadProtocolSoapIn" />
      <output message="s0:LoadProtocolSoapOut" />
    </operation>
    <operation name="StoreProtocol">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Push a protocol to the datastore.</wsdl:documentation>
      <input message="s0:StoreProtocolSoapIn" />
      <output message="s0:StoreProtocolSoapOut" />
    </operation>
    <operation name="ListProtocols">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Pull all protocols from the datastore.</wsdl:documentation>
      <input message="s0:ListProtocolsSoapIn" />
      <output message="s0:ListProtocolsSoapOut" />
    </operation>
    <operation name="DownloadBatchWorksheet">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Download a worksheet for a step.</wsdl:documentation>
      <input message="s0:DownloadBatchWorksheetSoapIn" />
      <output message="s0:DownloadBatchWorksheetSoapOut" />
    </operation>
  </portType>
  <portType name="BioMortarDBHttpGet">
    <operation name="GetVersion">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Get API version.</wsdl:documentation>
      <input message="s0:GetVersionHttpGetIn" />
      <output message="s0:GetVersionHttpGetOut" />
    </operation>
    <operation name="GetDSName">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Get datastore name.</wsdl:documentation>
      <input message="s0:GetDSNameHttpGetIn" />
      <output message="s0:GetDSNameHttpGetOut" />
    </operation>
    <operation name="WhoAmI">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Return user ID. Meant mostly as a keep alive.</wsdl:documentation>
      <input message="s0:WhoAmIHttpGetIn" />
      <output message="s0:WhoAmIHttpGetOut" />
    </operation>
    <operation name="GetNonce">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Prepare to login to the datastore for write access.</wsdl:documentation>
      <input message="s0:GetNonceHttpGetIn" />
      <output message="s0:GetNonceHttpGetOut" />
    </operation>
    <operation name="GetUserId">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Get a login ID to compute a MediaWiki hash.</wsdl:documentation>
      <input message="s0:GetUserIdHttpGetIn" />
      <output message="s0:GetUserIdHttpGetOut" />
    </operation>
    <operation name="Login">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Login to the datastore for write access.</wsdl:documentation>
      <input message="s0:LoginHttpGetIn" />
      <output message="s0:LoginHttpGetOut" />
    </operation>
    <operation name="LoadAntibiotic">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Pull an antibiotic from the datastore.</wsdl:documentation>
      <input message="s0:LoadAntibioticHttpGetIn" />
      <output message="s0:LoadAntibioticHttpGetOut" />
    </operation>
    <operation name="ListAntibiotics">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Pull all antibiotics from the datastore.</wsdl:documentation>
      <input message="s0:ListAntibioticsHttpGetIn" />
      <output message="s0:ListAntibioticsHttpGetOut" />
    </operation>
    <operation name="LoadChassis">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Pull a chassis from the datastore.</wsdl:documentation>
      <input message="s0:LoadChassisHttpGetIn" />
      <output message="s0:LoadChassisHttpGetOut" />
    </operation>
    <operation name="ListChassis">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Pull all chassis from the datastore.</wsdl:documentation>
      <input message="s0:ListChassisHttpGetIn" />
      <output message="s0:ListChassisHttpGetOut" />
    </operation>
    <operation name="LoadVector">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Pull a vector from the datastore.</wsdl:documentation>
      <input message="s0:LoadVectorHttpGetIn" />
      <output message="s0:LoadVectorHttpGetOut" />
    </operation>
    <operation name="ListVector">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Pull all vectors from the datastore.</wsdl:documentation>
      <input message="s0:ListVectorHttpGetIn" />
      <output message="s0:ListVectorHttpGetOut" />
    </operation>
    <operation name="LoadPart">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Pull a part from the datastore.</wsdl:documentation>
      <input message="s0:LoadPartHttpGetIn" />
      <output message="s0:LoadPartHttpGetOut" />
    </operation>
    <operation name="FindSubPart">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Find parts matching for a construct from the datastore.</wsdl:documentation>
      <input message="s0:FindSubPartHttpGetIn" />
      <output message="s0:FindSubPartHttpGetOut" />
    </operation>
    <operation name="CheckLocationOccupied">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Check if a location is already in use.</wsdl:documentation>
      <input message="s0:CheckLocationOccupiedHttpGetIn" />
      <output message="s0:CheckLocationOccupiedHttpGetOut" />
    </operation>
    <operation name="CheckBBPartOccupied">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Check if a BioBrick part number is already present.</wsdl:documentation>
      <input message="s0:CheckBBPartOccupiedHttpGetIn" />
      <output message="s0:CheckBBPartOccupiedHttpGetOut" />
    </operation>
    <operation name="LoadQuery">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Pull a query from the datastore.</wsdl:documentation>
      <input message="s0:LoadQueryHttpGetIn" />
      <output message="s0:LoadQueryHttpGetOut" />
    </operation>
    <operation name="ListQuery">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Pull all queries from the datastore.</wsdl:documentation>
      <input message="s0:ListQueryHttpGetIn" />
      <output message="s0:ListQueryHttpGetOut" />
    </operation>
    <operation name="LoadBatch">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Pull a batch from the datastore.</wsdl:documentation>
      <input message="s0:LoadBatchHttpGetIn" />
      <output message="s0:LoadBatchHttpGetOut" />
    </operation>
    <operation name="ListBatch">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Pull batches from the datastore.</wsdl:documentation>
      <input message="s0:ListBatchHttpGetIn" />
      <output message="s0:ListBatchHttpGetOut" />
    </operation>
    <operation name="AddPartToBatch">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Add a part to a batch, checking they have compatible construction types.</wsdl:documentation>
      <input message="s0:AddPartToBatchHttpGetIn" />
      <output message="s0:AddPartToBatchHttpGetOut" />
    </operation>
    <operation name="DownloadGel">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Pull a gel image from the datastore.</wsdl:documentation>
      <input message="s0:DownloadGelHttpGetIn" />
      <output message="s0:DownloadGelHttpGetOut" />
    </operation>
    <operation name="UploadGel">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Push a gel image from the datastore.</wsdl:documentation>
      <input message="s0:UploadGelHttpGetIn" />
      <output message="s0:UploadGelHttpGetOut" />
    </operation>
    <operation name="ListUsage">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Pull part usages from the datastore.</wsdl:documentation>
      <input message="s0:ListUsageHttpGetIn" />
      <output message="s0:ListUsageHttpGetOut" />
    </operation>
    <operation name="ListConstruction">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Pull part construction types from the datastore.</wsdl:documentation>
      <input message="s0:ListConstructionHttpGetIn" />
      <output message="s0:ListConstructionHttpGetOut" />
    </operation>
    <operation name="ListStatuses">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Pull location status types from the datastore.</wsdl:documentation>
      <input message="s0:ListStatusesHttpGetIn" />
      <output message="s0:ListStatusesHttpGetOut" />
    </operation>
    <operation name="ListSelectors">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Pull protocol group selectors from the datastore.</wsdl:documentation>
      <input message="s0:ListSelectorsHttpGetIn" />
      <output message="s0:ListSelectorsHttpGetOut" />
    </operation>
    <operation name="LoadProtocol">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Pull a protocol from the datastore.</wsdl:documentation>
      <input message="s0:LoadProtocolHttpGetIn" />
      <output message="s0:LoadProtocolHttpGetOut" />
    </operation>
    <operation name="ListProtocols">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Pull all protocols from the datastore.</wsdl:documentation>
      <input message="s0:ListProtocolsHttpGetIn" />
      <output message="s0:ListProtocolsHttpGetOut" />
    </operation>
    <operation name="DownloadBatchWorksheet">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Download a worksheet for a step.</wsdl:documentation>
      <input message="s0:DownloadBatchWorksheetHttpGetIn" />
      <output message="s0:DownloadBatchWorksheetHttpGetOut" />
    </operation>
  </portType>
  <portType name="BioMortarDBHttpPost">
    <operation name="GetVersion">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Get API version.</wsdl:documentation>
      <input message="s0:GetVersionHttpPostIn" />
      <output message="s0:GetVersionHttpPostOut" />
    </operation>
    <operation name="GetDSName">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Get datastore name.</wsdl:documentation>
      <input message="s0:GetDSNameHttpPostIn" />
      <output message="s0:GetDSNameHttpPostOut" />
    </operation>
    <operation name="WhoAmI">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Return user ID. Meant mostly as a keep alive.</wsdl:documentation>
      <input message="s0:WhoAmIHttpPostIn" />
      <output message="s0:WhoAmIHttpPostOut" />
    </operation>
    <operation name="GetNonce">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Prepare to login to the datastore for write access.</wsdl:documentation>
      <input message="s0:GetNonceHttpPostIn" />
      <output message="s0:GetNonceHttpPostOut" />
    </operation>
    <operation name="GetUserId">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Get a login ID to compute a MediaWiki hash.</wsdl:documentation>
      <input message="s0:GetUserIdHttpPostIn" />
      <output message="s0:GetUserIdHttpPostOut" />
    </operation>
    <operation name="Login">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Login to the datastore for write access.</wsdl:documentation>
      <input message="s0:LoginHttpPostIn" />
      <output message="s0:LoginHttpPostOut" />
    </operation>
    <operation name="LoadAntibiotic">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Pull an antibiotic from the datastore.</wsdl:documentation>
      <input message="s0:LoadAntibioticHttpPostIn" />
      <output message="s0:LoadAntibioticHttpPostOut" />
    </operation>
    <operation name="ListAntibiotics">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Pull all antibiotics from the datastore.</wsdl:documentation>
      <input message="s0:ListAntibioticsHttpPostIn" />
      <output message="s0:ListAntibioticsHttpPostOut" />
    </operation>
    <operation name="LoadChassis">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Pull a chassis from the datastore.</wsdl:documentation>
      <input message="s0:LoadChassisHttpPostIn" />
      <output message="s0:LoadChassisHttpPostOut" />
    </operation>
    <operation name="ListChassis">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Pull all chassis from the datastore.</wsdl:documentation>
      <input message="s0:ListChassisHttpPostIn" />
      <output message="s0:ListChassisHttpPostOut" />
    </operation>
    <operation name="LoadVector">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Pull a vector from the datastore.</wsdl:documentation>
      <input message="s0:LoadVectorHttpPostIn" />
      <output message="s0:LoadVectorHttpPostOut" />
    </operation>
    <operation name="ListVector">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Pull all vectors from the datastore.</wsdl:documentation>
      <input message="s0:ListVectorHttpPostIn" />
      <output message="s0:ListVectorHttpPostOut" />
    </operation>
    <operation name="LoadPart">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Pull a part from the datastore.</wsdl:documentation>
      <input message="s0:LoadPartHttpPostIn" />
      <output message="s0:LoadPartHttpPostOut" />
    </operation>
    <operation name="FindSubPart">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Find parts matching for a construct from the datastore.</wsdl:documentation>
      <input message="s0:FindSubPartHttpPostIn" />
      <output message="s0:FindSubPartHttpPostOut" />
    </operation>
    <operation name="CheckLocationOccupied">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Check if a location is already in use.</wsdl:documentation>
      <input message="s0:CheckLocationOccupiedHttpPostIn" />
      <output message="s0:CheckLocationOccupiedHttpPostOut" />
    </operation>
    <operation name="CheckBBPartOccupied">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Check if a BioBrick part number is already present.</wsdl:documentation>
      <input message="s0:CheckBBPartOccupiedHttpPostIn" />
      <output message="s0:CheckBBPartOccupiedHttpPostOut" />
    </operation>
    <operation name="LoadQuery">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Pull a query from the datastore.</wsdl:documentation>
      <input message="s0:LoadQueryHttpPostIn" />
      <output message="s0:LoadQueryHttpPostOut" />
    </operation>
    <operation name="ListQuery">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Pull all queries from the datastore.</wsdl:documentation>
      <input message="s0:ListQueryHttpPostIn" />
      <output message="s0:ListQueryHttpPostOut" />
    </operation>
    <operation name="LoadBatch">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Pull a batch from the datastore.</wsdl:documentation>
      <input message="s0:LoadBatchHttpPostIn" />
      <output message="s0:LoadBatchHttpPostOut" />
    </operation>
    <operation name="ListBatch">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Pull batches from the datastore.</wsdl:documentation>
      <input message="s0:ListBatchHttpPostIn" />
      <output message="s0:ListBatchHttpPostOut" />
    </operation>
    <operation name="AddPartToBatch">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Add a part to a batch, checking they have compatible construction types.</wsdl:documentation>
      <input message="s0:AddPartToBatchHttpPostIn" />
      <output message="s0:AddPartToBatchHttpPostOut" />
    </operation>
    <operation name="DownloadGel">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Pull a gel image from the datastore.</wsdl:documentation>
      <input message="s0:DownloadGelHttpPostIn" />
      <output message="s0:DownloadGelHttpPostOut" />
    </operation>
    <operation name="UploadGel">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Push a gel image from the datastore.</wsdl:documentation>
      <input message="s0:UploadGelHttpPostIn" />
      <output message="s0:UploadGelHttpPostOut" />
    </operation>
    <operation name="ListUsage">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Pull part usages from the datastore.</wsdl:documentation>
      <input message="s0:ListUsageHttpPostIn" />
      <output message="s0:ListUsageHttpPostOut" />
    </operation>
    <operation name="ListConstruction">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Pull part construction types from the datastore.</wsdl:documentation>
      <input message="s0:ListConstructionHttpPostIn" />
      <output message="s0:ListConstructionHttpPostOut" />
    </operation>
    <operation name="ListStatuses">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Pull location status types from the datastore.</wsdl:documentation>
      <input message="s0:ListStatusesHttpPostIn" />
      <output message="s0:ListStatusesHttpPostOut" />
    </operation>
    <operation name="ListSelectors">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Pull protocol group selectors from the datastore.</wsdl:documentation>
      <input message="s0:ListSelectorsHttpPostIn" />
      <output message="s0:ListSelectorsHttpPostOut" />
    </operation>
    <operation name="LoadProtocol">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Pull a protocol from the datastore.</wsdl:documentation>
      <input message="s0:LoadProtocolHttpPostIn" />
      <output message="s0:LoadProtocolHttpPostOut" />
    </operation>
    <operation name="ListProtocols">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Pull all protocols from the datastore.</wsdl:documentation>
      <input message="s0:ListProtocolsHttpPostIn" />
      <output message="s0:ListProtocolsHttpPostOut" />
    </operation>
    <operation name="DownloadBatchWorksheet">
      <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Download a worksheet for a step.</wsdl:documentation>
      <input message="s0:DownloadBatchWorksheetHttpPostIn" />
      <output message="s0:DownloadBatchWorksheetHttpPostOut" />
    </operation>
  </portType>
  <binding name="BioMortarDBSoap" type="s0:BioMortarDBSoap">
    <soap:binding transport="http://schemas.xmlsoap.org/soap/http" />
    <operation name="GetVersion">
      <soap:operation soapAction="http://igem.uwaterloo.ca/service/GetVersion" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="GetDSName">
      <soap:operation soapAction="http://igem.uwaterloo.ca/service/GetDSName" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="WhoAmI">
      <soap:operation soapAction="http://igem.uwaterloo.ca/service/WhoAmI" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="GetNonce">
      <soap:operation soapAction="http://igem.uwaterloo.ca/service/GetNonce" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="GetUserId">
      <soap:operation soapAction="http://igem.uwaterloo.ca/service/GetUserId" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="Login">
      <soap:operation soapAction="http://igem.uwaterloo.ca/service/Login" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="LoadAntibiotic">
      <soap:operation soapAction="http://igem.uwaterloo.ca/service/LoadAntibiotic" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="StoreAntibiotic">
      <soap:operation soapAction="http://igem.uwaterloo.ca/service/StoreAntibiotic" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="ListAntibiotics">
      <soap:operation soapAction="http://igem.uwaterloo.ca/service/ListAntibiotics" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="LoadChassis">
      <soap:operation soapAction="http://igem.uwaterloo.ca/service/LoadChassis" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="StoreChassis">
      <soap:operation soapAction="http://igem.uwaterloo.ca/service/StoreChassis" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="ListChassis">
      <soap:operation soapAction="http://igem.uwaterloo.ca/service/ListChassis" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="LoadVector">
      <soap:operation soapAction="http://igem.uwaterloo.ca/service/LoadVector" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="StoreVector">
      <soap:operation soapAction="http://igem.uwaterloo.ca/service/StoreVector" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="ListVector">
      <soap:operation soapAction="http://igem.uwaterloo.ca/service/ListVector" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="LoadPart">
      <soap:operation soapAction="http://igem.uwaterloo.ca/service/LoadPart" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="StorePart">
      <soap:operation soapAction="http://igem.uwaterloo.ca/service/StorePart" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="FindSubPart">
      <soap:operation soapAction="http://igem.uwaterloo.ca/service/FindSubPart" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="CheckLocationOccupied">
      <soap:operation soapAction="http://igem.uwaterloo.ca/service/CheckLocationOccupied" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="CheckBBPartOccupied">
      <soap:operation soapAction="http://igem.uwaterloo.ca/service/CheckBBPartOccupied" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="QueryPart">
      <soap:operation soapAction="http://igem.uwaterloo.ca/service/QueryPart" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="LoadQuery">
      <soap:operation soapAction="http://igem.uwaterloo.ca/service/LoadQuery" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="ListQuery">
      <soap:operation soapAction="http://igem.uwaterloo.ca/service/ListQuery" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="LoadBatch">
      <soap:operation soapAction="http://igem.uwaterloo.ca/service/LoadBatch" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="StoreBatch">
      <soap:operation soapAction="http://igem.uwaterloo.ca/service/StoreBatch" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="ListBatch">
      <soap:operation soapAction="http://igem.uwaterloo.ca/service/ListBatch" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="AddPartToBatch">
      <soap:operation soapAction="http://igem.uwaterloo.ca/service/AddPartToBatch" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="DownloadGel">
      <soap:operation soapAction="http://igem.uwaterloo.ca/service/DownloadGel" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="UploadGel">
      <soap:operation soapAction="http://igem.uwaterloo.ca/service/UploadGel" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="ListUsage">
      <soap:operation soapAction="http://igem.uwaterloo.ca/service/ListUsage" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="ListConstruction">
      <soap:operation soapAction="http://igem.uwaterloo.ca/service/ListConstruction" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="StoreConstruction">
      <soap:operation soapAction="http://igem.uwaterloo.ca/service/StoreConstruction" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="ListStatuses">
      <soap:operation soapAction="http://igem.uwaterloo.ca/service/ListStatuses" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="ListSelectors">
      <soap:operation soapAction="http://igem.uwaterloo.ca/service/ListSelectors" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="LoadProtocol">
      <soap:operation soapAction="http://igem.uwaterloo.ca/service/LoadProtocol" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="StoreProtocol">
      <soap:operation soapAction="http://igem.uwaterloo.ca/service/StoreProtocol" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="ListProtocols">
      <soap:operation soapAction="http://igem.uwaterloo.ca/service/ListProtocols" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
    <operation name="DownloadBatchWorksheet">
      <soap:operation soapAction="http://igem.uwaterloo.ca/service/DownloadBatchWorksheet" style="document" />
      <input>
        <soap:body use="literal" />
      </input>
      <output>
        <soap:body use="literal" />
      </output>
    </operation>
  </binding>
  <binding name="BioMortarDBSoap12" type="s0:BioMortarDBSoap12">
    <soap12:binding transport="http://schemas.xmlsoap.org/soap/http" />
    <operation name="GetVersion">
      <soap12:operation soapAction="http://igem.uwaterloo.ca/service/GetVersion" style="document" />
      <input>
        <soap12:body use="literal" />
      </input>
      <output>
        <soap12:body use="literal" />
      </output>
    </operation>
    <operation name="GetDSName">
      <soap12:operation soapAction="http://igem.uwaterloo.ca/service/GetDSName" style="document" />
      <input>
        <soap12:body use="literal" />
      </input>
      <output>
        <soap12:body use="literal" />
      </output>
    </operation>
    <operation name="WhoAmI">
      <soap12:operation soapAction="http://igem.uwaterloo.ca/service/WhoAmI" style="document" />
      <input>
        <soap12:body use="literal" />
      </input>
      <output>
        <soap12:body use="literal" />
      </output>
    </operation>
    <operation name="GetNonce">
      <soap12:operation soapAction="http://igem.uwaterloo.ca/service/GetNonce" style="document" />
      <input>
        <soap12:body use="literal" />
      </input>
      <output>
        <soap12:body use="literal" />
      </output>
    </operation>
    <operation name="GetUserId">
      <soap12:operation soapAction="http://igem.uwaterloo.ca/service/GetUserId" style="document" />
      <input>
        <soap12:body use="literal" />
      </input>
      <output>
        <soap12:body use="literal" />
      </output>
    </operation>
    <operation name="Login">
      <soap12:operation soapAction="http://igem.uwaterloo.ca/service/Login" style="document" />
      <input>
        <soap12:body use="literal" />
      </input>
      <output>
        <soap12:body use="literal" />
      </output>
    </operation>
    <operation name="LoadAntibiotic">
      <soap12:operation soapAction="http://igem.uwaterloo.ca/service/LoadAntibiotic" style="document" />
      <input>
        <soap12:body use="literal" />
      </input>
      <output>
        <soap12:body use="literal" />
      </output>
    </operation>
    <operation name="StoreAntibiotic">
      <soap12:operation soapAction="http://igem.uwaterloo.ca/service/StoreAntibiotic" style="document" />
      <input>
        <soap12:body use="literal" />
      </input>
      <output>
        <soap12:body use="literal" />
      </output>
    </operation>
    <operation name="ListAntibiotics">
      <soap12:operation soapAction="http://igem.uwaterloo.ca/service/ListAntibiotics" style="document" />
      <input>
        <soap12:body use="literal" />
      </input>
      <output>
        <soap12:body use="literal" />
      </output>
    </operation>
    <operation name="LoadChassis">
      <soap12:operation soapAction="http://igem.uwaterloo.ca/service/LoadChassis" style="document" />
      <input>
        <soap12:body use="literal" />
      </input>
      <output>
        <soap12:body use="literal" />
      </output>
    </operation>
    <operation name="StoreChassis">
      <soap12:operation soapAction="http://igem.uwaterloo.ca/service/StoreChassis" style="document" />
      <input>
        <soap12:body use="literal" />
      </input>
      <output>
        <soap12:body use="literal" />
      </output>
    </operation>
    <operation name="ListChassis">
      <soap12:operation soapAction="http://igem.uwaterloo.ca/service/ListChassis" style="document" />
      <input>
        <soap12:body use="literal" />
      </input>
      <output>
        <soap12:body use="literal" />
      </output>
    </operation>
    <operation name="LoadVector">
      <soap12:operation soapAction="http://igem.uwaterloo.ca/service/LoadVector" style="document" />
      <input>
        <soap12:body use="literal" />
      </input>
      <output>
        <soap12:body use="literal" />
      </output>
    </operation>
    <operation name="StoreVector">
      <soap12:operation soapAction="http://igem.uwaterloo.ca/service/StoreVector" style="document" />
      <input>
        <soap12:body use="literal" />
      </input>
      <output>
        <soap12:body use="literal" />
      </output>
    </operation>
    <operation name="ListVector">
      <soap12:operation soapAction="http://igem.uwaterloo.ca/service/ListVector" style="document" />
      <input>
        <soap12:body use="literal" />
      </input>
      <output>
        <soap12:body use="literal" />
      </output>
    </operation>
    <operation name="LoadPart">
      <soap12:operation soapAction="http://igem.uwaterloo.ca/service/LoadPart" style="document" />
      <input>
        <soap12:body use="literal" />
      </input>
      <output>
        <soap12:body use="literal" />
      </output>
    </operation>
    <operation name="StorePart">
      <soap12:operation soapAction="http://igem.uwaterloo.ca/service/StorePart" style="document" />
      <input>
        <soap12:body use="literal" />
      </input>
      <output>
        <soap12:body use="literal" />
      </output>
    </operation>
    <operation name="FindSubPart">
      <soap12:operation soapAction="http://igem.uwaterloo.ca/service/FindSubPart" style="document" />
      <input>
        <soap12:body use="literal" />
      </input>
      <output>
        <soap12:body use="literal" />
      </output>
    </operation>
    <operation name="CheckLocationOccupied">
      <soap12:operation soapAction="http://igem.uwaterloo.ca/service/CheckLocationOccupied" style="document" />
      <input>
        <soap12:body use="literal" />
      </input>
      <output>
        <soap12:body use="literal" />
      </output>
    </operation>
    <operation name="CheckBBPartOccupied">
      <soap12:operation soapAction="http://igem.uwaterloo.ca/service/CheckBBPartOccupied" style="document" />
      <input>
        <soap12:body use="literal" />
      </input>
      <output>
        <soap12:body use="literal" />
      </output>
    </operation>
    <operation name="QueryPart">
      <soap12:operation soapAction="http://igem.uwaterloo.ca/service/QueryPart" style="document" />
      <input>
        <soap12:body use="literal" />
      </input>
      <output>
        <soap12:body use="literal" />
      </output>
    </operation>
    <operation name="LoadQuery">
      <soap12:operation soapAction="http://igem.uwaterloo.ca/service/LoadQuery" style="document" />
      <input>
        <soap12:body use="literal" />
      </input>
      <output>
        <soap12:body use="literal" />
      </output>
    </operation>
    <operation name="ListQuery">
      <soap12:operation soapAction="http://igem.uwaterloo.ca/service/ListQuery" style="document" />
      <input>
        <soap12:body use="literal" />
      </input>
      <output>
        <soap12:body use="literal" />
      </output>
    </operation>
    <operation name="LoadBatch">
      <soap12:operation soapAction="http://igem.uwaterloo.ca/service/LoadBatch" style="document" />
      <input>
        <soap12:body use="literal" />
      </input>
      <output>
        <soap12:body use="literal" />
      </output>
    </operation>
    <operation name="StoreBatch">
      <soap12:operation soapAction="http://igem.uwaterloo.ca/service/StoreBatch" style="document" />
      <input>
        <soap12:body use="literal" />
      </input>
      <output>
        <soap12:body use="literal" />
      </output>
    </operation>
    <operation name="ListBatch">
      <soap12:operation soapAction="http://igem.uwaterloo.ca/service/ListBatch" style="document" />
      <input>
        <soap12:body use="literal" />
      </input>
      <output>
        <soap12:body use="literal" />
      </output>
    </operation>
    <operation name="AddPartToBatch">
      <soap12:operation soapAction="http://igem.uwaterloo.ca/service/AddPartToBatch" style="document" />
      <input>
        <soap12:body use="literal" />
      </input>
      <output>
        <soap12:body use="literal" />
      </output>
    </operation>
    <operation name="DownloadGel">
      <soap12:operation soapAction="http://igem.uwaterloo.ca/service/DownloadGel" style="document" />
      <input>
        <soap12:body use="literal" />
      </input>
      <output>
        <soap12:body use="literal" />
      </output>
    </operation>
    <operation name="UploadGel">
      <soap12:operation soapAction="http://igem.uwaterloo.ca/service/UploadGel" style="document" />
      <input>
        <soap12:body use="literal" />
      </input>
      <output>
        <soap12:body use="literal" />
      </output>
    </operation>
    <operation name="ListUsage">
      <soap12:operation soapAction="http://igem.uwaterloo.ca/service/ListUsage" style="document" />
      <input>
        <soap12:body use="literal" />
      </input>
      <output>
        <soap12:body use="literal" />
      </output>
    </operation>
    <operation name="ListConstruction">
      <soap12:operation soapAction="http://igem.uwaterloo.ca/service/ListConstruction" style="document" />
      <input>
        <soap12:body use="literal" />
      </input>
      <output>
        <soap12:body use="literal" />
      </output>
    </operation>
    <operation name="StoreConstruction">
      <soap12:operation soapAction="http://igem.uwaterloo.ca/service/StoreConstruction" style="document" />
      <input>
        <soap12:body use="literal" />
      </input>
      <output>
        <soap12:body use="literal" />
      </output>
    </operation>
    <operation name="ListStatuses">
      <soap12:operation soapAction="http://igem.uwaterloo.ca/service/ListStatuses" style="document" />
      <input>
        <soap12:body use="literal" />
      </input>
      <output>
        <soap12:body use="literal" />
      </output>
    </operation>
    <operation name="ListSelectors">
      <soap12:operation soapAction="http://igem.uwaterloo.ca/service/ListSelectors" style="document" />
      <input>
        <soap12:body use="literal" />
      </input>
      <output>
        <soap12:body use="literal" />
      </output>
    </operation>
    <operation name="LoadProtocol">
      <soap12:operation soapAction="http://igem.uwaterloo.ca/service/LoadProtocol" style="document" />
      <input>
        <soap12:body use="literal" />
      </input>
      <output>
        <soap12:body use="literal" />
      </output>
    </operation>
    <operation name="StoreProtocol">
      <soap12:operation soapAction="http://igem.uwaterloo.ca/service/StoreProtocol" style="document" />
      <input>
        <soap12:body use="literal" />
      </input>
      <output>
        <soap12:body use="literal" />
      </output>
    </operation>
    <operation name="ListProtocols">
      <soap12:operation soapAction="http://igem.uwaterloo.ca/service/ListProtocols" style="document" />
      <input>
        <soap12:body use="literal" />
      </input>
      <output>
        <soap12:body use="literal" />
      </output>
    </operation>
    <operation name="DownloadBatchWorksheet">
      <soap12:operation soapAction="http://igem.uwaterloo.ca/service/DownloadBatchWorksheet" style="document" />
      <input>
        <soap12:body use="literal" />
      </input>
      <output>
        <soap12:body use="literal" />
      </output>
    </operation>
  </binding>
  <binding name="BioMortarDBHttpGet" type="s0:BioMortarDBHttpGet">
    <http:binding verb="GET" />
    <operation name="GetVersion">
      <http:operation location="/GetVersion" />
      <input>
        <http:urlEncoded />
      </input>
      <output>
        <mime:mimeXml part="Body" />
      </output>
    </operation>
    <operation name="GetDSName">
      <http:operation location="/GetDSName" />
      <input>
        <http:urlEncoded />
      </input>
      <output>
        <mime:mimeXml part="Body" />
      </output>
    </operation>
    <operation name="WhoAmI">
      <http:operation location="/WhoAmI" />
      <input>
        <http:urlEncoded />
      </input>
      <output>
        <mime:mimeXml part="Body" />
      </output>
    </operation>
    <operation name="GetNonce">
      <http:operation location="/GetNonce" />
      <input>
        <http:urlEncoded />
      </input>
      <output>
        <mime:mimeXml part="Body" />
      </output>
    </operation>
    <operation name="GetUserId">
      <http:operation location="/GetUserId" />
      <input>
        <http:urlEncoded />
      </input>
      <output>
        <mime:mimeXml part="Body" />
      </output>
    </operation>
    <operation name="Login">
      <http:operation location="/Login" />
      <input>
        <http:urlEncoded />
      </input>
      <output>
        <mime:mimeXml part="Body" />
      </output>
    </operation>
    <operation name="LoadAntibiotic">
      <http:operation location="/LoadAntibiotic" />
      <input>
        <http:urlEncoded />
      </input>
      <output>
        <mime:mimeXml part="Body" />
      </output>
    </operation>
    <operation name="ListAntibiotics">
      <http:operation location="/ListAntibiotics" />
      <input>
        <http:urlEncoded />
      </input>
      <output>
        <mime:mimeXml part="Body" />
      </output>
    </operation>
    <operation name="LoadChassis">
      <http:operation location="/LoadChassis" />
      <input>
        <http:urlEncoded />
      </input>
      <output>
        <mime:mimeXml part="Body" />
      </output>
    </operation>
    <operation name="ListChassis">
      <http:operation location="/ListChassis" />
      <input>
        <http:urlEncoded />
      </input>
      <output>
        <mime:mimeXml part="Body" />
      </output>
    </operation>
    <operation name="LoadVector">
      <http:operation location="/LoadVector" />
      <input>
        <http:urlEncoded />
      </input>
      <output>
        <mime:mimeXml part="Body" />
      </output>
    </operation>
    <operation name="ListVector">
      <http:operation location="/ListVector" />
      <input>
        <http:urlEncoded />
      </input>
      <output>
        <mime:mimeXml part="Body" />
      </output>
    </operation>
    <operation name="LoadPart">
      <http:operation location="/LoadPart" />
      <input>
        <http:urlEncoded />
      </input>
      <output>
        <mime:mimeXml part="Body" />
      </output>
    </operation>
    <operation name="FindSubPart">
      <http:operation location="/FindSubPart" />
      <input>
        <http:urlEncoded />
      </input>
      <output>
        <mime:mimeXml part="Body" />
      </output>
    </operation>
    <operation name="CheckLocationOccupied">
      <http:operation location="/CheckLocationOccupied" />
      <input>
        <http:urlEncoded />
      </input>
      <output>
        <mime:mimeXml part="Body" />
      </output>
    </operation>
    <operation name="CheckBBPartOccupied">
      <http:operation location="/CheckBBPartOccupied" />
      <input>
        <http:urlEncoded />
      </input>
      <output>
        <mime:mimeXml part="Body" />
      </output>
    </operation>
    <operation name="LoadQuery">
      <http:operation location="/LoadQuery" />
      <input>
        <http:urlEncoded />
      </input>
      <output>
        <mime:mimeXml part="Body" />
      </output>
    </operation>
    <operation name="ListQuery">
      <http:operation location="/ListQuery" />
      <input>
        <http:urlEncoded />
      </input>
      <output>
        <mime:mimeXml part="Body" />
      </output>
    </operation>
    <operation name="LoadBatch">
      <http:operation location="/LoadBatch" />
      <input>
        <http:urlEncoded />
      </input>
      <output>
        <mime:mimeXml part="Body" />
      </output>
    </operation>
    <operation name="ListBatch">
      <http:operation location="/ListBatch" />
      <input>
        <http:urlEncoded />
      </input>
      <output>
        <mime:mimeXml part="Body" />
      </output>
    </operation>
    <operation name="AddPartToBatch">
      <http:operation location="/AddPartToBatch" />
      <input>
        <http:urlEncoded />
      </input>
      <output>
        <mime:mimeXml part="Body" />
      </output>
    </operation>
    <operation name="DownloadGel">
      <http:operation location="/DownloadGel" />
      <input>
        <http:urlEncoded />
      </input>
      <output>
        <mime:mimeXml part="Body" />
      </output>
    </operation>
    <operation name="UploadGel">
      <http:operation location="/UploadGel" />
      <input>
        <http:urlEncoded />
      </input>
      <output>
        <mime:mimeXml part="Body" />
      </output>
    </operation>
    <operation name="ListUsage">
      <http:operation location="/ListUsage" />
      <input>
        <http:urlEncoded />
      </input>
      <output>
        <mime:mimeXml part="Body" />
      </output>
    </operation>
    <operation name="ListConstruction">
      <http:operation location="/ListConstruction" />
      <input>
        <http:urlEncoded />
      </input>
      <output>
        <mime:mimeXml part="Body" />
      </output>
    </operation>
    <operation name="ListStatuses">
      <http:operation location="/ListStatuses" />
      <input>
        <http:urlEncoded />
      </input>
      <output>
        <mime:mimeXml part="Body" />
      </output>
    </operation>
    <operation name="ListSelectors">
      <http:operation location="/ListSelectors" />
      <input>
        <http:urlEncoded />
      </input>
      <output>
        <mime:mimeXml part="Body" />
      </output>
    </operation>
    <operation name="LoadProtocol">
      <http:operation location="/LoadProtocol" />
      <input>
        <http:urlEncoded />
      </input>
      <output>
        <mime:mimeXml part="Body" />
      </output>
    </operation>
    <operation name="ListProtocols">
      <http:operation location="/ListProtocols" />
      <input>
        <http:urlEncoded />
      </input>
      <output>
        <mime:mimeXml part="Body" />
      </output>
    </operation>
    <operation name="DownloadBatchWorksheet">
      <http:operation location="/DownloadBatchWorksheet" />
      <input>
        <http:urlEncoded />
      </input>
      <output>
        <mime:mimeXml part="Body" />
      </output>
    </operation>
  </binding>
  <binding name="BioMortarDBHttpPost" type="s0:BioMortarDBHttpPost">
    <http:binding verb="POST" />
    <operation name="GetVersion">
      <http:operation location="/GetVersion" />
      <input>
        <mime:content type="application/x-www-form-urlencoded" />
      </input>
      <output>
        <mime:mimeXml part="Body" />
      </output>
    </operation>
    <operation name="GetDSName">
      <http:operation location="/GetDSName" />
      <input>
        <mime:content type="application/x-www-form-urlencoded" />
      </input>
      <output>
        <mime:mimeXml part="Body" />
      </output>
    </operation>
    <operation name="WhoAmI">
      <http:operation location="/WhoAmI" />
      <input>
        <mime:content type="application/x-www-form-urlencoded" />
      </input>
      <output>
        <mime:mimeXml part="Body" />
      </output>
    </operation>
    <operation name="GetNonce">
      <http:operation location="/GetNonce" />
      <input>
        <mime:content type="application/x-www-form-urlencoded" />
      </input>
      <output>
        <mime:mimeXml part="Body" />
      </output>
    </operation>
    <operation name="GetUserId">
      <http:operation location="/GetUserId" />
      <input>
        <mime:content type="application/x-www-form-urlencoded" />
      </input>
      <output>
        <mime:mimeXml part="Body" />
      </output>
    </operation>
    <operation name="Login">
      <http:operation location="/Login" />
      <input>
        <mime:content type="application/x-www-form-urlencoded" />
      </input>
      <output>
        <mime:mimeXml part="Body" />
      </output>
    </operation>
    <operation name="LoadAntibiotic">
      <http:operation location="/LoadAntibiotic" />
      <input>
        <mime:content type="application/x-www-form-urlencoded" />
      </input>
      <output>
        <mime:mimeXml part="Body" />
      </output>
    </operation>
    <operation name="ListAntibiotics">
      <http:operation location="/ListAntibiotics" />
      <input>
        <mime:content type="application/x-www-form-urlencoded" />
      </input>
      <output>
        <mime:mimeXml part="Body" />
      </output>
    </operation>
    <operation name="LoadChassis">
      <http:operation location="/LoadChassis" />
      <input>
        <mime:content type="application/x-www-form-urlencoded" />
      </input>
      <output>
        <mime:mimeXml part="Body" />
      </output>
    </operation>
    <operation name="ListChassis">
      <http:operation location="/ListChassis" />
      <input>
        <mime:content type="application/x-www-form-urlencoded" />
      </input>
      <output>
        <mime:mimeXml part="Body" />
      </output>
    </operation>
    <operation name="LoadVector">
      <http:operation location="/LoadVector" />
      <input>
        <mime:content type="application/x-www-form-urlencoded" />
      </input>
      <output>
        <mime:mimeXml part="Body" />
      </output>
    </operation>
    <operation name="ListVector">
      <http:operation location="/ListVector" />
      <input>
        <mime:content type="application/x-www-form-urlencoded" />
      </input>
      <output>
        <mime:mimeXml part="Body" />
      </output>
    </operation>
    <operation name="LoadPart">
      <http:operation location="/LoadPart" />
      <input>
        <mime:content type="application/x-www-form-urlencoded" />
      </input>
      <output>
        <mime:mimeXml part="Body" />
      </output>
    </operation>
    <operation name="FindSubPart">
      <http:operation location="/FindSubPart" />
      <input>
        <mime:content type="application/x-www-form-urlencoded" />
      </input>
      <output>
        <mime:mimeXml part="Body" />
      </output>
    </operation>
    <operation name="CheckLocationOccupied">
      <http:operation location="/CheckLocationOccupied" />
      <input>
        <mime:content type="application/x-www-form-urlencoded" />
      </input>
      <output>
        <mime:mimeXml part="Body" />
      </output>
    </operation>
    <operation name="CheckBBPartOccupied">
      <http:operation location="/CheckBBPartOccupied" />
      <input>
        <mime:content type="application/x-www-form-urlencoded" />
      </input>
      <output>
        <mime:mimeXml part="Body" />
      </output>
    </operation>
    <operation name="LoadQuery">
      <http:operation location="/LoadQuery" />
      <input>
        <mime:content type="application/x-www-form-urlencoded" />
      </input>
      <output>
        <mime:mimeXml part="Body" />
      </output>
    </operation>
    <operation name="ListQuery">
      <http:operation location="/ListQuery" />
      <input>
        <mime:content type="application/x-www-form-urlencoded" />
      </input>
      <output>
        <mime:mimeXml part="Body" />
      </output>
    </operation>
    <operation name="LoadBatch">
      <http:operation location="/LoadBatch" />
      <input>
        <mime:content type="application/x-www-form-urlencoded" />
      </input>
      <output>
        <mime:mimeXml part="Body" />
      </output>
    </operation>
    <operation name="ListBatch">
      <http:operation location="/ListBatch" />
      <input>
        <mime:content type="application/x-www-form-urlencoded" />
      </input>
      <output>
        <mime:mimeXml part="Body" />
      </output>
    </operation>
    <operation name="AddPartToBatch">
      <http:operation location="/AddPartToBatch" />
      <input>
        <mime:content type="application/x-www-form-urlencoded" />
      </input>
      <output>
        <mime:mimeXml part="Body" />
      </output>
    </operation>
    <operation name="DownloadGel">
      <http:operation location="/DownloadGel" />
      <input>
        <mime:content type="application/x-www-form-urlencoded" />
      </input>
      <output>
        <mime:mimeXml part="Body" />
      </output>
    </operation>
    <operation name="UploadGel">
      <http:operation location="/UploadGel" />
      <input>
        <mime:content type="application/x-www-form-urlencoded" />
      </input>
      <output>
        <mime:mimeXml part="Body" />
      </output>
    </operation>
    <operation name="ListUsage">
      <http:operation location="/ListUsage" />
      <input>
        <mime:content type="application/x-www-form-urlencoded" />
      </input>
      <output>
        <mime:mimeXml part="Body" />
      </output>
    </operation>
    <operation name="ListConstruction">
      <http:operation location="/ListConstruction" />
      <input>
        <mime:content type="application/x-www-form-urlencoded" />
      </input>
      <output>
        <mime:mimeXml part="Body" />
      </output>
    </operation>
    <operation name="ListStatuses">
      <http:operation location="/ListStatuses" />
      <input>
        <mime:content type="application/x-www-form-urlencoded" />
      </input>
      <output>
        <mime:mimeXml part="Body" />
      </output>
    </operation>
    <operation name="ListSelectors">
      <http:operation location="/ListSelectors" />
      <input>
        <mime:content type="application/x-www-form-urlencoded" />
      </input>
      <output>
        <mime:mimeXml part="Body" />
      </output>
    </operation>
    <operation name="LoadProtocol">
      <http:operation location="/LoadProtocol" />
      <input>
        <mime:content type="application/x-www-form-urlencoded" />
      </input>
      <output>
        <mime:mimeXml part="Body" />
      </output>
    </operation>
    <operation name="ListProtocols">
      <http:operation location="/ListProtocols" />
      <input>
        <mime:content type="application/x-www-form-urlencoded" />
      </input>
      <output>
        <mime:mimeXml part="Body" />
      </output>
    </operation>
    <operation name="DownloadBatchWorksheet">
      <http:operation location="/DownloadBatchWorksheet" />
      <input>
        <mime:content type="application/x-www-form-urlencoded" />
      </input>
      <output>
        <mime:mimeXml part="Body" />
      </output>
    </operation>
  </binding>
  <service name="BioMortarDB">
    <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">BioBrick Management Software Web Service.</wsdl:documentation>
    <port name="BioMortarDBSoap" binding="s0:BioMortarDBSoap">
      <soap:address location="http://igem.uwaterloo.ca/biomortar/Service.asmx" />
    </port>
    <port name="BioMortarDBSoap12" binding="s0:BioMortarDBSoap12">
      <soap12:address location="http://igem.uwaterloo.ca/biomortar/Service.asmx" />
    </port>
    <port name="BioMortarDBHttpGet" binding="s0:BioMortarDBHttpGet">
      <http:address location="http://igem.uwaterloo.ca/biomortar/Service.asmx" />
    </port>
    <port name="BioMortarDBHttpPost" binding="s0:BioMortarDBHttpPost">
      <http:address location="http://igem.uwaterloo.ca/biomortar/Service.asmx" />
    </port>
  </service>
</definitions>