OTP Server XML schema

otp.xsd
<?xml version="1.0" encoding="utf-8"?>
<xs:schema targetNamespace="http://schema.ubisecure.com/ubilogin/otp"
    elementFormDefault="qualified"
    attributeFormDefault="unqualified"
    xmlns="http://schema.ubisecure.com/ubilogin/otp"
    xmlns:otp="http://schema.ubisecure.com/ubilogin/otp"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
> 
 
  <xs:element name="batch-response" type="batch-response-type"/>
 
  <xs:element name="otp-list" type="otp-list-type"/>
 
  <xs:element name="user-info" type="user-info-type"/>
 
  <xs:element name="error" type="error-type"/>
 
  <xs:complexType name="otp-list-type">
    <xs:sequence>
      <xs:element name="status" type="status-type" minOccurs="0" maxOccurs="1"/>
      <xs:element name="sequence" type="sequence-type" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attribute name="id" use="required" type="xs:string"/>
    <xs:attribute name="expires" use="optional" type="xs:string"/>
    <xs:attribute name="size" use="optional" type="xs:string"/>
  </xs:complexType>
 
  <xs:complexType name="batch-response-type">
    <xs:sequence>
      <xs:element ref="otp-list" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attribute name="batch-size" use="optional" type="xs:integer"/>
  </xs:complexType>
 
  <xs:complexType name="status-type">
    <xs:sequence>
      <xs:element ref="user-info" minOccurs="0"/>
    </xs:sequence>
    <xs:attribute name="value" use="optional" type="xs:string"/>
    <xs:attribute name="index" use="optional" type="xs:string"/>
    <xs:attribute name="remaining" use="optional" type="xs:string"/>
  </xs:complexType>
 
  <xs:complexType name="sequence-type">
    <xs:sequence>
      <xs:element name="otp" type="otp-type" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attribute name="name" type="xs:string" use="optional"/>
  </xs:complexType>
 
  <xs:complexType name="user-info-type">
    <xs:sequence>
      <xs:element ref="otp-list" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
    <xs:attribute name="uniqueID" use="required" type="xs:string"/>
  </xs:complexType>
 
  <xs:complexType name="otp-type">
    <xs:simpleContent>
      <xs:extension base="xs:string">
        <xs:attribute name="index" use="required" type="xs:string"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
 
  <xs:complexType name="error-type">
    <xs:simpleContent>
      <xs:extension base="xs:string">
        <xs:attribute name="status" use="optional" type="xs:string"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
 
</xs:schema>