Schema for ServiceSpecification.xml

The figure below is the schema for ServiceSpecification.xml:


---------------------------------------------------------------------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
	targetNamespace="http:///com/ibm/etools/xmlent/batch/emf/BatchProcessModel.ecore"
	xmlns="http:///com/ibm/etools/xmlent/batch/emf/BatchProcessModel.ecore"
	elementFormDefault="qualified">

	<xsd:complexType name="LanguageStructureSpecType">
		<xsd:attribute name="fileNamePrefix" use="optional">
			<xsd:simpleType>
				<xsd:restriction base="xsd:string">
					<xsd:maxLength value="6" />
				</xsd:restriction>
			</xsd:simpleType>
		</xsd:attribute>
		<xsd:attribute name="overwrite" type="xsd:boolean" use="optional" />
		<xsd:attribute name="suppressGeneration" type="xsd:boolean"
			use="optional" />
		<xsd:attribute name="fileContainer" type="xsd:string"
			use="optional" />
	</xsd:complexType>

	<xsd:complexType name="MessageType">
		<xsd:sequence>
			<xsd:element maxOccurs="1" minOccurs="0" ref="RedefinesArray" />
			<xsd:choice>
				<xsd:element maxOccurs="1" minOccurs="0"
					ref="ItemSelectionArray" />
				<xsd:element maxOccurs="1" minOccurs="0"
					ref="ItemExclusionArray" />
			</xsd:choice>
			<xsd:element maxOccurs="1" minOccurs="0" ref="XMLNamesArray" />
		</xsd:sequence>
		<xsd:attribute name="importDirectory" type="xsd:string"
			use="optional" />
		<xsd:attribute name="importFile" type="xsd:string" use="optional" />
		<xsd:attribute name="name" type="xsd:string" use="optional" />
		<xsd:attribute name="annotationsFile" type="xsd:string"
			use="optional" />
		<xsd:attribute name="commTypesFile" type="xsd:string"
			use="optional" />
		<xsd:attribute name="xmlEleName" type="xsd:string" use="optional" />
		<xsd:attribute name="nativeTypeName" type="xsd:string"
			use="optional" />
		<xsd:attribute name="lowerBound" use="optional"
			type="xsd:nonNegativeInteger" />
		<xsd:attribute name="upperBound" use="optional"
			type="xsd:nonNegativeInteger" />
		<xsd:attribute name="mappingFile" use="optional" type="xsd:string" />			
		<xsd:attribute name="mappingDirectory" use="optional" type="xsd:string" />		
	</xsd:complexType>

	<xsd:complexType name="XsdSpecType">
		<xsd:attribute name="fileName" type="xsd:string" use="optional" />
		<xsd:attribute name="localNamespace" type="xsd:string"
			use="optional" />
		<xsd:attribute name="overwrite" type="xsd:boolean" use="optional" />
		<xsd:attribute name="targetNamespace" type="xsd:string"
			use="optional" />
		<xsd:attribute name="whiteSpace" use="optional">
			<xsd:simpleType>
				<xsd:restriction base="xsd:string">
					<xsd:enumeration value="collapse" />
					<xsd:enumeration value="replace" />
					<xsd:enumeration value="preserve" />
					<xsd:enumeration value="compat" />
				</xsd:restriction>
			</xsd:simpleType>
		</xsd:attribute>
		<xsd:attribute name="xsdElemName" type="xsd:string" use="optional" />
		<xsd:attribute name="xsdNamespace" type="xsd:string"
			use="optional" />
		<xsd:attribute name="xsdPrefix" type="xsd:string" use="optional" />
		<xsd:attribute name="suppressGeneration" type="xsd:boolean"
			use="optional" />
		<xsd:attribute name="fileContainer" type="xsd:string"
			use="optional" />
		<xsd:attribute name="remote" type="xsd:boolean"
			use="optional" />			
	</xsd:complexType>

	<xsd:complexType name="ConverterSpecType">
		<xsd:attribute name="fileName" type="xsd:string" use="optional" />
		<xsd:attribute name="overwrite" type="xsd:boolean" use="optional" />
		<xsd:attribute name="programName" use="optional">
			<xsd:simpleType>
				<xsd:restriction base="xsd:string">
					<xsd:maxLength value="8" />
				</xsd:restriction>
			</xsd:simpleType>
		</xsd:attribute>
		<xsd:attribute name="suppressGeneration" type="xsd:boolean"
			use="optional" />
		<xsd:attribute name="fileContainer" type="xsd:string"
			use="optional" />
		<xsd:attribute name="remote" type="xsd:boolean"
			use="optional" />			
	</xsd:complexType>


	<xsd:element name="ConnectionProperty">
		<xsd:complexType>
			<xsd:attribute name="name" type="xsd:string" use="required" />
			<xsd:attribute name="value" type="xsd:string" use="required" />
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="ConnectionPropertyArray">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element maxOccurs="unbounded" minOccurs="0"
					ref="ConnectionProperty" />
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="CorrelatorSpec">
		<xsd:complexType>
			<xsd:attribute name="fileName" type="xsd:string" use="optional" />
			<xsd:attribute name="fileContainer" type="xsd:string"
				use="optional" />
			<xsd:attribute name="overwrite" type="xsd:boolean" use="optional" />
			<xsd:attribute name="soapAction" type="xsd:string" use="optional" />
			<xsd:attribute name="adapterType" type="xsd:string"
				use="optional" />
			<xsd:attribute name="connectionBundleName" use="optional">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:maxLength value="20" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name="calloutConnBundleName" use="optional">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:maxLength value="20" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name="calloutConnBundleNames" use="optional">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name="socketTimeout" type="xsd:nonNegativeInteger"
				use="optional" />
			<xsd:attribute name="executionTimeout" use="optional">
				<xsd:simpleType>
					<xsd:restriction base="xsd:nonNegativeInteger">
						<xsd:maxInclusive value="3600000" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name="calloutWSTimeout" type="xsd:positiveInteger"
				use="optional" />
			<xsd:attribute name="inboundTPIPEName" type="xsd:string"
				use="optional" />
			<xsd:attribute name="ltermName" use="optional">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:maxLength value="8" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name="trancode" use="optional">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:maxLength value="8" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name="suppressGeneration" type="xsd:boolean"
				use="optional" />
			<xsd:attribute name="calloutURI" type="xsd:string" use="optional" />
			<xsd:attribute name="remote" type="xsd:boolean"
				use="optional" />			
			<xsd:attribute name="WSSecurity" use="optional">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:enumeration value="SAML11Token"/>
						<xsd:enumeration value="SAML20Token"/>
						<xsd:enumeration value="SAML11SignedTokenTrustAny"/>
						<xsd:enumeration value="SAML11SignedTokenTrustOne"/>
						<xsd:enumeration value="SAML20SignedTokenTrustAny"/>
						<xsd:enumeration value="SAML20SignedTokenTrustOne"/>
						<xsd:enumeration value="UserNameToken"/>
						<xsd:enumeration value=""/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name="calloutWSSecurity" use="optional">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:enumeration value="SAML11Token"/>
						<xsd:enumeration value="SAML20Token"/>
						<xsd:enumeration value=""/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
            <xsd:attribute name="calloutSendOnlyWithACK" type="xsd:boolean"
                use="optional"/>
		</xsd:complexType>		
	</xsd:element>
	<xsd:element name="WSBindSpec">
		<xsd:complexType>
			<xsd:attribute name="fileName" type="xsd:string" use="optional" />
			<xsd:attribute name="overwrite" type="xsd:boolean" use="optional" />
			<xsd:attribute name="pgmint" type="xsd:int" use="optional" />
			<xsd:attribute name="contid" type="xsd:string" use="optional" />
			<xsd:attribute name="uri" type="xsd:string" use="optional" />
			<xsd:attribute name="ccsid" type="xsd:string" use="optional" />
			<xsd:attribute name="mappingLevel" type="xsd:string"
				use="optional" />
			<xsd:attribute name="suppressGeneration" type="xsd:boolean"
				use="optional" />
			<xsd:attribute name="minimumRuntimeLevel" type="xsd:string"
				use="optional" />
			<xsd:attribute name="userid" type="xsd:string" use="optional" />
			<xsd:attribute name="transaction" type="xsd:string"
				use="optional" />
			<xsd:attribute name="charVarying" use="optional">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:enumeration value="NO" />
						<xsd:enumeration value="NULL" />
						<xsd:enumeration value="COLLAPSE" />
						<xsd:enumeration value="BINARY" />
						<xsd:enumeration value="YES" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name="charVaryingLimit" use="optional">
				<xsd:simpleType>
					<xsd:restriction base="xsd:nonNegativeInteger">
						<xsd:maxInclusive value="32767" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name="defaultCharMaxLength" use="optional">
				<xsd:simpleType>
					<xsd:restriction base="xsd:positiveInteger">
						<xsd:maxInclusive value="2147483647" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name="charMultiplier" use="optional">
				<xsd:simpleType>
					<xsd:restriction base="xsd:positiveInteger">
						<xsd:maxInclusive value="2147483647" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>			
			<xsd:attribute name="businessPgmName" type="xsd:string"
				use="optional" />
			<xsd:attribute name="vendorConverterName" type="xsd:string"
				use="optional" />
			<xsd:attribute name="xmlOnly" type="xsd:boolean" use="optional" />
			<xsd:attribute name="logFileName" type="xsd:string"
				use="optional" />
			<xsd:attribute name="fileContainer" type="xsd:string"
				use="optional" />
			<xsd:attribute name="dataTruncation" use="optional">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:enumeration value="DISABLED" />
						<xsd:enumeration value="ENABLED" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name="nameTruncation" use="optional">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:enumeration value="RIGHT" />
						<xsd:enumeration value="LEFT" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name="dateTime" type="xsd:string" use="optional" />
			<xsd:attribute name="inlineMaxOccursLimit" use="optional">
				<xsd:simpleType>
					<xsd:restriction base="xsd:nonNegativeInteger">
						<xsd:maxInclusive value="32767" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name="requestChannel" type="xsd:string"
				use="optional" />
			<xsd:attribute name="responseChannel" type="xsd:string"
				use="optional" />
			<xsd:attribute name="service" type="xsd:string" use="optional" />
			<xsd:attribute name="synconreturn" use="optional">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:enumeration value="NO" />
						<xsd:enumeration value="YES" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name="arithExtend" use="optional">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:enumeration value="NO" />
						<xsd:enumeration value="YES" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>			
			<xsd:attribute name="remote" type="xsd:boolean"
				use="optional" />					
			<xsd:attribute name="pipeline" type="xsd:string"
				use="optional" />									
			<xsd:attribute name="wsdlloc" type="xsd:string"
				use="optional" />													
			<xsd:attribute name="jsonReqSchema" type="xsd:string"
				use="optional" />
			<xsd:attribute name="jsonRespSchema" type="xsd:string"
				use="optional" />
			<xsd:attribute name="jsonSchemaRest" type="xsd:string"
				use="optional" />
			<xsd:attribute name="httpMethods" type="xsd:string"
				use="optional" />
			<xsd:attribute name="mappingOverrides" type="xsd:string" use="optional" />															
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="XSDBindSpec">
		<xsd:complexType>
			<xsd:attribute name="bundle" type="xsd:string" use="optional" />
			<xsd:attribute name="ccsid" type="xsd:string" use="optional" />
			<xsd:attribute name="charVarying" use="optional">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:enumeration value="NO" />
						<xsd:enumeration value="NULL" />
						<xsd:enumeration value="COLLAPSE" />
						<xsd:enumeration value="BINARY" />
						<xsd:enumeration value="YES" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name="charVaryingLimit" use="optional">
				<xsd:simpleType>
					<xsd:restriction base="xsd:nonNegativeInteger">
						<xsd:maxInclusive value="32767" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name="defaultCharMaxLength" use="optional">
				<xsd:simpleType>
					<xsd:restriction base="xsd:positiveInteger">
						<xsd:maxInclusive value="2147483647" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name="charMultiplier" use="optional">
				<xsd:simpleType>
					<xsd:restriction base="xsd:positiveInteger">
						<xsd:maxInclusive value="2147483647" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name="fileName" type="xsd:string" use="optional" />
			<xsd:attribute name="inlineMaxOccursLimit" use="optional">
				<xsd:simpleType>
					<xsd:restriction base="xsd:nonNegativeInteger">
						<xsd:maxInclusive value="32767" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name="logFileName" type="xsd:string"
				use="optional" />
			<xsd:attribute name="mappingLevel" type="xsd:string"
				use="optional" />
			<xsd:attribute name="minimumRuntimeLevel" type="xsd:string"
				use="optional" />
			<xsd:attribute name="nameTruncation" use="optional">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:enumeration value="RIGHT" />
						<xsd:enumeration value="LEFT" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name="vendorConverterName" type="xsd:string"
				use="optional" />
			<xsd:attribute name="dateTime" type="xsd:string" use="optional" />
			<xsd:attribute name="dataTruncation" use="optional">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:enumeration value="DISABLED" />
						<xsd:enumeration value="ENABLED" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name="fileContainer" type="xsd:string"
				use="optional" />
			<xsd:attribute name="arithExtend" use="optional">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:enumeration value="NO" />
						<xsd:enumeration value="YES" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>				
			<xsd:attribute name="remote" type="xsd:boolean"
				use="optional" />				
			<xsd:attribute name="mappingOverrides" type="xsd:string" use="optional" />
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="DriverSpec">
		<xsd:complexType>
			<xsd:attribute name="driverType" use="optional">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:enumeration value="BATCH" />
						<xsd:enumeration value="IMS_SOAP" />
						<xsd:enumeration value="IMS_INFO_20" />
						<xsd:enumeration value="WEB_SERVICES_CICS" />
						<xsd:enumeration value="XML_TRANSFORM_CICS" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name="fileName" type="xsd:string" use="optional" />
			<xsd:attribute name="overwrite" type="xsd:boolean" use="optional" />
			<xsd:attribute name="programName" use="optional">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:maxLength value="8" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name="businessPgmName" use="optional">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:maxLength value="8" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name="suppressGeneration" type="xsd:boolean"
				use="optional" />
			<xsd:attribute name="fileContainer" type="xsd:string"
				use="optional" />
			<xsd:attribute name="fileNamePrefix" use="optional">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:maxLength value="7" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name="xmlContainerName" use="optional">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:maxLength value="16" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name="dataContainerName" use="optional">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:maxLength value="16" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name="remote" type="xsd:boolean"
				use="optional" />			
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="EISProject">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element maxOccurs="1" minOccurs="0"
					ref="ImportPropertyArray" />
				<xsd:element maxOccurs="1" minOccurs="0"
					ref="CodegenPropertyArray" />
				<xsd:choice>
					<xsd:element maxOccurs="unbounded" minOccurs="0"
						ref="EISService" />
					<xsd:element maxOccurs="unbounded" minOccurs="0"
						ref="EISServiceImplementation" />
				</xsd:choice>
			</xsd:sequence>
			<xsd:attribute name="name" type="xsd:string" use="optional" />
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="EISService">
		<xsd:complexType>
			<xsd:all>
				<xsd:element maxOccurs="1" minOccurs="0"
					ref="ConnectionPropertyArray" />
				<xsd:element maxOccurs="1" minOccurs="0" ref="Operation" />
				<xsd:element minOccurs="0" ref="RouterSpec" />
				<xsd:element minOccurs="0" ref="WSBindSpec" />
				<xsd:element maxOccurs="1" minOccurs="0"
					ref="ServicePropertyArray" />
			</xsd:all>
			<xsd:attribute name="generateConverters" type="xsd:boolean"
				use="optional" />
			<xsd:attribute name="generateSeparateXSD" type="xsd:boolean"
				use="optional" />
			<xsd:attribute name="generateWSDL" type="xsd:boolean"
				use="optional" />
			<xsd:attribute name="name" type="xsd:string" use="optional" />
			<xsd:attribute name="targetNamespace" type="xsd:string"
				use="optional" />
			<xsd:attribute name="type" use="optional">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:enumeration value="CICS" />
						<xsd:enumeration value="IMS" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name="targetFilesURI" type="xsd:string"
				use="optional" />
			<xsd:attribute name="fileContainer" type="xsd:string"
				use="optional" />
			<xsd:attribute name="targetNameSpace" type="xsd:string"
				use="optional" />
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="ImportProperty">
		<xsd:complexType>
			<xsd:attribute name="name" type="xsd:string" use="required" />
			<xsd:attribute name="value" type="xsd:string" use="required" />
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="ImportPropertyArray">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element maxOccurs="unbounded" minOccurs="0"
					ref="ImportProperty" />
			</xsd:sequence>
			<xsd:attribute name="type" type="xsd:string" use="optional" />
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="ServiceProperty">
		<xsd:complexType>
			<xsd:attribute name="name" type="xsd:string" use="required" />
			<xsd:attribute name="value" type="xsd:string" use="required" />
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="ServicePropertyArray">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element maxOccurs="unbounded" minOccurs="0"
					ref="ServiceProperty" />
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="CodegenProperty">
		<xsd:complexType>
			<xsd:attribute name="name" type="xsd:string" use="required" />
			<xsd:attribute name="value" type="xsd:string" use="required" />
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="CodegenPropertyArray">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element maxOccurs="unbounded" minOccurs="0"
					ref="CodegenProperty" />
			</xsd:sequence>
			<xsd:attribute name="type" type="xsd:string" use="optional" />
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="InputOutputMessage">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element maxOccurs="1" minOccurs="0" ref="RedefinesArray" />
				<xsd:choice>
					<xsd:element maxOccurs="1" minOccurs="0"
						ref="ItemSelectionArray" />
					<xsd:element maxOccurs="1" minOccurs="0"
						ref="ItemExclusionArray" />
				</xsd:choice>
				<xsd:element maxOccurs="1" minOccurs="0" ref="XMLNamesArray" />
			</xsd:sequence>
			<xsd:attribute name="importDirectory" type="xsd:string"
				use="optional" />
			<xsd:attribute name="importFile" type="xsd:string" use="optional" />
			<xsd:attribute name="name" type="xsd:string" use="optional" />
			<xsd:attribute name="nativeTypeName" type="xsd:string"
				use="optional" />
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="ItemSelection">
		<xsd:complexType>
			<xsd:attribute name="itemName" type="xsd:string" use="required" />
			<xsd:attribute name="optional" type="xsd:string" use="optional" />
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="ItemExclude">
		<xsd:complexType>
			<xsd:attribute name="itemName" type="xsd:string" use="required" />
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="ItemSelectionArray">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element maxOccurs="unbounded" minOccurs="1"
					ref="ItemSelection" />
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="ItemExclusionArray">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element maxOccurs="unbounded" minOccurs="1"
					ref="ItemExclude" />
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Operation">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element maxOccurs="1" minOccurs="0"
					ref="OperationPropertyArray" />
				<xsd:choice>
					<xsd:sequence>
						<xsd:element ref="InputOutputMessage" maxOccurs="1"
							minOccurs="0" />
					</xsd:sequence>
					<xsd:choice maxOccurs="unbounded">
						<xsd:sequence>
							<xsd:element name="InputMessage" maxOccurs="1"
								minOccurs="0" type="MessageType" />
							<xsd:element name="OutputMessage" maxOccurs="1"
								minOccurs="0" type="MessageType" />
						</xsd:sequence>
					</xsd:choice>
				</xsd:choice>
				<xsd:element maxOccurs="1" minOccurs="0" ref="XseSpec" />
				<xsd:element maxOccurs="1" minOccurs="0" name="MessageSpec"
					type="MessageType" />
			</xsd:sequence>
			<xsd:attribute name="name" type="xsd:string" use="optional" />
			<xsd:attribute name="type" use="optional">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:enumeration value="REQUEST_RESPONSE" />
						<xsd:enumeration value="SOLICIT_RESPONSE" />
						<xsd:enumeration value="ONE_WAY" />
						<xsd:enumeration value="NOTIFICATION" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="OperationProperty">
		<xsd:complexType>
			<xsd:attribute name="name" type="xsd:string" use="required" />
			<xsd:attribute name="value" type="xsd:string" use="required" />
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="OperationPropertyArray">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element maxOccurs="unbounded" minOccurs="0"
					ref="OperationProperty" />
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>

	<xsd:element name="RedefineSelection">
		<xsd:complexType>
			<xsd:attribute name="redefine" type="xsd:string" use="required" />
			<xsd:attribute name="useRedefinition" type="xsd:string"
				use="required" />
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="RedefinesArray">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element maxOccurs="unbounded" minOccurs="1"
					ref="RedefineSelection" />
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="XseSpec">
		<xsd:complexType>
			<xsd:all>
				<xsd:element maxOccurs="1" minOccurs="0" ref="DriverSpec" />
				<xsd:element maxOccurs="1" minOccurs="0" name="ConverterSpecIn" type="ConverterSpecType"/>
				<xsd:element maxOccurs="1" minOccurs="0" name="ConverterSpecOut" type="ConverterSpecType"/>
				<xsd:element maxOccurs="1" minOccurs="0" name="XsdSpecIn"
					type="XsdSpecType" />
				<xsd:element maxOccurs="1" minOccurs="0" name="XsdSpecOut"
					type="XsdSpecType" />
				<xsd:element maxOccurs="1" minOccurs="0" name="XsdSpec"
					type="XsdSpecType" />
				<xsd:element minOccurs="0" maxOccurs="1" name="DFDLSpecIn"
					type="XsdSpecType" />
				<xsd:element minOccurs="0" maxOccurs="1" name="DFDLSpecOut"
					type="XsdSpecType" />	
				<xsd:element maxOccurs="1" minOccurs="0" ref="CorrelatorSpec" />
				<xsd:element maxOccurs="1" minOccurs="0" ref="WSBindSpec" />
				<xsd:element maxOccurs="1" minOccurs="0" ref="XSDBindSpec" />
				<xsd:element maxOccurs="1" minOccurs="0"
					ref="CICSDeploymentSpec" />
			</xsd:all>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="XMLNameSelection">
		<xsd:complexType>
			<xsd:attribute name="itemName" type="xsd:string" use="required" />
			<xsd:attribute name="xmlName" type="xsd:string" use="required" />
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="XMLNamesArray">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element maxOccurs="unbounded" minOccurs="1"
					ref="XMLNameSelection" />
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="RouterSpec">
		<xsd:complexType>
			<xsd:attribute name="type" use="optional">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:enumeration value="WEB_SERVICES_CICS" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name="fileName" use="optional">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<!-- It is set to 12 as it can include file extension (ex: .cbl) -->
						<xsd:maxLength value="12" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name="overwrite" type="xsd:boolean" use="optional" />
			<xsd:attribute name="programName" use="optional">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:maxLength value="8" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name="suppressGeneration" type="xsd:boolean"
				use="optional" />
			<xsd:attribute name="remote" type="xsd:boolean"
				use="optional" />				
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="EISServiceImplementation">
		<xsd:complexType>
			<xsd:all>
				<xsd:element maxOccurs="1" minOccurs="0"
					ref="ServicePropertyArray" />
				<xsd:element maxOccurs="1" minOccurs="0"
					ref="ConnectionPropertyArray" />
				<xsd:element ref="ServiceImplementationSpec" />
			</xsd:all>
			<xsd:attribute name="runtime" use="optional">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:enumeration value="WEB_SERVICES_CICS" />
						<xsd:enumeration value="IMS_SOAP_GATEWAY" />
						<xsd:enumeration value="XML_TRANSFORM_CICS" />
                        <xsd:enumeration value="BATCH" />
                        <xsd:enumeration value="JSON_SERVICES_CICS" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name="type" use="optional">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:enumeration value="SERVICE_PROVIDER" />
						<xsd:enumeration value="SERVICE_REQUESTOR" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name="interactionPattern" use="optional">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:enumeration value="REQUEST_RESPONSE" />
						<xsd:enumeration value="RESTFUL" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="ServiceImplementationSpec">
		<xsd:complexType>
			<xsd:all>
				<xsd:element maxOccurs="1" minOccurs="0"
					ref="OperationSelectionArray" />
				<xsd:element maxOccurs="1" minOccurs="0"
					name="LanguageStructureSpecIn" type="LanguageStructureSpecType" />
				<xsd:element maxOccurs="1" minOccurs="0"
					name="LanguageStructureSpecOut" type="LanguageStructureSpecType" />
				<xsd:element maxOccurs="1" minOccurs="0"
					name="LanguageStructureSpec" type="LanguageStructureSpecType" />
				<xsd:element maxOccurs="1" minOccurs="0"
					ref="ApplicationTemplateSpec" />
				<xsd:element maxOccurs="1" minOccurs="0" ref="WSDL2ELSSpec" />
				<xsd:element maxOccurs="1" minOccurs="0" ref="WSBindSpec" />
				<xsd:element maxOccurs="1" minOccurs="0" ref="XSDBindSpec" />
				<xsd:element maxOccurs="1" minOccurs="0"
					ref="CICSDeploymentSpec" />
				<xsd:element maxOccurs="1" minOccurs="0" ref="CorrelatorSpec" />
				<xsd:element maxOccurs="1" minOccurs="0" ref="DriverSpec" />
				<xsd:element maxOccurs="1" minOccurs="0"
					ref="ElementSelectionArray" />
				<xsd:element maxOccurs="1" minOccurs="0"
					ref="TypeSelectionArray" />
			</xsd:all>
			<xsd:attribute name="importDirectory" type="xsd:string"
				use="optional" />
			<xsd:attribute name="importFile" type="xsd:string" use="required" />
			<xsd:attribute name="wsdlPortName" type="xsd:string" />
			<xsd:attribute name="wsdlServiceName" type="xsd:string" />
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="OperationSelectionArray">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element maxOccurs="unbounded" minOccurs="1"
					ref="OperationSelection" />
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="OperationSelection">
		<xsd:complexType>
			<xsd:attribute name="operationName" type="xsd:string"
				use="required" />
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="ApplicationTemplateSpec">
		<xsd:complexType>
			<xsd:attribute name="fileName" use="optional">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<!-- It is set to 12 as it can include file extension (ex: .cbl) -->
						<xsd:maxLength value="12" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name="overwrite" type="xsd:boolean" use="optional" />
			<xsd:attribute name="programName" use="optional">
				<xsd:simpleType>
					<xsd:restriction base="xsd:string">
						<xsd:maxLength value="8" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name="suppressGeneration" type="xsd:boolean"
				use="optional" />
			<xsd:attribute name="fileContainer" type="xsd:string"
				use="optional" />
			<xsd:attribute name="remote" type="xsd:boolean"
				use="optional" />				
		</xsd:complexType>
	</xsd:element>

	<xsd:element name="CICSDeploymentSpec">
		<xsd:complexType>
			<xsd:attribute name="fileName" type="xsd:string" use="optional" />
			<xsd:attribute name="suppressGeneration" type="xsd:boolean"
				use="optional" />
			<xsd:attribute name="fileContainer" type="xsd:string"
				use="optional" />
			<xsd:attribute name="uploadWSBind" type="xsd:string"
				use="optional" />
			<xsd:attribute name="pickupDirectory" type="xsd:string"
				use="optional" />				
			<xsd:attribute name="pipeline" type="xsd:string"
				use="optional" />				
			<xsd:attribute name="region" type="xsd:string"
				use="optional" />				
			<xsd:attribute name="userName" type="xsd:string"
				use="optional" />				
			<xsd:attribute name="remote" type="xsd:boolean"
				use="optional" />							
		</xsd:complexType>
	</xsd:element>

	<xsd:element name="WSDL2ELSSpec">
		<xsd:complexType>
			<xsd:attribute name="defaultCharMaxLength" use="optional">
				<xsd:simpleType>
					<xsd:restriction base="xsd:positiveInteger">
						<xsd:maxInclusive value="32767" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name="defaultBase64BinaryLength" type="xsd:positiveInteger"
				use="optional" />
			<xsd:attribute name="defaultTotalDigits" use="optional">
				<xsd:simpleType>
					<xsd:restriction base="xsd:positiveInteger">
						<xsd:maxInclusive value="31" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name="defaultFractionDigits" use="optional">
				<xsd:simpleType>
					<xsd:restriction base="xsd:nonNegativeInteger">
						<xsd:maxInclusive value="31" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name="defaultDateTimeLength" use="optional">
				<xsd:simpleType>
					<xsd:restriction base="xsd:positiveInteger">
						<xsd:maxInclusive value="32767" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name="fileContainer" type="xsd:string"
				use="optional" />
			<xsd:attribute name="inlineMaxOccursLimit" use="optional">
				<xsd:simpleType>
					<xsd:restriction base="xsd:positiveInteger">
						<xsd:maxInclusive value="2147483647" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name="inlineStringLengthLimit" use="optional">
				<xsd:simpleType>
					<xsd:restriction base="xsd:positiveInteger">
						<xsd:maxInclusive value="32767" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
            <xsd:attribute name="defaultMaxOccursLimit" use="optional">
                <xsd:simpleType>
                    <xsd:restriction base="xsd:positiveInteger">
                        <xsd:minInclusive value="1" />
                        <xsd:maxInclusive value="134217727" />
                    </xsd:restriction>
                </xsd:simpleType>
            </xsd:attribute>            
			<xsd:attribute name="languageFileName" type="xsd:string"
				use="optional" />
			<xsd:attribute name="languageNameLimit" use="optional">
				<xsd:simpleType>
					<xsd:restriction base="xsd:positiveInteger">
						<xsd:maxInclusive value="100" />
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
            <xsd:attribute name="suppressCountFields" type="xsd:boolean"
                use="optional"/>    
            <xsd:attribute name="suppressStructureComments" type="xsd:boolean"
                use="optional"/>    
            <xsd:attribute name="suppressPresenceFields" type="xsd:boolean"
                use="optional"/>    
			<xsd:attribute name="logFileName" type="xsd:string"
				use="optional" />
			<xsd:attribute name="mappingDirectory" type="xsd:string"
				use="optional" />
			<xsd:attribute name="metadataFileName" type="xsd:string"
				use="optional" />
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="ElementSelectionArray">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element maxOccurs="unbounded" minOccurs="0"
					ref="ElementSelection" />
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="ElementSelection">
		<xsd:complexType>
			<xsd:attribute name="name" type="xsd:string" use="required" />
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="TypeSelectionArray">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element maxOccurs="unbounded" minOccurs="0"
					ref="TypeSelection" />
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="TypeSelection">
		<xsd:complexType>
			<xsd:attribute name="name" type="xsd:string" use="required" />
		</xsd:complexType>
	</xsd:element>
</xsd:schema>

---------------------------------------------------------------------------------------------------
Figure 1. Example of Schema for ServiceSpecification.xml

Related references