<?xml version='1.0' encoding='UTF-8'?><wsdl:definitions xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:tns="http://www.gitb.com/vs/v1/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:ns1="http://schemas.xmlsoap.org/soap/http" name="ValidationService" targetNamespace="http://www.gitb.com/vs/v1/">
  <wsdl:types>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://www.gitb.com/vs/v1/" xmlns:ns2="http://www.gitb.com/tr/v1/" xmlns:ns1="http://www.gitb.com/core/v1/" attributeFormDefault="unqualified" elementFormDefault="unqualified" targetNamespace="http://www.gitb.com/vs/v1/" version="1.0">
  <xs:import namespace="http://www.gitb.com/core/v1/"/>
  <xs:import namespace="http://www.gitb.com/tr/v1/"/>
  <xs:element name="GetModuleDefinitionRequest" type="tns:Void"/>
  <xs:element name="GetModuleDefinitionResponse" type="tns:GetModuleDefinitionResponse"/>
  <xs:element name="LogRequest" type="tns:LogRequest"/>
  <xs:element name="LogResponse" type="tns:Void"/>
  <xs:element name="ValidateRequest" type="tns:ValidateRequest"/>
  <xs:element name="ValidationResponse" type="tns:ValidationResponse"/>
  <xs:complexType name="ValidateRequest">
    <xs:sequence>
      <xs:element minOccurs="0" name="sessionId" type="xs:string"/>
      <xs:element maxOccurs="unbounded" minOccurs="0" name="config" nillable="true" type="ns1:Configuration"/>
      <xs:element maxOccurs="unbounded" name="input" type="ns1:AnyContent"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ValidationResponse">
    <xs:sequence>
      <xs:element name="report" type="ns2:TAR"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="Void">
    <xs:sequence/>
  </xs:complexType>
  <xs:complexType name="GetModuleDefinitionResponse">
    <xs:sequence>
      <xs:element name="module" type="ns1:ValidationModule"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="LogRequest">
    <xs:sequence>
      <xs:element name="sessionId" type="xs:string"/>
      <xs:element name="message" type="xs:string"/>
    </xs:sequence>
    <xs:attribute name="level" type="ns1:LogLevel"/>
  </xs:complexType>
