<?xml version="1.0" encoding="UTF-8"?>
<!-- Securitylayer, Schnittstellenspezifikation -->
<!-- XML-Schema für Schnittstellenspezifikation Version 1.1.0, Protokollelemente im datierten Namespace 20020831 -->
<!-- 31. 08. 2002, Operative Unit, CIO, BMOeLS -->
<xsd:schema targetNamespace="http://www.buergerkarte.at/namespaces/securitylayer/20020831#" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.buergerkarte.at/namespaces/securitylayer/20020831#" xmlns:sl10="http://www.buergerkarte.at/namespaces/securitylayer/20020225#" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.1.0">
  <xsd:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="xmldsig-core-schema.xsd"/>
  <xsd:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd"/>
  <xsd:import namespace="http://www.buergerkarte.at/namespaces/securitylayer/20020225#" schemaLocation="Core.20020225.xsd"/>
  <!--########## Create XML Signature ###-->
  <!--### Create XML Signature Request ###-->
  <xsd:element name="CreateXMLSignatureRequest" type="CreateXMLSignatureRequestType"/>
  <xsd:complexType name="CreateXMLSignatureRequestType">
    <xsd:sequence>
      <xsd:element name="KeyboxIdentifier" type="sl10:BoxIdentifierType"/>
      <xsd:element name="DataObjectInfo" type="sl10:DataObjectInfoType" maxOccurs="unbounded"/>
      <xsd:element name="SignatureInfo" type="SignatureInfoCreationType" minOccurs="0"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="SignatureInfoCreationType">
    <xsd:sequence>
      <xsd:element name="SignatureEnvironment" type="sl10:ContentOptionalRefType"/>
      <xsd:element name="SignatureLocation">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="xsd:token">
              <xsd:attribute name="Index" type="xsd:nonNegativeInteger" use="required"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="Supplement" type="sl10:XMLDataObjectAssociationType" minOccurs="0" maxOccurs="unbounded"/>
    </xsd:sequence>
  </xsd:complexType>
  <!--### Create XML Signature Response ###-->
  <xsd:element name="CreateXMLSignatureResponse" type="CreateXMLSignatureResponseType"/>
  <xsd:complexType name="CreateXMLSignatureResponseType">
    <xsd:sequence>
      <xsd:any namespace="##any" processContents="lax"/>
    </xsd:sequence>
  </xsd:complexType>
  <!--########## Verify CMS Signature ###-->
  <!--### Verifiy CMS Signature Request ###-->
  <xsd:element name="VerifyCMSSignatureRequest" type="VerifyCMSSignatureRequestType"/>
  <xsd:complexType name="VerifyCMSSignatureRequestType">
    <xsd:sequence>
      <xsd:element name="DateTime" type="xsd:dateTime" minOccurs="0"/>
      <xsd:element name="CMSSignature" type="xsd:base64Binary"/>
      <xsd:element name="DataObject" type="sl10:CMSDataObjectOptionalMetaType" minOccurs="0"/>
    </xsd:sequence>
    <xsd:attribute name="Signatories" type="SignatoriesType" use="optional" default="1"/>
  </xsd:complexType>
  <xsd:simpleType name="SignatoriesType">
    <xsd:union memberTypes="AllSignatoriesType">
      <xsd:simpleType>
        <xsd:list itemType="xsd:positiveInteger"/>
      </xsd:simpleType>
    </xsd:union>
  </xsd:simpleType>
  <xsd:simpleType name="AllSignatoriesType">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="all"/>
    </xsd:restriction>
  </xsd:simpleType>
  <!--### Verify CMS Signature Response ###-->
  <xsd:element name="VerifyCMSSignatureResponse" type="VerifyCMSSignatureResponseType"/>
  <xsd:complexType name="VerifyCMSSignatureResponseType">
    <xsd:sequence maxOccurs="unbounded">
      <xsd:element name="SignerInfo" type="dsig:KeyInfoType"/>
      <xsd:element name="SignatureCheck" type="sl10:CheckResultType"/>
      <xsd:element name="CertificateCheck" type="sl10:CheckResultType"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:element name="QualifiedCertificate"/>
  <!--########## Verify XML Signature ###-->
  <!--### Verify XML Signature Request ###-->
  <xsd:element name="VerifyXMLSignatureRequest" type="VerifyXMLSignatureRequestType"/>
  <xsd:complexType name="VerifyXMLSignatureRequestType">
    <xsd:sequence>
      <xsd:element name="DateTime" type="xsd:dateTime" minOccurs="0"/>
      <xsd:element name="SignatureInfo" type="SignatureInfoVerificationType"/>
      <xsd:element name="Supplement" type="sl10:XMLDataObjectAssociationType" minOccurs="0" maxOccurs="unbounded"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="SignatureInfoVerificationType">
    <xsd:sequence>
      <xsd:element name="SignatureEnvironment" type="sl10:ContentOptionalRefType"/>
      <xsd:element name="SignatureLocation" type="xsd:token"/>
    </xsd:sequence>
  </xsd:complexType>
  <!--### Verify XML Signature Response ###-->
  <xsd:element name="VerifyXMLSignatureResponse" type="VerifyXMLSignatureResponseType"/>
  <xsd:complexType name="VerifyXMLSignatureResponseType">
    <xsd:sequence>
      <xsd:element name="SignerInfo" type="dsig:KeyInfoType"/>
      <xsd:element name="SignatureCheck" type="ReferencesCheckResultType"/>
      <xsd:element name="SignatureManifestCheck" type="ReferencesCheckResultType"/>
      <xsd:element name="XMLDSIGManifestCheck" type="ManifestRefsCheckResultType" minOccurs="0" maxOccurs="unbounded"/>
      <xsd:element name="CertificateCheck" type="sl10:CheckResultType"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ReferencesCheckResultType">
    <xsd:complexContent>
      <xsd:restriction base="sl10:CheckResultType">
        <xsd:sequence>
          <xsd:element name="Code" type="xsd:nonNegativeInteger"/>
          <xsd:element name="Info" type="ReferencesCheckResultInfoType" minOccurs="0"/>
        </xsd:sequence>
      </xsd:restriction>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ReferencesCheckResultInfoType" mixed="true">
    <xsd:complexContent mixed="true">
      <xsd:restriction base="sl10:AnyChildrenType">
        <xsd:sequence>
          <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
          <xsd:element name="FailedReference" type="xsd:positiveInteger" minOccurs="0" maxOccurs="unbounded"/>
        </xsd:sequence>
      </xsd:restriction>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ManifestRefsCheckResultType">
    <xsd:complexContent>
      <xsd:restriction base="sl10:CheckResultType">
        <xsd:sequence>
          <xsd:element name="Code" type="xsd:nonNegativeInteger"/>
          <xsd:element name="Info" type="ManifestRefsCheckResultInfoType"/>
        </xsd:sequence>
      </xsd:restriction>
    </xsd:complexContent>
  </xsd:complexType>
  <xsd:complexType name="ManifestRefsCheckResultInfoType" mixed="true">
    <xsd:complexContent mixed="true">
      <xsd:extension base="ReferencesCheckResultInfoType">
        <xsd:sequence>
          <xsd:element name="ReferringSigReference" type="xsd:positiveInteger"/>
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>
  <!--########## Get Properties ###-->
  <!--### Get Properties Response ###-->
  <xsd:element name="GetPropertiesResponse" type="GetPropertiesResponseType"/>
  <xsd:complexType name="GetPropertiesResponseType">
    <xsd:sequence>
      <xsd:element name="ViewerMediaType" type="sl10:MimeTypeType" maxOccurs="unbounded"/>
      <xsd:element name="XMLSignatureTransform" type="xsd:anyURI" maxOccurs="unbounded"/>
      <xsd:element name="KeyboxIdentifier" type="sl10:BoxIdentifierType" maxOccurs="unbounded"/>
      <xsd:element name="Binding" type="sl10:BindingType" maxOccurs="unbounded"/>
      <xsd:element name="ProtocolVersion" type="xsd:anyURI" maxOccurs="unbounded"/>
      <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
    </xsd:sequence>
  </xsd:complexType>
</xsd:schema>