<?xml version="1.0" encoding="ISO-8859-1"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
	<xsd:element name="workflow">
		<xsd:annotation>
			<xsd:documentation>Comment describing your root element</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="action-uri" minOccurs="0" maxOccurs="unbounded"/>
				<xsd:element ref="field" minOccurs="0" maxOccurs="1"/>
				<xsd:element ref="state" minOccurs="0" maxOccurs="unbounded"/>
				<xsd:element ref="transition" minOccurs="0" maxOccurs="unbounded"/>				
			</xsd:sequence>
			<xsd:attribute name="context-variable" type="xsd:string"/>
		</xsd:complexType>
	</xsd:element>
	
	<xsd:element name="action-uri">
		<xsd:complexType>
			<xsd:simpleContent>
				<xsd:extension base="xsd:string">
					<xsd:attribute name="type" type="xsd:string"/>
				</xsd:extension>
			</xsd:simpleContent>		
		</xsd:complexType>
	</xsd:element>
	
	<xsd:element name="field">
		<xsd:complexType>
			<xsd:attribute name="name" type="xsd:string"/>	
		</xsd:complexType>
	</xsd:element>
	
	<xsd:element name="state">
		<xsd:complexType>								
			<xsd:sequence>	
				<xsd:element name="fields-value" minOccurs="0" maxOccurs="unbounded">
					<xsd:complexType>
						<xsd:sequence>	
					 		<xsd:element name="field">
								<xsd:complexType id="field_content">
									<xsd:attribute name="name" type="xsd:string"/>	
									<xsd:attribute name="value" type="xsd:string"/>
								</xsd:complexType>
							</xsd:element>	
						</xsd:sequence>
					</xsd:complexType>
				</xsd:element>		
			</xsd:sequence>
			<xsd:attribute name="id" type="xsd:string"/>			
		</xsd:complexType>
	</xsd:element>

	<xsd:element name="transition">
		<xsd:complexType>
			<xsd:sequence>	
				<xsd:element name="rights" minOccurs="0" maxOccurs="1">
					<xsd:complexType>
						<xsd:sequence>	
		 					<xsd:element name="role" minOccurs="0" maxOccurs="1">
								<xsd:complexType>
									<xsd:attribute name="code" type="xsd:string"/>	
								</xsd:complexType>
							</xsd:element>
							<xsd:element name="field" minOccurs="0" maxOccurs="unbounded">
								<xsd:complexType>
									<xsd:attribute name="name" type="xsd:string"/>	
									<xsd:attribute name="externalfield" type="xsd:string"/>
								</xsd:complexType>
							</xsd:element>
						</xsd:sequence>
					</xsd:complexType>
				</xsd:element>
				<xsd:element name="ui-fields" minOccurs="0" maxOccurs="1">
					<xsd:complexType>
						<xsd:sequence>	
		 					<xsd:element name="mandatory-fields" minOccurs="0" maxOccurs="1">
								<xsd:complexType>
									<xsd:sequence>	
		 								<xsd:element name="field" minOccurs="1" maxOccurs="unbounded">
		 									<xsd:complexType>
												<xsd:attribute name="name" type="xsd:string"/>	
												<xsd:attribute name="type" type="xsd:string"/>	
											</xsd:complexType>	
		 								</xsd:element>
		 							</xsd:sequence>
								</xsd:complexType>
							</xsd:element>
							<xsd:element name="readonly-fields" minOccurs="0" maxOccurs="1">
								<xsd:complexType>
									<xsd:sequence>	
		 								<xsd:element name="field" minOccurs="1" maxOccurs="unbounded">
		 									<xsd:complexType>
												<xsd:attribute name="name" type="xsd:string"/>	
												<xsd:attribute name="type" type="xsd:string"/>	
											</xsd:complexType>	
		 								</xsd:element>
		 							</xsd:sequence>
								</xsd:complexType>
							</xsd:element>
								<xsd:element name="hidden-fields" minOccurs="0" maxOccurs="1">
								<xsd:complexType>
									<xsd:sequence>	
		 								<xsd:element name="field" minOccurs="1" maxOccurs="unbounded">
		 									<xsd:complexType>
												<xsd:attribute name="name" type="xsd:string"/>	
												<xsd:attribute name="type" type="xsd:string"/>	
											</xsd:complexType>	
		 								</xsd:element>
		 							</xsd:sequence>
								</xsd:complexType>
							</xsd:element>
						</xsd:sequence>
					</xsd:complexType>
				</xsd:element> 		
				<xsd:element name="action" minOccurs="0" maxOccurs="unbounded">
					<xsd:complexType>
						<xsd:sequence>	
			 				<xsd:element name="action-uri" minOccurs="0" maxOccurs="unbounded">
								<xsd:complexType>
									<xsd:simpleContent>
										<xsd:extension base="xsd:string">
											<xsd:attribute name="type" type="xsd:string"/>
										</xsd:extension>
									</xsd:simpleContent>			
								</xsd:complexType>
							</xsd:element>
							<xsd:element name="method" minOccurs="0" maxOccurs="1">
								<xsd:complexType>
									<xsd:simpleContent>
										<xsd:extension base="xsd:string">
										</xsd:extension>
									</xsd:simpleContent>			
								</xsd:complexType>
							</xsd:element>
						</xsd:sequence>
						<xsd:attribute name="context-variable" type="xsd:string"/>																	
					</xsd:complexType>			
				</xsd:element>							
			</xsd:sequence>
			<xsd:attribute name="id" type="xsd:string"/>
			<xsd:attribute name="from-state" type="xsd:string"/>
			<xsd:attribute name="to-state" type="xsd:string"/>	
			<xsd:attribute name="label" type="xsd:string"/>
			<xsd:attribute name="label-code" type="xsd:string"/>
			<xsd:attribute name="direct" type="xsd:boolean"/>
		</xsd:complexType>
	</xsd:element>
	
</xsd:schema> 