XML Data Models

Some functions are returning data as an XML String. The data models for each function is detailed below. Utility fuctions are used as described here
Only relevant parts are documented here since XML string returned by LINK2i functions also include XML metadata tags.

Targeted IBM i Information

ListDatabasesXML

Databases inventory

  • dataBases Root tag
  • Link2iXML Link2i tag
  • dataBase Item tag
  • Link2iXML Link2i tag
  • dataBase Item tag
  • Link2iXML Link2i tag

Sample XML returned by ListDataBase:
<dataBases>
    <Link2iXML>
        <dataBase>LIB1</dataBase>
    </Link2iXML>
    <Link2iXML>
        <dataBase>LIB2</dataBase>
    </Link2iXML>
    <Link2iXML>…</Link2iXML>
</dataBases>

        

ListTablesXML

Tables inventory in a database

  • tables Root tag
  • Link2iXML Link2i tag
  • table Item tag
  • Link2iXML Link2i tag
  • table Item tag
  • Link2iXML Link2i tag

Sample XML returned by ListTables:
<tables>
    <Link2iXML>
        <table>TABLE1</table>
    </Link2iXML>
    <Link2iXML>
        <table>TABLE2</table>
    </Link2iXML>
    <Link2iXML>...</Link2iXML>
</tables>

        

ListFieldsXML

Tables fields list

  • fields Root tag
  • Link2iXML Link2i tag
  • field Item tag
  • Link2iXML Link2i tag
  • field Item tag
  • Link2iXML Link2i tag

Sample XML returned by ListField:
<fields>
    <Link2iXML>
        <field>FIELD1</field>
    </Link2iXML>
    <Link2iXML>
        <field>FIELD2</field>
    </Link2iXML>
    <Link2iXML>...</Link2iXML>
</fields>

        

GetObjectDetailsXML

Detailed description of objects

  • objectDetails  Root tag
  • Link2iXML Link2i tag
  • objectItem Item tag
  • Link2iXML Link2i tag
  • objectItem Item tag
  • Link2iXML Link2i tag

Sample XML returned by ObjectDetail:
<objectDetails >
    <Link2iXML>
        <objectItem>Object Type..: *FILE</objectItem>
    </Link2iXML>
    <Link2iXML>
        <objectItem>SRC file Member..: TARTICLE</objectItem>
    </Link2iXML>
    <Link2iXML>…</Link2iXML>
</objectDetails >

        

Programs

ListProgramsXML

Inventory of programs of a database

  • programs Root tag
  • Link2iXML Link2i tag
  • program Item tag
  • Link2iXML Link2i tag
  • program Item tag
  • Link2iXML Link2i tag

Sample XML returned by ListPgm:
<programs>
    <Link2iXML>
        <program>CLIE10     - Liste des clients</program>
    </Link2iXML>
    <Link2iXML>
        <program>LSTSPL1    - Liste Spools</program>
    </Link2iXML>
    <Link2iXML>...</Link2iXML>
</programs>

        

ListSourcesXML

Inventory of source files of a database

  • sources Root tag
  • Link2iXML Link2i tag
  • source Item tag
  • Link2iXML Link2i tag
  • source Item tag
  • Link2iXML Link2i tag

Sample XML returned by ListSrc:
<sources>
    <Link2iXML>
        <source>QRPGSRC    - Sources des programmes RPG</source>
    </Link2iXML>
    <Link2iXML>
        <source>QDSPSRC    - Sources des définitions d'écran</source>
    </Link2iXML>
    <Link2iXML>...</Link2iXML>
</sources>

        

ListMembersXML

Inventory of source members of a source file of a database

  • members Root tag
  • Link2iXML Link2i tag
  • member Item tag
  • Link2iXML Link2i tag
  • member Item tag
  • Link2iXML Link2i tag

Sample XML returned by ListMbr:
<members>
    <Link2iXML>
        <member>PFQSPL     - Table (liste) des fichiers spools<</member>
    </Link2iXML>
    <Link2iXML>
        <member>REPERPF    - Répertoire de la base de données</member>
    </Link2iXML>
    <Link2iXML>...</Link2iXML>
</members>

        

Database

GetRecordXML

Getting fields values and names by an SQL SELECT query

  • DataSet Root tag
  • xs:schema  Data description tag
    • id 
  • xs:element  Field description
    • name 
    • minOccurs 
    • type 
    • dataBase 
    • dataType 
    • key 
    • dataTable 
    • defaultValue 
    • decimal 
    • ibmiSerialNumber 
    • header 
    • keyUnique 
    • length 
    • description 
  • NewDataSet Records root tag
  • Table1  Fields root tag
    • diffgr:id 
    • diffgr:hasChanges 
    • msdata:rowOrder 
  • <...> Record fields containing XML tags named after fields

