<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xvergabe-if="http://xvergabe.org/interface/xsd/4" xmlns:xvergabe-cl="http://xvergabe.org/codelists/xsd/4" xmlns:xvergabe-docs="http://xvergabe.org/documents/xsd/4" targetNamespace="http://xvergabe.org/interface/xsd/4" version="4.0" elementFormDefault="qualified" attributeFormDefault="unqualified">
  <xs:include schemaLocation="xvergabe-datatypes.xsd" />
  <xs:import schemaLocation="./xvergabe-codelists.xsd" namespace="http://xvergabe.org/codelists/xsd/4" />
  <xs:import schemaLocation="./xvergabe-documents.xsd" namespace="http://xvergabe.org/documents/xsd/4" />
  <xs:complexType name="AbstractClientMessage" abstract="true">
    <xs:annotation>
      <xs:documentation>Extension point for all messages that are sent from client to server. The main difference to AbstractServerMessage is that this message type may contain attachments.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="messageHeader" type="xvergabe-if:MessageHeader">
        <xs:annotation>
          <xs:documentation>Meta data of a message. This meta data mainly serves to identify sender and receiver of a message and to make it possible for client and server to match the message to their database.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="AbstractServerMessage" abstract="true">
    <xs:annotation>
      <xs:documentation>This is the extension point for all messages that are sent from the server to a client. The main difference to AbstractClientMessage is, that no attachments are allowed, since the client get access attachments via the getDocuments operation.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="messageHeader" type="xvergabe-if:MessageHeader">
        <xs:annotation>
          <xs:documentation>Header that contains meta information about a message.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="Attachment">
    <xs:annotation>
      <xs:documentation>Attachment to a message / document. An attachment can either be plain (unencrypted) or encrypted and contains the data itself and some meta data.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="attachmentID" type="xvergabe-if:GUID">
        <xs:annotation>
          <xs:documentation>Unique identifier for an attachment. By this identifier the attachment can be referenced from other contexts</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="filename" type="xvergabe-if:String.255">
        <xs:annotation>
          <xs:documentation>Full file name including the file extension.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="description" minOccurs="0" type="xvergabe-if:String.1024">
        <xs:annotation>
          <xs:documentation>Textual description of the attachment.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="attachmentData" type="xs:base64Binary">
        <xs:annotation>
          <xs:documentation>base64 encoded attachment data (the file itself). for encrypted attachments this MUST be PKCS#7 content (base64 encoded).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="signature" minOccurs="0" type="xvergabe-if:XMLSignature">
        <xs:annotation>
          <xs:documentation>optional signature of the attachment.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ClientInquiryMessageType">
    <xs:annotation>
      <xs:documentation>Message that contains an inquiry (or an answer to an inquiry) that is sent from client to server.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="xvergabe-if:AbstractClientMessage">
        <xs:sequence>
          <xs:element name="document" type="xvergabe-docs:InquiryDocumentType">
            <xs:annotation>
              <xs:documentation>An InquiryDocument serves as vessel for general inquiries and answers that can be sent from client to server and vice versa. An inquiry can reference a previously exchanged document.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="attachment" minOccurs="0" maxOccurs="unbounded" type="xvergabe-if:Attachment">
            <xs:annotation>
              <xs:documentation>attachment to the inquiry. when given it needs to be referenced from the inquirydocument within.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="CredentialItem">
    <xs:annotation>
      <xs:documentation>Data that is needed for security-relevant processing of the message (encryption, decryption, signing, signature validation, authentication). Format of the credentialData MUST be DER-encrypted certificate.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="credentialID" type="xvergabe-if:GUID">
        <xs:annotation>
          <xs:documentation>Unique Identifier for the credential item so it can be referenced from other contexts.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="usage" maxOccurs="unbounded" type="xvergabe-cl:Code.CredentialUsage">
        <xs:annotation>
          <xs:documentation>The task the credential data is to be used for.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="credentialData" type="xs:base64Binary">
        <xs:annotation>
          <xs:documentation>the base64 encoded data of the credential, e.g. bas64 encoded x509-cert. Format of the data MUST be a DER-encoded certificate. So the credentialdata is a base64 encoded representation of a DER-encoded bytestream representing a certificate.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="InvitationToParticipationMessageType">
    <xs:annotation>
      <xs:documentation>Message that contains an invitation to participation along with the participation documents that is sent from server to client.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="xvergabe-if:AbstractServerMessage">
        <xs:sequence>
          <xs:element name="document" type="xvergabe-docs:InvitationToParticipationDocumentType">
            <xs:annotation>
              <xs:documentation>An InvitationToParticipation contains the documents and meta data needed for bidder to be able to submit a request to participate in a tendering procedure with participation contest. The participation documents are not included directly in this document but instead their GUIDs are referenced, so that a client can call the getDocument operation to download these documents. An InvitationToParticipation can be sent to the same client multiple times if the participation documents change. Each InvitationToParticipation SHOULD then contain a FULL set of the  participation documents. A client can determine which tendering documents he still has to download by comparing the GUIDs of the referenced documents.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="InvitationToTenderMessageType">
    <xs:annotation>
      <xs:documentation>Message that contains an invitation to a tendering procedure (a request to submit an offer) along with the tendering documents that is sent from server to client.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="xvergabe-if:AbstractServerMessage">
        <xs:sequence>
          <xs:element name="document" type="xvergabe-docs:InvitationToTenderDocumentType">
            <xs:annotation>
              <xs:documentation>An InvitationToTender contains the tendering documents necessary for a bidder to submit an offer to a tendering procedure. The tendering documents are not included directly in this document but instead their GUIDs are referenced, so that a client can call the getDocument operation to download these documents. The tendering documents are divided in documents that must be returned as part of an offer, documents that must be transformed and returned as part of an offer and documents that the bidder provides without being explicitly requested to do so. An InvitationToTender can be sent to the same client multiple times if the tendering documents change. Each InvitationToTender SHOULD then contain a FULL set of the tendering documents. A client can determine which tendering documents he still has to download by comparing the GUIDs of the referenced documents.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="MessageHeader">
    <xs:annotation>
      <xs:documentation>Header that contains meta information about a message.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="tenderingProcedureID" type="xvergabe-if:GUID">
        <xs:annotation>
          <xs:documentation>this ID identifies the procedure the message is being sent for (or in).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="messageInfo" type="xvergabe-if:MessageInfo">
        <xs:annotation>
          <xs:documentation>information about the message</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="senderInfo" type="xvergabe-if:SenderInfo">
        <xs:annotation>
          <xs:documentation>information about the sender and the sending application</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="credentialItem" minOccurs="0" maxOccurs="unbounded" type="xvergabe-if:CredentialItem" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="MessageInfo">
    <xs:annotation>
      <xs:documentation>Basic information about a message.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="messageID" type="xvergabe-if:GUID">
        <xs:annotation>
          <xs:documentation>ID of the message given by the sending application</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="sendingDateTime" type="xvergabe-if:DateTimeTZ">
        <xs:annotation>
          <xs:documentation>timestamp given by the sending application about the time of sending of the message</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="OSCITransferIDRequestType">
    <xs:annotation>
      <xs:documentation>Message that contains the request for an issueing of an OSCI Transfer ID. This message is being sent before the OSCI-delivery is taking place. The client indicates whether he wants to submit an offer, a participation request or wants to withdraw any of those. The server SHALL create a new TransferID and deliver this to the client. The client then uses this TransferID as the OSCI-subject within the osci-delivery-message. 