</xs:schema>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://www.gitb.com/tr/v1/" xmlns:ns1="http://www.gitb.com/core/v1/" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://www.gitb.com/tr/v1/" version="1.0">
  <xs:import namespace="http://www.gitb.com/core/v1/"/>
  <xs:element name="ConformanceOverviewReport" type="tns:ConformanceOverviewReportType"/>
  <xs:element name="ConformanceStatementReport" type="tns:ConformanceStatementReportType"/>
  <xs:element name="TestCaseOverviewReport" type="tns:TestCaseOverviewReportType"/>
  <xs:element name="TestCaseReport" type="tns:TestCaseReportType"/>
  <xs:element name="TestStepReport" type="tns:TestStepReportType"/>
  <xs:complexType name="TAR">
    <xs:complexContent>
      <xs:extension base="tns:TestStepReportType">
        <xs:sequence>
          <xs:element minOccurs="0" name="overview" type="tns:ValidationOverview"/>
          <xs:element minOccurs="0" name="counters" type="tns:ValidationCounters"/>
          <xs:element minOccurs="0" name="context" type="ns1:AnyContent"/>
          <xs:element minOccurs="0" name="reports" type="tns:TestAssertionGroupReportsType"/>
        </xs:sequence>
        <xs:attribute name="name" type="xs:string"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType abstract="true" name="TestStepReportType">
    <xs:sequence>
      <xs:element name="date" type="xs:dateTime"/>
      <xs:element name="result" type="xs:string"/>
    </xs:sequence>
    <xs:attribute name="id" type="xs:string"/>
  </xs:complexType>
  <xs:complexType name="ValidationOverview">
    <xs:sequence>
      <xs:element minOccurs="0" name="profileID" type="xs:string"/>
      <xs:element minOccurs="0" name="customizationID" type="xs:string"/>
      <xs:element minOccurs="0" name="transactionID" type="xs:string"/>
      <xs:element minOccurs="0" name="validationServiceName" type="xs:string"/>
      <xs:element minOccurs="0" name="validationServiceVersion" type="xs:string"/>
      <xs:element minOccurs="0" name="note" type="xs:string"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ValidationCounters">
    <xs:sequence>
      <xs:element minOccurs="0" name="nrOfAssertions" type="xs:integer"/>
      <xs:element minOccurs="0" name="nrOfErrors" type="xs:integer"/>
      <xs:element minOccurs="0" name="nrOfWarnings" type="xs:integer"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="TestAssertionGroupReportsType">
    <xs:sequence>
      <xs:element maxOccurs="unbounded" minOccurs="0" name="reports" nillable="true" type="tns:TAR"/>
      <xs:choice maxOccurs="unbounded" minOccurs="0">
        <xs:element name="info" type="tns:TestAssertionReportType"/>
        <xs:element name="warning" type="tns:TestAssertionReportType"/>
        <xs:element name="error" type="tns:TestAssertionReportType"/>
      </xs:choice>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="TestCaseReportType">
    <xs:complexContent>
      <xs:extension base="tns:TestStepReportType">
        <xs:sequence>
          <xs:element minOccurs="0" name="counters" type="tns:ValidationCounters"/>
          <xs:element maxOccurs="unbounded" minOccurs="0" name="reports" nillable="true" type="tns:TestStepReportType"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="DR">
    <xs:complexContent>
      <xs:extension base="tns:TestStepReportType">
        <xs:sequence>
          <xs:element name="decision" type="xs:boolean"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="SR">
    <xs:complexContent>
      <xs:extension base="tns:TestStepReportType">
        <xs:sequence/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="TestCaseOverviewReportType">
    <xs:sequence>
      <xs:element minOccurs="0" name="metadata" type="ns1:Metadata"/>
      <xs:element name="startTime" type="xs:dateTime"/>
      <xs:element minOccurs="0" name="endTime" type="xs:dateTime"/>
      <xs:element name="result" type="xs:string"/>
      <xs:element maxOccurs="unbounded" minOccurs="0" name="message" nillable="true" type="xs:string"/>
      <xs:element minOccurs="0" name="steps" type="tns:TestCaseStepsType"/>
    </xs:sequence>
    <xs:attribute name="id" type="xs:string" use="required"/>
  </xs:complexType>
  <xs:complexType name="TestCaseStepsType">
    <xs:sequence>
      <xs:element maxOccurs="unbounded" minOccurs="0" name="step" nillable="true" type="tns:TestCaseStepReportType"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="TestCaseStepReportType">
    <xs:sequence>
      <xs:element minOccurs="0" name="description" type="xs:string"/>
      <xs:element name="report" type="tns:TestStepReportType"/>
    </xs:sequence>
    <xs:attribute name="id" type="xs:string" use="required"/>
  </xs:complexType>
  <xs:complexType name="ConformanceStatementReportType">
    <xs:sequence>
      <xs:element name="metadata" type="tns:ReportMetadata"/>
      <xs:element name="statement" type="tns:ConformanceStatement"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ReportMetadata">
    <xs:sequence>
      <xs:element name="reportTime" type="xs:dateTime"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ConformanceStatement">
    <xs:sequence>
      <xs:element name="definition" type="tns:ConformanceStatementDefinition"/>
      <xs:element name="summary" type="tns:ResultSummaryWithIgnoredResults"/>
      <xs:element minOccurs="0" name="lastUpdate" type="xs:dateTime"/>
      <xs:element name="testOverview" type="tns:TestSuiteOverviews"/>
      <xs:element minOccurs="0" name="testDetails" type="tns:TestCaseDetails"/>
    </xs:sequence>
    <xs:attribute name="id" type="xs:string"/>
  </xs:complexType>
  <xs:complexType name="ConformanceStatementDefinition">
    <xs:complexContent>
      <xs:extension base="tns:ConformanceReportDefinition">
        <xs:sequence>
          <xs:element name="domain" type="tns:ConformanceItemInformation"/>
          <xs:element minOccurs="0" name="specificationGroup" type="tns:ConformanceItemInformation"/>
          <xs:element name="specification" type="tns:ConformanceItemInformation"/>
          <xs:element name="actor" type="tns:ConformanceItemInformation"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType abstract="true" name="ConformanceReportDefinition">
    <xs:sequence>
      <xs:element name="party" type="tns:PartyDefinition"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ConformanceItemInformation">
    <xs:sequence>
      <xs:element name="name" type="xs:string"/>
      <xs:element minOccurs="0" name="description" type="xs:string"/>
      <xs:element minOccurs="0" name="metadata" type="xs:string"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType abstract="true" name="ConformanceItemOverview">
    <xs:complexContent>
      <xs:extension base="tns:ConformanceItemInformation">
        <xs:sequence>
          <xs:element name="result" type="xs:string"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="DomainOverview">
    <xs:complexContent>
      <xs:extension base="tns:ConformanceItemOverview">
        <xs:sequence>
          <xs:choice maxOccurs="unbounded" minOccurs="0">
            <xs:element name="specificationGroup" type="tns:SpecificationGroupOverview"/>
            <xs:element name="specification" type="tns:SpecificationOverview"/>
          </xs:choice>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="SpecificationGroupOverview">
    <xs:complexContent>
      <xs:extension base="tns:ConformanceItemOverview">
        <xs:sequence>
          <xs:element maxOccurs="unbounded" name="specification" type="tns:SpecificationOverview"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="SpecificationOverview">
    <xs:complexContent>
      <xs:extension base="tns:ConformanceItemOverview">
        <xs:sequence>
          <xs:element maxOccurs="unbounded" name="actor" type="tns:ActorOverview"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="ActorOverview">
    <xs:complexContent>
      <xs:extension base="tns:ConformanceItemOverview">
        <xs:sequence/>
        <xs:attribute name="statement" type="xs:string"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="PartyDefinition">
    <xs:sequence>
      <xs:element name="organisation" type="tns:Organisation"/>
      <xs:element name="system" type="tns:System"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="Organisation">
    <xs:sequence>
      <xs:element name="name" type="xs:string"/>
      <xs:element minOccurs="0" name="properties" type="tns:PartyProperties"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="PartyProperties">
    <xs:sequence>
      <xs:element maxOccurs="unbounded" name="property" type="tns:PartyProperty"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="PartyProperty">
    <xs:simpleContent>
      <xs:extension base="xs:string">
        <xs:attribute name="name" type="xs:string" use="required"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="System">
    <xs:sequence>
      <xs:element name="name" type="xs:string"/>
      <xs:element minOccurs="0" name="version" type="xs:string"/>
      <xs:element minOccurs="0" name="description" type="xs:string"/>
      <xs:element minOccurs="0" name="properties" type="tns:PartyProperties"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ConformanceOverviewDefinition">
    <xs:complexContent>
      <xs:extension base="tns:ConformanceReportDefinition">
        <xs:sequence>
          <xs:element minOccurs="0" name="domain" type="tns:ConformanceItemInformation"/>
          <xs:element minOccurs="0" name="specificationGroup" type="tns:ConformanceItemInformation"/>
          <xs:element minOccurs="0" name="specification" type="tns:ConformanceItemInformation"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="ResultSummaryWithIgnoredResults">
    <xs:complexContent>
      <xs:extension base="tns:ResultSummary">
        <xs:sequence>
          <xs:element name="succeededIgnored" type="xs:nonNegativeInteger"/>
          <xs:element name="failedIgnored" type="xs:nonNegativeInteger"/>
          <xs:element name="incompleteIgnored" type="xs:nonNegativeInteger"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="ResultSummary">
    <xs:sequence>
      <xs:element name="status" type="xs:string"/>
      <xs:element name="succeeded" type="xs:nonNegativeInteger"/>
      <xs:element name="failed" type="xs:nonNegativeInteger"/>
      <xs:element name="incomplete" type="xs:nonNegativeInteger"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="TestSuiteOverviews">
    <xs:sequence>
      <xs:element maxOccurs="unbounded" name="testSuite" type="tns:TestSuiteOverview"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="TestSuiteOverview">
    <xs:sequence>
      <xs:element minOccurs="0" name="metadata" type="ns1:Metadata"/>
      <xs:element name="result" type="xs:string"/>
      <xs:element minOccurs="0" name="testCaseGroups" type="tns:TestCaseGroups"/>
      <xs:element minOccurs="0" name="testCases" type="tns:TestCaseOverviews"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="TestCaseGroups">
    <xs:sequence>
      <xs:element maxOccurs="unbounded" name="group" type="tns:TestCaseGroup"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="TestCaseGroup">
    <xs:sequence>
      <xs:element name="name" type="xs:string"/>
      <xs:element name="description" type="xs:string"/>
    </xs:sequence>
    <xs:attribute name="id" type="xs:string" use="required"/>
  </xs:complexType>
  <xs:complexType name="TestCaseOverviews">
    <xs:sequence>
      <xs:element maxOccurs="unbounded" name="testCase" type="tns:TestCaseOverview"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="TestCaseOverview">
    <xs:sequence>
      <xs:element minOccurs="0" name="metadata" type="ns1:Metadata"/>
      <xs:element name="result" type="xs:string"/>
      <xs:element minOccurs="0" name="lastUpdate" type="xs:dateTime"/>
    </xs:sequence>
    <xs:attribute name="group" type="xs:string"/>
    <xs:attribute name="optional" type="xs:boolean"/>
    <xs:attribute name="disabled" type="xs:boolean"/>
    <xs:attribute name="ref" type="xs:string"/>
  </xs:complexType>
  <xs:complexType name="TestCaseDetails">
    <xs:sequence>
      <xs:element maxOccurs="unbounded" name="testCase" type="tns:TestCaseOverviewReportType"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ConformanceOverviewReportType">
    <xs:sequence>
      <xs:element name="metadata" type="tns:ReportMetadata"/>
      <xs:element name="overview" type="tns:ConformanceOverview"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ConformanceOverview">
    <xs:sequence>
      <xs:element name="definition" type="tns:ConformanceOverviewDefinition"/>
      <xs:element name="summary" type="tns:ResultSummary"/>
      <xs:element name="statementOverview" type="tns:ConformanceStatementOverview"/>
      <xs:element name="statementDetails" type="tns:ConformanceStatements"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ConformanceStatementOverview">
    <xs:sequence>
      <xs:element maxOccurs="unbounded" minOccurs="0" name="domain" nillable="true" type="tns:DomainOverview"/>
      <xs:element minOccurs="0" name="specificationGroup" type="tns:SpecificationGroupOverview"/>
      <xs:element minOccurs="0" name="specification" type="tns:SpecificationOverview"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ConformanceStatements">
    <xs:sequence>
      <xs:element maxOccurs="unbounded" name="statement" type="tns:ConformanceStatement"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="BAR">
    <xs:complexContent>
      <xs:extension base="tns:TestAssertionReportType">
        <xs:sequence>
          <xs:element minOccurs="0" name="assertionID" type="xs:string"/>
          <xs:element name="description" type="xs:string"/>
          <xs:element minOccurs="0" name="location" type="xs:string"/>
          <xs:element minOccurs="0" name="test" type="xs:string"/>
          <xs:element minOccurs="0" name="type" type="xs:string"/>
          <xs:element minOccurs="0" name="value" type="xs:string"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType abstract="true" name="TestAssertionReportType">
    <xs:sequence/>
  </xs:complexType>
  <xs:simpleType name="TestResultType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="SUCCESS"/>
      <xs:enumeration value="FAILURE"/>
      <xs:enumeration value="WARNING"/>
      <xs:enumeration value="UNDEFINED"/>
    </xs:restriction>
  </xs:simpleType>
