<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../../../ver20/util/onvif-wsdl-viewer.xsl"?>
<!--
Copyright (c) 2010-2017 by ONVIF: Open Network Video Interface Forum. All rights reserved.

Recipients of this document may copy, distribute, publish, or display this
document so long as this copyright notice, license and disclaimer are
retained with all copies of the document.

THIS DOCUMENT IS PROVIDED "AS IS," AND THE CORPORATION AND ITS MEMBERS AND
THEIR AFFILIATES, MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, OR TITLE;
THAT THE CONTENTS OF THIS DOCUMENT ARE SUITABLE FOR ANY PURPOSE;
OR THAT THE IMPLEMENTATION OF SUCH CONTENTS WILL NOT INFRINGE ANY PATENTS,
COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
IN NO EVENT WILL THE CORPORATION OR ITS MEMBERS OR THEIR AFFILIATES BE LIABLE
FOR ANY DIRECT, INDIRECT, SPECIAL, INCIDENTAL, PUNITIVE OR CONSEQUENTIAL
DAMAGES, ARISING OUT OF OR RELATING TO ANY USE OR DISTRIBUTION OF THIS
DOCUMENT, WHETHER OR NOT (1) THE CORPORATION, MEMBERS OR THEIR AFFILIATES
HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES, OR (2) SUCH DAMAGES
WERE REASONABLY FORESEEABLE, AND ARISING OUT OF OR RELATING TO ANY USE OR
DISTRIBUTION OF THIS DOCUMENT.
THE FOREGOING DISCLAIMER AND LIMITATION ON LIABILITY DO NOT APPLY TO,
INVALIDATE, OR LIMIT REPRESENTATIONS AND WARRANTIES MADE BY THE MEMBERS
AND THEIR RESPECTIVE AFFILIATES TO THE CORPORATION AND OTHER MEMBERS IN
CERTAIN WRITTEN POLICIES OF THE CORPORATION.
-->
<wsdl:definitions
		xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
		xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap12/"
		xmlns:xs="http://www.w3.org/2001/XMLSchema"
		xmlns:tcr="http://www.onvif.org/ver10/credential/wsdl" name="CredentialService"
		targetNamespace="http://www.onvif.org/ver10/credential/wsdl">
	<!-- The data types definition for the 'Credential Service' -->
	<wsdl:types>
		<xs:schema targetNamespace="http://www.onvif.org/ver10/credential/wsdl"
				   xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:pt="http://www.onvif.org/ver10/pacs"
				   xmlns:tcr="http://www.onvif.org/ver10/credential/wsdl" elementFormDefault="qualified" version="17.06">
			<xs:import namespace="http://www.onvif.org/ver10/pacs" schemaLocation="../../pacs/types.xsd"/>
			<!--ServiceCapabilities definitions-->
			<xs:complexType name="ServiceCapabilities">
				<xs:annotation>
					<xs:documentation>
						The service capabilities reflect optional functionality of a service. The information is static
						and does not change during device operation. The following capabilities are available:
					</xs:documentation>
				</xs:annotation>
				<xs:sequence>
					<xs:element name="SupportedIdentifierType" type="pt:Name" minOccurs="1" maxOccurs="unbounded">
						<xs:annotation>
							<xs:documentation>
								A list of identifier types that the device supports. Supported identifiers starting with
								the prefix pt: are reserved to define PACS specific identifier types and these reserved
								identifier types shall all share the "pt:&lt;Name&gt;" syntax.
							</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="Extension" type="tcr:ServiceCapabilitiesExtension" minOccurs="0"/>
				</xs:sequence>
				<xs:attribute name="MaxLimit" type="pt:PositiveInteger" use="required">
					<xs:annotation>
						<xs:documentation>
							The maximum number of entries returned by a single Get&lt;Entity&gt;List or Get&lt;Entity&gt;
							request.
							The device shall never return more than this number of entities in a single response.
						</xs:documentation>
					</xs:annotation>
				</xs:attribute>
				<xs:attribute name="CredentialValiditySupported" type="xs:boolean" use="required">
					<xs:annotation>
						<xs:documentation>
							Indicates that the device supports credential validity.
						</xs:documentation>
					</xs:annotation>
				</xs:attribute>
				<xs:attribute name="CredentialAccessProfileValiditySupported" type="xs:boolean" use="required">
					<xs:annotation>
						<xs:documentation>
							Indicates that the device supports validity on the association between a credential and an
							access profile.
						</xs:documentation>
					</xs:annotation>
				</xs:attribute>
				<xs:attribute name="ValiditySupportsTimeValue" type="xs:boolean" use="required">
					<xs:annotation>
						<xs:documentation>
							Indicates that the device supports both date and time value for validity. If set to false,
							then the time value is ignored.
						</xs:documentation>
					</xs:annotation>
				</xs:attribute>
				<xs:attribute name="MaxCredentials" type="pt:PositiveInteger" use="required">
					<xs:annotation>
						<xs:documentation>
							The maximum number of credential supported by the device.
						</xs:documentation>
					</xs:annotation>
				</xs:attribute>
				<xs:attribute name="MaxAccessProfilesPerCredential" type="pt:PositiveInteger" use="required">
					<xs:annotation>
						<xs:documentation>
							The maximum number of access profiles for a credential.
						</xs:documentation>
					</xs:annotation>
				</xs:attribute>
				<xs:attribute name="ResetAntipassbackSupported" type="xs:boolean" use="required">
					<xs:annotation>
						<xs:documentation>
							Indicates the device supports resetting of anti-passback violations and notifying on
							anti-passback violations.
						</xs:documentation>
					</xs:annotation>
				</xs:attribute>
				<xs:anyAttribute processContents="lax"/>
			</xs:complexType>
			<xs:complexType name="ServiceCapabilitiesExtension">
				<xs:sequence>
					<xs:element name="SupportedExemptionType" type="pt:Name" minOccurs="0" maxOccurs="unbounded">
						<xs:annotation>
							<xs:documentation>
								A list of exemptions that the device supports. Supported exemptions starting with the
								prefix pt: are reserved to define PACS specific exemption types and these reserved
								exemption types shall all share "pt:&lt;Name&gt;" syntax.
							</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>   <!-- first ONVIF then Vendor -->
				</xs:sequence>
			</xs:complexType>
			<!-- End of definition -->
			<!--CredentialInfo definitions-->
			<xs:complexType name="CredentialInfo">
				<xs:annotation>
					<xs:documentation>
						The CredentialInfo type represents the credential as a logical object. The structure contains
						the basic information of a specific credential instance. The device shall provide the following
						fields for each credential.
					</xs:documentation>
				</xs:annotation>
				<xs:complexContent>
					<xs:extension base="pt:DataEntity">
						<xs:sequence>
							<xs:element name="Description" type="pt:Description" minOccurs="0">
								<xs:annotation>
									<xs:documentation>
										User readable description for the credential. It shall be up to 1024 characters.
									</xs:documentation>
								</xs:annotation>
							</xs:element>
							<xs:element name="CredentialHolderReference">
								<xs:annotation>
									<xs:documentation>An external reference to a person holding this credential. The
										reference is a username or used ID in an external system, such as a directory
										service.
									</xs:documentation>
								</xs:annotation>
								<xs:simpleType base="xs:string">
									<xs:annotation>
										<xs:documentation></xs:documentation>
									</xs:annotation>
									<xs:restriction base="xs:string">
										<xs:maxLength value="64"/>
										<xs:minLength value="0"/>
									</xs:restriction>
								</xs:simpleType>
							</xs:element>
							<xs:element name="ValidFrom" type="xs:dateTime" minOccurs="0">
								<xs:annotation>
									<xs:documentation>The start date/time validity of the credential. If the
										ValiditySupportsTimeValue capability is set to false, then only date is
										supported (time is ignored).
									</xs:documentation>
								</xs:annotation>
							</xs:element>
							<xs:element name="ValidTo" type="xs:dateTime" minOccurs="0">
								<xs:annotation>
									<xs:documentation>The expiration date/time validity of the credential. If the
										ValiditySupportsTimeValue capability is set to false, then only date is
										supported (time is ignored).
									</xs:documentation>
								</xs:annotation>
							</xs:element>
						</xs:sequence>
						<xs:anyAttribute processContents="lax"/>
					</xs:extension>
				</xs:complexContent>
			</xs:complexType>
			<!-- End of definition -->
			<!--Credential definitions-->
			<xs:complexType name="Credential">
				<xs:annotation>
					<xs:documentation>
						A Credential is a physical/tangible object, a piece of knowledge, or a facet of a person's
						physical being, that enables an individual access to a given physical facility or computer-based
						information system. A credential holds one or more credential identifiers. To gain access one or
						more identifiers may be required.
					</xs:documentation>
				</xs:annotation>
				<xs:complexContent>
					<xs:extension base="tcr:CredentialInfo">
						<xs:sequence>
							<xs:element name="CredentialIdentifier" type="tcr:CredentialIdentifier" minOccurs="1"
										maxOccurs="unbounded">
								<xs:annotation>
									<xs:documentation>A list of credential identifier structures. At least one
										credential identifier is required. Maximum one credential identifier structure
										per type is allowed.
									</xs:documentation>
								</xs:annotation>
							</xs:element>
							<xs:element name="CredentialAccessProfile" type="tcr:CredentialAccessProfile" minOccurs="0"
										maxOccurs="unbounded">
								<xs:annotation>
									<xs:documentation>A list of credential access profile structures.</xs:documentation>
								</xs:annotation>
							</xs:element>
							<xs:element name="Attribute" type="pt:Attribute" minOccurs="0" maxOccurs="unbounded">
								<xs:annotation>
									<xs:documentation>A list of credential attributes as name value pairs. Key names
										starting with the prefix pt: are reserved to define PACS specific attributes
										following the "pt:&lt;Name&gt;" syntax.
									</xs:documentation>
								</xs:annotation>
							</xs:element>
							<xs:element name="Extension" type="tcr:CredentialExtension" minOccurs="0"/>
						</xs:sequence>
						<xs:anyAttribute processContents="lax"/>
					</xs:extension>
				</xs:complexContent>
			</xs:complexType>
			<xs:complexType name="CredentialExtension">
				<xs:sequence>
					<xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>   <!-- first ONVIF then Vendor -->
				</xs:sequence>
			</xs:complexType>
			<!-- End of data types definition -->
			<!--CredentialIdentifier definitions-->
			<xs:complexType name="CredentialIdentifier">
				<xs:annotation>
					<xs:documentation>A credential identifier is a card number, unique card information, PIN or
						biometric information such as fingerprint, iris, vein, face recognition, that can be validated
						in an access point.
					</xs:documentation>
				</xs:annotation>
				<xs:sequence>
					<xs:element name="Type" type="tcr:CredentialIdentifierType">
						<xs:annotation>
							<xs:documentation>Contains the details of the credential identifier type. Is of type
								CredentialIdentifierType.
							</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="ExemptedFromAuthentication" type="xs:boolean">
						<xs:annotation>
							<xs:documentation>If set to true, this credential identifier is not considered for
								authentication.
							</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="Value" type="xs:hexBinary">
						<xs:annotation>
							<xs:documentation>The value of the identifier in hexadecimal representation.
							</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>   <!-- first ONVIF then Vendor -->
				</xs:sequence>
				<xs:anyAttribute processContents="lax"/>
			</xs:complexType>
			<xs:complexType name="CredentialIdentifierType">
				<xs:annotation>
					<xs:documentation>Specifies the name of credential identifier type and its format for the credential
						value.
					</xs:documentation>
				</xs:annotation>
				<xs:sequence>
					<xs:element name="Name" type="pt:Name">
						<xs:annotation>
							<xs:documentation>The name of the credential identifier type, such as pt:Card, pt:PIN,
								etc.
							</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="FormatType" type="xs:string">
						<xs:annotation>
							<xs:documentation>Specifies the format of the credential value for the specified identifier
								type name.
							</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:any namespace="##any" minOccurs="0" maxOccurs="unbounded" processContents="lax"/>   <!-- first ONVIF then Vendor -->
				</xs:sequence>
			</xs:complexType>

			<!-- End of definition -->
			<!--CredentialAccessProfile definitions-->
			<xs:complexType name="CredentialAccessProfile">
				<xs:annotation>
					<xs:documentation>
						The association between a credential and an access profile.
					</xs:documentation>
				</xs:annotation>
				<xs:sequence>
					<xs:element name="AccessProfileToken" type="pt:ReferenceToken">
						<xs:annotation>
							<xs:documentation>The reference token of the associated access profile.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="ValidFrom" type="xs:dateTime" minOccurs="0">
						<xs:annotation>
							<xs:documentation>The start date/time of the validity for the association between the
								credential and the access profile. If the ValiditySupportsTimeValue capability is set to
								false, then only date is supported (time is ignored).
							</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="ValidTo" type="xs:dateTime" minOccurs="0">
						<xs:annotation>
							<xs:documentation>The end date/time of the validity for the association between the
								credential and the access profile. If the ValiditySupportsTimeValue capability is set to
								false, then only date is supported (time is ignored).
							</xs:documentation>
						</xs:annotation>
					</xs:element>
				</xs:sequence>
			</xs:complexType>
			<!-- End of definition -->
			<!--CredentialState definitions-->
			<xs:complexType name="CredentialState">
				<xs:annotation>
					<xs:documentation>
						The CredentialState structure contains information about the state of the credential and
						optionally the reason of why the credential was disabled.
					</xs:documentation>
				</xs:annotation>
				<xs:sequence>
					<xs:element name="Enabled" type="xs:boolean">
						<xs:annotation>
							<xs:documentation>True if the credential is enabled or false if the credential is
								disabled.
							</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="Reason" type="pt:Name" minOccurs="0">
						<xs:annotation>
							<xs:documentation>Predefined ONVIF reasons as mentioned in the section 4.2.1.8
								DisabledReasons of credential service specification document. For any other reason, free
								text can be used.
							</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="AntipassbackState" type="tcr:AntipassbackState" minOccurs="0">
						<xs:annotation>
							<xs:documentation>A structure indicating the anti-passback state. This field shall be
								supported if the ResetAntipassbackSupported capability is set to true.
							</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="Extension" type="tcr:CredentialStateExtension" minOccurs="0"/>
				</xs:sequence>
				<xs:anyAttribute processContents="lax"/>
			</xs:complexType>
			<xs:complexType name="CredentialStateExtension">
				<xs:sequence>
					<xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>   <!-- first ONVIF then Vendor -->
				</xs:sequence>
			</xs:complexType>
			<!-- End of definition -->
			<!--AntipassbackState definitions-->
			<xs:complexType name="AntipassbackState">
				<xs:annotation>
					<xs:documentation>
						A structure containing anti-passback related state information.
					</xs:documentation>
				</xs:annotation>
				<xs:sequence>
					<xs:element name="AntipassbackViolated" type="xs:boolean">
						<xs:annotation>
							<xs:documentation>Indicates if anti-passback is violated for the credential.
							</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>   <!-- first ONVIF then Vendor -->
				</xs:sequence>
				<xs:anyAttribute processContents="lax"/>
			</xs:complexType>
			<!-- End of definition -->
			<!-- CredentialIdentifierFormatTypeInfo definitions-->
			<xs:complexType name="CredentialIdentifierFormatTypeInfo">
				<xs:annotation>
					<xs:documentation>Contains information about a format type.</xs:documentation>
				</xs:annotation>
				<xs:sequence>
					<xs:element name="FormatType" type="xs:string">
						<xs:annotation>
							<xs:documentation>A format type supported by the device. A list of supported format types is
								provided in [ISO 16484-5:2014-09 Annex P]. The BACnet type "CUSTOM" is not used in this
								specification. Instead device manufacturers can define their own format types.
							</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="Description" type="pt:Description">
						<xs:annotation>
							<xs:documentation>User readable description of the credential identifier format type. It
								shall be up to 1024 characters. For custom types, it is recommended to describe how the
								octet string is encoded (following the structure in column Authentication Factor Value
								Encoding of [ISO 16484-5:2014-09 Annex P]).
							</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="Extension" type="tcr:CredentialIdentifierFormatTypeInfoExtension" minOccurs="0"/>
				</xs:sequence>
				<xs:anyAttribute processContents="lax"/>
			</xs:complexType>
			<xs:complexType name="CredentialIdentifierFormatTypeInfoExtension">
				<xs:sequence>
					<xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>   <!-- first ONVIF then Vendor -->
				</xs:sequence>
			</xs:complexType>
			<!-- End of definition -->
			<!-- #################-->
			<!-- Message request / response elements-->
			<xs:element name="GetServiceCapabilities">
				<xs:complexType>
					<xs:sequence/>
				</xs:complexType>
			</xs:element>
			<!--===============================-->
			<xs:element name="GetServiceCapabilitiesResponse">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="Capabilities" type="tcr:ServiceCapabilities">
							<xs:annotation>
								<xs:documentation>The capability response message contains the requested credential
									service capabilities using a hierarchical XML capability structure.
								</xs:documentation>
							</xs:annotation>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<!--===============================-->
			<xs:element name="GetSupportedFormatTypes">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="CredentialIdentifierTypeName" type="xs:string">
							<xs:annotation>
								<xs:documentation>Name of the credential identifier type</xs:documentation>
							</xs:annotation>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<!--===============================-->
			<xs:element name="GetSupportedFormatTypesResponse">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="FormatTypeInfo" type="tcr:CredentialIdentifierFormatTypeInfo" minOccurs="1"
									maxOccurs="unbounded">
							<xs:annotation>
								<xs:documentation>Identifier format types</xs:documentation>
							</xs:annotation>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<!--===============================-->
			<xs:element name="GetCredentialInfo">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="Token" type="pt:ReferenceToken" minOccurs="1" maxOccurs="unbounded">
							<xs:annotation>
								<xs:documentation>Tokens of CredentialInfo items to get.</xs:documentation>
							</xs:annotation>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<!--===============================-->
			<xs:element name="GetCredentialInfoResponse">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="CredentialInfo" type="tcr:CredentialInfo" minOccurs="0" maxOccurs="unbounded">
							<xs:annotation>
								<xs:documentation>List of CredentialInfo items.</xs:documentation>
							</xs:annotation>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<!--===============================-->
			<xs:element name="GetCredentialInfoList">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="Limit" type="xs:int" minOccurs="0">
							<xs:annotation>
								<xs:documentation>Maximum number of entries to return. If not specified, less than one
									or higher than what the device supports, the number of items is determined by the
									device.
								</xs:documentation>
							</xs:annotation>
						</xs:element>
						<xs:element name="StartReference" type="xs:string" minOccurs="0">
							<xs:annotation>
								<xs:documentation>Start returning entries from this start reference. If not specified,
									entries shall start from the beginning of the dataset.
								</xs:documentation>
							</xs:annotation>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<!--===============================-->
			<xs:element name="GetCredentialInfoListResponse">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="NextStartReference" type="xs:string" minOccurs="0">
							<xs:annotation>
								<xs:documentation>StartReference to use in next call to get the following items. If
									absent, no more items to get.
								</xs:documentation>
							</xs:annotation>
						</xs:element>
						<xs:element name="CredentialInfo" type="tcr:CredentialInfo" minOccurs="0" maxOccurs="unbounded">
							<xs:annotation>
								<xs:documentation>List of CredentialInfo items.</xs:documentation>
							</xs:annotation>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<!--===============================-->
			<xs:element name="GetCredentials">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="Token" type="pt:ReferenceToken" minOccurs="1" maxOccurs="unbounded">
							<xs:annotation>
								<xs:documentation>Token of Credentials to get</xs:documentation>
							</xs:annotation>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<!--===============================-->
			<xs:element name="GetCredentialsResponse">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="Credential" type="tcr:Credential" minOccurs="0" maxOccurs="unbounded">
							<xs:annotation>
								<xs:documentation>List of Credential items.</xs:documentation>
							</xs:annotation>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<!--===============================-->
			<xs:element name="GetCredentialList">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="Limit" type="xs:int" minOccurs="0">
							<xs:annotation>
								<xs:documentation>Maximum number of entries to return. If not specified, less than one
									or higher than what the device supports, the number of items is determined by the
									device.
								</xs:documentation>
							</xs:annotation>
						</xs:element>
						<xs:element name="StartReference" type="xs:string" minOccurs="0">
							<xs:annotation>
								<xs:documentation>Start returning entries from this start reference. If not specified,
									entries shall start from the beginning of the dataset.
								</xs:documentation>
							</xs:annotation>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<!--===============================-->
			<xs:element name="GetCredentialListResponse">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="NextStartReference" type="xs:string" minOccurs="0">
							<xs:annotation>
								<xs:documentation>StartReference to use in next call to get the following items. If
									absent, no more items to get.
								</xs:documentation>
							</xs:annotation>
						</xs:element>
						<xs:element name="Credential" type="tcr:Credential" minOccurs="0" maxOccurs="unbounded">
							<xs:annotation>
								<xs:documentation>List of Credential items.</xs:documentation>
							</xs:annotation>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<!--===============================-->
			<xs:element name="CreateCredential">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="Credential" type="tcr:Credential">
							<xs:annotation>
								<xs:documentation>The credential to create.</xs:documentation>
							</xs:annotation>
						</xs:element>
						<xs:element name="State" type="tcr:CredentialState">
							<xs:annotation>
								<xs:documentation>The state of the credential.</xs:documentation>
							</xs:annotation>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<!--===============================-->
			<xs:element name="CreateCredentialResponse">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="Token" type="pt:ReferenceToken">
							<xs:annotation>
								<xs:documentation>The token of the created credential</xs:documentation>
							</xs:annotation>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<!--===============================-->
			<xs:element name="ModifyCredential">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="Credential" type="tcr:Credential">
							<xs:annotation>
								<xs:documentation>Details of the credential.</xs:documentation>
							</xs:annotation>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<!--===============================-->
			<xs:element name="ModifyCredentialResponse">
				<xs:complexType>
					<xs:sequence>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<!--===============================-->
			<xs:element name="DeleteCredential">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="Token" type="pt:ReferenceToken">
							<xs:annotation>
								<xs:documentation>The token of the credential to delete.</xs:documentation>
							</xs:annotation>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<!--===============================-->
			<xs:element name="DeleteCredentialResponse">
				<xs:complexType>
					<xs:sequence/>
				</xs:complexType>
			</xs:element>
			<!--===============================-->
			<xs:element name="GetCredentialState">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="Token" type="pt:ReferenceToken">
							<xs:annotation>
								<xs:documentation>Token of Credential</xs:documentation>
							</xs:annotation>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<!--===============================-->
			<xs:element name="GetCredentialStateResponse">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="State" type="tcr:CredentialState">
							<xs:annotation>
								<xs:documentation>State of the credential.</xs:documentation>
							</xs:annotation>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<!--===============================-->
			<xs:element name="EnableCredential">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="Token" type="pt:ReferenceToken">
							<xs:annotation>
								<xs:documentation>The token of the credential</xs:documentation>
							</xs:annotation>
						</xs:element>
						<xs:element name="Reason" type="pt:Name" minOccurs="0">
							<xs:annotation>
								<xs:documentation>Reason for enabling the credential.</xs:documentation>
							</xs:annotation>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<!--===============================-->
			<xs:element name="EnableCredentialResponse">
				<xs:complexType>
					<xs:sequence/>
				</xs:complexType>
			</xs:element>
			<!--===============================-->
			<xs:element name="DisableCredential">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="Token" type="pt:ReferenceToken">
							<xs:annotation>
								<xs:documentation>Token of the Credential</xs:documentation>
							</xs:annotation>
						</xs:element>
						<xs:element name="Reason" type="pt:Name" minOccurs="0">
							<xs:annotation>
								<xs:documentation>Reason for disabling the credential</xs:documentation>
							</xs:annotation>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<!--===============================-->
			<xs:element name="DisableCredentialResponse">
				<xs:complexType>
					<xs:sequence/>
				</xs:complexType>
			</xs:element>
			<!--===============================-->
			<xs:element name="ResetAntipassbackViolation">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="CredentialToken" type="pt:ReferenceToken">
							<xs:annotation>
								<xs:documentation>Token of the Credential</xs:documentation>
							</xs:annotation>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<!--===============================-->
			<xs:element name="ResetAntipassbackViolationResponse">
				<xs:complexType>
					<xs:sequence>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<!--===============================-->
			<xs:element name="GetCredentialIdentifiers">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="CredentialToken" type="pt:ReferenceToken">
							<xs:annotation>
								<xs:documentation>Token of the Credential</xs:documentation>
							</xs:annotation>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<!--===============================-->
			<xs:element name="GetCredentialIdentifiersResponse">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="CredentialIdentifier" type="tcr:CredentialIdentifier" minOccurs="0"
									maxOccurs="unbounded">
							<xs:annotation>
								<xs:documentation>Identifiers of the credential</xs:documentation>
							</xs:annotation>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<!--===============================-->
			<xs:element name="SetCredentialIdentifier">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="CredentialToken" type="pt:ReferenceToken">
							<xs:annotation>
								<xs:documentation>Token of the Credential</xs:documentation>
							</xs:annotation>
						</xs:element>
						<xs:element name="CredentialIdentifier" type="tcr:CredentialIdentifier">
							<xs:annotation>
								<xs:documentation>Identifier of the credential</xs:documentation>
							</xs:annotation>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<!--===============================-->
			<xs:element name="SetCredentialIdentifierResponse">
				<xs:complexType>
					<xs:sequence/>
				</xs:complexType>
			</xs:element>
			<!--===============================-->
			<xs:element name="DeleteCredentialIdentifier">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="CredentialToken" type="pt:ReferenceToken">
							<xs:annotation>
								<xs:documentation>Token of the Credential</xs:documentation>
							</xs:annotation>
						</xs:element>
						<xs:element name="CredentialIdentifierTypeName" type="pt:Name">
							<xs:annotation>
								<xs:documentation>Identifier type name of a credential</xs:documentation>
							</xs:annotation>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<!--===============================-->
			<xs:element name="DeleteCredentialIdentifierResponse">
				<xs:complexType>
					<xs:sequence/>
				</xs:complexType>
			</xs:element>
			<!--===============================-->
			<xs:element name="GetCredentialAccessProfiles">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="CredentialToken" type="pt:ReferenceToken">
							<xs:annotation>
								<xs:documentation>Token of the Credential</xs:documentation>
							</xs:annotation>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<!--===============================-->
			<xs:element name="GetCredentialAccessProfilesResponse">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="CredentialAccessProfile" type="tcr:CredentialAccessProfile" minOccurs="0"
									maxOccurs="unbounded">
							<xs:annotation>
								<xs:documentation>Access Profiles of the credential</xs:documentation>
							</xs:annotation>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<!--===============================-->
			<xs:element name="SetCredentialAccessProfiles">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="CredentialToken" type="pt:ReferenceToken">
							<xs:annotation>
								<xs:documentation>Token of the Credential</xs:documentation>
							</xs:annotation>
						</xs:element>
						<xs:element name="CredentialAccessProfile" type="tcr:CredentialAccessProfile" minOccurs="1"
									maxOccurs="unbounded">
							<xs:annotation>
								<xs:documentation>Access Profiles of the credential</xs:documentation>
							</xs:annotation>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<!--===============================-->
			<xs:element name="SetCredentialAccessProfilesResponse">
				<xs:complexType>
					<xs:sequence/>
				</xs:complexType>
			</xs:element>
			<!--===============================-->
			<xs:element name="DeleteCredentialAccessProfiles">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="CredentialToken" type="pt:ReferenceToken">
							<xs:annotation>
								<xs:documentation>Token of the Credential</xs:documentation>
							</xs:annotation>
						</xs:element>
						<xs:element name="AccessProfileToken" type="pt:ReferenceToken" minOccurs="1"
									maxOccurs="unbounded">
							<xs:annotation>
								<xs:documentation>Tokens of Access Profiles</xs:documentation>
							</xs:annotation>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<!--===============================-->
			<xs:element name="DeleteCredentialAccessProfilesResponse">
				<xs:complexType>
					<xs:sequence/>
				</xs:complexType>
			</xs:element>
			<!-- #################-->
		</xs:schema>
	</wsdl:types>
	<!--Definition of 'GetServiceCapabilities' message-->
	<wsdl:message name="GetServiceCapabilitiesRequest">
		<wsdl:part name="parameters" element="tcr:GetServiceCapabilities"/>
	</wsdl:message>
	<wsdl:message name="GetServiceCapabilitiesResponse">
		<wsdl:part name="parameters" element="tcr:GetServiceCapabilitiesResponse"/>
	</wsdl:message>
	<!--===============================-->
	<!--Definition of 'GetSupportedFormatTypes' message-->
	<wsdl:message name="GetSupportedFormatTypesRequest">
		<wsdl:part name="parameters" element="tcr:GetSupportedFormatTypes"/>
	</wsdl:message>
	<wsdl:message name="GetSupportedFormatTypesResponse">
		<wsdl:part name="parameters" element="tcr:GetSupportedFormatTypesResponse"/>
	</wsdl:message>
	<!--===============================-->
	<!--Definition of 'GetCredentialInfo' message-->
	<wsdl:message name="GetCredentialInfoRequest">
		<wsdl:part name="parameters" element="tcr:GetCredentialInfo"/>
	</wsdl:message>
	<wsdl:message name="GetCredentialInfoResponse">
		<wsdl:part name="parameters" element="tcr:GetCredentialInfoResponse"/>
	</wsdl:message>
	<!--===============================-->
	<!--Definition of 'GetCredentialInfoList' message-->
	<wsdl:message name="GetCredentialInfoListRequest">
		<wsdl:part name="parameters" element="tcr:GetCredentialInfoList"/>
	</wsdl:message>
	<wsdl:message name="GetCredentialInfoListResponse">
		<wsdl:part name="parameters" element="tcr:GetCredentialInfoListResponse"/>
	</wsdl:message>
	<!--===============================-->
	<!--Definition of 'GetCredentials' message-->
	<wsdl:message name="GetCredentialsRequest">
		<wsdl:part name="parameters" element="tcr:GetCredentials"/>
	</wsdl:message>
	<wsdl:message name="GetCredentialsResponse">
		<wsdl:part name="parameters" element="tcr:GetCredentialsResponse"/>
	</wsdl:message>
	<!--===============================-->
	<!--Definition of 'GetCredentialList' message-->
	<wsdl:message name="GetCredentialListRequest">
		<wsdl:part name="parameters" element="tcr:GetCredentialList"/>
	</wsdl:message>
	<wsdl:message name="GetCredentialListResponse">
		<wsdl:part name="parameters" element="tcr:GetCredentialListResponse"/>
	</wsdl:message>
	<!--===============================-->
	<!--Definition of 'CreateCredential' message-->
	<wsdl:message name="CreateCredentialRequest">
		<wsdl:part name="parameters" element="tcr:CreateCredential"/>
	</wsdl:message>
	<wsdl:message name="CreateCredentialResponse">
		<wsdl:part name="parameters" element="tcr:CreateCredentialResponse"/>
	</wsdl:message>
	<!--===============================-->
	<!--Definition of 'ModifyCredential' message-->
	<wsdl:message name="ModifyCredentialRequest">
		<wsdl:part name="parameters" element="tcr:ModifyCredential"/>
	</wsdl:message>
	<wsdl:message name="ModifyCredentialResponse">
		<wsdl:part name="parameters" element="tcr:ModifyCredentialResponse"/>
	</wsdl:message>
	<!--===============================-->
	<!--Definition of 'DeleteCredential' message-->
	<wsdl:message name="DeleteCredentialRequest">
		<wsdl:part name="parameters" element="tcr:DeleteCredential"/>
	</wsdl:message>
	<wsdl:message name="DeleteCredentialResponse">
		<wsdl:part name="parameters" element="tcr:DeleteCredentialResponse"/>
	</wsdl:message>
	<!--===============================-->
	<!--Definition of 'GetCredentialState' message-->
	<wsdl:message name="GetCredentialStateRequest">
		<wsdl:part name="parameters" element="tcr:GetCredentialState"/>
	</wsdl:message>
	<wsdl:message name="GetCredentialStateResponse">
		<wsdl:part name="parameters" element="tcr:GetCredentialStateResponse"/>
	</wsdl:message>
	<!--===============================-->
	<!--Definition of 'EnableCredential' message-->
	<wsdl:message name="EnableCredentialRequest">
		<wsdl:part name="parameters" element="tcr:EnableCredential"/>
	</wsdl:message>
	<wsdl:message name="EnableCredentialResponse">
		<wsdl:part name="parameters" element="tcr:EnableCredentialResponse"/>
	</wsdl:message>
	<!--===============================-->
	<!--Definition of 'DisableCredential' message-->
	<wsdl:message name="DisableCredentialRequest">
		<wsdl:part name="parameters" element="tcr:DisableCredential"/>
	</wsdl:message>
	<wsdl:message name="DisableCredentialResponse">
		<wsdl:part name="parameters" element="tcr:DisableCredentialResponse"/>
	</wsdl:message>
	<!--===============================-->
	<!--Definition of 'ResetAntipassbackViolation' message-->
	<wsdl:message name="ResetAntipassbackViolationRequest">
		<wsdl:part name="parameters" element="tcr:ResetAntipassbackViolation"/>
	</wsdl:message>
	<wsdl:message name="ResetAntipassbackViolationResponse">
		<wsdl:part name="parameters" element="tcr:ResetAntipassbackViolationResponse"/>
	</wsdl:message>
	<!--===============================-->
	<!--Definition of 'GetCredentialIdentifiers' message-->
	<wsdl:message name="GetCredentialIdentifiersRequest">
		<wsdl:part name="parameters" element="tcr:GetCredentialIdentifiers"/>
	</wsdl:message>
	<wsdl:message name="GetCredentialIdentifiersResponse">
		<wsdl:part name="parameters" element="tcr:GetCredentialIdentifiersResponse"/>
	</wsdl:message>
	<!--===============================-->
	<!--Definition of 'SetCredentialIdentifier' message-->
	<wsdl:message name="SetCredentialIdentifierRequest">
		<wsdl:part name="parameters" element="tcr:SetCredentialIdentifier"/>
	</wsdl:message>
	<wsdl:message name="SetCredentialIdentifierResponse">
		<wsdl:part name="parameters" element="tcr:SetCredentialIdentifierResponse"/>
	</wsdl:message>
	<!--===============================-->
	<!--Definition of 'DeleteCredentialIdentifier' message-->
	<wsdl:message name="DeleteCredentialIdentifierRequest">
		<wsdl:part name="parameters" element="tcr:DeleteCredentialIdentifier"/>
	</wsdl:message>
	<wsdl:message name="DeleteCredentialIdentifierResponse">
		<wsdl:part name="parameters" element="tcr:DeleteCredentialIdentifierResponse"/>
	</wsdl:message>
	<!--===============================-->
	<!--Definition of 'GetCredentialAccessProfiles' message-->
	<wsdl:message name="GetCredentialAccessProfilesRequest">
		<wsdl:part name="parameters" element="tcr:GetCredentialAccessProfiles"/>
	</wsdl:message>
	<wsdl:message name="GetCredentialAccessProfilesResponse">
		<wsdl:part name="parameters" element="tcr:GetCredentialAccessProfilesResponse"/>
	</wsdl:message>
	<!--===============================-->
	<!--Definition of 'SetCredentialAccessProfiles' message-->
	<wsdl:message name="SetCredentialAccessProfilesRequest">
		<wsdl:part name="parameters" element="tcr:SetCredentialAccessProfiles"/>
	</wsdl:message>
	<wsdl:message name="SetCredentialAccessProfilesResponse">
		<wsdl:part name="parameters" element="tcr:SetCredentialAccessProfilesResponse"/>
	</wsdl:message>
	<!--===============================-->
	<!--Definition of 'DeleteCredentialAccessProfiles' message-->
	<wsdl:message name="DeleteCredentialAccessProfilesRequest">
		<wsdl:part name="parameters" element="tcr:DeleteCredentialAccessProfiles"/>
	</wsdl:message>
	<wsdl:message name="DeleteCredentialAccessProfilesResponse">
		<wsdl:part name="parameters" element="tcr:DeleteCredentialAccessProfilesResponse"/>
	</wsdl:message>
	<!--===============================-->
	<wsdl:portType name="CredentialPort">
		<wsdl:operation name="GetServiceCapabilities">
			<wsdl:documentation>This operation returns the capabilities of the credential service.</wsdl:documentation>
			<wsdl:input message="tcr:GetServiceCapabilitiesRequest"/>
			<wsdl:output message="tcr:GetServiceCapabilitiesResponse"/>
		</wsdl:operation>
		<wsdl:operation name="GetSupportedFormatTypes">
			<wsdl:documentation>
				This method returns all the supported format types of a specified identifier type that is supported by
				the device.
			</wsdl:documentation>
			<wsdl:input message="tcr:GetSupportedFormatTypesRequest"/>
			<wsdl:output message="tcr:GetSupportedFormatTypesResponse"/>
		</wsdl:operation>
		<wsdl:operation name="GetCredentialInfo">
			<wsdl:documentation>
				This method returns a list of credential info items matching the given tokens. Only found credentials
				shall be returned i.e., the returned number of elements can differ from the requested number of
				elements.
				The device shall ignore tokens it cannot resolve and may return an empty list if there are no
				credentials matching the specified token. If the number of requested items are greater than MaxLimit, a
				TooManyItems fault shall be returned.
			</wsdl:documentation>
			<wsdl:input message="tcr:GetCredentialInfoRequest"/>
			<wsdl:output message="tcr:GetCredentialInfoResponse"/>
		</wsdl:operation>
		<wsdl:operation name="GetCredentialInfoList">
			<wsdl:documentation>
				This operation requests a list of all credential info items provided by the device.
				A call to this method shall return a StartReference when not all data is returned and more data is
				available. The reference shall be valid for retrieving the next set of data. Please refer section 4.8.3
				in [Access Control Service Specification] for more details.
				The number of items returned shall not be greater than the Limit parameter.
			</wsdl:documentation>
			<wsdl:input message="tcr:GetCredentialInfoListRequest"/>
			<wsdl:output message="tcr:GetCredentialInfoListResponse"/>
		</wsdl:operation>
		<wsdl:operation name="GetCredentials">
			<wsdl:documentation>
				This operation returns the specified credential items matching the given tokens.
				The device shall ignore tokens it cannot resolve and shall return an empty list if there are no items
				matching specified tokens. The device shall not return a fault in this case.
				If the number of requested items is greater than MaxLimit, a TooManyItems fault shall be returned.
			</wsdl:documentation>
			<wsdl:input message="tcr:GetCredentialsRequest"/>
			<wsdl:output message="tcr:GetCredentialsResponse"/>
		</wsdl:operation>
		<wsdl:operation name="GetCredentialList">
			<wsdl:documentation>
				This operation requests a list of all credential items provided by the device.
				A call to this method shall return a StartReference when not all data is returned and more data is
				available. The reference shall be valid for retrieving the next set of data. Please refer section 4.8.3
				in [Access Control Service Specification] for more details. The number of items returned shall not be
				greater the Limit parameter.
			</wsdl:documentation>
			<wsdl:input message="tcr:GetCredentialListRequest"/>
			<wsdl:output message="tcr:GetCredentialListResponse"/>
		</wsdl:operation>
		<wsdl:operation name="CreateCredential">
			<wsdl:documentation>
				This operation creates a credential. A call to this method takes a credential structure and a credential
				state structure as input parameters. The credential state can be created in disabled or enabled state.
				The token field of the credential shall be empty, the device shall allocate a token for the credential.
				The allocated token shall be returned in the response. If the client sends any value in the token field,
				the device shall return InvalidArgVal as generic fault code.
			</wsdl:documentation>
			<wsdl:input message="tcr:CreateCredentialRequest"/>
			<wsdl:output message="tcr:CreateCredentialResponse"/>
		</wsdl:operation>
		<wsdl:operation name="ModifyCredential">
			<wsdl:documentation>
				This operation modifies the specified credential. When an existing credential is modified, the state is
				not modified explicitly. The only way for a client to change the state of a credential is to explicitly
				call the EnableCredential, DisableCredential or ResetAntipassback command.
				All existing credential identifiers and credential access profiles are removed and replaced with the
				specified entities.
			</wsdl:documentation>
			<wsdl:input message="tcr:ModifyCredentialRequest"/>
			<wsdl:output message="tcr:ModifyCredentialResponse"/>
		</wsdl:operation>
		<wsdl:operation name="DeleteCredential">
			<wsdl:documentation>
				This method deletes the specified credential.
				If it is referred to by another entity some devices may not be able to delete the credential, and
				consequently a ReferenceInUse fault shall be generated.
			</wsdl:documentation>
			<wsdl:input message="tcr:DeleteCredentialRequest"/>
			<wsdl:output message="tcr:DeleteCredentialResponse"/>
		</wsdl:operation>
		<wsdl:operation name="GetCredentialState">
			<wsdl:documentation>
				This method returns the state for the specified credential.
				If the capability ResetAntipassbackSupported is set to true, then the device shall supply the
				anti-passback state in the returned credential state structure.
			</wsdl:documentation>
			<wsdl:input message="tcr:GetCredentialStateRequest"/>
			<wsdl:output message="tcr:GetCredentialStateResponse"/>
		</wsdl:operation>
		<wsdl:operation name="EnableCredential">
			<wsdl:documentation>
				This method is used to enable a credential.
			</wsdl:documentation>
			<wsdl:input message="tcr:EnableCredentialRequest"/>
			<wsdl:output message="tcr:EnableCredentialResponse"/>
		</wsdl:operation>
		<wsdl:operation name="DisableCredential">
			<wsdl:documentation>
				This method is used to disable a credential.
			</wsdl:documentation>
			<wsdl:input message="tcr:DisableCredentialRequest"/>
			<wsdl:output message="tcr:DisableCredentialResponse"/>
		</wsdl:operation>
		<wsdl:operation name="ResetAntipassbackViolation">
			<wsdl:documentation>
				This method is used to reset anti-passback violations for a specified credential.
			</wsdl:documentation>
			<wsdl:input message="tcr:ResetAntipassbackViolationRequest"/>
			<wsdl:output message="tcr:ResetAntipassbackViolationResponse"/>
		</wsdl:operation>
		<wsdl:operation name="GetCredentialIdentifiers">
			<wsdl:documentation>
				This method returns all the credential identifiers for a credential.
			</wsdl:documentation>
			<wsdl:input message="tcr:GetCredentialIdentifiersRequest"/>
			<wsdl:output message="tcr:GetCredentialIdentifiersResponse"/>
		</wsdl:operation>
		<wsdl:operation name="SetCredentialIdentifier">
			<wsdl:documentation>
				This operation creates or updates a credential identifier for a credential.
				If the type of specified credential identifier already exists, the current credential identifier of that
				type is replaced. Otherwise the credential identifier is added.
			</wsdl:documentation>
			<wsdl:input message="tcr:SetCredentialIdentifierRequest"/>
			<wsdl:output message="tcr:SetCredentialIdentifierResponse"/>
		</wsdl:operation>
		<wsdl:operation name="DeleteCredentialIdentifier">
			<wsdl:documentation>
				This method deletes all the identifier values for the specified type. However, if the identifier type
				name doesn’t exist in the device, it will be silently ignored without any response.
			</wsdl:documentation>
			<wsdl:input message="tcr:DeleteCredentialIdentifierRequest"/>
			<wsdl:output message="tcr:DeleteCredentialIdentifierResponse"/>
		</wsdl:operation>
		<wsdl:operation name="GetCredentialAccessProfiles">
			<wsdl:documentation>
				This method returns all the credential access profiles for a credential.
			</wsdl:documentation>
			<wsdl:input message="tcr:GetCredentialAccessProfilesRequest"/>
			<wsdl:output message="tcr:GetCredentialAccessProfilesResponse"/>
		</wsdl:operation>
		<wsdl:operation name="SetCredentialAccessProfiles">
			<wsdl:documentation>
				This operation add or updates the credential access profiles for a credential.
				The device shall update the credential access profile if the access profile token in the specified
				credential access profile matches. Otherwise the credential access profile is added.
			</wsdl:documentation>
			<wsdl:input message="tcr:SetCredentialAccessProfilesRequest"/>
			<wsdl:output message="tcr:SetCredentialAccessProfilesResponse"/>
		</wsdl:operation>
		<wsdl:operation name="DeleteCredentialAccessProfiles">
			<wsdl:documentation>
				This method deletes credential access profiles for the specified credential token.
				However, if no matching credential access profiles are found, the corresponding access profile tokens
				are silently ignored without any response.
			</wsdl:documentation>
			<wsdl:input message="tcr:DeleteCredentialAccessProfilesRequest"/>
			<wsdl:output message="tcr:DeleteCredentialAccessProfilesResponse"/>
		</wsdl:operation>
	</wsdl:portType>
	<!--Protocol & data format for the operations and messages for the port type 'credentialPort'-->
	<wsdl:binding name="CredentialBinding" type="tcr:CredentialPort">
		<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
		<wsdl:operation name="GetServiceCapabilities">
			<soap:operation soapAction="http://www.onvif.org/ver10/credential/wsdl/GetServiceCapabilities"/>
			<wsdl:input>
				<soap:body use="literal"/>
			</wsdl:input>
			<wsdl:output>
				<soap:body use="literal"/>
			</wsdl:output>
		</wsdl:operation>
		<wsdl:operation name="GetSupportedFormatTypes">
			<soap:operation soapAction="http://www.onvif.org/ver10/credential/wsdl/GetSupportedFormatTypes"/>
			<wsdl:input>
				<soap:body use="literal"/>
			</wsdl:input>
			<wsdl:output>
				<soap:body use="literal"/>
			</wsdl:output>
		</wsdl:operation>
		<wsdl:operation name="GetCredentialInfo">
			<soap:operation soapAction="http://www.onvif.org/ver10/credential/wsdl/GetCredentialInfo"/>
			<wsdl:input>
				<soap:body use="literal"/>
			</wsdl:input>
			<wsdl:output>
				<soap:body use="literal"/>
			</wsdl:output>
		</wsdl:operation>
		<wsdl:operation name="GetCredentialInfoList">
			<soap:operation soapAction="http://www.onvif.org/ver10/credential/wsdl/GetCredentialInfoList"/>
			<wsdl:input>
				<soap:body use="literal"/>
			</wsdl:input>
			<wsdl:output>
				<soap:body use="literal"/>
			</wsdl:output>
		</wsdl:operation>
		<wsdl:operation name="GetCredentials">
			<soap:operation soapAction="http://www.onvif.org/ver10/credential/wsdl/GetCredentials"/>
			<wsdl:input>
				<soap:body use="literal"/>
			</wsdl:input>
			<wsdl:output>
				<soap:body use="literal"/>
			</wsdl:output>
		</wsdl:operation>
		<wsdl:operation name="GetCredentialList">
			<soap:operation soapAction="http://www.onvif.org/ver10/credential/wsdl/GetCredentialList"/>
			<wsdl:input>
				<soap:body use="literal"/>
			</wsdl:input>
			<wsdl:output>
				<soap:body use="literal"/>
			</wsdl:output>
		</wsdl:operation>
		<wsdl:operation name="CreateCredential">
			<soap:operation soapAction="http://www.onvif.org/ver10/credential/wsdl/CreateCredential"/>
			<wsdl:input>
				<soap:body use="literal"/>
			</wsdl:input>
			<wsdl:output>
				<soap:body use="literal"/>
			</wsdl:output>
		</wsdl:operation>
		<wsdl:operation name="ModifyCredential">
			<soap:operation soapAction="http://www.onvif.org/ver10/credential/wsdl/ModifyCredential"/>
			<wsdl:input>
				<soap:body use="literal"/>
			</wsdl:input>
			<wsdl:output>
				<soap:body use="literal"/>
			</wsdl:output>
		</wsdl:operation>
		<wsdl:operation name="DeleteCredential">
			<soap:operation soapAction="http://www.onvif.org/ver10/credential/wsdl/DeleteCredential"/>
			<wsdl:input>
				<soap:body use="literal"/>
			</wsdl:input>
			<wsdl:output>
				<soap:body use="literal"/>
			</wsdl:output>
		</wsdl:operation>
		<wsdl:operation name="GetCredentialState">
			<soap:operation soapAction="http://www.onvif.org/ver10/credential/wsdl/GetCredentialState"/>
			<wsdl:input>
				<soap:body use="literal"/>
			</wsdl:input>
			<wsdl:output>
				<soap:body use="literal"/>
			</wsdl:output>
		</wsdl:operation>
		<wsdl:operation name="EnableCredential">
			<soap:operation soapAction="http://www.onvif.org/ver10/credential/wsdl/EnableCredential"/>
			<wsdl:input>
				<soap:body use="literal"/>
			</wsdl:input>
			<wsdl:output>
				<soap:body use="literal"/>
			</wsdl:output>
		</wsdl:operation>
		<wsdl:operation name="DisableCredential">
			<soap:operation soapAction="http://www.onvif.org/ver10/credential/wsdl/DisableCredential"/>
			<wsdl:input>
				<soap:body use="literal"/>
			</wsdl:input>
			<wsdl:output>
				<soap:body use="literal"/>
			</wsdl:output>
		</wsdl:operation>
		<wsdl:operation name="ResetAntipassbackViolation">
			<soap:operation soapAction="http://www.onvif.org/ver10/credential/wsdl/ResetAntipassbackViolation"/>
			<wsdl:input>
				<soap:body use="literal"/>
			</wsdl:input>
			<wsdl:output>
				<soap:body use="literal"/>
			</wsdl:output>
		</wsdl:operation>
		<wsdl:operation name="GetCredentialIdentifiers">
			<soap:operation soapAction="http://www.onvif.org/ver10/credential/wsdl/GetCredentialIdentifiers"/>
			<wsdl:input>
				<soap:body use="literal"/>
			</wsdl:input>
			<wsdl:output>
				<soap:body use="literal"/>
			</wsdl:output>
		</wsdl:operation>
		<wsdl:operation name="SetCredentialIdentifier">
			<soap:operation soapAction="http://www.onvif.org/ver10/credential/wsdl/SetCredentialIdentifier"/>
			<wsdl:input>
				<soap:body use="literal"/>
			</wsdl:input>
			<wsdl:output>
				<soap:body use="literal"/>
			</wsdl:output>
		</wsdl:operation>
		<wsdl:operation name="DeleteCredentialIdentifier">
			<soap:operation soapAction="http://www.onvif.org/ver10/credential/wsdl/DeleteCredentialIdentifier"/>
			<wsdl:input>
				<soap:body use="literal"/>
			</wsdl:input>
			<wsdl:output>
				<soap:body use="literal"/>
			</wsdl:output>
		</wsdl:operation>
		<wsdl:operation name="GetCredentialAccessProfiles">
			<soap:operation soapAction="http://www.onvif.org/ver10/credential/wsdl/GetCredentialAccessProfiles"/>
			<wsdl:input>
				<soap:body use="literal"/>
			</wsdl:input>
			<wsdl:output>
				<soap:body use="literal"/>
			</wsdl:output>
		</wsdl:operation>
		<wsdl:operation name="SetCredentialAccessProfiles">
			<soap:operation soapAction="http://www.onvif.org/ver10/credential/wsdl/SetCredentialAccessProfiles"/>
			<wsdl:input>
				<soap:body use="literal"/>
			</wsdl:input>
			<wsdl:output>
				<soap:body use="literal"/>
			</wsdl:output>
		</wsdl:operation>
		<wsdl:operation name="DeleteCredentialAccessProfiles">
			<soap:operation soapAction="http://www.onvif.org/ver10/credential/wsdl/DeleteCredentialAccessProfiles"/>
			<wsdl:input>
				<soap:body use="literal"/>
			</wsdl:input>
			<wsdl:output>
				<soap:body use="literal"/>
			</wsdl:output>
		</wsdl:operation>
	</wsdl:binding>
</wsdl:definitions>
