<?xml version="1.0" encoding="UTF-8"?>
<!-- IBM_PROLOG_BEGIN_TAG                                                   -->
<!-- This is an automatically generated prolog.                             -->
<!--                                                                        -->
<!-- 61haes_r714 src/43haes/usr/sbin/cluster/utilities/udrt.xsd 1.1         -->
<!--                                                                        -->
<!-- Licensed Materials - Property of IBM                                   -->
<!--                                                                        -->
<!-- COPYRIGHT International Business Machines Corp. 2010                   -->
<!-- All Rights Reserved                                                    -->
<!--                                                                        -->
<!-- US Government Users Restricted Rights - Use, duplication or            -->
<!-- disclosure restricted by GSA ADP Schedule Contract with IBM Corp.      -->
<!--                                                                        -->
<!-- IBM_PROLOG_END_TAG                                                     -->
<!-- @(#)22	1.1  src/43haes/usr/sbin/cluster/utilities/udrt.xsd, hacmp, 61haes_r714 11/28/11 15:10:07 -->
<xs:schema xmlns:xs='http://www.w3.org/2001/XMLSchema'>

 <xs:element name="udrestypes_and_resources">
  <xs:complexType>
   <xs:sequence>
     <xs:element ref="udrestypes" minOccurs='0' maxOccurs='1' />
     <xs:element ref="udresources" minOccurs='0' maxOccurs='1' />
   </xs:sequence>
  <xs:attribute name="version"  type="xs:string" fixed="1.0" />
 </xs:complexType>
</xs:element>

 <xs:element name="udrestypes">
  <xs:complexType>
   <xs:sequence>
     <xs:element ref="udrestype" minOccurs='0' maxOccurs='1' />
   </xs:sequence>
 </xs:complexType>
</xs:element>

 <xs:element name="udrestype">
  <xs:complexType>
   <xs:sequence>
     <xs:element name="PROCESS_AT_AFTER" type='NameType' minOccurs='1' maxOccurs='1'/>
     <xs:element name="START_METHOD" type='filePathType' minOccurs='1' maxOccurs='1'/>
     <xs:element name="STOP_METHOD" type='filePathType' minOccurs='1' maxOccurs='1'/>
     <xs:element name="VERIFY_METHOD" type='filePathType' minOccurs='1' maxOccurs='1'/>
     <xs:element name="VERIFY_TYPE" type='VerifyType' minOccurs='1' maxOccurs='1'/>
     <xs:element name="MONITOR_METHOD" type='filePathType' minOccurs='1' maxOccurs='1'/>
     <xs:element name="RESTART_METHOD" type='filePathType' minOccurs='1' maxOccurs='1'/>
     <xs:element name="CLEANUP_METHOD" type='filePathType' minOccurs='1' maxOccurs='1'/>
     <xs:element name="FAILURE_NOTIFY_METHOD" type='filePathType' minOccurs='1' maxOccurs='1'/>
     <xs:element name="REQUIRED_ATTRIBUTES" type='AttrListType' minOccurs='1' maxOccurs='1'/>
     <xs:element name="OPTIONAL_ATTRIBUTES" type='AttrListType' minOccurs='1' maxOccurs='1'/>
     <xs:element name="DESCRIPTION" type='DescriptionType' minOccurs='1' maxOccurs='1'/>
   </xs:sequence>
  <xs:attribute name="udrtname" type="NameType" use="required"  />
  </xs:complexType>
 </xs:element>


 <xs:element name="udresources">
  <xs:complexType>
   <xs:sequence>
     <xs:element ref="udresource" minOccurs='0' maxOccurs='128' />
   </xs:sequence>
 </xs:complexType>
</xs:element>

 <xs:element name="udresource">
  <xs:complexType>
   <xs:sequence>
	 <xs:element name="type" minOccurs='1' maxOccurs='1' />
     <xs:element ref="attributes" minOccurs='0' maxOccurs='1' />
   </xs:sequence>
  <xs:attribute name="udrname" type="NameType"  use="required"/>
 </xs:complexType>
</xs:element>

 <xs:element name="attributes">
  <xs:complexType>
   <xs:sequence>
     <xs:element ref="attribute" minOccurs='0' maxOccurs='128' />
   </xs:sequence>
 </xs:complexType>
</xs:element>

 <xs:element name="attribute">
  <xs:complexType>
   <xs:sequence>
     <xs:element name="name" type="NameType" minOccurs='1' maxOccurs='1'/>
     <xs:element name="value" type="AttrValueType" minOccurs='1' maxOccurs='1'/>
   </xs:sequence>
  </xs:complexType>
 </xs:element>



<!-- Data types defination -->

  <xs:simpleType name="NameType">
    <xs:restriction base="xs:string">
    <xs:pattern value="([a-zA-Z])([a-zA-Z0-9_]){0,63}"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="AttrListType">
    <xs:restriction base="xs:string">
    <xs:pattern value="([a-zA-Z])([a-zA-Z0-9_,]){0,63}"/>
    <xs:pattern value=""/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="AttrValueType">
    <xs:restriction base="xs:string">
    <xs:pattern value="([a-zA-Z0-9_]){0,63}"/>
    <xs:pattern value=""/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="filePathType">
    <xs:restriction base="xs:string">
    <xs:pattern value="(/([a-zA-Z0-9_\.]){1,}){1,}"/>
    <xs:pattern value=""/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="DescriptionType">
    <xs:restriction base="xs:string">
    <xs:pattern value="([a-zA-Z])([a-zA-Z0-9_\ ]){0,128}"/>
    <xs:pattern value=""/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="VerifyType">
    <xs:restriction base="xs:string">
      <xs:pattern value="0|1"/>
    </xs:restriction>
  </xs:simpleType>

</xs:schema>