<?xml version="1.0" encoding="UTF-8"?>

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
   <xs:element name="Openfire">
      <xs:complexType>
         <xs:sequence>
            <xs:element ref="User" maxOccurs="unbounded" />
         </xs:sequence>
      </xs:complexType>
   </xs:element>
   <xs:element name="User">
      <xs:complexType>
         <xs:all>
            <xs:element ref="Username" use="required" />
            <xs:element ref="Password" use="required" />
            <xs:element ref="Email" />
            <xs:element ref="Name" />
            <xs:element ref="CreationDate" />
            <xs:element ref="ModifiedDate" />
            <xs:element ref="Roster" />
         </xs:all>
      </xs:complexType>
   </xs:element>
   <xs:element name="Username" type="xs:string" />
   <xs:element name="Password" type="xs:string" />
   <xs:element name="Email" type="xs:string" />
   <xs:element name="Name" type="xs:string" />
   <xs:element name="CreationDate" type="jive-date" />
   <xs:element name="ModifiedDate" type="jive-date" />
   <xs:element name="Roster">
      <xs:complexType>
         <xs:sequence>
            <xs:element ref="Item" minOccurs="0" maxOccurs="unbounded" />
         </xs:sequence>
      </xs:complexType>
   </xs:element>
   <xs:element name="Item">
      <xs:complexType>
         <xs:sequence>
            <xs:element ref="Group" maxOccurs="unbounded" />
         </xs:sequence>
         <xs:attribute ref="jid" use="required" />
         <xs:attribute name="askstatus" use="required" />
         <xs:attribute name="recvstatus" use="required" />
         <xs:attribute name="substatus" use="required" />
         <xs:attribute name="name" />
      </xs:complexType>
   </xs:element>
   <xs:element name="Group" type="xs:string" />
   <xs:attribute name="jid" type="xs:string" />
   <xs:attribute name="name" type="xs:string" />
   <xs:attribute name="askstatus">
      <xs:simpleType>
         <xs:restriction base="xs:integer">
            <xs:minInclusive value="-1" />
            <xs:maxInclusive value="3" />
         </xs:restriction>
      </xs:simpleType>
   </xs:attribute>
   <xs:attribute name="recvstatus">
      <xs:simpleType>
         <xs:restriction base="xs:integer">
            <xs:minInclusive value="-1" />
            <xs:maxInclusive value="3" />
         </xs:restriction>
      </xs:simpleType>
   </xs:attribute>
   <xs:attribute name="substatus">
      <xs:simpleType>
         <xs:restriction base="xs:integer">
            <xs:minInclusive value="-1" />
            <xs:maxInclusive value="3" />
         </xs:restriction>
      </xs:simpleType>
   </xs:attribute>
   <xs:simpleType name="jive-date">
      <xs:restriction base="xs:string"></xs:restriction>
   </xs:simpleType>
</xs:schema>