The server SHALL verify the request (e.g. if the object to withdraw exists), thus the server MAY reject a request accordingly.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="xvergabe-if:AbstractClientMessage">
        <xs:sequence>
          <xs:choice>
            <xs:annotation>
              <xs:documentation>inner structure to differentiate between the types the OSCI-delivery contains (offer/participation request/withdrawal)</xs:documentation>
            </xs:annotation>
            <xs:element name="offer">
              <xs:annotation>
                <xs:documentation>classifies the forthcoming OSCI-transfer as a delivery method for the offer.
The client MUST supply the messageID of the ITT the offer satisfies.
The server MAY reject an OSCI-TransferID-Request for a belated offer transaction (OSCI-TransferID-Request is sent after the submission deadline within the procedure). If the server is not rejecting those requests it MUST warn the client about the belated transaction. 
The server SHALL warn the client about an outdated offer aswell (the offer is referencing an old or unknown ITT).</xs:documentation>
              </xs:annotation>
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="accordingITTMsgID" type="xvergabe-if:GUID">
                    <xs:annotation>
                      <xs:documentation>ID of the latest InvitationToTender message the client received from the server. This InvitationToTender message is thus the basis for the creation of the offer. The server SHOULD use this ID to check if the offer was submitted on the most current version of the tendering documents. 
