<?xml version="1.0" encoding="UTF-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
	<xs:element name="Plugin" type="PluginType"/>

	<xs:complexType name="PluginType">
		<xs:all>
			<xs:element name="UserExits" type="UserExitsType" minOccurs="0" maxOccurs="1"/>
            <xs:element name="Code" type="CodeType" minOccurs="1" maxOccurs="1"/>
		</xs:all>
        <xs:attribute type="xs:string" name="name" use="required"/>
	</xs:complexType>

    <xs:complexType name="UserExitsType">
		<xs:choice  maxOccurs="unbounded" minOccurs="0">
			<xs:element name="UserExit" type="UserExitType"/>
		</xs:choice>
	</xs:complexType>
	<xs:complexType name="UserExitType">
        <xs:choice  maxOccurs="unbounded" minOccurs="0">
			<xs:element name="Parameters" type="ParametersType"/>
            <xs:element name="Return" type="ReturnType" maxOccurs="1" />
		</xs:choice>
		<xs:attribute type="xs:string" name="name" use="required"/>
		<xs:attribute type="xs:boolean" name="asynchronous" use="required"/>
	</xs:complexType>
    <xs:complexType name="ParametersType">
		<xs:choice  maxOccurs="unbounded" minOccurs="0">
			<xs:element name="Parameter" type="ParameterType"/>
		</xs:choice>
	</xs:complexType>
	<xs:complexType name="ParameterType">
		<xs:attribute type="xs:string" name="name" use="required"/>
		<xs:attribute type="xs:string" name="description" use="required"/>    
		<xs:attribute type="xs:string" name="type" use="required"/>
	</xs:complexType>
	<xs:complexType name="ReturnType">
		<xs:attribute type="xs:string" name="name" use="required"/>
		<xs:attribute type="xs:string" name="description" use="required"/>    
		<xs:attribute type="xs:string" name="value" use="required"/>
	</xs:complexType>

    <xs:complexType name="CodeType" >
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute type="xs:string" name="language" use="required" fixed="text/javascript"/>
            </xs:extension>
        </xs:simpleContent>
	</xs:complexType>
</xs:schema>