Back to Summer Batch home page

Appendix A.  Appendix

Job File Format Xml schema

Below is the xml schema to be used to validate the Job configuration files -- see the corresponding section in this document

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" 
	targetNamespace="http://www.summerbatch.com/xmlns" xmlns:sbj="http://www.summerbatch.com/xmlns">
	<xs:annotation>
		<xs:documentation> XSD for Summer batch jobs.</xs:documentation>
	</xs:annotation>
	<xs:complexType name="Job">
		<xs:sequence>
			<xs:element name="listeners" type="sbj:Listeners" minOccurs="0" maxOccurs="1"/>
			<xs:choice minOccurs="0" maxOccurs="unbounded">
				<xs:element name="flow" type="sbj:Flow" />
				<xs:element name="split" type="sbj:Split" />
				<xs:element name="step" type="sbj:Step" />
			</xs:choice>
		</xs:sequence>
		<xs:attribute name="id" use="required" type="xs:ID" />
		<xs:attribute name="restartable" use="optional" type="xs:string" />
	</xs:complexType>
	<xs:element name="job" type="sbj:Job" />
	<xs:complexType name="Listener">
		<xs:attribute name="ref" use="required" type="xs:string" />
	</xs:complexType>
	<xs:complexType name="Split">
		<xs:sequence>
			<xs:element name="flow" type="sbj:Flow" minOccurs="0" maxOccurs="unbounded" />
		</xs:sequence>
		<xs:attribute name="id" use="required" type="xs:ID" />
		<xs:attribute name="next" use="optional" type="xs:string" />
	</xs:complexType>
	<xs:complexType name="Flow">
		<xs:sequence>
			<xs:choice minOccurs="0" maxOccurs="unbounded">
				<xs:element name="flow" type="sbj:Flow" />
				<xs:element name="split" type="sbj:Split" />
				<xs:element name="step" type="sbj:Step" />
			</xs:choice>
			<xs:group ref="sbj:TransitionElements" minOccurs="0" maxOccurs="unbounded" />
		</xs:sequence>
		<xs:attribute name="id" use="required" type="xs:ID" />
		<xs:attribute name="next" use="optional" type="xs:string" />
	</xs:complexType>
	<xs:group name="TransitionElements">
		<xs:choice>
			<xs:element name="end" type="sbj:End" />
			<xs:element name="fail" type="sbj:Fail" />
			<xs:element name="next" type="sbj:Next" />
		</xs:choice>
	</xs:group>
	<xs:complexType name="Fail">
		<xs:attribute name="on" use="required" type="xs:string" />
	</xs:complexType>
	<xs:complexType name="End">
		<xs:attribute name="on" use="required" type="xs:string" />
	</xs:complexType>
	<xs:complexType name="Next">
		<xs:attribute name="on" use="required" type="xs:string" />
		<xs:attribute name="to" use="required" type="xs:string" />
	</xs:complexType>
	<xs:complexType name="Step">
		<xs:sequence>
			<xs:element name="listeners" type="sbj:Listeners" minOccurs="0" maxOccurs="1"/>
			<xs:choice minOccurs="0" maxOccurs="1">
				<xs:element name="batchlet" type="sbj:Batchlet" />
				<xs:element name="chunk" type="sbj:Chunk" />
			</xs:choice>
			<xs:element name="partition" type="sbj:Partition" minOccurs="0" maxOccurs="1" />
			<xs:group ref="sbj:TransitionElements" minOccurs="0" maxOccurs="unbounded" />
		</xs:sequence>
		<xs:attribute name="id" use="required" type="xs:ID" />
		<xs:attribute name="next" use="optional" type="xs:string" />
	</xs:complexType>
	<xs:complexType name="Batchlet">
		<xs:attribute name="ref" use="required" type="xs:string" />
	</xs:complexType>
	<xs:complexType name="Chunk">
		<xs:sequence>
			<xs:element name="reader" type="sbj:ItemReader" />
			<xs:element name="processor" type="sbj:ItemProcessor" minOccurs="0" maxOccurs="1" />
			<xs:element name="writer" type="sbj:ItemWriter" />
		</xs:sequence>
		<xs:attribute name="item-count" use="optional" type="xs:string" />
	</xs:complexType>
	<xs:complexType name="ItemReader">
		<xs:attribute name="ref" use="required" type="xs:string" />
	</xs:complexType>
	<xs:complexType name="ItemProcessor">
		<xs:attribute name="ref" use="required" type="xs:string" />
	</xs:complexType>
	<xs:complexType name="ItemWriter">
		<xs:attribute name="ref" use="required" type="xs:string" />
	</xs:complexType>
	<xs:complexType name="Listeners">
		<xs:sequence>
			<xs:element name="listener" type="sbj:Listener" minOccurs="0" maxOccurs="unbounded" />
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="Partition">
		<xs:sequence>
			<xs:element name="mapper" type="sbj:PartitionMapper" />
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="PartitionMapper">
		<xs:attribute name="ref" use="required" type="xs:string" />
		<xs:attribute name="grid-size" use="optional" type="xs:int" />
	</xs:complexType>
</xs:schema>

		

Back to Summer Batch home page