<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:vssign="http://schemas.symantec.com/pkiservices/2011/11/sign" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" elementFormDefault="qualified" targetNamespace="http://schemas.symantec.com/pkiservices/2011/11/sign" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:simpleType name="VersionType" final="restriction">
    <xs:restriction base="xs:string">
      <xs:pattern value="\d{1,3}\.\d{0,3}" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="TransactionIDType" final="restriction">
    <xs:restriction base="xs:string">
      <xs:maxLength value="40" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="DescriptionType" final="restriction">
    <xs:restriction base="xs:string">
      <xs:maxLength value="512" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="UserAttributeNameType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="CN" />
      <xs:enumeration value="Email" />
      <xs:enumeration value="UID" />
      <xs:enumeration value="rfc822Name" />
      <xs:enumeration value="UPN" />
      <xs:enumeration value="DNSName" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="HashAlgorithmType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="sha512" />
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="UserFilterType">
    <xs:sequence>
      <xs:element name="userAttributeName" type="vssign:UserAttributeNameType" />
      <xs:element name="userAttributeValue" type="xs:string" />
      <xs:element minOccurs="0" name="ignoreCase" type="xs:boolean" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ProfileIDFilterSetType">
    <xs:sequence>
      <xs:element maxOccurs="unbounded" name="profileOID" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="UserFilterSetType">
    <xs:sequence>
      <xs:element maxOccurs="unbounded" name="userFilter" type="vssign:UserFilterType" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="CertificateFilterType">
    <xs:sequence>
      <xs:element name="profileIDFilterSet" type="vssign:ProfileIDFilterSetType" />
      <xs:element minOccurs="0" name="userFilterSet" type="vssign:UserFilterSetType" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="SignDataInfoType">
    <xs:sequence>
      <xs:element minOccurs="0" name="description" type="vssign:DescriptionType" />
      <xs:element name="certificateFilter" type="vssign:CertificateFilterType" />
      <xs:element name="hashAlgorithm" type="vssign:HashAlgorithmType" />
      <xs:element name="urlFilter" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="PrepSignDataRequest">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="clientTransactionID" type="vssign:TransactionIDType" />
        <xs:element name="signDataInfo" type="vssign:SignDataInfoType" />
        <xs:element name="toBeSignData" type="xs:base64Binary" />
        <xs:element name="version" type="vssign:VersionType" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="ToBeSignedPKCS7BlobType">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="signDataInfo" type="vssign:SignDataInfoType" />
        <xs:element name="organization" type="xs:string" />
        <xs:element name="requestId" type="vssign:TransactionIDType" />
        <xs:element name="hashValue" type="xs:base64Binary" />
        <xs:element name="version" type="vssign:VersionType" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="PrepSignDataResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="clientTransactionID" type="vssign:TransactionIDType" />
        <xs:element name="serverTransactionID" type="vssign:TransactionIDType" />
        <xs:element name="pkcs7SignedBlob" type="xs:base64Binary" />
        <xs:element name="version" type="vssign:VersionType" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="ToBeSignedClientPKCS7BlobType">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="pkcs7SignedBlob" type="xs:base64Binary" />
        <xs:element name="toBeSignData" type="xs:base64Binary" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="VerifySignedDataRequest">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="clientTransactionID" type="vssign:TransactionIDType" />
        <xs:element name="clientPkcs7SignedBlob" type="xs:base64Binary" />
        <xs:element name="version" type="vssign:VersionType" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:simpleType name="StatusType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="SUCCESS" />
    </xs:restriction>
  </xs:simpleType>
  <xs:element name="VerifySignedDataResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="clientTransactionID" type="vssign:TransactionIDType" />
        <xs:element name="serverTransactionID" type="vssign:TransactionIDType" />
        <xs:element name="status" type="vssign:StatusType" />
        <xs:element name="version" type="vssign:VersionType" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>