<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html lang="en-us" xml:lang="en-us"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="security" content="public" /> <meta name="Robots" content="index,follow" /> <meta http-equiv="PICS-Label" content='(PICS-1.1 "http://www.icra.org/ratingsv02.html" l gen true r (cz 1 lz 1 nz 1 oz 1 vz 1) "http://www.rsac.org/ratingsv01.html" l gen true r (n 0 s 0 v 0 l 0) "http://www.classify.org/safesurf/" l gen true r (SS~~000 1))' /> <meta name="DC.Type" content="reference" /> <meta name="DC.Title" content="Schema xpcml.xsd file" /> <meta name="abstract" content="" /> <meta name="description" content="" /> <meta name="DC.Relation" scheme="URI" content="rzahhxpcmlschema.htm" /> <meta name="copyright" content="(C) Copyright IBM Corporation 2006" /> <meta name="DC.Rights.Owner" content="(C) Copyright IBM Corporation 2006" /> <meta name="DC.Format" content="XHTML" /> <meta name="DC.Identifier" content="rzahhxpcmlschemaxsd" /> <meta name="DC.Language" content="en-us" /> <!-- All rights reserved. Licensed Materials Property of IBM --> <!-- US Government Users Restricted Rights --> <!-- Use, duplication or disclosure restricted by --> <!-- GSA ADP Schedule Contract with IBM Corp. --> <link rel="stylesheet" type="text/css" href="./ibmdita.css" /> <link rel="stylesheet" type="text/css" href="./ic.css" /> <title>Schema xpcml.xsd file</title> </head> <body id="rzahhxpcmlschemaxsd"><a name="rzahhxpcmlschemaxsd"><!-- --></a> <!-- Java sync-link --><script language="Javascript" src="../rzahg/synch.js" type="text/javascript"></script> <h1 class="topictitle1">Schema xpcml.xsd file</h1> <div><p></p> <div class="section"><p>For more information about using the xpcml.xsd file, see <a href="rzahhxpcmlrequire.htm">Requirements for using XPCML</a>.</p> <div class="note"><span class="notetitle">Note:</span> Read the <a href="codedisclaimer.htm#codedisclaimer">Code example disclaimer</a> for important legal information.</div> <p>To make it easier to display and print, some lines of this HTML version of xpcml.xsd wrap to a second line. The same lines in the source xsd file appear on a single line.</p> <pre><?xml version="1.0" encoding="UTF-8"?> <!--/////////////////////////////////////////////////////////////////////////// // // JTOpen (IBM Toolbox for Java - OSS version) // // Filename: xpcml.xsd // // The source code contained herein is licensed under the IBM Public License // Version 1.0, which has been approved by the Open Source Initiative. // Copyright (C) 1997-2003 International Business Machines Corporation and // others. All rights reserved. // ////////////////////////////////////////////////////////////////////////////--> <xs:schema xmlns:xs='http://www.w3.org/2001/XMLSchema'> <xs:annotation> <xs:documentation> Schema for xpcml (eXtended Program Call Markup Language). </xs:documentation> </xs:annotation> <span class="synph" id="rzahhxpcmlschemaxsd__xpcml"><a name="rzahhxpcmlschemaxsd__xpcml"><!-- --></a><span class="kwd"></span></span><xs:element name="xpcml"> <xs:complexType> <xs:sequence> <xs:element ref="structOrProgram" minOccurs="1" maxOccurs="unbounded" /> </xs:sequence> <xs:attribute name="version" use="required"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="4.0"/> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> <!-- Define key/keyref link between the name of a struct --> <!-- and the struct attribute of a parameter field. --> <xs:key name="StructKey"> <xs:selector xpath="struct"/> <xs:field xpath="@name"/> </xs:key> <xs:keyref name="spRef" refer="StructKey"> <xs:selector xpath="structParm" /> <xs:field xpath="@struct" /> </xs:keyref> </xs:element> <span class="synph" id="rzahhxpcmlschemaxsd__program"><a name="rzahhxpcmlschemaxsd__program"><!-- --></a><span class="kwd"></span></span><!-- Program tag and attributes --> <xs:element name="program" substitutionGroup="structOrProgram"> <xs:complexType> <xs:sequence> <xs:element ref="parameterList" minOccurs="1" maxOccurs="1"/> <!-- Used as a wrapper tag around the parameter list for the program. --> </xs:sequence> <!-- Name of the program to call. --> <xs:attribute name="name" type="string50" use="required" /> <!-- Path to the program object. Default is to assume in library QSYS. --> <xs:attribute name="path" type="xs:string"/> <!-- Specifies the order in which parameters should be parsed. --> <!-- Value is a blank-separated list of parameter names. --> <xs:attribute name="parseOrder" type="xs:string"/> <!-- The entry point name within a service program. --> <xs:attribute name="entryPoint" type="xs:string"/> <!-- The type of value, if any, returned from a service program call. --> <xs:attribute name="returnValue" type="returnValueType"/> <!-- When calling a Java program and iSeries program is on same server --> <!-- and is thread-safe, set to true to call the iSeries program in same job --> <!-- and on same thread as the Java program. --> <xs:attribute name="threadSafe" type="xs:boolean" /> <!-- The CCSID of the entry point name within a service program. --> <xs:attribute name="epccsid" type="ccsidType"/> </xs:complexType> </xs:element> <span class="synph" id="rzahhxpcmlschemaxsd__parameterlist"><a name="rzahhxpcmlschemaxsd__parameterlist"><!-- --></a><span class="kwd"></span></span><!-- A parameter list is made up of one or more parameters. --> <xs:element name="parameterList"> <xs:complexType> <xs:group ref="programParameter" minOccurs="1" maxOccurs="unbounded"/> </xs:complexType> </xs:element> <!-- All the different kinds of program parameters that we understand. --> <xs:group name="programParameter"> <xs:choice> <xs:element ref="stringParmGroup"/> <xs:element ref="stringParmArrayGroup"/> <xs:element ref="intParmGroup"/> <xs:element ref="intParmArrayGroup"/> <xs:element ref="unsignedIntParmGroup"/> <xs:element ref="unsignedIntParmArrayGroup"/> <xs:element ref="shortParmGroup"/> <xs:element ref="shortParmArrayGroup"/> <xs:element ref="unsignedShortParmGroup"/> <xs:element ref="unsignedShortParmArrayGroup"/> <xs:element ref="longParmGroup"/> <xs:element ref="longParmArrayGroup"/> <xs:element ref="zonedDecimalParmGroup"/> <xs:element ref="zonedDecimalParmArrayGroup"/> <xs:element ref="packedDecimalParmGroup"/> <xs:element ref="packedDecimalParmArrayGroup"/> <xs:element ref="floatParmGroup"/> <xs:element ref="floatParmArrayGroup"/> <xs:element ref="doubleParmGroup"/> <xs:element ref="doubleParmArrayGroup"/> <xs:element ref="hexBinaryParmGroup"/> <xs:element ref="hexBinaryParmArrayGroup"/> <xs:element ref="structParmGroup"/> <xs:element ref="structParmArrayGroup"/> <xs:element ref="structArrayGroup"/> <xs:element ref="struct"/> </xs:choice> </xs:group> <!-- Abstract type for all data parameter types. --> <xs:element name="stringParmGroup" type="stringParmType" abstract="true" /> <xs:element name="stringParmArrayGroup" type="stringParmArrayType" abstract="true" /> <xs:element name="intParmGroup" type="intParmType" abstract="true" /> <xs:element name="intParmArrayGroup" type="intParmArrayType" abstract="true" /> <xs:element name="unsignedIntParmGroup" type="unsignedIntParmType" abstract="true" /> <xs:element name="unsignedIntParmArrayGroup" type="unsignedIntParmArrayType" abstract="true" /> <xs:element name="shortParmGroup" type="shortParmType" abstract="true" /> <xs:element name="shortParmArrayGroup" type="shortParmArrayType" abstract="true" /> <xs:element name="unsignedShortParmGroup" type="unsignedShortParmType" abstract="true" /> <xs:element name="unsignedShortParmArrayGroup" type="unsignedShortParmArrayType" abstract="true" /> <xs:element name="longParmGroup" type="longParmType" abstract="true" /> <xs:element name="longParmArrayGroup" type="longParmArrayType" abstract="true" /> <xs:element name="zonedDecimalParmGroup" type="zonedDecimalParmType" abstract="true" /> <xs:element name="zonedDecimalParmArrayGroup" type="zonedDecimalParmArrayType" abstract="true" /> <xs:element name="packedDecimalParmGroup" type="packedDecimalParmType" abstract="true" /> <xs:element name="packedDecimalParmArrayGroup" type="packedDecimalParmArrayType" abstract="true" /> <xs:element name="floatParmGroup" type="floatParmType" abstract="true" /> <xs:element name="floatParmArrayGroup" type="floatParmArrayType" abstract="true" /> <xs:element name="doubleParmGroup" type="doubleParmType" abstract="true" /> <xs:element name="doubleParmArrayGroup" type="doubleParmArrayType" abstract="true" /> <xs:element name="hexBinaryParmGroup" type="hexBinaryParmType" abstract="true" /> <xs:element name="hexBinaryParmArrayGroup" type="hexBinaryParmArrayType" abstract="true" /> <xs:element name="structParmGroup" type="structParmType" abstract="true" /> <xs:element name="structParmArrayGroup" type="structParmArrayType" abstract="true" /> <xs:element name="structArrayGroup" type="structArrayType" abstract="true" substitutionGroup="structOrProgram" /> <span class="synph" id="rzahhxpcmlschemaxsd__stringparm"><a name="rzahhxpcmlschemaxsd__stringparm"><!-- --></a><span class="kwd"></span></span><!-- String parameter --> <xs:element name="stringParm" type="stringParmType" substitutionGroup="stringParmGroup" nillable="true"/> <xs:complexType name="stringParmType"> <xs:simpleContent> <xs:extension base="stringFieldType"> <xs:attributeGroup ref="commonParmAttrs"/> </xs:extension> </xs:simpleContent> </xs:complexType> <span class="synph" id="rzahhxpcmlschemaxsd__arrayofstringparm"><a name="rzahhxpcmlschemaxsd__arrayofstringparm"><!-- --></a><span class="kwd"></span></span><!-- Array of string parameters --> <xs:element name="arrayOfStringParm" type="stringParmArrayType" substitutionGroup="stringParmArrayGroup" nillable="true" /> <xs:complexType name="stringParmArrayType"> <xs:sequence> <xs:element name="i" type="stringElementType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attributeGroup ref="commonParmAttrs"/> <xs:attributeGroup ref="commonFieldAttrs"/> <!-- The number of elements in the array. --> <!-- 'count' is required if you want to input and/or output array data as XPCML. --> <xs:attribute name="count" type="xs:string" /> <!-- The number of characters in each string. --> <xs:attribute name="length" type="xs:string"/> <!-- The host CCSID for each string. --> <xs:attribute name="ccsid" type="xs:string"/> <!-- Specifies how to trim whitespace (left, right, both, none). --> <xs:attribute name="trim" type="trimType" /> <!-- The size of each character ('chartype' in PCML). --> <xs:attribute name="bytesPerChar" type="charType" /> <!-- The bidirectional string type. --> <xs:attribute name="bidiStringType" type="bidiStringTypeType" /> </xs:complexType> <xs:complexType name="stringElementType"> <xs:simpleContent> <xs:extension base="xs:string"> <!-- The index into the array. --> <xs:attribute name="index" type="xs:nonNegativeInteger" /> </xs:extension> </xs:simpleContent> </xs:complexType> <span class="synph" id="rzahhxpcmlschemaxsd__intparm"><a name="rzahhxpcmlschemaxsd__intparm"><!-- --></a><span class="kwd"></span></span><!-- Integer parameter (4 bytes on server) --> <xs:element name="intParm" type="intParmType" nillable="true" substitutionGroup="intParmGroup" /> <xs:complexType name="intParmType" > <xs:simpleContent> <xs:extension base="intFieldType"> <xs:attributeGroup ref="commonParmAttrs"/> </xs:extension> </xs:simpleContent> </xs:complexType> <span class="synph" id="rzahhxpcmlschemaxsd__arrayofintparm"><a name="rzahhxpcmlschemaxsd__arrayofintparm"><!-- --></a><span class="kwd"></span></span><!-- intParm array type --> <xs:element name="arrayOfIntParm" type="intParmArrayType" substitutionGroup="intParmArrayGroup" nillable="true" /> <xs:complexType name="intParmArrayType"> <xs:sequence> <!-- 'i' is the tag used for non-struct array elements. --> <xs:element name="i" type="intElementType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <!-- 'count' is required if you want to input and/or output array data as XPCML. --> <xs:attribute name="count" type="xs:string" /> <xs:attributeGroup ref="commonParmAttrs"/> <xs:attributeGroup ref="commonFieldAttrs"/> </xs:complexType> <xs:complexType name="intElementType"> <xs:simpleContent> <xs:extension base="xs:int"> <xs:attribute name="index" type="xs:nonNegativeInteger" /> </xs:extension> </xs:simpleContent> </xs:complexType> <span class="synph" id="rzahhxpcmlschemaxsd__unsignedintparm"><a name="rzahhxpcmlschemaxsd__unsignedintparm"><!-- --></a><span class="kwd"></span></span><!-- Unsigned Integer parameter (4 bytes on server) --> <xs:element name="unsignedIntParm" type="unsignedIntParmType" nillable="true" substitutionGroup="unsignedIntParmGroup" /> <xs:complexType name="unsignedIntParmType"> <xs:simpleContent> <xs:extension base="unsignedIntFieldType"> <xs:attributeGroup ref="commonParmAttrs"/> </xs:extension> </xs:simpleContent> </xs:complexType> <span class="synph" id="rzahhxpcmlschemaxsd__arrayofunsignedintparm"><a name="rzahhxpcmlschemaxsd__arrayofunsignedintparm"><!-- --></a><span class="kwd"></span></span><!-- unsigned intParm array type --> <xs:element name="arrayOfUnsignedIntParm" type="unsignedIntParmArrayType" substitutionGroup="unsignedIntParmArrayGroup" nillable="true" /> <xs:complexType name="unsignedIntParmArrayType"> <xs:sequence> <xs:element name="i" type="unsignedIntElementType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <!-- 'count' is required if you want to input and/or output array data as XPCML. --> <xs:attribute name="count" type="xs:string" /> <xs:attributeGroup ref="commonParmAttrs"/> <xs:attributeGroup ref="commonFieldAttrs"/> </xs:complexType> <xs:complexType name="unsignedIntElementType"> <xs:simpleContent> <xs:extension base="xs:unsignedInt"> <xs:attribute name="index" type="xs:nonNegativeInteger" /> </xs:extension> </xs:simpleContent> </xs:complexType> <span class="synph" id="rzahhxpcmlschemaxsd__shortparm"><a name="rzahhxpcmlschemaxsd__shortparm"><!-- --></a><span class="kwd"></span></span><!-- Short integer parameter (2 bytes on server) --> <xs:element name="shortParm" type="shortParmType" nillable="true" substitutionGroup="shortParmGroup"/> <xs:complexType name="shortParmType"> <xs:simpleContent> <xs:extension base="shortFieldType"> <xs:attributeGroup ref="commonParmAttrs"/> </xs:extension> </xs:simpleContent> </xs:complexType> <span class="synph" id="rzahhxpcmlschemaxsd__arrayofshortparm"><a name="rzahhxpcmlschemaxsd__arrayofshortparm"><!-- --></a><span class="kwd"></span></span><!-- shortParm array type --> <xs:element name="arrayOfShortParm" type="shortParmArrayType" substitutionGroup="shortParmArrayGroup" nillable="true" /> <xs:complexType name="shortParmArrayType"> <xs:sequence> <xs:element name="i" type="shortElementType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <!-- 'count' is required if you want to input and/or output array data as XPCML. --> <xs:attribute name="count" type="xs:string" /> <xs:attributeGroup ref="commonParmAttrs"/> <xs:attributeGroup ref="commonFieldAttrs"/> </xs:complexType> <xs:complexType name="shortElementType"> <xs:simpleContent> <xs:extension base="xs:short"> <xs:attribute name="index" type="xs:nonNegativeInteger" /> </xs:extension> </xs:simpleContent> </xs:complexType> <span class="synph" id="rzahhxpcmlschemaxsd__unsignedshortparm"><a name="rzahhxpcmlschemaxsd__unsignedshortparm"><!-- --></a><span class="kwd"></span></span><!-- Unsigned Short integer parameter (2 bytes on server) --> <xs:element name="unsignedShortParm" type="unsignedShortParmType" nillable="true" substitutionGroup="unsignedShortParmGroup" /> <xs:complexType name="unsignedShortParmType"> <xs:simpleContent> <xs:extension base="unsignedShortFieldType"> <xs:attributeGroup ref="commonParmAttrs"/> </xs:extension> </xs:simpleContent> </xs:complexType> <span class="synph" id="rzahhxpcmlschemaxsd__arrayofunsignedshortparm"><a name="rzahhxpcmlschemaxsd__arrayofunsignedshortparm"><!-- --></a><span class="kwd"></span></span><!-- unsignedShortParm array type --> <xs:element name="arrayOfUnsignedShortParm" type="unsignedShortParmArrayType" substitutionGroup="unsignedShortParmArrayGroup" nillable="true" /> <xs:complexType name="unsignedShortParmArrayType"> <xs:sequence> <xs:element name="i" type="unsignedShortElementType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <!-- 'count' is required if you want to input and/or output array data as XPCML. --> <xs:attribute name="count" type="xs:string" /> <xs:attributeGroup ref="commonParmAttrs"/> <xs:attributeGroup ref="commonFieldAttrs"/> </xs:complexType> <xs:complexType name="unsignedShortElementType"> <xs:simpleContent> <xs:extension base="xs:unsignedShort"> <xs:attribute name="index" type="xs:nonNegativeInteger" /> </xs:extension> </xs:simpleContent> </xs:complexType> <span class="synph" id="rzahhxpcmlschemaxsd__longparm"><a name="rzahhxpcmlschemaxsd__longparm"><!-- --></a><span class="kwd"></span></span><!-- Long integer parameter (8 bytes on server) --> <xs:element name="longParm" type="longParmType" nillable="true" substitutionGroup="longParmGroup" /> <xs:complexType name="longParmType"> <xs:simpleContent> <xs:extension base="longFieldType"> <xs:attributeGroup ref="commonParmAttrs"/> </xs:extension> </xs:simpleContent> </xs:complexType> <span class="synph" id="rzahhxpcmlschemaxsd__arrayoflongparm"><a name="rzahhxpcmlschemaxsd__arrayoflongparm"><!-- --></a><span class="kwd"></span></span><!-- longParm array type --> <xs:element name="arrayOfLongParm" type="longParmArrayType" substitutionGroup="longParmArrayGroup" nillable="true" /> <xs:complexType name="longParmArrayType"> <xs:sequence> <xs:element name="i" type="longElementType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <!-- 'count' is required if you want to input and/or output array data as XPCML. --> <xs:attribute name="count" type="xs:string" /> <xs:attributeGroup ref="commonParmAttrs"/> <xs:attributeGroup ref="commonFieldAttrs"/> </xs:complexType> <xs:complexType name="longElementType"> <xs:simpleContent> <xs:extension base="xs:long"> <xs:attribute name="index" type="xs:nonNegativeInteger" /> </xs:extension> </xs:simpleContent> </xs:complexType> <span class="synph" id="rzahhxpcmlschemaxsd__zoneddecimalparm"><a name="rzahhxpcmlschemaxsd__zoneddecimalparm"><!-- --></a><span class="kwd"></span></span><!-- ZonedDecimal parameter --> <xs:element name="zonedDecimalParm" type="zonedDecimalParmType" nillable="true" substitutionGroup="zonedDecimalParmGroup" /> <xs:complexType name="zonedDecimalParmType"> <xs:simpleContent> <xs:extension base="zonedDecimalFieldType"> <xs:attributeGroup ref="commonParmAttrs"/> </xs:extension> </xs:simpleContent> </xs:complexType> <span class="synph" id="rzahhxpcmlschemaxsd__arrayofzoneddecimalparm"><a name="rzahhxpcmlschemaxsd__arrayofzoneddecimalparm"><!-- --></a><span class="kwd"></span></span><!-- zonedDecimalParm array type --> <xs:element name="arrayOfZonedDecimalParm" type="zonedDecimalParmArrayType" substitutionGroup="zonedDecimalParmArrayGroup" nillable="true" /> <xs:complexType name="zonedDecimalParmArrayType"> <xs:sequence> <xs:element name="i" type="zonedDecimalElementType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attributeGroup ref="commonParmAttrs"/> <xs:attributeGroup ref="commonFieldAttrs"/> <!-- 'count' is required if you want to input and/or output array data as XPCML. --> <xs:attribute name="count" type="xs:string" /> <!-- The total number of digits in the field ('length' in PCML). --> <xs:attribute name="totalDigits" type="xs:positiveInteger"/> <!-- The number of fractional digits ('precision' in PCML). --> <xs:attribute name="fractionDigits" type="xs:nonNegativeInteger"/> </xs:complexType> <xs:complexType name="zonedDecimalElementType"> <xs:simpleContent> <xs:extension base="xs:decimal"> <xs:attribute name="index" type="xs:nonNegativeInteger" /> </xs:extension> </xs:simpleContent> </xs:complexType> <span class="synph" id="rzahhxpcmlschemaxsd__packeddecimalparm"><a name="rzahhxpcmlschemaxsd__packeddecimalparm"><!-- --></a><span class="kwd"></span></span><!-- packedDecimal parameter --> <xs:element name="packedDecimalParm" type="packedDecimalParmType" nillable="true" substitutionGroup="packedDecimalParmGroup" /> <xs:complexType name="packedDecimalParmType"> <xs:simpleContent> <xs:extension base="packedDecimalFieldType"> <xs:attributeGroup ref="commonParmAttrs"/> </xs:extension> </xs:simpleContent> </xs:complexType> <span class="synph" id="rzahhxpcmlschemaxsd__arrayofpackeddecimalparm"><a name="rzahhxpcmlschemaxsd__arrayofpackeddecimalparm"><!-- --></a><span class="kwd"></span></span><!-- packedDecimalParm array type --> <xs:element name="arrayOfPackedDecimalParm" type="packedDecimalParmArrayType" substitutionGroup="packedDecimalParmArrayGroup" nillable="true" /> <xs:complexType name="packedDecimalParmArrayType"> <xs:sequence> <xs:element name="i" type="packedDecimalElementType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attributeGroup ref="commonParmAttrs"/> <xs:attributeGroup ref="commonFieldAttrs"/> <!-- 'count' is required if you want to input and/or output array data as XPCML. --> <xs:attribute name="count" type="xs:string" /> <xs:attribute name="totalDigits" type="xs:positiveInteger"/> <xs:attribute name="fractionDigits" type="xs:nonNegativeInteger"/> </xs:complexType> <xs:complexType name="packedDecimalElementType"> <xs:simpleContent> <xs:extension base="xs:decimal"> <xs:attribute name="index" type="xs:nonNegativeInteger" /> </xs:extension> </xs:simpleContent> </xs:complexType> <span class="synph" id="rzahhxpcmlschemaxsd__floatparm"><a name="rzahhxpcmlschemaxsd__floatparm"><!-- --></a><span class="kwd"></span></span><!-- Float parameter (4 bytes on server) --> <xs:element name="floatParm" type="floatParmType" nillable="true" substitutionGroup="floatParmGroup"/> <xs:complexType name="floatParmType"> <xs:simpleContent> <xs:extension base="floatFieldType"> <xs:attributeGroup ref="commonParmAttrs"/> </xs:extension> </xs:simpleContent> </xs:complexType> <span class="synph" id="rzahhxpcmlschemaxsd__arrayoffloatparm"><a name="rzahhxpcmlschemaxsd__arrayoffloatparm"><!-- --></a><span class="kwd"></span></span><!-- floatParm array type --> <xs:element name="arrayOfFloatParm" type="floatParmArrayType" substitutionGroup="floatParmArrayGroup" nillable="true" /> <xs:complexType name="floatParmArrayType"> <xs:sequence> <xs:element name="i" type="floatElementType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <!-- 'count' is required if you want to input and/or output array data as XPCML. --> <xs:attribute name="count" type="xs:string" /> <xs:attributeGroup ref="commonParmAttrs"/> <xs:attributeGroup ref="commonFieldAttrs"/> </xs:complexType> <xs:complexType name="floatElementType"> <xs:simpleContent> <xs:extension base="xs:float"> <xs:attribute name="index" type="xs:nonNegativeInteger" /> </xs:extension> </xs:simpleContent> </xs:complexType> <span class="synph" id="rzahhxpcmlschemaxsd__doubleparm"><a name="rzahhxpcmlschemaxsd__doubleparm"><!-- --></a><span class="kwd"></span></span><!-- Double parameter (8 bytes on server) --> <xs:element name="doubleParm" type="doubleParmType" nillable="true" substitutionGroup="doubleParmGroup" /> <xs:complexType name="doubleParmType"> <xs:simpleContent> <xs:extension base="doubleFieldType"> <xs:attributeGroup ref="commonParmAttrs"/> </xs:extension> </xs:simpleContent> </xs:complexType> <span class="synph" id="rzahhxpcmlschemaxsd__arrayofdoubleparm"><a name="rzahhxpcmlschemaxsd__arrayofdoubleparm"><!-- --></a><span class="kwd"></span></span><!-- doubleParm array type --> <xs:element name="arrayOfDoubleParm" type="doubleParmArrayType" substitutionGroup="doubleParmArrayGroup" nillable="true" /> <xs:complexType name="doubleParmArrayType"> <xs:sequence> <xs:element name="i" type="doubleElementType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <!-- 'count' is required if you want to input and/or output array data as XPCML. --> <xs:attribute name="count" type="xs:string" /> <xs:attributeGroup ref="commonParmAttrs"/> <xs:attributeGroup ref="commonFieldAttrs"/> </xs:complexType> <xs:complexType name="doubleElementType"> <xs:simpleContent> <xs:extension base="xs:double"> <xs:attribute name="index" type="xs:nonNegativeInteger" /> </xs:extension> </xs:simpleContent> </xs:complexType> <span class="synph" id="rzahhxpcmlschemaxsd__hexbinaryparm"><a name="rzahhxpcmlschemaxsd__hexbinaryparm"><!-- --></a><span class="kwd"></span></span><!-- Hex binary parameter (any number of bytes; unsigned) --> <xs:element name="hexBinaryParm" type="hexBinaryParmType" substitutionGroup="hexBinaryParmGroup" /> <xs:complexType name="hexBinaryParmType"> <xs:simpleContent> <xs:extension base="hexBinaryFieldType"> <!-- The field length in bytes ('length' in PCML). --> <xs:attribute name="totalBytes" type="xs:string"/> <xs:attributeGroup ref="commonParmAttrs"/> </xs:extension> </xs:simpleContent> </xs:complexType> <span class="synph" id="rzahhxpcmlschemaxsd__arrayofhexbinaryparm"><a name="rzahhxpcmlschemaxsd__arrayofhexbinaryparm"><!-- --></a><span class="kwd"></span></span><!-- hexBinaryParm array type --> <xs:element name="arrayOfHexBinaryParm" type="hexBinaryParmArrayType" substitutionGroup="hexBinaryParmArrayGroup" nillable="true" /> <xs:complexType name="hexBinaryParmArrayType"> <xs:sequence> <xs:element name="i" type="hexBinaryElementType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="totalBytes" type="xs:string"/> <!-- 'count' is required if you want to input and/or output array data as XPCML. --> <xs:attribute name="count" type="xs:string" /> <xs:attributeGroup ref="commonParmAttrs"/> <xs:attributeGroup ref="commonFieldAttrs"/> </xs:complexType> <xs:complexType name="hexBinaryElementType"> <xs:simpleContent> <xs:extension base="xs:hexBinary"> <xs:attribute name="index" type="xs:nonNegativeInteger" /> </xs:extension> </xs:simpleContent> </xs:complexType> <span class="synph" id="rzahhxpcmlschemaxsd__structparm"><a name="rzahhxpcmlschemaxsd__structparm"><!-- --></a><span class="kwd"></span></span><!-- Structure parm type --> <xs:element name="structParm" type="structParmType" substitutionGroup="structParmGroup" /> <xs:complexType name="structParmType"> <xs:complexContent> <xs:extension base="structureParmArray"> <xs:attribute name="struct" type="string50"/> <!-- Specifies whether the parameter is passed by value or reference ('passby' in PCML).--> <!-- Value only allowed for integer parameters. --> <xs:attribute name="passMode" type="passModeType"/> <!-- 'count' is required if you want to input and/or output array data as XPCML. --> <xs:attribute name="count" type="xs:string"/> </xs:extension> </xs:complexContent> </xs:complexType> <span class="synph" id="rzahhxpcmlschemaxsd__arrayofstructparm"><a name="rzahhxpcmlschemaxsd__arrayofstructparm"><!-- --></a><span class="kwd"></span></span><!-- Structure parm array type --> <xs:element name="arrayOfStructParm" type="structParmArrayType" substitutionGroup="structParmArrayGroup" nillable="true" /> <xs:complexType name="structParmArrayType"> <xs:sequence> <!-- struct_i tag represents struct or struct parm array elements. --> <xs:element name="struct_i" type="structElementType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <!-- 'count' is required if you want to input and/or output array data as XPCML. --> <xs:attribute name="count" type="xs:string" /> <xs:attributeGroup ref="commonParmAttrs"/> <xs:attributeGroup ref="commonFieldAttrs"/> <xs:attribute name="struct" type="string50"/> </xs:complexType> <xs:complexType name="structElementType"> <xs:complexContent> <xs:extension base="structureParmArray"> <xs:attribute name="index" type="xs:nonNegativeInteger" /> </xs:extension> </xs:complexContent> </xs:complexType> <span class="synph" id="rzahhxpcmlschemaxsd__struct"><a name="rzahhxpcmlschemaxsd__struct"><!-- --></a><span class="kwd"></span></span><!-- Struct element --> <xs:element name="struct" type="structureParmArray" substitutionGroup="structOrProgram" /> <span class="synph" id="rzahhxpcmlschemaxsd__arrayofstruct"><a name="rzahhxpcmlschemaxsd__arrayofstruct"><!-- --></a><span class="kwd"></span></span><!-- Struct array type --> <xs:element name="arrayOfStruct" type="structArrayType" substitutionGroup="structArrayGroup" nillable="true" /> <xs:complexType name="structArrayType"> <xs:sequence> <!-- struct_i tag represents struct elements in an array. --> <xs:element name="struct_i" type="structElementType" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <!-- The name of the struct. --> <xs:attribute name="name" type="string50"/> <!-- Number of elements in the array. --> <!-- 'count' is required if you want to input and/or output array data as XPCML. --> <xs:attribute name="count" type="xs:string" /> <!-- Specifies whether this is an input, output, or input-output struct ('usage' in PCML). --> <xs:attribute name="passDirection" type="passDirectionType"/> <!-- The offset to the struct within an output parameter. --> <xs:attribute name="offset" type="xs:string" /> <!-- The base location from which the 'offset' attribute is relative. --> <xs:attribute name="offsetFrom" type="xs:string" /> <!-- The number of bytes to reserve for output data for the element. --> <xs:attribute name="outputSize" type="xs:string" /> <!-- The lowest version of i5/OS on which this element exists. --> <xs:attribute name="minvrm" type="string10" /> <!-- The highest version of i5/OS on which this element exists. --> <xs:attribute name="maxvrm" type="string10" /> </xs:complexType> <!-- Attributes that are common to all data field types. --> <xs:attributeGroup name="commonParmAttrs"> <!-- Specifies whether this is an input, output, or input-output parameter ('usage' in PCML). --> <!-- The default value if none is specified is 'inherit'. --> <xs:attribute name="passDirection" type="passDirectionType"/> <!-- Specifies whether the parameter is passed by reference or value ('passby' in PCML). --> <!-- The default value if none is specified is 'reference'. --> <xs:attribute name="passMode" type="passModeType" /> <!-- The offset to the element within an output parameter. --> <!-- The default value if none is specified is 0. --> <xs:attribute name="offset" type="xs:string" /> <!-- The base location from which the 'offset' attribute is relative. --> <xs:attribute name="offsetFrom" type="xs:string" /> <!-- The number of bytes to reserve for output data for the element. --> <xs:attribute name="outputSize" type="xs:string" /> <!-- The lowest version of i5/OS to which this field applies. --> <!-- If not specified, we assume this field applies to all versions. --> <xs:attribute name="minvrm" type="string10" /> <!-- The highest version of i5/OS to which this field applies. --> <!-- If not specified, we assume this field applies to all versions. --> <xs:attribute name="maxvrm" type="string10" /> </xs:attributeGroup> <xs:simpleType name="passDirectionType"> <xs:restriction base="xs:string"> <xs:enumeration value="in"/> <xs:enumeration value="inout"/> <xs:enumeration value="out"/> <xs:enumeration value="inherit"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="passModeType"> <xs:restriction base="xs:string"> <xs:enumeration value="value"/> <xs:enumeration value="reference"/> </xs:restriction> </xs:simpleType> <!-- Following types are to maintain compatibility with PCML --> <xs:simpleType name="bidiStringTypeType"> <xs:restriction base="xs:string"> <xs:enumeration value="ST4"/> <xs:enumeration value="ST5"/> <xs:enumeration value="ST6"/> <xs:enumeration value="ST7"/> <xs:enumeration value="ST8"/> <xs:enumeration value="ST9"/> <xs:enumeration value="ST10"/> <xs:enumeration value="ST11"/> <xs:enumeration value="DEFAULT"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="charType"> <xs:restriction base="xs:string"> <xs:enumeration value="onebyte"/> <xs:enumeration value="twobyte"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="trimType"> <xs:restriction base="xs:string"> <xs:enumeration value="none"/> <xs:enumeration value="left"/> <xs:enumeration value="right"/> <xs:enumeration value="both"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="returnValueType"> <xs:restriction base="xs:string"> <xs:enumeration value="void"/> <xs:enumeration value="integer"/> </xs:restriction> </xs:simpleType> <xs:complexType name="structureParmArray"> <xs:sequence> <xs:group ref="structureParm" minOccurs="0" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="name" type="string50"/> <xs:attribute name="passDirection" type="passDirectionType"/> <xs:attribute name="offset" type="xs:string" /> <xs:attribute name="offsetFrom" type="xs:string" /> <xs:attribute name="outputSize" type="xs:string" /> <xs:attribute name="minvrm" type="string10" /> <xs:attribute name="maxvrm" type="string10" /> </xs:complexType> <!-- A structureParm is exactly one of the following: stringParm, intParm, shortParm, longParm, zonedDecimalParm, packedDecimalParm, floatParm, doubleParm, or hexBinaryParm. --> <xs:group name="structureParm"> <xs:choice> <xs:element ref="stringParmGroup" /> <xs:element ref="stringParmArrayGroup" /> <xs:element ref="intParmGroup" /> <xs:element ref="intParmArrayGroup" /> <xs:element ref="unsignedIntParmGroup" /> <xs:element ref="unsignedIntParmArrayGroup" /> <xs:element ref="shortParmGroup" /> <xs:element ref="shortParmArrayGroup" /> <xs:element ref="unsignedShortParmGroup" /> <xs:element ref="unsignedShortParmArrayGroup" /> <xs:element ref="longParmGroup" /> <xs:element ref="longParmArrayGroup" /> <xs:element ref="zonedDecimalParmGroup" /> <xs:element ref="zonedDecimalParmArrayGroup" /> <xs:element ref="packedDecimalParmGroup" /> <xs:element ref="packedDecimalParmArrayGroup" /> <xs:element ref="floatParmGroup" /> <xs:element ref="floatParmArrayGroup" /> <xs:element ref="doubleParmGroup" /> <xs:element ref="doubleParmArrayGroup" /> <xs:element ref="hexBinaryParmGroup" /> <xs:element ref="hexBinaryParmArrayGroup" /> <xs:element ref="structParmGroup" /> <xs:element ref="structParmArrayGroup"/> <xs:element ref="structArrayGroup"/> <xs:element ref="struct"/> </xs:choice> </xs:group> <!-- Field Definition schema. --> <!-- Define basic iSeries native data types. --> <xs:complexType name="zonedDecimal"> <xs:simpleContent> <xs:extension base="xs:decimal"> <xs:attribute name="totalDigits" type="xs:positiveInteger" /> <xs:attribute name="fractionDigits" type="xs:nonNegativeInteger" /> </xs:extension> </xs:simpleContent> </xs:complexType> <xs:complexType name="packedDecimal"> <xs:simpleContent> <xs:extension base="xs:decimal"> <xs:attribute name="totalDigits" type="xs:positiveInteger" /> <xs:attribute name="fractionDigits" type="xs:nonNegativeInteger" /> </xs:extension> </xs:simpleContent> </xs:complexType> <xs:complexType name="structureFieldArray"> <xs:sequence> <xs:group ref="structureField" minOccurs="1" maxOccurs="unbounded"/> </xs:sequence> <xs:attribute name="name" type="string50"/> <!-- 'count' is required if you want to input and/or output array data as XPCML. --> <xs:attribute name="count" type="xs:string"/> </xs:complexType> <!-- Abstract type for "struct or program". --> <xs:element name="structOrProgram" abstract="true" /> <!-- Abstract type for all data field types. --> <xs:element name="stringFieldGroup" type="stringFieldType" abstract="true" /> <xs:element name="intFieldGroup" type="intFieldType" abstract="true" /> <xs:element name="unsignedIntFieldGroup" type="unsignedIntFieldType" abstract="true" /> <xs:element name="shortFieldGroup" type="shortFieldType" abstract="true" /> <xs:element name="unsignedShortFieldGroup" type="unsignedShortFieldType" abstract="true" /> <xs:element name="longFieldGroup" type="longFieldType" abstract="true" /> <xs:element name="zonedDecimalFieldGroup" type="zonedDecimalFieldType" abstract="true" /> <xs:element name="packedDecimalFieldGroup" type="packedDecimalFieldType" abstract="true" /> <xs:element name="floatFieldGroup" type="floatFieldType" abstract="true" /> <xs:element name="doubleFieldGroup" type="doubleFieldType" abstract="true" /> <xs:element name="hexBinaryFieldGroup" type="hexBinaryFieldType" abstract="true" /> <xs:element name="structFieldGroup" type="structFieldType" abstract="true" /> <!-- Declare each field element to be a specific field type. --> <xs:element name="stringField" type="stringFieldType" substitutionGroup="stringFieldGroup" nillable="true"/> <xs:element name="intField" type="intFieldType" nillable="true" substitutionGroup="intFieldGroup" /> <xs:element name="unsignedIntField" type="unsignedIntFieldType" substitutionGroup="unsignedIntFieldGroup" nillable="true"/> <xs:element name="shortField" type="shortFieldType" nillable="true" substitutionGroup="shortFieldGroup" /> <xs:element name="unsignedShortField" type="unsignedShortFieldType" nillable="true" substitutionGroup="unsignedShortFieldGroup" /> <xs:element name="longField" type="longFieldType" nillable="true" substitutionGroup="longFieldGroup" /> <xs:element name="hexBinaryField" type="hexBinaryFieldType" nillable="true" substitutionGroup="hexBinaryFieldGroup" /> <xs:element name="zonedDecimalField" type="zonedDecimalFieldType" nillable="true" substitutionGroup="zonedDecimalFieldGroup" /> <xs:element name="packedDecimalField" type="packedDecimalFieldType" nillable="true" substitutionGroup="packedDecimalFieldGroup" /> <xs:element name="doubleField" type="doubleFieldType" nillable="true" substitutionGroup="doubleFieldGroup" /> <xs:element name="floatField" type="floatFieldType" nillable="true" substitutionGroup="floatFieldGroup" /> <xs:element name="structField" type="structFieldType" nillable="true" substitutionGroup="structFieldGroup" /> <!-- A StructureField is exactly one of the following: stringField, intField, shortField, longField, zonedDecimalField, packedDecimalField, floatField, doubleField, or hexBinaryField. --> <xs:group name="structureField"> <xs:choice> <xs:element ref="stringFieldGroup"/> <xs:element ref="intFieldGroup"/> <xs:element ref="unsignedIntFieldGroup"/> <xs:element ref="shortFieldGroup"/> <xs:element ref="unsignedShortFieldGroup"/> <xs:element ref="longFieldGroup"/> <xs:element ref="zonedDecimalFieldGroup"/> <xs:element ref="packedDecimalFieldGroup"/> <xs:element ref="floatFieldGroup"/> <xs:element ref="doubleFieldGroup"/> <xs:element ref="hexBinaryFieldGroup"/> <xs:element ref="structParmGroup"/> <xs:element ref="struct"/> </xs:choice> </xs:group> <!-- Character field --> <!-- Maps to AS400Text. --> <xs:complexType name="stringFieldType"> <xs:simpleContent> <xs:extension base="xs:string"> <!-- Number of characters. --> <xs:attribute name="length" type="xs:string"/> <!-- Indicates the field's encoding (CCSID) on the server. --> <xs:attribute name="ccsid" type="xs:string"/> <xs:attribute name="trim" type="trimType" /> <xs:attribute name="bytesPerChar" type="charType" /> <xs:attribute name="bidiStringType" type="bidiStringTypeType" /> <xs:attributeGroup ref="commonFieldAttrs"/> </xs:extension> </xs:simpleContent> </xs:complexType> <!-- hexBinary field --> <!-- Maps to AS400ByteArray. --> <xs:complexType name="hexBinaryFieldType"> <xs:simpleContent> <xs:extension base="xs:hexBinary"> <xs:attributeGroup ref="commonFieldAttrs"/> </xs:extension> </xs:simpleContent> </xs:complexType> <!-- Float field --> <!-- Maps to AS400Float4. --> <xs:complexType name="floatFieldType"> <xs:simpleContent> <xs:extension base="xs:float"> <xs:attributeGroup ref="commonFieldAttrs"/> </xs:extension> </xs:simpleContent> </xs:complexType> <!-- zonedDecimal field --> <!-- Maps to AS400ZonedDecimal. --> <xs:complexType name="zonedDecimalFieldType"> <xs:simpleContent> <xs:extension base="zonedDecimal"> <xs:attributeGroup ref="commonFieldAttrs"/> </xs:extension> </xs:simpleContent> </xs:complexType> <!-- packedDecimal field --> <!-- Maps to AS400PackedDecimal. --> <xs:complexType name="packedDecimalFieldType"> <xs:simpleContent> <!-- In DDS, "binary" values are 1-18 digits; if field length is greater than 9, then decimal positions value must be 0. --> <xs:extension base="packedDecimal"> <xs:attributeGroup ref="commonFieldAttrs"/> </xs:extension> </xs:simpleContent> </xs:complexType> <!-- int field --> <!-- Maps to AS400Bin4. --> <xs:complexType name="intFieldType"> <xs:simpleContent> <xs:extension base="xs:int"> <xs:attributeGroup ref="commonFieldAttrs"/> </xs:extension> </xs:simpleContent> </xs:complexType> <!-- unsigned int field --> <!-- Maps to AS400Bin4. --> <xs:complexType name="unsignedIntFieldType"> <xs:simpleContent> <xs:extension base="xs:unsignedInt"> <xs:attributeGroup ref="commonFieldAttrs"/> </xs:extension> </xs:simpleContent> </xs:complexType> <!-- short field --> <!-- Maps to AS400Bin2. --> <xs:complexType name="shortFieldType"> <xs:simpleContent> <xs:extension base="xs:short"> <xs:attributeGroup ref="commonFieldAttrs"/> </xs:extension> </xs:simpleContent> </xs:complexType> <!-- unsigned short field --> <!-- Maps to AS400Bin2. --> <xs:complexType name="unsignedShortFieldType"> <xs:simpleContent> <xs:extension base="xs:unsignedShort"> <xs:attributeGroup ref="commonFieldAttrs"/> </xs:extension> </xs:simpleContent> </xs:complexType> <!-- long field --> <!-- Maps to AS400Bin8. --> <xs:complexType name="longFieldType"> <xs:simpleContent> <xs:extension base="xs:long"> <xs:attributeGroup ref="commonFieldAttrs"/> </xs:extension> </xs:simpleContent> </xs:complexType> <!-- double field --> <!-- Maps to AS400Float8. --> <xs:complexType name="doubleFieldType"> <xs:simpleContent> <xs:extension base="xs:double"> <xs:attributeGroup ref="commonFieldAttrs"/> </xs:extension> </xs:simpleContent> </xs:complexType> <!-- struct Field --> <xs:complexType name="structFieldType"> <xs:simpleContent> <xs:extension base="xs:string"> <xs:attribute name="struct" type="string50"/> <xs:attributeGroup ref="commonFieldAttrs"/> </xs:extension> </xs:simpleContent> </xs:complexType> <!-- Attributes that are common to all data field types. --> <xs:attributeGroup name="commonFieldAttrs"> <xs:attribute name="name" type="string50"/> <xs:attribute name="columnHeading1" type="string20"/> <xs:attribute name="columnHeading2" type="string20"/> <xs:attribute name="columnHeading3" type="string20"/> <xs:attribute name="description" type="string50"/> <xs:attribute name="defaultValue" type="xs:string"/><!-- Max length of string is 65535 characters. --> <xs:attribute name="nullable" type="xs:boolean"/> <xs:attribute name="isEmptyString" type="xs:boolean"/><!-- Indicate this is an empty string. --> </xs:attributeGroup> <!-- Utility types. --> <xs:simpleType name="ccsidType"> <xs:restriction base="xs:nonNegativeInteger"> <xs:maxInclusive value="65535"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="string10"> <xs:restriction base="xs:string"> <xs:maxLength value="10"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="string20"> <xs:restriction base="xs:string"> <xs:maxLength value="20"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="string50"> <xs:restriction base="xs:string"> <xs:maxLength value="50"/> </xs:restriction> </xs:simpleType> </xs:schema></pre> </div> </div> <div> <div class="familylinks"> <div class="parentlink"><strong>Parent topic:</strong> <a href="rzahhxpcmlschema.htm" title="XPCML documents, called XPCML source files, contain tags and data that fully define calls to programs on your iSeries server.">XPCML schema and syntax</a></div> </div> </div> </body> </html>