Sample XML returned by :
<DataSet>
    <xs:schema  id="NewDataSet">
        <xs:element  msdata:UseCurrentLocale="true " msdata:IsDataSet ="true" name="NewDataSet">
            <xs:complexType>
                <xs:choice  maxOccurs ="unbounded" minOccurs="0">
                    <xs:element  name="Table1">
                        <xs:complexType>
                            <xs:sequence>
                                <xs:element  name="CIP " minOccurs="0" type="xs:string " dataBase="QS36G " dataType="VarChar " key="True " dataTable="ARTICPF " defaultValue=" " decimal="  " ibmiSerialNumber="S78CFF40 " header="CIP " keyUnique="True " length="7" description="">name=CIP description= length=7 keyUnique=True header=CIP …</xs:element >
                            </xs:sequence>
                        </xs:complexType>
                    </xs:element >
                </xs:choice >
            </xs:complexType>
        </xs:element >
    </xs:schema >
    <diffgr:diffgram >
        <NewDataSet>
            <Table1  diffgr:id="Table11 " diffgr:hasChanges="inserted " msdata:rowOrder="0">
                <<...>>3220771 …</<...>>
            </Table1 >
        </NewDataSet>
    </diffgr:diffgram >
</DataSet>

        

GetAllRecordsXML

Getting records of a table by an SQL SELECT query

  • DataSet Root tag
  • xs:schema  Data description
    • id 
  • xs:element  Field description
    • name 
    • minOccurs 
    • type 
    • dataBase 
    • dataType 
    • key 
    • dataTable 
    • defaultValue 
    • decimal 
    • ibmiSerialNumber 
    • header 
    • keyUnique 
    • length 
    • description 
  • NewDataSet Records root tag
  • Table1  Fields root tag
    • diffgr:id 
    • diffgr:hasChanges 
    • msdata:rowOrder 
  • <...> Record fields containing XML tags named after fields
  • Table1  Fields root tag
    • diffgr:id 
    • diffgr:hasChanges 
    • msdata:rowOrder 
  • <...> Record fields containing XML tags named after fields
  • Table1  Fields root tag

Sample XML returned by GetDataDB2fori:
<DataSet>
    <xs:schema  id="NewDataSet">
        <xs:element  msdata:UseCurrentLocale="true " msdata:IsDataSet ="true" name="NewDataSet">
            <xs:complexType>
                <xs:choice  maxOccurs ="unbounded" minOccurs="0">
                    <xs:element  name="Table1">
                        <xs:complexType>
                            <xs:sequence>
                                <xs:element  name="CIP " minOccurs="0" type="xs:string " dataBase="QS36G " dataType="VarChar " key="True " dataTable="ARTICPF " defaultValue=" " decimal="  " ibmiSerialNumber="S78CFF40 " header="CIP " keyUnique="True " length="7" description=""></xs:element >
                            </xs:sequence>
                        </xs:complexType>
                    </xs:element >
                </xs:choice >
            </xs:complexType>
        </xs:element >
    </xs:schema >
    <diffgr:diffgram >
        <NewDataSet>
            <Table1  diffgr:id="Table11 " diffgr:hasChanges="inserted " msdata:rowOrder="0">
                <<...>> FLCG30…</<...>>
            </Table1 >
            <Table1  diffgr:id="Table12 " diffgr:hasChanges="inserted " msdata:rowOrder="1">
                <<...>>AL60 1L…</<...>>
            </Table1 >
            <Table1 >…</Table1 >
        </NewDataSet>
    </diffgr:diffgram >
</DataSet>

        

CL in .Net

UtilityCLCmdGetXML

IBM i CL command prompt

  • CLCmd Root tag
    • DTDVersion 
  • Cmd Command root tag
    • RtvCmdExit 
    • ChgCmdExit 
    • ExecBatch 
    • PmtFileLib 
    • PmtFile 
    • MsgFLib 
    • MsgF 
    • PmtOvrLib 
    • PmtOvrPgm 
    • PrdLib 
    • CurLib 
    • MaxPos 
    • HlpID 
    • HlpPnlGrpLib 
    • HlpPnlGrp 
    • PromptMsgID 
    • Prompt 
    • CCSID 
    • CmdLib 
    • CmdName 
  • Parm  Parameters root tag
    • PromptMsgID 
    • Prompt 
    • Choice 
    • PassVal 
    • RtnVal 
    • InlPmtLen 
    • Case 
    • PassAtr 
    • ListDspl 
    • Vary 
    • IsPgm 
    • IsFile 
    • IsDtaAra 
    • Expr 
    • AlwVar 
    • AlwUnprt 
    • Full 
    • Rstd 
    • ChoiceLib 
    • ChoicePgm  
    • ChoiceMsgID  
    • DspInput  
    • RangeMaxVal 
    • RangeMinVal  
    • RangeMaxKwd  
    • RangeMinKwd  
    • RelKwd  
    • RelVal  
    • Rel 
    • Constant 
    • Dft  
    • Len 
    • Val 
    • PosNbr 
    • KeyParm  
    • PmtCtl  
    • PmtCtlLib 
    • PmtCtlPgm  
    • Max  
    • Min  
    • Type  
    • Kwd 
  • ChoicePgmValues Special values root tag
  • Value  Item tag
    • Val 