The Server SHALL warn the client when an outdated or unknown ITT-Message is referenced. The server MAY NOT reject the Issue-Request in this case.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                </xs:sequence>
              </xs:complexType>
            </xs:element>
            <xs:element name="participationRequest">
              <xs:annotation>
                <xs:documentation>classifies the forthcoming OSCI-transfer as a deliveryMethod for the participationRequest.
The client MUST supply the messageID of the ITP the participation request satisfies.
The server MAY reject an OSCI-TransferID-Request for a belated participation transaction (OSCI-TransferID-Request is sent after the submission deadline for participation requests within the procedure). If the server is not rejecting those requests it MUST warn the client about the belated transaction. 
The server SHALL warn the client about an outdated participation aswell (the participation is referencing an old or unknown ITP).</xs:documentation>
              </xs:annotation>
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="accordingITPMsgID" type="xvergabe-if:GUID">
                    <xs:annotation>
                      <xs:documentation>ID of the latest InvitationToParticipation message the client received from the server. This InvitationToParticipation message is thus the basis for the creation of the participation request. The server SHOULD use this ID to check if the participation request was submitted on the most current version of the participation documents. 
The Server SHALL warn the client when an outdated or unknown ITP-Message is referenced. The server MAY NOT reject the Issue-Request in this case.</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                </xs:sequence>
              </xs:complexType>
            </xs:element>
            <xs:element name="withdrawal">
              <xs:annotation>
                <xs:documentation>classifies the forthcoming OSCI-transfer as a delivery method for a withdrawal (of an offer or participationRequest). carries the ID of the object to withdraw. 
when the object ID is not known to the platform for the user, it MUST respond with an ERROR.</xs:documentation>
              </xs:annotation>
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="objectID" type="xvergabe-if:GUID">
                    <xs:annotation>
                      <xs:documentation>the identifier of the object to withdraw (e.g. offerID or participationID as issued by the server)</xs:documentation>
                    </xs:annotation>
                  </xs:element>
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:choice>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="OfferDeliveryReceiptMessageType">
    <xs:annotation>
      <xs:documentation>Message that contains a delivery receipt to a submitted offer that is sent from server to client.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="xvergabe-if:AbstractServerMessage">
        <xs:sequence>
          <xs:element name="document" type="xvergabe-docs:OfferDeliveryReceiptDocumentType">
            <xs:annotation>
              <xs:documentation>An OfferDeliveryReceipt is a receipt that is sent from server to client after the client has submitted an offer. This receipt confirms the successful processing of the offer. The receipt repeats the processing details given by the client and enriches them with the ID the server assigned to the offer.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="OfferMessageType">
    <xs:annotation>
      <xs:documentation>Message that contains an offer to a tendering procedure that is sent from client to server.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="xvergabe-if:AbstractClientMessage">
        <xs:sequence>
          <xs:element name="document" type="xvergabe-docs:OfferDocumentType">
            <xs:annotation>
              <xs:documentation>An Offer document contains an actual offer that is submitted to the server by a bidder client. 
