<xsd:schema xmlns:xsd='http://www.w3.org/2001/XMLSchema'>

 <xsd:element name='role'>
  <xsd:complexType>
   <xsd:attribute name='id' type='xsd:ID' use='required'/>
   <xsd:attribute name='type' type='xsd:string' default=''/>
   <xsd:attribute name='windowsGroupName' type='xsd:string' default=''/>
   <xsd:attribute name='comPlusRoleName' type='xsd:string' default=''/>
   <xsd:attribute name='name' type='xsd:string' default=''/>
   <xsd:attribute name='description' type='xsd:string' default=''/>
  </xsd:complexType>
 </xsd:element>

 <xsd:element name='state'>
  <xsd:complexType>
   <xsd:attribute name='id' type='xsd:ID' use='required'/>
   <xsd:attribute name='name' type='xsd:string' default=''/>
   <xsd:attribute name='description' type='xsd:string' default=''/>
  </xsd:complexType>
 </xsd:element>

 <xsd:element name='action'>
  <xsd:complexType>
   <xsd:attribute name='id' type='xsd:ID' use='required'/>
   <xsd:attribute name='name' type='xsd:string' default=''/>
   <xsd:attribute name='description' type='xsd:string' default=''/>
  </xsd:complexType>
 </xsd:element>

 <xsd:element name='property'>
  <xsd:complexType>
   <xsd:attribute name='id' type='xsd:ID' use='required'/>
   <xsd:attribute name='name' type='xsd:string' default=''/>
   <xsd:attribute name='description' type='xsd:string' default=''/>
  </xsd:complexType>
 </xsd:element>

 <xsd:element name='actionRule'>
  <xsd:complexType>
   <xsd:attribute name='action' type='xsd:string' use='required'/>
   <xsd:attribute name='role' type='xsd:string' use='required'/>
   <xsd:attribute name='state' type='xsd:string' use='required'/>
   <xsd:attribute name='targetState' type='xsd:string' use='required'/>
   <xsd:attribute name='isEnabled' type='xsd:boolean' default='true'/>
   <xsd:attribute name="isVisible" type="xsd:boolean" default="true"/>
  </xsd:complexType>
 </xsd:element>

 <xsd:element name='propertyRule'>
  <xsd:complexType>
   <xsd:attribute name='property' type='xsd:string' use='required'/>
   <xsd:attribute name='role' type='xsd:string' use='required'/>
   <xsd:attribute name='state' type='xsd:string' use='required'/>
   <xsd:attribute name='isEnabled' type='xsd:boolean' default='true'/>
   <xsd:attribute name='isVisible' type='xsd:boolean' default='true'/>
  </xsd:complexType>
 </xsd:element>

 <xsd:element name='authorizationPolicy'>
  <xsd:complexType>
   <xsd:sequence>
    <xsd:sequence maxOccurs='unbounded' minOccurs="0">
     <xsd:element ref='role'/>
    </xsd:sequence>
    <xsd:sequence maxOccurs='unbounded' minOccurs="0">
     <xsd:element ref='state'/>
    </xsd:sequence>
    <xsd:sequence maxOccurs='unbounded' minOccurs="0">
     <xsd:element ref='action'/>
    </xsd:sequence>
    <xsd:sequence maxOccurs='unbounded' minOccurs="0">
     <xsd:element ref='property'/>
    </xsd:sequence>
    <xsd:sequence maxOccurs='unbounded' minOccurs="0">
     <xsd:element ref='actionRule'/>
    </xsd:sequence>
    <xsd:sequence maxOccurs="unbounded" minOccurs="0">
     <xsd:element ref="propertyRule"/>
    </xsd:sequence>
   </xsd:sequence>
   <xsd:attribute name="id" type="xsd:ID" use="optional"/>
   <xsd:attribute name="currentState" type="xsd:string" use="optional"/>
  </xsd:complexType>
 </xsd:element>
</xsd:schema>