Sample XML returned by PromptCMD:
<CLCmd DTDVersion="1.0">
    <Cmd RtvCmdExit="NO " ChgCmdExit="NO " ExecBatch="YES " PmtFileLib="_ " PmtFile="_ " MsgFLib="__LIBL" MsgF="QCPFMSG" PmtOvrLib="_ " PmtOvrPgm="_ " PrdLib="_ " CurLib="_ " MaxPos="2" HlpID="CRTLIB" HlpPnlGrpLib="__LIBL " HlpPnlGrp="QHLICMD" PromptMsgID="_ " Prompt="Créer une bibliothèque" CCSID="37" CmdLib="QSYS" CmdName="CRTLIB">
        <Parm  PromptMsgID="_ " Prompt="Bibliothèque" Choice="Nom" PassVal="_ " RtnVal="_ " InlPmtLen="_ " Case="_ " PassAtr="_ " ListDspl="_ " Vary="_ " IsPgm="_ " IsFile="_ " IsDtaAra="_ " Expr="YES " AlwVar="YES " AlwUnprt="YES " Full="NO " Rstd="NO " ChoiceLib="" ChoicePgm ="" ChoiceMsgID ="" DspInput ="YES " RangeMaxVal="" RangeMinVal ="" RangeMaxKwd ="" RangeMinKwd ="" RelKwd ="" RelVal ="" Rel="" Constant="" Dft ="" Len="10" Val="" PosNbr="1" KeyParm ="NO" PmtCtl ="" PmtCtlLib="" PmtCtlPgm ="" Max ="1" Min ="1" Type ="NAME " Kwd="LIB">
            <ChoicePgmValues>
                <Value  Val="*USE "></Value >
            </ChoicePgmValues>
            <ChoicePgmText  Text="_"></ChoicePgmText >
            <Qual  PromptMsgID ="_" Prompt="_" Choice="_" InlPmtLen ="_" PassAtr="_" Expr ="_" AlwVar="_" AlwUnprt ="_" Full ="_" Rstd="_" ChoiceLib ="_" ChoicePgm="_" ChoiceMsgID ="_" DspInput ="_" RangeMaxVal ="_" RangeMinVal ="_" RelVal="_" Rel ="_" Constant ="_" Dft ="_" Len="_" Min="_" Type="_">
                <SpcVal>
                    <Value Val="_ " MapTo="_"></Value>
                </SpcVal>
                <SngVal>
                    <Value Val="_ " MapTo="_"></Value>
                </SngVal>
            </Qual >
            <Elem  PromptMsgID ="_" Prompt ="_" Choice ="_" InlPmtLen="_" Case ="_" PassAtr ="_" Vary ="_" IsPgm ="_" IsFile ="_" IsDtaAra="_" Expr ="_" AlwVar ="_" AlwUnprt ="_" Full ="_" Rstd ="_" ChoiceLib ="_" ChoicePgm ="_" ChoiceMsgID ="_" DspInput ="_" RangeMaxVal ="_" RangeMinVal ="_" RelVal ="_" Rel ="_" Constant ="_" Dft ="_" Len ="_" Max ="_" Min ="_" Type="_">
                <SpcVal>
                    <Value Val="_ " MapTo="_"></Value>
                </SpcVal>
            </Elem >
            <PmtCtl LglRel ="_" NbrTrue ="_" NbrTrueRel ="_" CtlKwd="_">
                <PmtCtlCond Rel ="_" CmpVal="_"></PmtCtlCond>
            </PmtCtl>
        </Parm >
        <Dep NbrTrue ="1" NbrTrueRel ="EQ" CtlKwd ="LIB" CmpVal ="QRPLOBJ" MsgID ="CPD2110" CmpKwd ="_" CtlKwdRel="EQ">
            <DepParm Rel ="EQ" Kwd ="ASP" CmpVal ="1" CmpKwd="_"></DepParm>
        </Dep>
    </Cmd>
</CLCmd>