An offer must be submitted in whole and MUST NOT be splitted over several Offer documents. A signature must be applied to the offer BEFORE encryption (this does not apply if the offer is submitted via OSCI).</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="attachment" maxOccurs="2" type="xvergabe-if:Attachment">
            <xs:annotation>
              <xs:documentation>offer container holding the encrypted offer. MIGHT be separated into two containers according to the ITT. each Container represents a PKCS#7 encrypted container (base64-encoded) holding a ZIP file which holds the files of the offer according to the ITT. Each container MUST include an OfferContent.xml file in the zip archive according to this spec.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="OfferWithdrawalDeliveryReceiptMessageType">
    <xs:annotation>
      <xs:documentation>Message that contains a delivery receipt to the withdrawal of an offer that is sent from server to client.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="xvergabe-if:AbstractServerMessage">
        <xs:sequence>
          <xs:element name="document" type="xvergabe-docs:WithdrawalDeliveryReceiptDocumentType">
            <xs:annotation>
              <xs:documentation>A WithdrawalDeliveryReceipt is a receipt that is sent from server to client after the client has submitted a Withdrawal. This receipt confirms the successful processing of the withdrawal. The receipt repeats the processing details given by the client and enriches them with the ID the server assigned to the Withdrawal document.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="OfferWithdrawalMessageType">
    <xs:annotation>
      <xs:documentation>Message that contains a request to withdraw an offer that is sent from client to server.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="xvergabe-if:AbstractClientMessage">
        <xs:sequence>
          <xs:element name="document" type="xvergabe-docs:WithdrawalDocumentType">
            <xs:annotation>
              <xs:documentation>A Withdrawal document contains the intention of a client to withdraw a previously submitted offer.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="attachment" minOccurs="0" maxOccurs="unbounded" type="xvergabe-if:Attachment">
            <xs:annotation>
              <xs:documentation>attachment(s) to the withdrawal. May include further reasoning for the withdrawal by the economic operator. 
In case the ITP requested a signed withdrawal (minimumWithdrawalSignatureLevel was not NONE), the withdrawal message SHALL include at least one attachment which is signed according to this requirement).</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="ParticipationDeliveryReceiptMessageType">
    <xs:annotation>
      <xs:documentation>Message that contains a delivery receipt to a participation request that is sent from server to client.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="xvergabe-if:AbstractServerMessage">
        <xs:sequence>
          <xs:element name="document" type="xvergabe-docs:ParticipationDeliveryReceiptDocumentType">
            <xs:annotation>
              <xs:documentation>A ParticipationDeliveryReceipt is a receipt that is sent from server to client after the client has submitted a Participation request. This receipt confirms the successful processing of the Participation request. The receipt repeats the processing details given by the client and enriches them with the ID the server assigned to the Participation request.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="ParticipationMessageType">
    <xs:annotation>
      <xs:documentation>Message that contains a request to participation that is sent from client to server.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="xvergabe-if:AbstractClientMessage">
        <xs:sequence>
          <xs:element name="document" type="xvergabe-docs:ParticipationDocumentType">
            <xs:annotation>
              <xs:documentation>A participation document contains an actual participation request that is submitted to the server by a bidder client. 
A participation request  must be submitted in whole and MUST NOT be splitted over several Participation documents. A signature must be applied to the offer BEFORE encryption (this does not apply if the participation request is submitted via OSCI).</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="attachment" maxOccurs="2" type="xvergabe-if:Attachment">
            <xs:annotation>
              <xs:documentation>participation container holding the encrypted participation request. MIGHT be separated into two containers according to the ITP. each Container represents a PKCS#7 encrypted container (base64-encoded) holding a ZIP file which holds the files of the participation request according to the ITP. Each container MUST include a ParticipationContent.xml file in the zip archive according to this spec.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="ParticipationWithdrawalDeliveryReceiptMessageType">
    <xs:annotation>
      <xs:documentation>Message that contains a delivery receipt to a participation withdrawal request that is sent from server to client.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="xvergabe-if:AbstractServerMessage">
        <xs:sequence>
          <xs:element name="document" type="xvergabe-docs:WithdrawalDeliveryReceiptDocumentType">
            <xs:annotation>
              <xs:documentation>A WithdrawalDeliveryReceipt is a receipt that is sent from server to client after the client has submitted a Withdrawal. This receipt confirms the successful processing of the withdrawal. The receipt repeats the processing details given by the client and enriches them with the ID the server assigned to the Withdrawal document.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="ParticipationWithdrawalMessageType">
    <xs:annotation>
      <xs:documentation>Message that contains a request to withdraw participation that is sent from client to server.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="xvergabe-if:AbstractClientMessage">
        <xs:sequence>
          <xs:element name="document" type="xvergabe-docs:WithdrawalDocumentType">
            <xs:annotation>
              <xs:documentation>A Withdrawal document contains the intention of a client to withdraw a previously submitted participation request.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="attachment" minOccurs="0" maxOccurs="unbounded" type="xvergabe-if:Attachment">
            <xs:annotation>
              <xs:documentation>attachment(s) to the withdrawal. May include further reasoning for the withdrawal by the economic operator. 