</xs:schema>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://www.gitb.com/core/v1/" elementFormDefault="qualified" targetNamespace="http://www.gitb.com/core/v1/" version="1.0">

  <xs:element name="module" type="tns:TestModule"/>

  <xs:complexType name="Configuration">
    <xs:simpleContent>
      <xs:extension base="xs:string">
        <xs:attribute name="name" type="xs:string" use="required"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:complexType name="AnyContent">
    <xs:sequence>
      <xs:element maxOccurs="unbounded" minOccurs="0" name="item" nillable="true" type="tns:AnyContent"/>
      <xs:element minOccurs="0" name="value" type="xs:string"/>
    </xs:sequence>
    <xs:attribute name="name" type="xs:string"/>
    <xs:attribute name="embeddingMethod" type="tns:ValueEmbeddingEnumeration"/>
    <xs:attribute name="type" type="xs:string"/>
    <xs:attribute name="encoding" type="xs:string"/>
    <xs:attribute name="mimeType" type="xs:string"/>
    <xs:attribute name="forContext" type="xs:boolean"/>
    <xs:attribute name="forDisplay" type="xs:boolean"/>
  </xs:complexType>

  <xs:complexType name="Metadata">
    <xs:all>
      <xs:element name="name" type="xs:string"/>
      <xs:element minOccurs="0" name="type" type="xs:NMTOKEN"/>
      <xs:element minOccurs="0" name="version" type="xs:string"/>
      <xs:element minOccurs="0" name="authors" type="xs:string"/>
      <xs:element minOccurs="0" name="description" type="xs:string"/>
      <xs:element minOccurs="0" name="published" type="xs:string"/>
      <xs:element minOccurs="0" name="lastModified" type="xs:string"/>
      <xs:element minOccurs="0" name="documentation" type="tns:Documentation"/>
      <xs:element minOccurs="0" name="update" type="tns:Update"/>
      <xs:element minOccurs="0" name="tags" type="tns:Tags"/>
      <xs:element minOccurs="0" name="specification" type="tns:SpecificationInfo"/>
    </xs:all>
  </xs:complexType>

  <xs:complexType name="Documentation">
    <xs:simpleContent>
      <xs:extension base="xs:string">
        <xs:attribute name="from" type="xs:string"/>
        <xs:attribute name="import" type="xs:string"/>
        <xs:attribute name="encoding" type="xs:string"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:complexType name="Update">
    <xs:sequence/>
    <xs:attribute name="updateMetadata" type="xs:boolean"/>
    <xs:attribute name="updateSpecification" type="xs:boolean"/>
    <xs:attribute name="resetTestHistory" type="xs:boolean"/>
  </xs:complexType>

  <xs:complexType name="Tags">
    <xs:sequence>
      <xs:element maxOccurs="unbounded" name="tag" type="tns:Tag"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Tag">
    <xs:simpleContent>
      <xs:extension base="xs:string">
        <xs:attribute name="name" type="xs:string" use="required"/>
        <xs:attribute name="foreground" type="xs:string"/>
        <xs:attribute name="background" type="xs:string"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:complexType name="SpecificationInfo">
    <xs:all>
      <xs:element minOccurs="0" name="reference" type="xs:string"/>
      <xs:element minOccurs="0" name="description" type="xs:string"/>
      <xs:element minOccurs="0" name="link" type="xs:string"/>
    </xs:all>
  </xs:complexType>

  <xs:complexType name="ValidationModule">
    <xs:complexContent>
      <xs:extension base="tns:TestModule">
        <xs:sequence>
          <xs:element minOccurs="0" name="configs" type="tns:ConfigurationParameters"/>
        </xs:sequence>
        <xs:attribute name="operation" type="xs:string"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="TestModule">
    <xs:sequence>
      <xs:element name="metadata" type="tns:Metadata"/>
      <xs:element minOccurs="0" name="inputs" type="tns:TypedParameters"/>
      <xs:element minOccurs="0" name="outputs" type="tns:TypedParameters"/>
    </xs:sequence>
    <xs:attribute name="id" type="xs:string"/>
    <xs:attribute name="uri" type="xs:string"/>
    <xs:attribute name="isRemote" type="xs:boolean"/>
    <xs:attribute name="serviceLocation" type="xs:string"/>
  </xs:complexType>

  <xs:complexType name="ConfigurationParameters">
    <xs:sequence>
      <xs:element maxOccurs="unbounded" name="param" type="tns:Parameter"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Parameter">
    <xs:simpleContent>
      <xs:extension base="xs:string">
        <xs:attribute name="name" type="xs:string" use="required"/>
        <xs:attribute name="label" type="xs:string"/>
        <xs:attribute name="use" type="tns:UsageEnumeration"/>
        <xs:attribute name="kind" type="tns:ConfigurationType"/>
        <xs:attribute name="desc" type="xs:string"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:complexType name="EndpointParameter">
    <xs:simpleContent>
      <xs:extension base="tns:Parameter">
        <xs:attribute name="adminOnly" type="xs:boolean"/>
        <xs:attribute name="notForTests" type="xs:boolean"/>
        <xs:attribute name="hidden" type="xs:boolean"/>
        <xs:attribute name="dependsOn" type="xs:string"/>
        <xs:attribute name="dependsOnValue" type="xs:string"/>
        <xs:attribute name="allowedValues" type="xs:string"/>
        <xs:attribute name="allowedValueLabels" type="xs:string"/>
        <xs:attribute name="defaultValue" type="xs:string"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:complexType name="TypedParameter">
    <xs:simpleContent>
      <xs:extension base="tns:Parameter">
        <xs:attribute name="type" type="xs:string" use="required"/>
        <xs:attribute name="encoding" type="xs:string"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:complexType name="TypedParameters">
    <xs:sequence>
      <xs:element maxOccurs="unbounded" name="param" type="tns:TypedParameter"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="MessagingModule">
    <xs:complexContent>
      <xs:extension base="tns:TestModule">
        <xs:sequence>
          <xs:element name="actorConfigs" type="tns:ConfigurationParameters"/>
          <xs:element minOccurs="0" name="transactionConfigs" type="tns:ConfigurationParameters"/>
          <xs:element minOccurs="0" name="listenConfigs" type="tns:ConfigurationParameters"/>
          <xs:element minOccurs="0" name="receiveConfigs" type="tns:ConfigurationParameters"/>
          <xs:element minOccurs="0" name="sendConfigs" type="tns:ConfigurationParameters"/>
        </xs:sequence>
        <xs:attribute name="isProxy" type="xs:boolean"/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Endpoint">
    <xs:sequence>
      <xs:element maxOccurs="unbounded" name="config" type="tns:EndpointParameter"/>
    </xs:sequence>
    <xs:attribute name="name" type="xs:string" use="required"/>
    <xs:attribute name="desc" type="xs:string"/>
  </xs:complexType>

  <xs:complexType name="ActorConfiguration">
    <xs:sequence>
      <xs:element maxOccurs="unbounded" name="config" type="tns:Configuration"/>
    </xs:sequence>
    <xs:attribute name="actor" type="xs:string" use="required"/>
    <xs:attribute name="endpoint" type="xs:string"/>
  </xs:complexType>

  <xs:complexType name="Actors">
    <xs:sequence>
      <xs:element maxOccurs="unbounded" name="actor" type="tns:Actor"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Actor">
    <xs:sequence>
      <xs:element minOccurs="0" name="name" type="xs:string"/>
      <xs:element minOccurs="0" name="desc" type="xs:string"/>
      <xs:element minOccurs="0" name="reportMetadata" type="xs:string"/>
      <xs:element maxOccurs="unbounded" minOccurs="0" name="endpoint" nillable="true" type="tns:Endpoint"/>
    </xs:sequence>
    <xs:attribute name="id" type="xs:string" use="required"/>
    <xs:attribute name="default" type="xs:boolean"/>
    <xs:attribute name="hidden" type="xs:boolean"/>
    <xs:attribute name="displayOrder" type="xs:short"/>
  </xs:complexType>

  <xs:complexType name="Roles">
    <xs:sequence>
      <xs:element maxOccurs="unbounded" name="actor" type="tns:TestRole"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="TestRole">
    <xs:sequence>
      <xs:element maxOccurs="unbounded" minOccurs="0" name="endpoint" nillable="true" type="tns:Endpoint"/>
    </xs:sequence>
    <xs:attribute name="id" type="xs:ID" use="required"/>
    <xs:attribute name="name" type="xs:string"/>
    <xs:attribute name="role" type="tns:TestRoleEnumeration"/>
    <xs:attribute name="displayOrder" type="xs:short"/>
  </xs:complexType>

  <xs:complexType name="ErrorInfo">
    <xs:sequence>
      <xs:element name="errorCode" type="xs:string"/>
      <xs:element name="description" type="xs:string"/>
    </xs:sequence>
  </xs:complexType>

  <xs:simpleType name="ValueEmbeddingEnumeration">
    <xs:restriction base="xs:string">
      <xs:enumeration value="STRING"/>
      <xs:enumeration value="BASE64"/>
      <xs:enumeration value="URI"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="TestCaseType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="CONFORMANCE"/>
      <xs:enumeration value="INTEROPERABILITY"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="UsageEnumeration">
    <xs:restriction base="xs:string">
      <xs:enumeration value="R"/>
      <xs:enumeration value="O"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="ConfigurationType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="SIMPLE"/>
      <xs:enumeration value="BINARY"/>
      <xs:enumeration value="SECRET"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="TestRoleEnumeration">
    <xs:restriction base="xs:string">
      <xs:enumeration value="SUT"/>
      <xs:enumeration value="SIMULATED"/>
      <xs:enumeration value="MONITOR"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="ErrorCode">
    <xs:restriction base="xs:string">
      <xs:enumeration value="ACTOR_DEFINITION_NOT_FOUND"/>
      <xs:enumeration value="ARTIFACT_NOT_FOUND"/>
      <xs:enumeration value="CANCELLATION"/>
      <xs:enumeration value="DATATYPE_ERROR"/>
      <xs:enumeration value="INTERNAL_ERROR"/>
      <xs:enumeration value="INVALID_SESSION"/>
      <xs:enumeration value="INVALID_TEST_CASE"/>
      <xs:enumeration value="MISSING_CONFIGURATION"/>
      <xs:enumeration value="INVALID_CONFIGURATION"/>
      <xs:enumeration value="TEST_CASE_DEFINITION_NOT_FOUND"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="LogLevel">
    <xs:restriction base="xs:string">
      <xs:enumeration value="ERROR"/>
      <xs:enumeration value="WARNING"/>
      <xs:enumeration value="INFO"/>
      <xs:enumeration value="DEBUG"/>
    </xs:restriction>
  </xs:simpleType>

