<?xml version="1.0" encoding="UTF-8"?> <!-- Securitylayer, Schnittstellenspezifikation --> <!-- XML-Schema für Schnittstellenspezifikation Version 1.1.0, Protokollelemente im datierten Namespace 20020225 --> <!-- 31. 08. 2002, Operative Unit, CIO, BMOeLS --> <xsd:schema targetNamespace="http://www.buergerkarte.at/namespaces/securitylayer/20020225#" xmlns="http://www.buergerkarte.at/namespaces/securitylayer/20020225#" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.1.0"> <xsd:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="http://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd"/> <xsd:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/xml.xsd"/> <!--########### Create CMS Signature ###--> <!--### Create CMS Signature Request ###--> <xsd:element name="CreateCMSSignatureRequest" type="CreateCMSSignatureRequestType"/> <xsd:complexType name="CreateCMSSignatureRequestType"> <xsd:sequence> <xsd:element name="KeyboxIdentifier" type="BoxIdentifierType"/> <xsd:element name="DataObject" type="CMSDataObjectRequiredMetaType"/> </xsd:sequence> <xsd:attribute name="Structure" use="required"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:enumeration value="detached"/> <xsd:enumeration value="enveloping"/> </xsd:restriction> </xsd:simpleType> </xsd:attribute> </xsd:complexType> <xsd:complexType name="CMSDataObjectRequiredMetaType"> <xsd:complexContent> <xsd:restriction base="CMSDataObjectOptionalMetaType"> <xsd:sequence> <xsd:element name="MetaInfo" type="MetaInfoType"/> <xsd:element name="Content" type="CMSContentBaseType"/> </xsd:sequence> </xsd:restriction> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="CMSDataObjectOptionalMetaType"> <xsd:sequence> <xsd:element name="MetaInfo" type="MetaInfoType" minOccurs="0"/> <xsd:element name="Content" type="CMSContentBaseType"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="CMSContentBaseType"> <xsd:complexContent> <xsd:restriction base="ContentOptionalRefType"> <xsd:choice minOccurs="0"> <xsd:element name="Base64Content" type="xsd:base64Binary"/> </xsd:choice> </xsd:restriction> </xsd:complexContent> </xsd:complexType> <!--### Create CMS Siganture Response ###--> <xsd:element name="CreateCMSSignatureResponse" type="CreateCMSSignatureResponseType"/> <xsd:complexType name="CreateCMSSignatureResponseType"> <xsd:sequence> <xsd:element name="CMSSignature" type="xsd:base64Binary"/> </xsd:sequence> </xsd:complexType> <!--########## Create XML Signature ###--> <!--### Create XML Signature Request ###--> <xsd:element name="CreateXMLSignatureRequest" type="CreateXMLSignatureRequestType"/> <xsd:complexType name="CreateXMLSignatureRequestType"> <xsd:sequence> <xsd:element name="KeyboxIdentifier" type="BoxIdentifierType"/> <xsd:element name="DataObjectInfo" type="DataObjectInfoType" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="MetaInfoType"> <xsd:sequence> <xsd:element name="MimeType" type="MimeTypeType"/> <xsd:element name="Description" type="xsd:anyURI" minOccurs="0"/> <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="DataObjectInfoType"> <xsd:sequence> <xsd:element name="DataObject" type="ContentOptionalRefType"/> <xsd:element name="TransformsInfo" type="TransformsInfoType" maxOccurs="unbounded"/> <xsd:element name="Supplement" type="XMLDataObjectAssociationType" minOccurs="0" maxOccurs="unbounded"/> </xsd:sequence> <xsd:attribute name="Structure" use="required"> <xsd:simpleType> <xsd:restriction base="xsd:string"> <xsd:enumeration value="detached"/> <xsd:enumeration value="enveloping"/> </xsd:restriction> </xsd:simpleType> </xsd:attribute> </xsd:complexType> <xsd:complexType name="TransformsInfoType"> <xsd:sequence> <xsd:element ref="dsig:Transforms" minOccurs="0"/> <xsd:element name="FinalDataMetaInfo" type="MetaInfoType"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="XMLDataObjectAssociationType"> <xsd:sequence> <xsd:element name="MetaInfo" type="MetaInfoType" minOccurs="0"/> <xsd:element name="Content" type="ContentRequiredRefType"/> </xsd:sequence> </xsd:complexType> <!--### Create XML Signature Response ###--> <xsd:element name="CreateXMLSignatureResponse" type="CreateXMLSignatureResponseType"/> <xsd:complexType name="CreateXMLSignatureResponseType"> <xsd:sequence> <xsd:element ref="dsig:Signature"/> </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="CMSDataObjectOptionalMetaType" minOccurs="0"/> </xsd:sequence> </xsd:complexType> <!--### Verify CMS Signature Response ###--> <xsd:element name="VerifyCMSSignatureResponse" type="VerifyCMSSignatureResponseType"/> <xsd:complexType name="VerifyCMSSignatureResponseType"> <xsd:sequence> <xsd:element name="SignerInfo" type="dsig:KeyInfoType"/> <xsd:element name="SignatureCheck" type="CheckResultType"/> <xsd:element name="CertificateCheck" type="CheckResultType"/> </xsd:sequence> </xsd:complexType> <!--########## 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"> <xsd:complexType> <xsd:sequence> <xsd:element name="SignatureEnvironment"> <xsd:complexType> <xsd:sequence> <xsd:any namespace="##any" processContents="skip"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="SignatureLocation" type="xsd:token"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="Supplement" type="XMLDataObjectAssociationType" minOccurs="0" maxOccurs="unbounded"/> </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="CheckResultType"/> <xsd:element name="SignatureManifestCheck" type="CheckResultType"/> <xsd:element name="CertificateCheck" type="CheckResultType"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="CheckResultType"> <xsd:sequence> <xsd:element name="Code" type="xsd:nonNegativeInteger"/> <xsd:element name="Info" type="AnyChildrenType" minOccurs="0"/> </xsd:sequence> </xsd:complexType> <!--########## Infobox Commands ###--> <!--### Check Available Infoboxes Request ###--> <xsd:element name="InfoboxAvailableRequest" type="InfoboxAvailableRequestType"/> <xsd:complexType name="InfoboxAvailableRequestType"/> <!--### Check Available Infoboxes Response ###--> <xsd:element name="InfoboxAvailableResponse" type="InfoboxAvailableResponseType"/> <xsd:complexType name="InfoboxAvailableResponseType"> <xsd:sequence minOccurs="0" maxOccurs="unbounded"> <xsd:element name="InfoboxIdentifier" type="BoxIdentifierType"/> </xsd:sequence> </xsd:complexType> <!--### Read Infobox Request ###--> <xsd:element name="InfoboxReadRequest" type="InfoboxReadRequestType"/> <xsd:complexType name="InfoboxReadRequestType"> <xsd:sequence> <xsd:element name="InfoboxIdentifier" type="BoxIdentifierType"/> <xsd:choice> <xsd:element name="BinaryFileParameters" type="InfoboxReadParamsBinaryFileType"/> <xsd:element name="AssocArrayParameters" type="InfoboxReadParamsAssocArrayType"/> </xsd:choice> </xsd:sequence> </xsd:complexType> <xsd:complexType name="InfoboxReadParamsBinaryFileType"> <xsd:attribute name="ContentIsXMLEntity" type="xsd:boolean" use="optional" default="false"/> </xsd:complexType> <xsd:complexType name="InfoboxReadParamsAssocArrayType"> <xsd:choice> <xsd:element name="ReadKeys"> <xsd:complexType> <xsd:attribute name="SearchString" type="WildCardSearchStringType" use="required"/> </xsd:complexType> </xsd:element> <xsd:element name="ReadPairs"> <xsd:complexType> <xsd:attribute name="SearchString" type="WildCardSearchStringType" use="required"/> <xsd:attribute name="ValuesAreXMLEntities" type="xsd:boolean" use="optional" default="false"/> </xsd:complexType> </xsd:element> <xsd:element name="ReadValue"> <xsd:complexType> <xsd:attribute name="Key" type="BoxIdentifierType" use="required"/> <xsd:attribute name="ValueIsXMLEntity" type="xsd:boolean" use="optional" default="false"/> </xsd:complexType> </xsd:element> </xsd:choice> </xsd:complexType> <!--### Read Infobox Response ###--> <xsd:element name="InfoboxReadResponse" type="InfoboxReadResponseType"/> <xsd:complexType name="InfoboxReadResponseType"> <xsd:choice> <xsd:element name="BinaryFileData" type="ContentBaseType"/> <xsd:element name="AssocArrayData" type="InfoboxReadDataAssocArrayType"/> </xsd:choice> </xsd:complexType> <xsd:complexType name="InfoboxReadDataAssocArrayType"> <xsd:choice> <xsd:sequence minOccurs="0" maxOccurs="unbounded"> <xsd:element name="Key" type="BoxIdentifierType"/> </xsd:sequence> <xsd:sequence minOccurs="0" maxOccurs="unbounded"> <xsd:element name="Pair" type="InfoboxAssocArrayPairType"/> </xsd:sequence> </xsd:choice> </xsd:complexType> <!--### Update Infobox Request ###--> <xsd:element name="InfoboxUpdateRequest" type="InfoboxUpdateRequestType"/> <xsd:complexType name="InfoboxUpdateRequestType"> <xsd:sequence> <xsd:element name="InfoboxIdentifier" type="BoxIdentifierType"/> <xsd:choice> <xsd:element name="BinaryFileParameters" type="ContentBaseType"/> <xsd:element name="AssocArrayParameters" type="InfoboxUpdateParamsAssocArrayType"/> </xsd:choice> </xsd:sequence> </xsd:complexType> <xsd:complexType name="InfoboxUpdateParamsAssocArrayType"> <xsd:choice> <xsd:element name="UpdateKey"> <xsd:complexType> <xsd:attribute name="Key" type="xsd:token" use="required"/> <xsd:attribute name="NewKey" type="xsd:token" use="required"/> </xsd:complexType> </xsd:element> <xsd:element name="UpdateValue" type="InfoboxAssocArrayPairType"/> <xsd:element name="DeletePair"> <xsd:complexType> <xsd:attribute name="Key" type="xsd:token" use="required"/> </xsd:complexType> </xsd:element> </xsd:choice> </xsd:complexType> <!--### Update Infobox Response ###--> <xsd:element name="InfoboxUpdateResponse" type="InfoboxUpdateResponseType"/> <xsd:complexType name="InfoboxUpdateResponseType"/> <!--########## Create Session Certificate ###--> <!--### Create Session Certificate Request ###--> <xsd:element name="CreateSessionKeyRequest" type="CreateSessionKeyRequestType"/> <xsd:complexType name="CreateSessionKeyRequestType"> <xsd:sequence> <xsd:element name="KeyboxIdentifier" type="BoxIdentifierType"/> <xsd:element name="Password" type="xsd:string"/> <xsd:element name="Minutes" type="xsd:positiveInteger"/> </xsd:sequence> </xsd:complexType> <!--### Create Session Certificate Response ###--> <xsd:element name="CreateSessionKeyResponse" type="CreateSessionKeyResponseType"/> <xsd:complexType name="CreateSessionKeyResponseType"> <xsd:sequence> <xsd:element name="PKCS12Object" type="xsd:base64Binary"/> <xsd:element name="Certificate" type="xsd:base64Binary"/> </xsd:sequence> </xsd:complexType> <!--########## Create Symmetric Key ###--> <!--### Create SymmetricKey Request ###--> <xsd:element name="CreateSymmetricSecretRequest" type="CreateSymmetricSecretRequestType"/> <xsd:complexType name="CreateSymmetricSecretRequestType" mixed="false"> <xsd:sequence> <xsd:element name="KeyboxIdentifier" type="BoxIdentifierType"/> <xsd:element ref="dsig:KeyInfo"/> </xsd:sequence> </xsd:complexType> <!--### Create SymmetricKey Response ###--> <xsd:element name="CreateSymmetricSecretResponse" type="CreateSymmetricSecretResponseType"/> <xsd:complexType name="CreateSymmetricSecretResponseType" mixed="false"> <xsd:sequence> <xsd:element name="SymmetricSecretValue" type="xsd:base64Binary"/> </xsd:sequence> </xsd:complexType> <!--########## Get Properties ###--> <!--### Get Properties Request ###--> <xsd:element name="GetPropertiesRequest" type="GetPropertiesRequestType"/> <xsd:complexType name="GetPropertiesRequestType"/> <!--### Get Properties Response ###--> <xsd:element name="GetPropertiesResponse" type="GetPropertiesResponseType"/> <xsd:complexType name="GetPropertiesResponseType"> <xsd:sequence> <xsd:element name="ViewerMediaType" type="MimeTypeType" maxOccurs="unbounded"/> <xsd:element name="XMLSignatureTransform" type="xsd:anyURI" minOccurs="5" maxOccurs="unbounded"/> <xsd:element name="KeyboxIdentifier" type="BoxIdentifierType" minOccurs="2" maxOccurs="unbounded"/> <xsd:element name="Binding" type="BindingType" minOccurs="2" maxOccurs="unbounded"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="BindingType" mixed="true"> <xsd:complexContent mixed="true"> <xsd:extension base="AnyChildrenType"> <xsd:attribute name="Identifier" type="xsd:token" use="required"/> </xsd:extension> </xsd:complexContent> </xsd:complexType> <!--########### Get Token Status ###--> <!--### Get Token Status Reqeust ###--> <xsd:element name="GetStatusRequest" type="GetStatusRequestType"/> <xsd:complexType name="GetStatusRequestType"> <xsd:sequence minOccurs="0"> <xsd:element name="TokenStatus" type="TokenStatusType"/> <xsd:element name="MaxDelay" type="xsd:nonNegativeInteger"/> </xsd:sequence> </xsd:complexType> <!--### Get Token Status Response ###--> <xsd:element name="GetStatusResponse" type="GetStatusResponseType"/> <xsd:complexType name="GetStatusResponseType"> <xsd:sequence> <xsd:element name="TokenStatus" type="TokenStatusType"/> </xsd:sequence> </xsd:complexType> <xsd:simpleType name="TokenStatusType"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="ready"/> <xsd:enumeration value="removed"/> </xsd:restriction> </xsd:simpleType> <!--########## Error Response ###--> <xsd:element name="ErrorResponse" type="ErrorResponseType"/> <xsd:complexType name="ErrorResponseType"> <xsd:sequence> <xsd:element name="ErrorCode" type="xsd:integer"/> <xsd:element name="Info" type="xsd:string"/> </xsd:sequence> </xsd:complexType> <!--########## Auxiliary Types ###--> <xsd:simpleType name="BoxIdentifierType"> <xsd:restriction base="xsd:token"/> </xsd:simpleType> <xsd:simpleType name="MimeTypeType"> <xsd:restriction base="xsd:token"/> </xsd:simpleType> <xsd:simpleType name="WildCardSearchStringType"> <xsd:restriction base="xsd:string"> <xsd:pattern value="[^\*/]*(\*[^\*/]*)?(/[^\*/]*(\*[^\*/]*)?)*"/> </xsd:restriction> </xsd:simpleType> <xsd:complexType name="AnyChildrenType" mixed="true"> <xsd:sequence minOccurs="0" maxOccurs="unbounded"> <xsd:any namespace="##any" processContents="lax"/> </xsd:sequence> </xsd:complexType> <xsd:complexType name="XMLContentType" mixed="true"> <xsd:complexContent mixed="true"> <xsd:extension base="AnyChildrenType"> <xsd:attribute ref="xml:space" use="optional"/> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="ContentBaseType"> <xsd:choice minOccurs="0"> <xsd:element name="Base64Content" type="xsd:base64Binary"/> <xsd:element name="XMLContent" type="XMLContentType"/> </xsd:choice> </xsd:complexType> <xsd:complexType name="ContentOptionalRefType"> <xsd:complexContent> <xsd:extension base="ContentBaseType"> <xsd:attribute name="Reference" type="xsd:anyURI" use="optional"/> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="ContentRequiredRefType"> <xsd:complexContent> <xsd:restriction base="ContentOptionalRefType"> <xsd:choice> <xsd:element name="Base64Content" type="xsd:base64Binary"/> <xsd:element name="XMLContent" type="XMLContentType"/> </xsd:choice> <xsd:attribute name="Reference" type="xsd:anyURI" use="required"/> </xsd:restriction> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="InfoboxAssocArrayPairType"> <xsd:complexContent> <xsd:extension base="ContentBaseType"> <xsd:attribute name="Key" type="xsd:string" use="required"/> </xsd:extension> </xsd:complexContent> </xsd:complexType> </xsd:schema>