<?xml version="1.0" encoding="UTF-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="BusinessObjectHelper" type="BusinessObjectHelperType"/>
  <xs:complexType name="MethodType">
    <xs:simpleContent>
      <xs:extension base="xs:string">
        <xs:attribute type="xs:string" name="name" use="optional"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="SimplePropertyType" mixed="true">
    <xs:attribute type="xs:string" name="name" use="required"/>
    <xs:attribute type="xs:string" name="type" use="required"/>
  </xs:complexType>
  <xs:complexType name="MethodsType">
    <xs:sequence>
      <xs:element type="MethodType" name="Method" maxOccurs="unbounded" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="BusinessObjectHelperType">
    <xs:choice  maxOccurs="unbounded" minOccurs="0">
      <xs:element type="SimplePropertiesType" name="SimpleProperties"/>
      <xs:element type="MethodsType" name="Methods"/>
    </xs:choice>
    <xs:attribute name="name" use="required">
      <xs:simpleType>
         <xs:restriction base="xs:string">
            <xs:pattern value="BoHelper.+"/>
         </xs:restriction>
      </xs:simpleType> 
      </xs:attribute>
    <xs:attribute type="xs:string" name="baseClass"/>
    <xs:attribute type="xs:string" name="schemaVersion"/>
    <xs:attribute type="xs:string" name="generateCreateMethod"/>
  </xs:complexType>
  <xs:complexType name="SimplePropertiesType">
    <xs:sequence>
      <xs:element type="SimplePropertyType" name="SimpleProperty" maxOccurs="unbounded" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
</xs:schema>