</xs:schema>
  </wsdl:types>
  <wsdl:message name="getModuleDefinition">
    <wsdl:part element="tns:GetModuleDefinitionRequest" name="parameters">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="validateResponse">
    <wsdl:part element="tns:ValidationResponse" name="parameters">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="getModuleDefinitionResponse">
    <wsdl:part element="tns:GetModuleDefinitionResponse" name="parameters">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="validate">
    <wsdl:part element="tns:ValidateRequest" name="parameters">
    </wsdl:part>
  </wsdl:message>
  <wsdl:portType name="ValidationService">
    <wsdl:operation name="validate">
      <wsdl:input message="tns:validate" name="validate" wsam:Action="http://gitb.com/ValidationService/validate" wsaw:Action="http://gitb.com/ValidationService/validate">
    </wsdl:input>
      <wsdl:output message="tns:validateResponse" name="validateResponse" wsam:Action="http://gitb.com/ValidationService/validateResponse" wsaw:Action="http://gitb.com/ValidationService/validateResponse">
    </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="getModuleDefinition">
      <wsdl:input message="tns:getModuleDefinition" name="getModuleDefinition" wsam:Action="http://gitb.com/ValidationService/getModuleDefinition" wsaw:Action="http://gitb.com/ValidationService/getModuleDefinition">
    </wsdl:input>
      <wsdl:output message="tns:getModuleDefinitionResponse" name="getModuleDefinitionResponse" wsam:Action="http://gitb.com/ValidationService/getModuleDefinitionResponse" wsaw:Action="http://gitb.com/ValidationService/getModuleDefinitionResponse">
    </wsdl:output>
    </wsdl:operation>
  </wsdl:portType>
  <wsdl:binding name="ValidationServiceSoapBinding" type="tns:ValidationService">
    <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="validate">
      <soap:operation soapAction="http://gitb.com/ValidationService/validate" style="document"/>
      <wsdl:input name="validate">
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output name="validateResponse">
        <soap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="getModuleDefinition">
      <soap:operation soapAction="http://gitb.com/ValidationService/getModuleDefinition" style="document"/>
      <wsdl:input name="getModuleDefinition">
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output name="getModuleDefinitionResponse">
        <soap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:service name="ValidationService">
    <wsdl:port binding="tns:ValidationServiceSoapBinding" name="ValidationServicePort">
      <soap:address location="https://www.itb.ec.europa.eu/shacl/soap/shacl/validation"/>
    </wsdl:port>
  </wsdl:service>
</wsdl:definitions>