6 Appendix A: Full XML Schema

For ease of implementation, the following is the full XML schema (XSD) for this protocol.

 <?xml version="1.0" encoding="utf-8"?>
 <!-- Copyright (c) Microsoft Corporation. All Rights Reserved. -->
   <xs:schema targetNamespace="http://schemas.microsoft.com/otpcep/1.0/protocol"
       elementFormDefault="qualified"
       xmlns="http://schemas.microsoft.com/otpcep/1.0/protocol"
       xmlns:otpcep="http://schemas.microsoft.com/otpcep/1.0/protocol"
       xmlns:xs="http://www.w3.org/2001/XMLSchema">
  
     <xs:import namespace="http://schemas.microsoft.com/otpcep/1.0/common" />
  
     <xs:simpleType name="SignCertStatusCode">
       <xs:restriction base="xs:string">
         <xs:enumeration value="Success"/>
         <xs:enumeration value="AuthenticationError" />
         <xs:enumeration value="ChallengeResponseRequired" />
         <xs:enumeration value="OtherError" />
       </xs:restriction>
     </xs:simpleType>
  
     <xs:simpleType name="CertificateRequestBase64Binary">
       <xs:restriction base="xs:base64Binary">
       </xs:restriction>
     </xs:simpleType>
  
     <xs:simpleType name="CertificateBase64Binary">
       <xs:restriction base="xs:base64Binary">
       </xs:restriction>
     </xs:simpleType>
  
     <xs:complexType name="SignCertRequest">
       <xs:attribute name="username" type="xs:string" use="required" />
       <xs:attribute name="oneTimePassword" type="xs:string" use="required" />
       <xs:attribute name="certRequest" type="otpcep:CertificateRequestBase64Binary" use="required" />
     </xs:complexType>
  
     <xs:complexType name="SignCertResponse">
       <xs:sequence>
         <xs:element name="IssuingCA" type="xs:anyURI" minOccurs="0" maxOccurs="unbounded" />
       </xs:sequence>
       <xs:attribute name="statusCode" type="otpcep:SignCertStatusCode" use="required" />
       <xs:attribute name="SignedCertRequest" type="otpcep:CertificateBase64Binary" use="optional" />
     </xs:complexType>
  
     <xs:simpleType name="SignedCertBase64Binary">
       <xs:restriction base="xs:base64Binary">
       </xs:restriction>
     </xs:simpleType>
  
     <xs:element name="signCertRequest" type="otpcep:SignCertRequest" />
     <xs:element name="signCertResponse" type="otpcep:SignCertResponse" />
   </xs:schema>