fteutils.xsd schema file

This schema defines elements and types used by many of the other Managed File Transfer schemas.


Schema

<?xml version="1.0" encoding="UTF-8"?>
<!--
@start_non_restricted_prolog@
Version: %Z% %I% %W% %E% %U% [%H% %T%]

Licensed Materials - Property of IBM

5724-H72

Copyright IBM Corp. 2008, 2020. All Rights Reserved.

disclosure restricted by GSA ADP Schedule Contract with
IBM Corp.
@end_non_restricted_prolog@
-->

<!--
This schema defines elements and types used by many of the other MQMFT schemas.
For more information about MQMFT XML message formats, see
http://www-01.ibm.com/support/knowledgecenter/SSEP7X_7.0.4/wmqfte/message_formats.htm
-->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <!--
         Defines the version type 1.00 - 99.00
         <transaction version= 1.00
     -->
    <xsd:simpleType name="versionType">
        <xsd:restriction base="xsd:string">
            <xsd:pattern value="[0-9]+\.[0-9][0-9]"/>
        </xsd:restriction>
    </xsd:simpleType>
    <!--
         Defines the transaction reference
         <transaction version= 1.00 ID="414d5120514d312020202020202020205ecf0a4920011802"
     -->
    <xsd:simpleType name="IDType">
        <xsd:restriction base="xsd:string">
            <xsd:pattern value="[0-9a-fA-F]{48}"/>
        </xsd:restriction>
    </xsd:simpleType>
    <!--
         This is an alias for hostUserIDType.
         Here to allow addition of attributes on originator elements
     -->
    <xsd:complexType name="origRequestType">
        <xsd:complexContent>
            <xsd:extension base="hostUserIDType">
                <xsd:sequence>
                    <xsd:element name="webBrowser" type="xsd:string" minOccurs="0" maxOccurs="1"/>
                    <xsd:element name="webUserID" type="xsd:string" minOccurs="0" maxOccurs="1"/>
                </xsd:sequence>
            </xsd:extension>
        </xsd:complexContent>
    </xsd:complexType>
    <!--
        Defines a Delete originator as a machine and user pair
        <hostName>myMachine</hostName>
        <userName>myUserId</userName>
     -->
    <xsd:complexType name="origDeleteType">
        <xsd:sequence>
            <xsd:element name="delete" type="hostUserIDType" maxOccurs="1" minOccurs="0"/>
        </xsd:sequence>
    </xsd:complexType>
    <!--
        Defines a machine, user, MQMD userID triple
        <hostName>myMachine</hostName>
        <userID>myUserId</userID>
        <mqmdUserID>MQMDUSERID</mqmdUserID>
     -->
    <xsd:complexType name="hostUserIDType">
        <xsd:sequence>
            <xsd:element name="hostName" type="xsd:string" minOccurs="0" maxOccurs="1"/>
            <xsd:element name="userID" type="xsd:string" minOccurs="0" maxOccurs="1"/>
            <xsd:element name="mqmdUserID" type="xsd:string" minOccurs="0" maxOccurs="1"/>
        </xsd:sequence>
    </xsd:complexType>
    <!--
        Define the destinationAgent with agent and queue manager name
        <destinationAgent agent="there" QMgr="far" agentType="BRIDGE" bridgeURL="ftp://server.example.net:21" bridgeNode="DEST_NODE"/>
        optional agentType attribute expected to be one of STANDARD, BRIDGE, WEB_GATEWAY, EMBEDDED, CD_BRIDGE
    -->
    <xsd:complexType name="agentType">
        <xsd:attribute name="agent" type="xsd:string" use="required"/>
        <xsd:attribute name="agentType" type="xsd:string" use="optional"/>
        <xsd:attribute name="QMgr" type="xsd:string" use="optional"/>
        <xsd:attribute name="bridgeURL" type="xsd:string" use="optional"/>
        <xsd:attribute name="bridgeNode" type="xsd:string" use="optional"/>
        <xsd:attribute name="pnode" type="xsd:string" use="optional"/>
        <xsd:attribute name="snode" type="xsd:string" use="optional"/>
    </xsd:complexType>
    <!--
        Defines the status type; attr/resultCode and 0 or many supplements
        There may also be additional command specific data, either: transfer, ping or call data
        <status resultCode="8011">
            <supplement>Azionamento del USB</supplement>
            <supplement>morto come norweign azzurro</supplement>
        </status>
     -->
    <xsd:complexType name="statusType">
        <xsd:sequence>
            <xsd:element name="supplement" type="xsd:string" maxOccurs="unbounded" minOccurs="0"/>
            <xsd:choice>
                <xsd:element name="filespace" type="fileSpaceReplyType" minOccurs="0" maxOccurs="1"/>
            </xsd:choice>
        </xsd:sequence>
        <xsd:attribute name="resultCode" type="resultCodeType" use="required"/>
    </xsd:complexType>
    <!--
         Defines the filespace type for use with communication between a web agent
         and a web gateway
         <filespace name="" location=""><Quota bytes=""/></filespace>
     -->
    <xsd:complexType name="fileSpaceReplyType">
        <xsd:attribute name="name" use="required" type="xsd:string"/>
        <xsd:attribute name="location" use="required" type="xsd:string"/>
        <xsd:attribute name="quota" use="required" type="xsd:long"/>
    </xsd:complexType>
    <!--
         Defines the destinationAgent with agent and queue manager name, plus connection details.
         <destinationAgent agent="there" QMgr="far"/>
     -->
    <xsd:complexType name="agentClientType">
        <xsd:attribute name="agent" type="xsd:string" use="required"/>
        <xsd:attribute name="QMgr" type="xsd:string" use="optional"/>
        <xsd:attribute name="hostName" type="xsd:string" use="optional"/>
        <xsd:attribute name="portNumber" type="xsd:nonNegativeInteger" use="optional"/>
        <xsd:attribute name="channel" type="xsd:string" use="optional"/>
    </xsd:complexType>
    <!--
         Defines the fileURI type as string
         <file encoding="UTF8" EOL="CR">C:/from/here.txt</file>
     -->
    <xsd:complexType name="fileType">
        <xsd:simpleContent>
            <xsd:extension base="xsd:string">
                <xsd:attribute name="filespace" type="filespaceNameType" use="optional"/>
                <xsd:attribute name="alias" type="xsd:string" use="optional"/>
                <xsd:attribute name="encoding" type="encodingType" use="optional"/>
                <xsd:attribute name="EOL" type="EOLType" use="optional"/>
                <xsd:attribute name="size" type="xsd:long" use="optional"/>
                <xsd:attribute name="last-modified" type="xsd:dateTime" use="optional"/>
                <xsd:attribute name="delimiter" type="xsd:string" use="optional"/>
                <xsd:attribute name="delimiterType" type="xsd:string" use="optional"/>
                <xsd:attribute name="delimiterPosition" type="delimiterPositionType" use="optional"/>
                <xsd:attribute name="includeDelimiterInFile" type="xsd:boolean" use="optional"/>
                <xsd:attribute name="keepTrailingSpaces" type="xsd:boolean" use="optional"/>
                <xsd:attribute name="truncateRecords" type="xsd:boolean" use="optional"/>
            </xsd:extension>
        </xsd:simpleContent>
    </xsd:complexType>
    <!--
         Defines the filespace type as string
             <filespace>
                    <name>tarquin</name>
         </filespace>
     -->
    <xsd:complexType name="filespaceType">
        <xsd:sequence>
            <xsd:element name="name" type="filespaceNameType"/>
        </xsd:sequence>
    </xsd:complexType>
    <!--
         Defines a name element
         <name>bob</name>
     -->
    <xsd:simpleType name="filespaceNameType">
        <xsd:restriction base="xsd:string"/>
    </xsd:simpleType>
    <!--
         Defines the accepted choices for the persistent attribute.
     -->
    <xsd:simpleType name="persistenceType">
        <xsd:restriction base="xsd:token">
            <xsd:enumeration value="true"/>
            <xsd:enumeration value="false"/>
            <xsd:enumeration value="qdef"/>
        </xsd:restriction>
    </xsd:simpleType>
    <!--
         Defines the queueURI type as string with all supported attributes.
         <queue>QUEUE@QM</queue>
     -->
    <xsd:complexType name="queueType">
        <xsd:simpleContent>
            <xsd:extension base="xsd:string">
                <xsd:attribute name="persistent" type="persistenceType" use="optional"/>
                <xsd:attribute name="eofMarker" type="xsd:boolean" use="optional"/>
                <xsd:attribute name="setMqProps" type="xsd:boolean" use="optional"/>
                <xsd:attribute name="split" type="xsd:boolean" use="optional"/>
                <xsd:attribute name="useGroups" type="xsd:boolean" use="optional"/>
                <xsd:attribute name="delimiter" type="xsd:string" use="optional"/>
                <xsd:attribute name="delimiterType" type="xsd:string" use="optional"/>
                <xsd:attribute name="delimiterPosition" type="delimiterPositionType" use="optional"/>
                <xsd:attribute name="includeDelimiterInMessage" type="xsd:boolean" use="optional"/>
                <xsd:attribute name="groupId" type="groupIdType" use="optional"/>
                <xsd:attribute name="messageId" type="messageIdType" use="optional"/>
                <xsd:attribute name="messageCount" type="xsd:nonNegativeInteger" use="optional"/>
                <xsd:attribute name="messageLength" type="xsd:nonNegativeInteger" use="optional"/>
                <xsd:attribute name="waitTime" type="xsd:nonNegativeInteger" use="optional"/>
                <xsd:attribute name="encoding" type="encodingType" use="optional"/>
                <xsd:attribute name="EOL" type="EOLType" use="optional"/>
                <xsd:attribute name="unrecognisedCodePage" type="unrecognisedCodePageType" use="optional"/>
            </xsd:extension>
        </xsd:simpleContent>
    </xsd:complexType>
    <!--
         Defines the accepted values for the delimiterPosition attribute.
     -->
    <xsd:simpleType name="delimiterPositionType">
        <xsd:restriction base="xsd:token">
            <xsd:enumeration value="postfix"/>
            <xsd:enumeration value="prefix"/>
        </xsd:restriction>
    </xsd:simpleType>
    <!--
         Defines the groupId type
         <queue groupId="414d5120514d312020202020202020205ecf0a4920011802">
         Also allow a substitution variable of the form ${variable}
     -->
    <xsd:simpleType name="groupIdType">
        <xsd:restriction base="xsd:string">
            <xsd:pattern value="[0-9a-fA-F]{48}|$\{.*\}"/>
        </xsd:restriction>
    </xsd:simpleType>
    <!--
         Defines the messageId type
         <queue messageId="414d5120514d312020202020202020205ecf0a4920011802">
         Also allow a substitution variable of the form ${variable}
     -->
    <xsd:simpleType name="messageIdType">
        <xsd:restriction base="xsd:string">
            <xsd:pattern value="[0-9a-fA-F]{48}|$\{.*\}"/>
        </xsd:restriction>
    </xsd:simpleType>
    <!-- Defines the accepted values for the unrecognisedCodePage attribute. -->
    <xsd:simpleType name="unrecognisedCodePageType">
        <xsd:restriction base="xsd:token">
            <xsd:enumeration value="fail"/>
            <xsd:enumeration value="binary"/>
        </xsd:restriction>
    </xsd:simpleType>
    <!--
         Defines a single source file reference
         <source type="file" recursive="false" disposition="leave">
             <file>filename</file>
         <source/>
     -->
    <xsd:complexType name="fileSourceType">
        <xsd:sequence>
            <xsd:choice>
                <xsd:element name="file" type="fileType"/>
                <xsd:element name="queue" type="queueType"/>
            </xsd:choice>
        </xsd:sequence>
        <xsd:attribute name="type" type="SourceType" use="optional"/>
        <xsd:attribute name="recursive" type="xsd:boolean" use="optional"/>
        <xsd:attribute name="disposition" type="sourceDispositionType" use="optional"/>
        <xsd:attribute name="correlationString1" type="xsd:string" use="optional"/>
        <xsd:attribute name="correlationNum1" type="xsd:nonNegativeInteger" use="optional"/>
        <xsd:attribute name="correlationBoolean1" type="xsd:boolean" use="optional"/>
    </xsd:complexType>
    <!--
        Defines the enumeration values for source type
        type="file|queue"
     -->
    <xsd:simpleType name="SourceType">
        <xsd:restriction base="xsd:token">
            <xsd:enumeration value="file"/>
            <xsd:enumeration value="directory"/>
            <xsd:enumeration value="queue"/>
            <xsd:enumeration value="dataset"/>
            <xsd:enumeration value="pds"/>
            <xsd:enumeration value="filespace"/>
        </xsd:restriction>
    </xsd:simpleType>
    <!--
        Defines the enumeration values for source disposition
        disposition="leave|delete"
     -->
    <xsd:simpleType name="sourceDispositionType">
        <xsd:restriction base="xsd:token">
            <xsd:enumeration value="leave"/>
            <xsd:enumeration value="delete"/>
        </xsd:restriction>
    </xsd:simpleType>
    <!--
         Defines a single destination file reference
         <destination type="file" exist="overwrite">
             <file>filename</file>
         <destination/>
     -->
    <xsd:complexType name="fileDestinationType">
        <xsd:sequence>
            <xsd:choice>
                <xsd:element name="file" type="fileType"/>
                <xsd:element name="filespace" type="filespaceType"/>
                <xsd:element name="queue" type="queueType"/>
            </xsd:choice>         
            <xsd:element name="attributes" type="attributeType" minOccurs="0" maxOccurs="1"/>
        </xsd:sequence>
        <xsd:attribute name="type" type="DestinationType" use="optional"/>
        <xsd:attribute name="exist" type="existType" use="optional"/>
        <xsd:attribute name="correlationString1" type="xsd:string" use="optional"/>
        <xsd:attribute name="correlationNum1" type="xsd:nonNegativeInteger" use="optional"/>
        <xsd:attribute name="correlationBoolean1" type="xsd:boolean" use="optional"/>
    </xsd:complexType>
    <!--
        Defines the enumeration values for destination file type
        type="file|directory|queue|dataset|pds|filespace"
        'dataset' and 'pds' only apply to z/OS environments.
     -->
    <xsd:simpleType name="DestinationType">
        <xsd:restriction base="xsd:token">
            <xsd:enumeration value="file"/>
            <xsd:enumeration value="directory"/>
            <xsd:enumeration value="queue"/>
            <xsd:enumeration value="dataset"/>
            <xsd:enumeration value="pds"/>
            <xsd:enumeration value="filespace"/>
        </xsd:restriction>
    </xsd:simpleType>
    <!--
        Defines the enumerations values for file exists on destination behavior
        exist="error|overwrite"
     -->
    <xsd:simpleType name="existType">
        <xsd:restriction base="xsd:token">
            <xsd:enumeration value="error"/>
            <xsd:enumeration value="overwrite"/>
        </xsd:restriction>
    </xsd:simpleType>
    
   <!--
         Defines one or more file attributes
         <destination encoding=? CFLF=?>
             <file>filename</file>
             <attributes>
                <attribute>DIST(MIRRORED,UPDATE)</attribute>
             </attributes>
         <destination/>
     -->
    <xsd:complexType name="attributeType">
        <xsd:sequence>
            <xsd:element name="attribute" type="xsd:string" maxOccurs="unbounded" minOccurs="1"/>
        </xsd:sequence>
    </xsd:complexType>
    
    
    <!--
         Defines a single file reference
         <source encodings=? CFLF=?>
             <file>filename</file>
             <checksum method="MD5">3445678</checksum>
         <source/>
         .. or ..
         <destination encoding=? CFLF=?>
             <file>filename</file>
             <checksum method="MD5">3445678</checksum>
         <destination/>
     -->
    <xsd:complexType name="fileCheckSumType">
        <xsd:sequence>
            <xsd:element name="file" type="fileType"/>
            <xsd:element name="checksum" type="checksumType" maxOccurs="1" minOccurs="0"/>
        </xsd:sequence>
    </xsd:complexType>
    <!--
        Defines the checksum type and method
            <checksum method="MD5|none">3445678</checksum>
     -->
    <xsd:complexType name="checksumType">
        <xsd:simpleContent>
            <xsd:extension base="xsd:string">
                <xsd:attribute name="method" type="checkSumMethod" use="required"/>
            </xsd:extension>
        </xsd:simpleContent>
    </xsd:complexType>
    <!--
        Defines the enumeration values for checksumMethod
        <checksum method="MD5|none">3445678</checksum>
        Note: uppercase is used because MD5 is an acronym and normally written uppercase.
     -->
    <xsd:simpleType name="checkSumMethod">
        <xsd:restriction base="xsd:token">
            <xsd:enumeration value="none"/>
            <xsd:enumeration value="MD5"/>
        </xsd:restriction>
    </xsd:simpleType>
    <!--
        Defines the enumeration values for agentRole
        agentRole="sourceAgent|destinationAgent"
     -->
    <xsd:simpleType name="agentRoleType">
        <xsd:restriction base="xsd:token">
            <xsd:enumeration value="sourceAgent"/>
            <xsd:enumeration value="destinationAgent"/>
            <xsd:enumeration value="callAgent"/>
        </xsd:restriction>
    </xsd:simpleType>
    <!--
        Defines the enumeration values for mode.
        text, binary or a substitution variable
        <item mode="binary|text||${variableName}">
     -->
    <xsd:simpleType name="modeType">
        <xsd:restriction base="xsd:string">
            <xsd:pattern value="binary|text|$\{.*\}"/>
        </xsd:restriction>
    </xsd:simpleType>
    <!--
        Defines the enumeration values for EOL
        <file EOL="LF|CRLF">
     -->
    <xsd:simpleType name="EOLType">
        <xsd:restriction base="xsd:token">
            <xsd:enumeration value="LF"/>
            <xsd:enumeration value="CRLF"/>
        </xsd:restriction>
    </xsd:simpleType>
    <!--
        Defines the encoding type as a string
     -->
    <xsd:simpleType name="encodingType">
        <xsd:restriction base="xsd:string"/>
    </xsd:simpleType>
    <!--
        <schedule>
            <submit timebase="source"|"admin">2008-12-07T16:07"</submit>
            <repeat>
                <frequency interval="hours">2</frequency>
                <expireTime>2008-12-0816:07</exipreTime>
            </repeat>
        </schedule>
     -->
    <xsd:complexType name="scheduleType">
        <xsd:sequence>
            <xsd:element name="submit" type="submitType" maxOccurs="1" minOccurs="1"/>
            <xsd:element name="repeat" type="repeatType" maxOccurs="1" minOccurs="0"/>
        </xsd:sequence>
    </xsd:complexType>
    <!--
         <submit timebase="source|admin|UTC">2008-12-07T16:07"</submit>
     -->
    <xsd:complexType name="submitType">
        <xsd:simpleContent>
            <xsd:extension base="noZoneTimeType">
                <xsd:attribute name="timebase" type="timebaseType" use="required"/>
                <xsd:attribute name="timezone" type="xsd:string" use="required"/>
            </xsd:extension>
        </xsd:simpleContent>
    </xsd:complexType>
    <!--
        <repeat>
            <frequency interval="hours">2</frequency>
            ..optionally..
            <expireTime>2008-12-0816:07</expireTime>
            ..or..
            <expireCount>2</expireCount>
        </repeat>
     -->
    <xsd:complexType name="repeatType">
        <xsd:sequence>
            <xsd:element name="frequency" type="freqType" maxOccurs="1" minOccurs="1"/>
            <xsd:choice minOccurs="0">
                <xsd:element name="expireTime" type="noZoneTimeType"/>
                <xsd:element name="expireCount" type="positiveIntegerType"/>
            </xsd:choice>
        </xsd:sequence>
    </xsd:complexType>
    <!--
         <frequency interval="hours">2</frequency>
     -->
    <xsd:complexType name="freqType">
        <xsd:simpleContent>
            <xsd:extension base="positiveIntegerType">
                <xsd:attribute name="interval" type="intervalType" use="required"/>
            </xsd:extension>
        </xsd:simpleContent>
    </xsd:complexType>
    <!--
         Defines positive integer type
         i.e., 1+
     -->
    <xsd:simpleType name="positiveIntegerType">
        <xsd:restriction base="xsd:integer">
            <xsd:minInclusive value="1"/>
        </xsd:restriction>
    </xsd:simpleType>
    <!--
         Defines the interval enumeration values of
         "minutes","hours","days", "weeks", "months" or "years"
     -->
    <xsd:simpleType name="intervalType">
        <xsd:restriction base="xsd:token">
            <xsd:enumeration value="minutes"/>
            <xsd:enumeration value="hours"/>
            <xsd:enumeration value="days"/>
            <xsd:enumeration value="weeks"/>
            <xsd:enumeration value="months"/>
            <xsd:enumeration value="years"/>
        </xsd:restriction>
    </xsd:simpleType>
    <!--
         Defines the interval of either "source","admin" or "UTC"
             source = use timezone of the source Agent.
             admin = use timezone of the administrator executing the command script.
             UTC = Timezone is UTC.
     -->
    <xsd:simpleType name="timebaseType">
        <xsd:restriction base="xsd:token">
            <xsd:enumeration value="source"/>
            <xsd:enumeration value="admin"/>
            <xsd:enumeration value="UTC"/>
        </xsd:restriction>
    </xsd:simpleType>
    <!--
         Defines a date and time without a time zone (2008-12-08T16:07)
     -->
    <xsd:simpleType name="noZoneTimeType">
        <xsd:restriction base="xsd:string">
            <xsd:pattern value="[\n\r\t ]*\d{4}\-(0[1-9]|1[0-2])\-(0[1-9]|[1-2][0-9]|3[0-1])T([0-1][0-9]|2[0-3]):[0-5][0-9]([\+\-]\d{4}|Z)?[\n\r\t ]*"/>
        </xsd:restriction>
    </xsd:simpleType>
    <!--
         Defines the ID element, e.g. 56
     -->
    <xsd:simpleType name="idType">
        <xsd:restriction base="xsd:string"/>
    </xsd:simpleType>
    <!--
        Defines the resultCode type -2 - 9999
        <status resultCode="8011">
     -->
    <xsd:simpleType name="resultCodeType">
        <xsd:restriction base="xsd:int">
            <xsd:minInclusive value="-2"/>
            <xsd:maxInclusive value="9999"/>
        </xsd:restriction>
    </xsd:simpleType>
    <!--
        Define the metaDataSet type comprising one or more key value pairs
        <metaDataSet>
            <metaData key="name">value</metaData>
            <metaData key="name">value</metaData>
        </metaDataSet>
     -->
    <xsd:complexType name="metaDataSetType">
        <xsd:sequence>
            <xsd:element name="metaData" type="metaDataType" maxOccurs="unbounded" minOccurs="1"/>
        </xsd:sequence>
    </xsd:complexType>
    <!--
        Define the metaData type which is made up of a key and a value
        <metaData key="name">value</metaData>
     -->
    <xsd:complexType name="metaDataType">
        <xsd:simpleContent>
            <xsd:extension base="xsd:string">
                <xsd:attribute name="key" type="xsd:string" use="required"/>
            </xsd:extension>
        </xsd:simpleContent>
    </xsd:complexType>
    <!--
         Defines containing element for triggers
         <trigger log="yes">
             <fileExist comparison="=" value="Exist">file1</fileExist>
             <fileSize comparison=">=" value="1GB">file1</fileSize>
         </trigger>
     -->
    <xsd:complexType name="triggerType">
        <xsd:choice minOccurs="0" maxOccurs="unbounded">
            <xsd:element name="fileExist" type="fileExistTriggerType" maxOccurs="unbounded" minOccurs="1"/>
            <xsd:element name="fileSize" type="fileSizeTriggerType" maxOccurs="unbounded" minOccurs="1"/>
        </xsd:choice>
        <xsd:attribute name="log" type="logEnabledType" use="required"/>
    </xsd:complexType>
    <!--
         Defines the file exists trigger type
         <fileExist comparison="=" value="Exist">file1</trigger>
     -->
    <xsd:complexType name="fileExistTriggerType">
        <xsd:simpleContent>
            <xsd:extension base="xsd:string">
                <xsd:attribute name="comparison" type="comparisonFileExistTriggerType" use="required"/>
                <xsd:attribute name="value" type="valueFileExistTriggerType" use="required"/>
            </xsd:extension>
        </xsd:simpleContent>
    </xsd:complexType>
    <!--
         Defines file size trigger type
         <fileSize comparison="=" value="1GB">file1,file2,file3</trigger>
     -->
    <xsd:complexType name="fileSizeTriggerType">
        <xsd:simpleContent>
            <xsd:extension base="xsd:string">
                <xsd:attribute name="comparison" type="comparisonFileSizeTriggerType" use="required"/>
                <xsd:attribute name="value" type="valueFileSizeTriggerType" use="required"/>
            </xsd:extension>
        </xsd:simpleContent>
    </xsd:complexType>
    <!--
        Defines the enumeration values for file exists trigger conditions
        valueFileExistTriggerType="exist|noexist"
     -->
    <xsd:simpleType name="valueFileExistTriggerType">
        <xsd:restriction base="xsd:token">
            <xsd:enumeration value="exist"/>
            <xsd:enumeration value="noexist"/>
        </xsd:restriction>
    </xsd:simpleType>
    <!--
        Defines the enumeration values for file exists trigger comparison operator
        comparisonFileExistTriggerType="="|"!="
     -->
    <xsd:simpleType name="comparisonFileExistTriggerType">
        <xsd:restriction base="xsd:token">
            <xsd:enumeration value="="/>
            <xsd:enumeration value="!="/>
        </xsd:restriction>
    </xsd:simpleType>
    <!--
        Defines the enumeration values for file size trigger comparison operator
        comparisonFileSizeTriggerType=">="
     -->
    <xsd:simpleType name="comparisonFileSizeTriggerType">
        <xsd:restriction base="xsd:token">
            <xsd:enumeration value="&amp;gt;="/>
        </xsd:restriction>
    </xsd:simpleType>
    <!--
         Defines the file size value pattern
         <fileSize comparison=">=" value="10|10B|10KB|10MB|10GB">file1</fileSize>
     -->
    <xsd:simpleType name="valueFileSizeTriggerType">
        <xsd:restriction base="xsd:string">
            <xsd:pattern value="[0123456789]+([bB]|[kK][bB]|[mM][bB]|[gG][bB]|)"/>
        </xsd:restriction>
    </xsd:simpleType>
    <!--
        Defines the enumeration values for trigger logging enabled flag
        <trigger log="yes|no">
     -->
    <xsd:simpleType name="logEnabledType">
        <xsd:restriction base="xsd:token">
            <xsd:enumeration value="yes"/>
            <xsd:enumeration value="no"/>
        </xsd:restriction>
    </xsd:simpleType>
    <!--
         Defines the reply type
         <reply QMGR="QMGR name" persistent="true">Queue Name</reply>
     -->
    <xsd:complexType name="replyType">
        <xsd:simpleContent>
            <xsd:extension base="xsd:string">
                <xsd:attribute name="QMGR" type="xsd:string" use="required"/>
                <xsd:attribute name="persistent" type="persistenceType" use="optional"/>
                                <xsd:attribute name="detailed" type="detailedType" use="optional" />
            </xsd:extension>
        </xsd:simpleContent>
    </xsd:complexType>
    
        <!--
            Defines the accepted choices for the detailed attribute. 
        -->
        <xsd:simpleType name="detailedType">
            <xsd:restriction base="xsd:token">
                <xsd:enumeration value="true"/>
                <xsd:enumeration value="false"/>
            </xsd:restriction>
        </xsd:simpleType>
    
    <!--
         Defines the priority type
         <transferset priority="1">
     -->
    <xsd:simpleType name="priorityType">
        <xsd:restriction base="xsd:string">
            <xsd:pattern value="[0123456789]"/>
        </xsd:restriction>
    </xsd:simpleType>
    <!--
         Define the job information element
         <job>
             <name>JOBNAME</name>
         </job>
     -->
    <xsd:complexType name="jobType">
        <xsd:sequence>
            <xsd:element name="name" type="xsd:string"/>
        </xsd:sequence>
    </xsd:complexType>
    <!--
         Defines an action
         <action>
             <runCommand name="myCommand.sh" />
         </action>
     -->
    <xsd:complexType name="commandActionType">
        <xsd:choice>
            <xsd:element name="command" type="commandType" maxOccurs="1" minOccurs="0"/>
        </xsd:choice>
    </xsd:complexType>
    <!--
        Defines a command
        <command name="runme" successRC="0" maxReplyLength="1024">
            <argument>firstArg</argument>
            <argument>secondArg</argument>
        </command>
     -->
    <xsd:complexType name="commandType">
        <xsd:sequence>
            <xsd:element name="argument" type="xsd:string" maxOccurs="unbounded" minOccurs="0"/>
            <xsd:element name="target" type="xsd:string" maxOccurs="unbounded" minOccurs="0"/>
            <xsd:element name="property" type="propertyType" maxOccurs="unbounded" minOccurs="0"/>
        </xsd:sequence>
        <xsd:attribute name="name" type="xsd:string" use="required"/>
        <xsd:attribute name="successRC" type="xsd:string" use="optional"/>
        <xsd:attribute name="retryCount" type="nonNegativeIntegerType" use="optional"/>
        <xsd:attribute name="retryWait" type="nonNegativeIntegerType" use="optional"/>
        <xsd:attribute name="type" type="callTypeType" use="optional"/>
        <xsd:attribute name="priority" type="commandPriorityType" use="optional"/>
        <xsd:attribute name="message" type="xsd:string" use="optional"/>
    </xsd:complexType>
    <!--
        Defines the enumeration values for the type of a command
        type="executable|antscript|jcl"
     -->
    <xsd:simpleType name="callTypeType">
        <xsd:restriction base="xsd:token">
            <xsd:enumeration value="executable"/>
            <xsd:enumeration value="antscript"/>
            <xsd:enumeration value="jcl"/>
        </xsd:restriction>
    </xsd:simpleType>
    <!--
         Defines the priority type for a command
         priority="5"
     -->
    <xsd:simpleType name="commandPriorityType">
        <xsd:restriction base="xsd:string">
            <xsd:pattern value="[123456789]"/>
        </xsd:restriction>
    </xsd:simpleType>
    
    <!--
        Defines the property type that is used as a child of commandType
        <property name="xxx" value="yyy"/>
     -->
    <xsd:complexType name="propertyType">
        <xsd:attribute name="name" type="xsd:string" use="required"/>
        <xsd:attribute name="value" type="xsd:string" use="required"/>
    </xsd:complexType>
    <!-- Defines a non-negative integer type -->
    <xsd:simpleType name="nonNegativeIntegerType">
        <xsd:restriction base="xsd:integer">
            <xsd:minInclusive value="0"/>
        </xsd:restriction>
    </xsd:simpleType>
    <!--
        Defines the transfer command specific reply information, to be included as part the general reply
        <transferReply>
            <preSourceData>
                 <runCommandReply resultCode="0">
                 <stdout>
                     <line>the quick brown fox jumped over the lazy dog</line>
                 </stdout>
                 <stderr></stderr>
                 </runCommandReply>
            </preSourceData>
        </transferReply>
     -->
    <xsd:complexType name="transferReplyType">
        <xsd:sequence>
            <xsd:element name="preSourceData" type="actionReplyType" minOccurs="0" maxOccurs="1"/>
            <xsd:element name="postSourceData" type="actionReplyType" minOccurs="0" maxOccurs="1"/>
            <xsd:element name="preDestinationData" type="actionReplyType" minOccurs="0" maxOccurs="1"/>
            <xsd:element name="postDestinationData" type="actionReplyType" minOccurs="0" maxOccurs="1"/>
        </xsd:sequence>
    </xsd:complexType>
    <!--
         Define the action reply type information
         <actionReply>
             <runCommandReply resultCode="1">
                 <stdout></stdout>
                 <stderr>
                     <line>permission denied</line>
                 </stderr>
             </runCommandReply>
         </actionReply>
     -->
    <xsd:complexType name="actionReplyType">
        <xsd:choice>
            <xsd:element name="runCommandReply" type="commandReplyType" maxOccurs="1" minOccurs="0"/>
        </xsd:choice>
    </xsd:complexType>
    <!--
        Defines command specific reply information, to be included as part the general reply
        <commandReply resultCode="0">
             <stdout>
                 <line>first line  of output text</line>
                 <line>second line of output text</line>
             </stdout>
             <stderr>
                 <line>line of error text</line>
             </stderr>
        </commandReply>
     -->
    <xsd:complexType name="commandReplyType">
        <xsd:sequence>
            <xsd:element name="stdout" type="textLinesType" maxOccurs="1" minOccurs="1"/>
            <xsd:element name="stderr" type="textLinesType" maxOccurs="1" minOccurs="1"/>
        </xsd:sequence>
        <xsd:attribute name="resultCode" type="xsd:int" use="required"/>
    </xsd:complexType>
    <!-- Defines type for lines of text -->
    <xsd:complexType name="textLinesType">
        <xsd:sequence>
            <xsd:element name="line" type="xsd:string" maxOccurs="unbounded" minOccurs="0"/>
        </xsd:sequence>
    </xsd:complexType>
    <!--
        Defines the ping agent command specific reply information, to be included as part the general reply
        <pingAgentReply resultCode="0">
             <agentVersion>Build level: f000-20090408-1200</agentVersion>
        </pingAgentReply>
     -->
    <xsd:complexType name="pingAgentReplyType">
        <xsd:sequence>
            <xsd:element name="agentVersion" type="xsd:string" maxOccurs="1" minOccurs="0"/>
        </xsd:sequence>
    </xsd:complexType>
    <!--
        Defines sequence of exit elements
        <exit ...
        <exit ...
     -->
    <xsd:complexType name="exitGroupType">
        <xsd:sequence>
            <xsd:element name="exit" type="exitType" minOccurs="1" maxOccurs="unbounded"/>
        </xsd:sequence>
    </xsd:complexType>
    <!--
        Defines the outcome of calling a command
        <command ...
        <callResult ...
     -->
    <xsd:complexType name="callGroupType">
        <xsd:sequence>
            <xsd:element name="command" type="commandType" minOccurs="1" maxOccurs="1"/>
            <xsd:element name="callResult" type="callResultType" minOccurs="0" maxOccurs="1"/>
        </xsd:sequence>
    </xsd:complexType>
    <!--
        Defines eiter the successful call of a command, or a failed attempt to call a commad
        <callResultType outcome="success|failure|error" retries="X">
           <result ... />
        </callResultType>
     -->
    <xsd:complexType name="callResultType">
        <xsd:sequence>
            <xsd:element name="result" type="resultType" minOccurs="1" maxOccurs="unbounded"/>
        </xsd:sequence>
        <xsd:attribute name="returnCode" type="xsd:integer" use="optional"/>
        <xsd:attribute name="retries" type="xsd:integer" use="optional"/>
        <xsd:attribute name="outcome" type="outcomeType" use="required"/>
    </xsd:complexType>
    <!--
        Defines the information recorded for the successfull call of a command
        <result...>
                <stdout...
                <stderr...
                <error...
        </result...>
     -->
    <xsd:complexType name="resultType">
        <xsd:sequence>
            <xsd:element name="stdout" type="outputType" minOccurs="0" maxOccurs="1"/>
            <xsd:element name="stderr" type="outputType" minOccurs="0" maxOccurs="1"/>
            <xsd:element name="error" type="xsd:string" maxOccurs="1" minOccurs="0"/>
        </xsd:sequence>
        <xsd:attribute name="returnCode" type="xsd:integer" use="optional"/>
        <xsd:attribute name="outcome" type="outcomeType" use="required"/>
        <xsd:attribute name="time" type="xsd:dateTime" use="required"/>
    </xsd:complexType>
    <!-- Enumeration of call outcomes - success, failure or error -->
    <xsd:simpleType name="outcomeType">
        <xsd:restriction base="xsd:token">
            <xsd:enumeration value="success"/>
            <xsd:enumeration value="failure"/>
            <xsd:enumeration value="error"/>
        </xsd:restriction>
    </xsd:simpleType>
    <!--
        Defines the information recorded for each line of standard output / standard error
        generated by calling a program
        <line>line 1</line>
        <line>line 2</line>
        etc.
     -->
    <xsd:complexType name="outputType">
        <xsd:sequence>
            <xsd:element name="line" type="xsd:string" maxOccurs="unbounded" minOccurs="1"/>
        </xsd:sequence>
    </xsd:complexType>
    <!--
        Defines the information recorded for an unsuccessful program call.
     -->
    <xsd:complexType name="callFailedType">
        <xsd:simpleContent>
            <xsd:extension base="xsd:string"/>
        </xsd:simpleContent>
    </xsd:complexType>
    <!--
        Defines the exit type; records the transfer exit class name and a status message
        <exit name="class com.example.exit.StartExit">
              <status ...
        </exit>
     -->
    <xsd:complexType name="exitType">
        <xsd:sequence>
            <xsd:element name="status" type="exitStatusType" minOccurs="1" maxOccurs="1"/>
        </xsd:sequence>
        <xsd:attribute name="name" type="xsd:string" use="required"/>
    </xsd:complexType>
    <!--
        Defines exit status to record whether exit voted to proceed or cancel transfer.
        <status resultCode="proceed">
                <supplement>go ahead</supplement>
        </status>
     -->
    <xsd:complexType name="exitStatusType">
        <xsd:sequence>
            <xsd:element name="supplement" type="xsd:string" maxOccurs="unbounded" minOccurs="0"/>
        </xsd:sequence>
        <xsd:attribute name="resultCode" type="exitResultEnumType" use="optional"/>
    </xsd:complexType>
    <!--
        Defines the enumeration for transfer exit result values.
        <status resultCode="proceed">
     -->
    <xsd:simpleType name="exitResultEnumType">
        <xsd:restriction base="xsd:token">
            <xsd:enumeration value="proceed"/>
            <xsd:enumeration value="cancelTransfer"/>
            <xsd:enumeration value="cancelTask"/>
        </xsd:restriction>
    </xsd:simpleType>
</xsd:schema>
Note: From Version 9.0, Managed File Transfer does not support the Web Gateway or web agents. Parent topic: XML message formats used by MFT


Related concepts