In case the ITP requested a signed withdrawal (minimumWithdrawalSignatureLevel was not NONE), the withdrawal message SHALL include at least one attachment which is signed according to this requirement).</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="ResultNoticeMessageType">
    <xs:annotation>
      <xs:documentation>Contains a notice that informs a bidder about the result of a tendering procedure.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="xvergabe-if:AbstractServerMessage">
        <xs:sequence>
          <xs:element name="document" type="xvergabe-docs:ResultNoticeDocumentType">
            <xs:annotation>
              <xs:documentation>A ResultNotice serves to inform a bidder about the result of tendering procedure (i.e. whether the contract is awarded to the bidder or not) or the result of a participation contest (i.e. whether the bidder is allowed to take part in the participation contest or not). The ResultNotice document extends the InquiryDocumentType so that the actual content of the notice can be included in an InquiryDocument.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="SenderInfo">
    <xs:annotation>
      <xs:documentation>Information about the sender and the sending application</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="senderName" type="xvergabe-if:String.1024">
        <xs:annotation>
          <xs:documentation>Name of the Sender, e.g. the name of the sending Contracting Authority or the sending Economic Operator</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="vendor" type="xvergabe-if:String.1024">
        <xs:annotation>
          <xs:documentation>name of the vendor of the sending application</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="product" type="xvergabe-if:String.1024">
        <xs:annotation>
          <xs:documentation>productname of the sending application</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="productVersion" type="xvergabe-if:String.255">
        <xs:annotation>
          <xs:documentation>versionnumber of the sending application</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="productInstance" minOccurs="0" type="xvergabe-if:String.1024">
        <xs:annotation>
          <xs:documentation>name of the instance of the sending application</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="supportURL" type="xs:anyURI">
        <xs:annotation>
          <xs:documentation>URL to contact the support of the sending application</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ServerInquiryMessageType">
    <xs:annotation>
      <xs:documentation>Message that contains an inquiry (or an answer to an inquiry) that is sent from server to client.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="xvergabe-if:AbstractServerMessage">
        <xs:sequence>
          <xs:element name="document" type="xvergabe-docs:InquiryDocumentType">
            <xs:annotation>
              <xs:documentation>An InquiryDocument serves as vessel for general inquiries and answers sent from server to client. An inquiry can reference a previously exchanged document.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="TenderMetaInformationMessageType">
    <xs:annotation>
      <xs:documentation>Message that contains meta information about a tendering procedure that is distributed from server to clients.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="xvergabe-if:AbstractServerMessage">
        <xs:sequence>
          <xs:element name="document" type="xvergabe-docs:TenderMetaInformationDocumentType">
            <xs:annotation>
              <xs:documentation>A TenderMetaInformation contains meta data about a tendering procedure like the name, deadlines and the current status. A TenderMetaInformation is sent from a server to its clients and serves the clients as technical basis for further message exchange within the concerned tendering procedure. The TenderMetaInformation document is not part of the tendering documents. Instead it is intended as technical document to exchange meta data.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:element name="messages.Attachment">
    <xs:annotation>
      <xs:documentation>Possible root element containing a message of type Attachment. This element is not strictly necessary but is a restriction to be XÖV compliant.</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="xvergabe-if:Attachment" />
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="messages.ClientInquiry">
    <xs:annotation>
      <xs:documentation>Possible root element containing a message of type ClientInquiryMessageType. This element is not strictly necessary but is a restriction to be XÖV compliant.</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="xvergabe-if:ClientInquiryMessageType" />
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="messages.InvitationToParticipation">
    <xs:annotation>
      <xs:documentation>Possible root element containing a message of type InvitationToParticipationMessageType. This element is not strictly necessary but is a restriction to be XÖV compliant.</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="xvergabe-if:InvitationToParticipationMessageType" />
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="messages.InvitationToTender">
    <xs:annotation>
      <xs:documentation>Possible root element containing a message of type InvitationToTenderMessageType. This element is not strictly necessary but is a restriction to be XÖV compliant.</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="xvergabe-if:InvitationToTenderMessageType" />
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="messages.OSCITransferID">
    <xs:annotation>
      <xs:documentation>Possible root element containing a message of type OSCITransferIDRequestType. This element is not strictly necessary but is a restriction to be XÖV compliant.</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="xvergabe-if:OSCITransferIDRequestType" />
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="messages.Offer">
    <xs:annotation>
      <xs:documentation>Possible root element containing a message of type OfferMessageType. This element is not strictly necessary but is a restriction to be XÖV compliant.</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="xvergabe-if:OfferMessageType" />
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="messages.OfferDeliveryReceipt">
    <xs:annotation>
      <xs:documentation>Possible root element containing a message of type OfferDeliveryReceiptMessageType. This element is not strictly necessary but is a restriction to be XÖV compliant.</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="xvergabe-if:OfferDeliveryReceiptMessageType" />
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="messages.OfferWithdrawal">
    <xs:annotation>
      <xs:documentation>Possible root element containing a message of typeOfferWithdrawalMessageType. This element is not strictly necessary but is a restriction to be XÖV compliant.</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="xvergabe-if:OfferWithdrawalMessageType" />
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="messages.OfferWithdrawalDeliveryReceipt">
    <xs:annotation>
      <xs:documentation>Possible root element containing a message of type OfferWithdrawalDeliveryReceiptMessageType. This element is not strictly necessary but is a restriction to be XÖV compliant.</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="xvergabe-if:OfferWithdrawalDeliveryReceiptMessageType" />
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="messages.Participation">
    <xs:annotation>
      <xs:documentation>Possible root element containing a message of type ParticipationMessageType. This element is not strictly necessary but is a restriction to be XÖV compliant.</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="xvergabe-if:ParticipationMessageType" />
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="messages.ParticipationDeliveryReceipt">
    <xs:annotation>
      <xs:documentation>Possible root element containing a message of type ParticipationDeliveryReceiptMessageType. This element is not strictly necessary but is a restriction to be XÖV compliant.</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="xvergabe-if:ParticipationDeliveryReceiptMessageType" />
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="messages.ParticipationWithdrawal">
    <xs:annotation>
      <xs:documentation>Possible root element containing a message of type ParticipationWithdrawalMessageType. This element is not strictly necessary but is a restriction to be XÖV compliant.</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="xvergabe-if:ParticipationWithdrawalMessageType" />
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="messages.ParticipationWithdrawalDeliveryReceipt">
    <xs:annotation>
      <xs:documentation>Possible root element containing a message of type ParticipationWithdrawalDeliveryReceiptMessageType. This element is not strictly necessary but is a restriction to be XÖV compliant.</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="xvergabe-if:ParticipationWithdrawalDeliveryReceiptMessageType" />
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="messages.ResultNotice">
    <xs:annotation>
      <xs:documentation>Possible root element containing a message of type ResultNoticeMessageType. This element is not strictly necessary but is a restriction to be XÖV compliant.</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="xvergabe-if:ResultNoticeMessageType" />
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="messages.ServerInquiry">
    <xs:annotation>
      <xs:documentation>Possible root element containing a message of type ServerInquiryMessageType. This element is not strictly necessary but is a restriction to be XÖV compliant.</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="xvergabe-if:ServerInquiryMessageType" />
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="messages.TenderMetaInformation">
    <xs:annotation>
      <xs:documentation>Possible root element containing a message of type TenderMetaInformationMessageType. This element is not strictly necessary but is a restriction to be XÖV compliant.</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="xvergabe-if:TenderMetaInformationMessageType" />
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
</xs:schema>

