ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum IndexWebSphere Message Broker (ACE) SupportDefining BAI 88 Record(Continuation) using DFDL

Post new topicReply to topic Goto page 1, 2  Next
Defining BAI 88 Record(Continuation) using DFDL View previous topic :: View next topic
Author Message
TheYodas
PostPosted: Mon Apr 28, 2014 10:47 am Post subject: Defining BAI 88 Record(Continuation) using DFDL Reply with quote

Novice

Joined: 28 Apr 2014
Posts: 15

Hello,

I am modelling a BAI definition using DFDL. Here are the details about the definition.

The BAI file contains following records. A sample BAI
file is posted at the end.


88 Continuation
A Continuation record is used when data exceed the maximum physical record
length, or whenever it is desirable to continue data into an additional
record. It
may follow any record type, including another continuation record (88 record) .


01 File Header
The file header marks the beginning of a file. It identifies the sender and
receiver of the transmission, and it describes the structure of the file.

02 Group Header
The group header identifies a group of accounts that are from the same
originator and includes the same as-of-date and as-of-time.

03 Account Identifier and Summary/Status
This record identifies the account number and reports activity summary and
account status information. Summary information may be accompanied by an item
count and funds availability distribution.

16 Transaction Detail
This record is used for transmission of detail transaction information.
Transaction detail may include two reference numbers and a free-form
alphanumeric text.

49 Account Trailer
The Account Trailer record provides account control totals.

98 Group Trailer
This record provides group control totals.

99 File Trailer
This record provides file control totals.

Sample file:
01,122099999,123456789,040621,0200,1,65,,2/
02,031001234,122099999,1,040620,2359,,2/
03,0123456789,,010,+4350000,,,040,2830000,,/
88,072,1020000,,,074,500000,,/
16,,115,450000,S,100000,200000,150000,,,/
49,9150000,4/
03,9876543210,,010,-500000,,,100,1000000,,,400,2000000,,,190/
88,500000,,,110,1000000,,,072,500000,,,074,500000,,,040/
88,-1500000,,/
16,115,500000,S,,200000,300000,,,LOCK BOX NO.68751
49,4000000,5/
98,13150000,2,11/
02,053003456,122099999,1,040620,2359,,2/
03,4589761203,,010,10000000,,,040,5000000,,,074,4000000,,/
88,400,50000000,,,100,60000000,,,110,20000000,,,072,1000000,,/
16,218,20000000,V,040622,,SP4738,YRC065321/
88,PROCEEDS OF LETTER OF CREDIT FROM THE ARAMCO OIL CO
16,195,10000000,1,,,/
49,180000000,6/
98,180000000,1,8/
02,071207890,122099999,1,040620,2359,,2/
03,0975312468,,010,500000,,,190,70000000,4,0,110/
88,70000000,15,D,3,0,20000000,1,30000000,3,20000000/
49,140500000,3/
98,140500000,1,5/
02,071207890,122099999,3,040620,2359,,2/
03,7890654321,,010,800000,,,040,6000000,,,110,5000000/
88,4,/
49,11800000,3/
98,11800000,1,5/
99,345450000,4,31/


I have defined all the records except for 88 record. My imaginative brain is frozen now thinking of 88 record. DFDL experts please suggest or give ideas how to achieve this.
Back to top
View user's profile Send private message
TheYodas
PostPosted: Mon Apr 28, 2014 11:00 am Post subject: Reply with quote

Novice

Joined: 28 Apr 2014
Posts: 15

Detailed Specs can be found at following location:
http://www.bai.org/operations/PDF/Cash_Management_2005.pdf
Back to top
View user's profile Send private message
kimbert
PostPosted: Mon Apr 28, 2014 8:00 pm Post subject: Reply with quote

Jedi Council

Joined: 29 Jul 2003
Posts: 5542
Location: Southampton

Thanks for taking the time to explain the problem clearly and carefully.
The 88 records are a problem because they can appear in different locations within a record. I would do it this way:
- Parse the message in the BLOB domain
- Use ESQL REPLACE ( or some Java code, if you prefer ) to replace all occurrences of "/\n88," with ","
- Use an RCD node, or CREATE...PARSE to parse the adjusted BLOB using a nice, simple DFDL model.
_________________
Before you criticize someone, walk a mile in their shoes. That way you're a mile away, and you have their shoes too.
Back to top
View user's profile Send private message
TheYodas
PostPosted: Wed Apr 30, 2014 8:16 am Post subject: Reply with quote

Novice

Joined: 28 Apr 2014
Posts: 15

Thanks for your response and suggestion kimbert.

Actually, I did do the work around by reading as BLOB adn then reading record by record of 80 bytes each. And then for every record which has 88 record associated and then "/" , I replaced "88," with ",". And for every record which has 88 record but no "/" I replaced "88," with blank ( The reason I had to differentiate this was "/" is used as logical terminator and we cannot have this to be part of data)

Now, I have 88 record merged to previous record, but before I modeled my DFDL with explicit length of 80 bytes for each record and "/" as terminator. Now, I changed 03 Account Identifier and 16 Transaction Detail as delimited because its no longer 80 bytes because of 88 record and there is no "/" as well. I am not able to parse 03 Account Identifier and 16 Transaction Detail. Any Ideas on this?
Back to top
View user's profile Send private message
kimbert
PostPosted: Wed Apr 30, 2014 8:48 am Post subject: Reply with quote

Jedi Council

Joined: 29 Jul 2003
Posts: 5542
Location: Southampton

Quote:
I changed 03 Account Identifier and 16 Transaction Detail as delimited because its no longer 80 bytes because of 88 record and there is no "/" as well. I am not able to parse 03 Account Identifier and 16 Transaction Detail. Any Ideas on this?
Complex elements usually have lengthKind set to 'implicit'. Even if they are fixed length. The only reason to set lengthKind to 'explicit' on a complex element is when its final child is variable-length.
The child elements should have lengthKind='delimited'.

Try that, and diagnose any problems using DFDL Trace. Post again with full details if you are still stuck.
_________________
Before you criticize someone, walk a mile in their shoes. That way you're a mile away, and you have their shoes too.
Back to top
View user's profile Send private message
TheYodas
PostPosted: Thu May 01, 2014 7:54 am Post subject: Reply with quote

Novice

Joined: 28 Apr 2014
Posts: 15

I am still having issue parsing.

Here is my DFDL schema:

BAIFile:

Code:


<?xml version="1.0" encoding="UTF-8"?><xsd:schema targetNamespace="btmu:bai" xmlns:csv="http://www.ibm.com/dfdl/CommaSeparatedFormat" xmlns:dfdl="http://www.ogf.org/dfdl/dfdl-1.0/" xmlns:ibmDfdlExtn="http://www.ibm.com/dfdl/extensions" xmlns:ibmSchExtn="http://www.ibm.com/schema/extensions" xmlns:ns0="btmu:bai" xmlns:xsd="http://www.w3.org/2001/XMLSchema">


        <xsd:include schemaLocation="BAI_Records.xsd"/>
    <xsd:import namespace="http://www.ibm.com/dfdl/CommaSeparatedFormat" schemaLocation="../IBMdefined/CommaSeparatedFormat.xsd"/>
         <xsd:element dfdl:representation="text" ibmSchExtn:docRoot="true" name="BAIFile">
          <xsd:complexType>
            <xsd:sequence dfdl:separator="" dfdl:terminator="">
              <xsd:element dfdl:length="80" dfdl:lengthKind="explicit" ref="ns0:FileHeaderRecord"/>
              <xsd:element dfdl:fillByte="%SP;" dfdl:lengthKind="delimited" dfdl:occursCountKind="implicit" maxOccurs="unbounded" minOccurs="0" name="Group">
                <xsd:complexType>
                  <xsd:sequence dfdl:separator="">
                  <xsd:annotation>
                <xsd:appinfo source="http://www.ogf.org/dfdl/">
                  <dfdl:sequence/>
                </xsd:appinfo>
              </xsd:annotation>
                            <xsd:element dfdl:length="80" dfdl:lengthKind="explicit" minOccurs="1" ref="ns0:GroupHeaderRecord"/>
                    <xsd:element dfdl:lengthKind="delimited" dfdl:occursCountKind="implicit" maxOccurs="unbounded" minOccurs="0" name="Account">
                      <xsd:complexType>
                        <xsd:sequence dfdl:separator="">
                          <xsd:element dfdl:lengthKind="delimited" minOccurs="1" ref="ns0:AccountIdentifierRecord"/>
                          <xsd:element dfdl:lengthKind="delimited" dfdl:occursCountKind="implicit" maxOccurs="unbounded" minOccurs="0" name="Transactions">
                            <xsd:complexType>
                              <xsd:sequence dfdl:separator="">
                     <xsd:element dfdl:lengthKind="delimited" minOccurs="1" ref="ns0:TransactionDetailRecord"/>
                             </xsd:sequence>
                            </xsd:complexType>
                          </xsd:element>
                          <xsd:element dfdl:length="80" dfdl:lengthKind="explicit" minOccurs="1" ref="ns0:AccountTrailerRecord"/>
                        </xsd:sequence>
                      </xsd:complexType>
                    </xsd:element>
                    <xsd:element dfdl:length="80" dfdl:lengthKind="explicit" minOccurs="1" ref="ns0:GroupTrailerRecord"/>
                  </xsd:sequence>
                </xsd:complexType>
              </xsd:element>
              <xsd:element dfdl:length="80" dfdl:lengthKind="explicit" ref="ns0:FileTrailerRecord"/>
            </xsd:sequence>
          </xsd:complexType>
        </xsd:element>

    <xsd:annotation>
      <xsd:appinfo source="http://www.ogf.org/dfdl/">
         <dfdl:format documentFinalTerminatorCanBeMissing="yes" encoding="{$dfdl:encoding}" escapeSchemeRef="csv:CSVEscapeScheme" ref="csv:CommaSeparatedFormat"/>
      </xsd:appinfo>
   </xsd:annotation>


   


</xsd:schema>




BAIRecords:

Code:


<?xml version="1.0" encoding="UTF-8"?><xsd:schema targetNamespace="btmu:bai" xmlns:dfdl="http://www.ogf.org/dfdl/dfdl-1.0/" xmlns:ibmDfdlExtn="http://www.ibm.com/dfdl/extensions" xmlns:ibmSchExtn="http://www.ibm.com/schema/extensions" xmlns:ns0="btmu:bai" xmlns:recSepFieldsFmt="http://www.ibm.com/dfdl/RecordSeparatedFieldFormat" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
        <xsd:include schemaLocation="BAI_Elements.xsd"/>
    <xsd:import namespace="http://www.ibm.com/dfdl/RecordSeparatedFieldFormat" schemaLocation="../IBMdefined/RecordSeparatedFieldFormat.xsd"/>
                    <xsd:element dfdl:emptyValueDelimiterPolicy="none" dfdl:initiator="" name="FileHeaderRecord">
    <xsd:complexType>
      <xsd:sequence dfdl:initiator="01," dfdl:terminator="/">
                <xsd:element dfdl:emptyValueDelimiterPolicy="none" dfdl:nilValueDelimiterPolicy="none" ref="ns0:SenderIdentification"/>
        <xsd:element dfdl:emptyValueDelimiterPolicy="none" dfdl:nilValueDelimiterPolicy="none" ref="ns0:ReceiverIdentification"/>
        <xsd:element dfdl:emptyValueDelimiterPolicy="none" dfdl:nilValueDelimiterPolicy="none" ref="ns0:FileCreationDate"/>
        <xsd:element dfdl:emptyValueDelimiterPolicy="none" dfdl:nilValueDelimiterPolicy="none" ref="ns0:FileCreationTime"/>
        <xsd:element ref="ns0:FileIdentificationNumber"/>
        <xsd:element dfdl:emptyValueDelimiterPolicy="none" dfdl:nilValueDelimiterPolicy="none" dfdl:occursCountKind="implicit" minOccurs="0" ref="ns0:PhysicalRecordLength"/>
        <xsd:element dfdl:emptyValueDelimiterPolicy="none" dfdl:nilValueDelimiterPolicy="none" dfdl:occursCountKind="implicit" minOccurs="0" ref="ns0:BlockSize"/>
        <xsd:element ref="ns0:VersionNumber"/>
       
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
 
   <xsd:element dfdl:emptyValueDelimiterPolicy="none" dfdl:initiator="" name="GroupHeaderRecord">
    <xsd:complexType>
      <xsd:sequence dfdl:initiator="02," dfdl:terminator="/">
                <xsd:element dfdl:emptyValueDelimiterPolicy="none" dfdl:nilValueDelimiterPolicy="none" dfdl:occursCountKind="implicit" minOccurs="0" ref="ns0:UltimateReceiverIdentification"/>
        <xsd:element ref="ns0:OrginatorIdentification">
          <xsd:annotation>
            <xsd:appinfo source="http://www.ogf.org/dfdl/">
              <dfdl:discriminator>{fn:true()}</dfdl:discriminator>
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:element>
        <xsd:element ref="ns0:GroupStatus"/>
        <xsd:element ref="ns0:AsofDate"/>
        <xsd:element ref="ns0:AsofTime"/>
        <xsd:element dfdl:emptyValueDelimiterPolicy="none" dfdl:nilValueDelimiterPolicy="none" dfdl:occursCountKind="implicit" minOccurs="0" ref="ns0:CurrencyCode"/>
        <xsd:element dfdl:emptyValueDelimiterPolicy="none" dfdl:nilValueDelimiterPolicy="none" dfdl:occursCountKind="implicit" dfdl:terminator="" minOccurs="0" ref="ns0:AsofDateModifier"/>
             
      </xsd:sequence>
      </xsd:complexType>
  </xsd:element>
 
 
     <xsd:element dfdl:emptyValueDelimiterPolicy="none" dfdl:initiator="03," dfdl:terminator="" name="AccountIdentifierRecord">
    <xsd:complexType>
      <xsd:sequence dfdl:initiator="" dfdl:separatorPolicy="suppressedAtEndLax" dfdl:terminator="">
        <xsd:element ref="ns0:CustomerAccountNumber">
          <xsd:annotation>
            <xsd:appinfo source="http://www.ogf.org/dfdl/">
              <dfdl:discriminator>{fn:true()}</dfdl:discriminator>
            </xsd:appinfo>
          </xsd:annotation>
        </xsd:element>
        <xsd:element dfdl:emptyValueDelimiterPolicy="none" dfdl:nilValueDelimiterPolicy="none" dfdl:occursCountKind="implicit" minOccurs="0" ref="ns0:CurrencyCode"/>
       
                                               
                            <xsd:element dfdl:occursCountKind="implicit" maxOccurs="unbounded" minOccurs="1" ref="ns0:AccountTypeCodes"/>
            </xsd:sequence>
      </xsd:complexType>
  </xsd:element>
 
 
 
      <xsd:element dfdl:emptyValueDelimiterPolicy="none" dfdl:initiator="16," dfdl:terminator="" ibmSchExtn:docRoot="true" name="TransactionDetailRecord">
                                  <xsd:complexType>
                                    <xsd:sequence dfdl:initiator="" dfdl:separatorPolicy="suppressedAtEndLax" dfdl:terminator="">
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              <xsd:element maxOccurs="1" ref="ns0:TransactionTypeCodes"/>
                <xsd:element dfdl:emptyValueDelimiterPolicy="none" dfdl:nilValueDelimiterPolicy="none" dfdl:occursCountKind="implicit" minOccurs="0" ref="ns0:BankReferenceNumber"/>
                                                                                <xsd:element dfdl:emptyValueDelimiterPolicy="none" dfdl:nilValueDelimiterPolicy="none" dfdl:occursCountKind="implicit" minOccurs="0" ref="ns0:CustomerReferenceNumber"/>
                                                                                <xsd:element dfdl:emptyValueDelimiterPolicy="none" dfdl:lengthKind="delimited" dfdl:nilValueDelimiterPolicy="none" dfdl:occursCountKind="implicit" minOccurs="0" ref="ns0:Text"/>
                                                                    </xsd:sequence>
                                  </xsd:complexType>
                                </xsd:element>
 
 
 
         
         <xsd:element dfdl:initiator="" name="ContinuationRecord">
    <xsd:complexType>
      <xsd:sequence dfdl:initiator="88,">
                <xsd:element ref="ns0:NextField"/>
               
      </xsd:sequence>
      </xsd:complexType>
  </xsd:element>
 
           <xsd:element dfdl:emptyValueDelimiterPolicy="none" dfdl:initiator="" name="AccountTrailerRecord">
    <xsd:complexType>
      <xsd:sequence dfdl:initiator="49," dfdl:terminator="/">
                <xsd:element ref="ns0:AccountControlTotal"/>
            <xsd:element ref="ns0:NumberofRecords"/>
               
      </xsd:sequence>
      </xsd:complexType>
  </xsd:element>
 
             <xsd:element dfdl:emptyValueDelimiterPolicy="none" dfdl:initiator="" name="GroupTrailerRecord">
    <xsd:complexType>
      <xsd:sequence dfdl:initiator="98," dfdl:terminator="/">
                <xsd:element ref="ns0:GroupControlTotal"/>
          <xsd:element ref="ns0:NumberofAccounts"/>
          <xsd:element ref="ns0:NumberofRecords"/>
      </xsd:sequence>
      </xsd:complexType>
  </xsd:element>
 
  <xsd:element dfdl:emptyValueDelimiterPolicy="none" dfdl:initiator="" name="FileTrailerRecord">
    <xsd:complexType>
      <xsd:sequence dfdl:initiator="99," dfdl:terminator="/">
                <xsd:element ref="ns0:FileControlTotal"/>
                      <xsd:element ref="ns0:NumberofGroups"/>
                <xsd:element ref="ns0:NumberofRecords"/>
            </xsd:sequence>
      </xsd:complexType>
  </xsd:element>
    <xsd:annotation>
      <xsd:appinfo source="http://www.ogf.org/dfdl/">
         <dfdl:format byteOrder="{$dfdl:byteOrder}" encoding="{$dfdl:encoding}" escapeSchemeRef="recSepFieldsFmt:RecordEscapeScheme" occursCountKind="fixed" ref="recSepFieldsFmt:RecordSeparatedFieldsFormat"/>
   </xsd:appinfo>
   </xsd:annotation>

   
    <xsd:element dfdl:emptyValueDelimiterPolicy="none" name="AccountTypeCodes">
                            <xsd:complexType>
                              <xsd:sequence dfdl:separatorPolicy="suppressedAtEndLax">
        <xsd:element minOccurs="1" ref="ns0:TypeCode"/>
        <xsd:element dfdl:emptyValueDelimiterPolicy="none" dfdl:nilValueDelimiterPolicy="none" dfdl:occursCountKind="implicit" minOccurs="0" ref="ns0:Amount"/>
        <xsd:element dfdl:emptyValueDelimiterPolicy="none" dfdl:nilValueDelimiterPolicy="none" dfdl:occursCountKind="implicit" minOccurs="0" ref="ns0:ItemCount"/>
                 
                                    <xsd:choice>
         
          <xsd:sequence>
          <xsd:element minOccurs="1" ref="ns0:FundsType"/>
                          <xsd:element dfdl:emptyValueDelimiterPolicy="none" dfdl:nilValueDelimiterPolicy="none" dfdl:occursCountKind="implicit" maxOccurs="1" minOccurs="0" name="AccountFundTypes">
                            <xsd:complexType>
                              <xsd:sequence>         
                   
                                                   <xsd:annotation>
                <xsd:appinfo source="http://www.ogf.org/dfdl/"/>
              </xsd:annotation>
                            <xsd:choice dfdl:choiceLengthKind="implicit">
                       
                       
                                                                        <xsd:annotation>
                  <xsd:appinfo source="http://www.ogf.org/dfdl/">
                    <dfdl:choice/>
                  </xsd:appinfo>
                </xsd:annotation>
                                                                                                                <xsd:sequence>
                                        <xsd:annotation>
                                    <xsd:appinfo source="http://www.ogf.org/dfdl/">
                                         <dfdl:discriminator>{if(../FundsType eq 'S') then(fn:true()) else (fn:false())}</dfdl:discriminator>
                                     </xsd:appinfo>
                                 </xsd:annotation>
                           <xsd:element name="SFundsType">
                                            <xsd:complexType>
                                              <xsd:sequence>
                                                <xsd:element dfdl:representation="text" name="ImmediateAvailabilityAmount" type="xsd:string"/>
                                                <xsd:element dfdl:representation="text" name="OneDayAvailabilityAmount" type="xsd:string"/>
                                                <xsd:element dfdl:representation="text" name="MorethanDayAvailabilityAmount" type="xsd:string"/>
                                              </xsd:sequence>
                                            </xsd:complexType>
                                          </xsd:element>
                    </xsd:sequence>
                                                                                                                                        <xsd:sequence>
                                           <xsd:annotation>
                                    <xsd:appinfo source="http://www.ogf.org/dfdl/">
                                         <dfdl:discriminator>{if(../FundsType eq 'V') then(fn:true()) else (fn:false())}</dfdl:discriminator>
                                     </xsd:appinfo>
                                 </xsd:annotation>
                                          <xsd:element name="VFundsType">
                                            <xsd:complexType>
                                              <xsd:sequence>
                                                <xsd:element dfdl:representation="text" name="ValueDate" type="xsd:string"/>
                                                <xsd:element dfdl:representation="text" name="ValueTime" type="xsd:string"/>
                                              </xsd:sequence>
                                            </xsd:complexType>
                                          </xsd:element>
                                        </xsd:sequence>
                                       
                                       
                                       
                                                                              </xsd:choice>
                   
                     </xsd:sequence>
                            </xsd:complexType>
                          </xsd:element>
         
         
          </xsd:sequence>
          <xsd:sequence/>
         
        </xsd:choice>

                         
                                                                                                   </xsd:sequence>
                            </xsd:complexType>
                          </xsd:element>
                         
    <xsd:element dfdl:emptyValueDelimiterPolicy="none" name="TransactionTypeCodes">
                            <xsd:complexType>
                              <xsd:sequence>
        <xsd:element minOccurs="1" ref="ns0:TypeCode"/>
        <xsd:element dfdl:emptyValueDelimiterPolicy="none" dfdl:nilValueDelimiterPolicy="none" dfdl:occursCountKind="implicit" minOccurs="0" ref="ns0:Amount"/>
                        <xsd:element dfdl:occursCountKind="implicit" dfdl:representation="text" minOccurs="0" name="TranFundsType" type="xsd:string"/>
         
                                    <xsd:element dfdl:emptyValueDelimiterPolicy="none" dfdl:nilValueDelimiterPolicy="none" dfdl:occursCountKind="implicit" maxOccurs="1" minOccurs="0" name="TransactionFundTypes">
                            <xsd:complexType>
                              <xsd:sequence>         
                   
                       <xsd:choice>
                                                                        <xsd:annotation>
                  <xsd:appinfo source="http://www.ogf.org/dfdl/">
                    <dfdl:choice/>
                  </xsd:appinfo>
                </xsd:annotation>
                                <xsd:sequence>
                                        <xsd:annotation>
                                    <xsd:appinfo source="http://www.ogf.org/dfdl/">
                                         <dfdl:discriminator>{../TranFundsType eq 'S'}</dfdl:discriminator>
                                     </xsd:appinfo>
                                 </xsd:annotation>
                           <xsd:element name="STranFundsType">
                                            <xsd:complexType>
                                              <xsd:sequence>
                                                <xsd:element dfdl:representation="text" name="ImmediateAvailabilityAmount" type="xsd:string"/>
                                                <xsd:element dfdl:representation="text" name="OneDayAvailabilityAmount" type="xsd:string"/>
                                                <xsd:element dfdl:representation="text" name="MorethanDayAvailabilityAmount" type="xsd:string"/>
                                              </xsd:sequence>
                                            </xsd:complexType>
                                          </xsd:element>
                    </xsd:sequence>
                                        <xsd:sequence>
                                           <xsd:annotation>
                                    <xsd:appinfo source="http://www.ogf.org/dfdl/">
                                         <dfdl:discriminator>{../TranFundsType eq 'V'}</dfdl:discriminator>
                                     </xsd:appinfo>
                                 </xsd:annotation>
                                          <xsd:element name="VTranFundsType">
                                            <xsd:complexType>
                                              <xsd:sequence>
                                                <xsd:element dfdl:representation="text" name="ValueDate" type="xsd:string"/>
                                                <xsd:element dfdl:representation="text" name="ValueTime" type="xsd:string"/>
                                              </xsd:sequence>
                                            </xsd:complexType>
                                          </xsd:element>
                                        </xsd:sequence>
                                       
                    </xsd:choice>
                   
                     </xsd:sequence>
                            </xsd:complexType>
                          </xsd:element>
                         
               </xsd:sequence>
                            </xsd:complexType>
                          </xsd:element>
                         
</xsd:schema>




I have removed "88," for every 88 record, so that record is part of 03 or 16 record. The problem I have is it is not able to terminate 03 record. Before I used fixed bytes of 80 bytes per record and terminator of "/". I have removed this now. Because of this change it tries to parse complete string starting from "03," as part of 03 record. I am clueless to tell the parser where to stop 03 record. Any ideas.
Back to top
View user's profile Send private message
kimbert
PostPosted: Thu May 01, 2014 11:38 pm Post subject: Reply with quote

Jedi Council

Joined: 29 Jul 2003
Posts: 5542
Location: Southampton

You need to define a separator of "%NL;" ( or a more specific line terminator if you prefer) on the sequence group that contains the 03 record.
_________________
Before you criticize someone, walk a mile in their shoes. That way you're a mile away, and you have their shoes too.
Back to top
View user's profile Send private message
TheYodas
PostPosted: Tue May 06, 2014 12:55 pm Post subject: Reply with quote

Novice

Joined: 28 Apr 2014
Posts: 15

Thanks tim,

I am adding %LF to both 03 and 16 record.

Now, I am having issue with TranFundsType.

Valid Values are as follows :

0 = immediate availability (zero)
1 = one-day availability
2 = two-or-more-days availability
S = distributed availability
V = value dated
D = distributed availability
Z = unknown (default)

But, we would be expecting only three values which is S,V and Z.

If TranFundsType is S:

The next three fields are immediate availability
amount, one-day availability amount, and more than one-day
availability amount.

If TranFundsType = V, the next two fields are value date (YYMMDD) and
value time.

If TranFundsType = Z, this is default value.

To model this I have used choice in DFDL. I dont have any issues parsing S and V. But, when it comes Z, I am getting error.
It is looking for Seperator ",".

Here is how the record looks like:

The three fields in record 16 after Z, belong to BankReferenceNumber,CustomerReferenceNumber and Text

Quote:


16,174,12312304,S,0,32112334,1167590,1234000005,,/
16,174,765655,Z,123134592,0000000234118, 00000071233/


Quote:


<xsd:element dfdl:emptyValueDelimiterPolicy="none" dfdl:initiator="16," dfdl:lengthKind="delimited" minOccurs="1" dfdl:terminator="%CR;%LF;" ibmSchExtn:docRoot="true" name="TransactionDetailRecord">
<xsd:complexType>
<xsd:sequence dfdl:initiator="" dfdl:separatorPolicy="suppressedAtEndLax" dfdl:terminator="">
<xsd:element maxOccurs="1" ref="ns0:TransactionTypeCodes"/>
<xsd:element dfdl:emptyValueDelimiterPolicy="none" dfdl:nilValueDelimiterPolicy="none" dfdl:occursCountKind="implicit" minOccurs="0" ref="ns0:BankReferenceNumber"/>
<xsd:element dfdl:emptyValueDelimiterPolicy="none" dfdl:nilValueDelimiterPolicy="none" dfdl:occursCountKind="implicit" minOccurs="0" ref="ns0:CustomerReferenceNumber"/>
<xsd:sequence dfdl:separator="">
<xsd:element dfdl:emptyValueDelimiterPolicy="none" dfdl:escapeSchemeRef="ns0:CommaPropertiesEscapeScheme" dfdl:lengthKind="delimited" dfdl:nilValueDelimiterPolicy="none" dfdl:occursCountKind="implicit" minOccurs="0" name="Text" type="xsd:string"/>
</xsd:sequence>

</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>









Quote:

<xsd:element dfdl:emptyValueDelimiterPolicy="none" name="TransactionTypeCodes">
<xsd:complexType>
<xsd:sequence dfdl:separatorPolicy="suppressedAtEndLax">
<xsd:element dfdl:occursCountKind="implicit" minOccurs="0" ref="ns0:TypeCode"/>
<xsd:element dfdl:emptyValueDelimiterPolicy="none" dfdl:nilValueDelimiterPolicy="none" dfdl:occursCountKind="implicit" minOccurs="0" ref="ns0:Amount"/>


<xsd:choice>

<xsd:annotation>
<xsd:appinfo source="http://www.ogf.org/dfdl/">
<dfdl:choice/>
</xsd:appinfo>
</xsd:annotation>
<xsd:sequence dfdl:separator="," dfdl:separatorPolicy="suppressedAtEndLax">
<xsd:element dfdl:occursCountKind="implicit" dfdl:representation="text" minOccurs="0" name="TranFundsType" type="xsd:string"/>
<xsd:element dfdl:emptyValueDelimiterPolicy="none" dfdl:occursCountKind="implicit" maxOccurs="1" minOccurs="0" name="TransactionFundTypes">
<xsd:annotation>
<xsd:appinfo source="http://www.ogf.org/dfdl/">
<dfdl:discriminator>{fn:true()}</dfdl:discriminator>
</xsd:appinfo>
</xsd:annotation>
<xsd:complexType dfdl:separatorPolicy="suppressedAtEndLax">
<xsd:sequence dfdl:separatorPolicy="suppressedAtEndLax">

<xsd:annotation>
<xsd:appinfo source="http://www.ogf.org/dfdl/"/>
</xsd:annotation>
<xsd:choice dfdl:choiceLengthKind="implicit">


<xsd:annotation>
<xsd:appinfo source="http://www.ogf.org/dfdl/">
<dfdl:choice/>
</xsd:appinfo>
</xsd:annotation>
<xsd:sequence dfdl:separatorPolicy="required">
<xsd:annotation>
<xsd:appinfo source="http://www.ogf.org/dfdl/">
<dfdl:discriminator>{if(../TranFundsType eq 'S') then(fn:true()) else (fn:false())}</dfdl:discriminator>
<dfdl:sequence/>
</xsd:appinfo>
</xsd:annotation>
<xsd:element dfdl:occursCountKind="implicit" minOccurs="0" name="SFundsType">
<xsd:complexType>
<xsd:sequence dfdl:separatorPolicy="required">
<xsd:element dfdl:representation="text" name="ImmediateAvailabilityAmount" type="xsd:string"/>
<xsd:element dfdl:representation="text" name="OneDayAvailabilityAmount" type="xsd:string"/>
<xsd:element dfdl:representation="text" name="MorethanDayAvailabilityAmount" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:sequence dfdl:separatorPolicy="required">
<xsd:annotation>
<xsd:appinfo source="http://www.ogf.org/dfdl/">
<dfdl:discriminator>{if(../TranFundsType eq 'V') then(fn:true()) else (fn:false())}</dfdl:discriminator>
</xsd:appinfo>
</xsd:annotation>
<xsd:element dfdl:occursCountKind="implicit" minOccurs="0" name="VFundsType">
<xsd:complexType>
<xsd:sequence dfdl:separatorPolicy="required">
<xsd:element dfdl:representation="text" name="ValueDate" type="xsd:string"/>
<xsd:element dfdl:representation="text" name="ValueTime" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>

<xsd:sequence dfdl:separator="" dfdl:separatorPolicy="suppressedAtEndLax">
<xsd:annotation>
<xsd:appinfo source="http://www.ogf.org/dfdl/">
<dfdl:discriminator>{if(../TranFundsType eq 'Z') then(fn:true()) else (fn:false())}</dfdl:discriminator>
</xsd:appinfo>
</xsd:annotation>
<xsd:sequence dfdl:separator="">
<xsd:annotation>
<xsd:appinfo source="http://www.ogf.org/dfdl/">
<dfdl:discriminator>{fn:true()}</dfdl:discriminator>
</xsd:appinfo>
</xsd:annotation>
</xsd:sequence>
</xsd:sequence>



</xsd:choice>

</xsd:sequence>
</xsd:complexType>
</xsd:element>


</xsd:sequence>
<xsd:sequence dfdl:separator="">
<xsd:annotation>
<xsd:appinfo source="http://www.ogf.org/dfdl/">
<dfdl:sequence/>
</xsd:appinfo>
</xsd:annotation>
</xsd:sequence>

</xsd:choice>


</xsd:sequence>
</xsd:complexType>
</xsd:element>




Here is the error trace:

Quote:


May 6, 2014 4:50:57 PM info: Offset: 340. Choice branch 'sequence' encountered. The DFDL parser will return to this position if this branch of the choice is not found in the data stream.
[dfdl = /BTMU_DEP_BNY_MsgSets/BAI/BAI_File.xsd, scd = #xmlns(p="btmu:bai")xscd(/schemaElement::p:TransactionTypeCodes/type::0/model::sequence/model::choice/model::sequence[1]/schemaElement::TransactionFundTypes/type::0/model::sequence/model::choice/model::sequence[3]), 165]

May 6, 2014 4:50:57 PM info: Offset: 340. Attempting expression '{if(../TranFundsType eq 'Z') then(fn:true()) else (fn:false())}' for element 'sequence'.

May 6, 2014 4:50:57 PM info: Offset: 340. A DFDL discriminator with condition '{if(../TranFundsType eq 'Z') then(fn:true()) else (fn:false())}' evaluated to true with message '' while parsing 'sequence'.
[dfdl = /BTMU_DEP_BNY_MsgSets/BAI/BAI_File.xsd, scd = #xmlns(p="btmu:bai")xscd(/schemaElement::p:TransactionTypeCodes/type::0/model::sequence/model::choice/model::sequence[1]/schemaElement::TransactionFundTypes/type::0/model::sequence/model::choice/model::sequence[3]), 182]

May 6, 2014 4:50:57 PM info: Offset: 340. Attempting expression '{fn:true()}' for element 'sequence'.

May 6, 2014 4:50:57 PM info: Offset: 340. A DFDL discriminator with condition '{fn:true()}' evaluated to true with message '' while parsing 'sequence'.
[dfdl = /BTMU_DEP_BNY_MsgSets/BAI/BAI_File.xsd, scd = #xmlns(p="btmu:bai")xscd(/schemaElement::p:TransactionTypeCodes/type::0/model::sequence/model::choice/model::sequence[1]/schemaElement::TransactionFundTypes/type::0/model::sequence/model::choice/model::sequence[3]/model::sequence), 130]

May 6, 2014 4:50:57 PM info: Offset: 340. Finished processing element 'TransactionFundTypes'.
[dfdl = /BTMU_DEP_BNY_MsgSets/BAI/BAI_File.xsd, scd = #xmlns(p="btmu:bai")xscd(/schemaElement::p:TransactionTypeCodes/type::0/model::sequence/model::choice/model::sequence[1]/schemaElement::TransactionFundTypes), 72]

May 6, 2014 4:50:57 PM info: Offset: 340. Finished processing element 'TransactionTypeCodes'.
[dfdl = /BTMU_DEP_BNY_MsgSets/BAI/BAI_File.xsd, scd = #xmlns(p="btmu:bai")xscd(/schemaElement::p:TransactionTypeCodes), 72]

May 6, 2014 4:50:57 PM error: CTDP3058E: Separator ',' not found at offset '340' for sequence or choice within element '/BAIFile[1]/Group[1]/Account[1]/Transactions[2]/TransactionDetailRecord[1]'.

May 6, 2014 4:50:57 PM info: Offset: 340. Parser was unable to resolve data on the current branch and will evaluate the next available branch beginning at offset '324' owned by the 'sequence' group contained within element 'Account'.
[dfdl = /BTMU_DEP_BNY_MsgSets/BAI/BAI_File.xsd, scd = #xmlns(p="btmu:bai")xscd(/schemaElement::p:BAIFile/type::0/model::sequence/schemaElement::Group/type::0/model::sequence/schemaElement::Account/type::0/model::sequence), 212]

May 6, 2014 4:50:57 PM info: Offset: 324. Occurrence '2' of element 'Transactions' was not found in the data. occursCountKind is 'implicit' so no more occurrences of this element will be expected.
[dfdl = /BTMU_DEP_BNY_MsgSets/BAI/BAI_File.xsd, scd = #xmlns(p="btmu:bai")xscd(/schemaElement::p:BAIFile/type::0/model::sequence/schemaElement::Group/type::0/model::sequence/schemaElement::Account/type::0/model::sequence/schemaElement::Transactions), 176]

Back to top
View user's profile Send private message
kimbert
PostPosted: Thu May 08, 2014 2:58 am Post subject: Reply with quote

Jedi Council

Joined: 29 Jul 2003
Posts: 5542
Location: Southampton

This is happening because the separatorPolicy is 'suppressedAtEnd' and this discriminator
Code:
<dfdl:discriminator>{if(../TranFundsType eq 'Z') then(fn:true()) else (fn:false())}</dfdl:discriminator>
is stating explicitly that element "TransactionFundTypes" was present in the data.

Not sure what the best option is to model this...I'll post again when I have had a think about it.
_________________
Before you criticize someone, walk a mile in their shoes. That way you're a mile away, and you have their shoes too.
Back to top
View user's profile Send private message
fjb_saper
PostPosted: Thu May 08, 2014 4:29 am Post subject: Reply with quote

Grand High Poobah

Joined: 18 Nov 2003
Posts: 20696
Location: LI,NY

Is there a way to define an asymetric format?
Like if you get a %NL;88%SP; remove it during parsing,
If on serialization your field is > x at char x-1 add %NL;88%SP; ?

Or would this have to be a 2 stage process?
Parse/serialize with type 88 and assemble / split in a compute node just after parsing or just before serialization... ?
_________________
MQ & Broker admin
Back to top
View user's profile Send private message Send e-mail
kimbert
PostPosted: Thu May 08, 2014 4:42 am Post subject: Reply with quote

Jedi Council

Joined: 29 Jul 2003
Posts: 5542
Location: Southampton

@fjb_saper: No, there is not way to pre-process the data stream in the way that you describe using DFDL facilities. It could be done using two DFDL models plus some code to orchestrate the usage of the two models. But in IIB or message broker it's easier to do some string manipulation for these rare cases.
_________________
Before you criticize someone, walk a mile in their shoes. That way you're a mile away, and you have their shoes too.
Back to top
View user's profile Send private message
mah9960
PostPosted: Sat Jun 17, 2017 5:06 am Post subject: Defining BAI Structure using DFDL Reply with quote

Newbie

Joined: 17 Jun 2017
Posts: 3

@TheYodas, could you please post the xsd.


Thanks
Back to top
View user's profile Send private message
mqjeff
PostPosted: Mon Jun 19, 2017 4:05 am Post subject: Re: Defining BAI Structure using DFDL Reply with quote

Grand Master

Joined: 25 Jun 2008
Posts: 17447

mah9960 wrote:
@TheYodas, could you please post the xsd.


Thanks


Quote:
Posted: Thu May 08, 2014 7:42 am


_________________
chmod -R ugo-wx /
Back to top
View user's profile Send private message
mah9960
PostPosted: Tue Jul 04, 2017 8:00 am Post subject: creating BAI2 structure in ESQL and parsing at file o/p node Reply with quote

Newbie

Joined: 17 Jun 2017
Posts: 3

Hello experts, I am also using similar scenario.
I"m creating the BAI2 structure in compute and parsing using dfdl below are the detials

I/p message
01,072000096,072000096,161005,0739,1,80,00,2/
02,072000096,072000096,1,161005,0739,,3/
03,1000000040,,,,,,,,,/
16,195,000000000000100,0,160916500001,144720/
88,Sending Bank: 022000046 M AND T BANK - Sending Bank Reference:
88,160922000029000 - Receiving Bank: 111000753 BENEF BANK - Beneficiary:
88,ACCT-7001094700, ANDREA contact admin, WEST NORTHWEST HIGHWAY, DALLAS, TX, 75225 -
88,Originator: ACCT-*****2000, WILMINGTON TRUST,
88,1100 NORTH MARKET STREET WILMINGTON, DE 19801 - Amount: $30,000.00 -
88,Acceptance Timestamp: 09/22/2016 07:56 - OMAD Fields:
88,20160922K1QX112C00000109220801FT01 - IMAD: 20160922B2Q8921C000004 -
88,Business Function Code: CTP/
49,+00000012590200,000055/
16,495,000000000000100,0,160916500001,144720/
88,Sending Bank: 022000046 M AND T BANK - Sending Bank Reference:
88,160922000029000 - Receiving Bank: 111000753 BENEF BANK - Beneficiary:
88,ACCT-7001094700, ANDREA contact admin, WEST NORTHWEST HIGHWAY, DALLAS, TX, 75225 -
88,Originator: ACCT-*****2000, WILMINGTON TRUST,
88,1100 NORTH MARKET STREET WILMINGTON, DE 19801 - Amount: $30,000.00 -
88,Acceptance Timestamp: 09/22/2016 07:56 - OMAD Fields:
88,20160922K1QX112C00000109220801FT01 - IMAD: 20160922B2Q8921C000004 -
88,Business Function Code: CTP/
49,+00000012590200,000055/
03,1000000041,,,,,,,,,/
16,195,000000000000100,0,160916500001,144720/
88,Sending Bank: 022000046 M AND T BANK - Sending Bank Reference:
88,160922000029000 - Receiving Bank: 111000753 BENEF BANK - Beneficiary:
88,ACCT-7001094700, ANDREA contact admin, WEST NORTHWEST HIGHWAY, DALLAS, TX, 75225 -
88,Originator: ACCT-*****2000, WILMINGTON TRUST,
88,1100 NORTH MARKET STREET WILMINGTON, DE 19801 - Amount: $30,000.00 -
88,Acceptance Timestamp: 09/22/2016 07:56 - OMAD Fields:
88,20160922K1QX112C00000109220801FT01 - IMAD: 20160922B2Q8921C000004 -
88,Business Function Code: CTP/
49,+00000012590200,000055/
98,+00000012590200,000001,000057/
02,072000096,111000753,1,161005,0739,,3/
03,1000000040,,,,,,,,,/
16,195,000000000000100,0,160916500001,144720/
88,Sending Bank: 022000046 M AND T BANK - Sending Bank Reference:
88,160922000029000 - Receiving Bank: 111000753 BENEF BANK - Beneficiary:
88,ACCT-7001094700, ANDREA contact admin, WEST NORTHWEST HIGHWAY, DALLAS, TX, 75225 -
88,Originator: ACCT-*****2000, WILMINGTON TRUST,
88,1100 NORTH MARKET STREET WILMINGTON, DE 19801 - Amount: $30,000.00 -
88,Acceptance Timestamp: 09/22/2016 07:56 - OMAD Fields:
88,20160922K1QX112C00000109220801FT01 - IMAD: 20160922B2Q8921C000004 -
88,Business Function Code: CTP/
49,+00000012590200,000055/
03,1000000041,,,,,,,,,/
16,195,000000000000100,0,160916500001,144720/
88,Sending Bank: 022000046 M AND T BANK - Sending Bank Reference:
88,160922000029000 - Receiving Bank: 111000753 BENEF BANK - Beneficiary:
88,ACCT-7001094700, ANDREA contact admin, WEST NORTHWEST HIGHWAY, DALLAS, TX, 75225 -
88,Originator: ACCT-*****2000, WILMINGTON TRUST,
88,1100 NORTH MARKET STREET WILMINGTON, DE 19801 - Amount: $30,000.00 -
88,Acceptance Timestamp: 09/22/2016 07:56 - OMAD Fields:
88,20160922K1QX112C00000109220801FT01 - IMAD: 20160922B2Q8921C000004 -
88,Business Function Code: CTP/
49,+00000012590200,000055/
98,+00000012590200,000001,000057/
99,+00000012590200,000001,000059/



XSD created
<?xml version="1.0" encoding="UTF-8"?><xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:dfdl="http://www.ogf.org/dfdl/dfdl-1.0/" xmlns:fn="http://www.w3.org/2005/xpath-functions" xmlns:ibmDfdlExtn="http://www.ibm.com/dfdl/extensions" xmlns:ibmSchExtn="http://www.ibm.com/schema/extensions" xmlns:recSepFieldsFmt="http://www.ibm.com/dfdl/RecordSeparatedFieldFormat">
<xsd:import namespace="http://www.ibm.com/dfdl/RecordSeparatedFieldFormat" schemaLocation="IBMdefined/RecordSeparatedFieldFormat.xsd"/>
<xsd:annotation>
<xsd:appinfo source="http://www.ogf.org/dfdl/">
<dfdl:format encoding="{$dfdl:encoding}" escapeSchemeRef="" occursCountKind="implicit" ref="recSepFieldsFmt:RecordSeparatedFieldsFormat"/>
</xsd:appinfo>
</xsd:annotation>
<xsd:element ibmSchExtn:docRoot="true" name="B_22">
<xsd:complexType>
<xsd:sequence dfdl:separator="" dfdl:separatorSuppressionPolicy="anyEmpty">
<!-- Record 01 Header -->
<xsd:element dfdl:initiator="01," dfdl:terminator="%CR;%LF;" name="Head01">
<xsd:complexType>
<xsd:sequence dfdl:separator="," dfdl:separatorSuppressionPolicy="anyEmpty" dfdl:terminator="/">
<!-- <xsd:element dfdl:escapeSchemeRef="" dfdl:length="2" dfdl:lengthKind="explicit" dfdl:lengthUnits="bytes" dfdl:terminator="" ibmDfdlExtn:sampleValue="" name="RecTyp" type="xsd:string" /> -->
<xsd:element dfdl:nilKind="literalValue" dfdl:nilValue="%ES;" dfdl:nilValueDelimiterPolicy="none" dfdl:useNilForDefault="yes" name="SenderIdentification" nillable="true" type="xsd:string"/>
<xsd:element dfdl:nilKind="literalValue" dfdl:nilValue="%ES;" dfdl:nilValueDelimiterPolicy="none" dfdl:useNilForDefault="yes" name="ReceiverIdentification" nillable="true" type="xsd:string"/>

<xsd:element dfdl:nilKind="literalValue" dfdl:nilValue="%ES;" dfdl:nilValueDelimiterPolicy="none" dfdl:useNilForDefault="yes" name="FileCreationDate" nillable="true" type="xsd:string"/>
<xsd:element dfdl:nilValueDelimiterPolicy="none" name="FileCreationTime" type="xsd:string"/>
<xsd:element dfdl:nilValueDelimiterPolicy="none" dfdl:textNumberPattern="#####" dfdl:textOutputMinLength="1" dfdl:textPadKind="padChar" name="FileIdentificationNumber" type="xsd:int"/>
<xsd:element dfdl:nilValueDelimiterPolicy="none" name="PhysicalRecordLength" type="xsd:string"/>
<xsd:element dfdl:nilValueDelimiterPolicy="none" name="BlockSize" type="xsd:string"/>
<xsd:element dfdl:nilValueDelimiterPolicy="none" name="VersionNumber" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>


<xsd:element dfdl:emptyValueDelimiterPolicy="none" dfdl:initiator="" maxOccurs="unbounded" minOccurs="0" name="GroupHead02">
<xsd:complexType>
<!-- Record 02 Group Header -->
<xsd:sequence dfdl:initiator="" dfdl:separator="" dfdl:terminator="%CR;%LF;">

<!-- Record 03 AccountList -->
<xsd:element dfdl:terminator="%CR;%LF;" name="Rec_02">
<xsd:complexType>
<xsd:sequence dfdl:initiator="02," dfdl:separator="," dfdl:terminator="/">
<xsd:element name="ReceiverIdentification" type="xsd:string"/>
<xsd:element name="SenderIdentification" type="xsd:string"/>
<xsd:element name="Status" type="xsd:string"/>
<xsd:element dfdl:nilKind="literalValue" dfdl:nilValue="%ES;" dfdl:nilValueDelimiterPolicy="none" dfdl:useNilForDefault="yes" name="FileCreationDate" nillable="true" type="xsd:string"/>
<xsd:element dfdl:nilValueDelimiterPolicy="none" name="FileCreationTime" type="xsd:string"/>
<xsd:element dfdl:nilKind="literalValue" dfdl:nilValue="%ES;" dfdl:nilValueDelimiterPolicy="none" dfdl:useNilForDefault="yes" name="CurrencyCode" nillable="true" type="xsd:string"/>
<xsd:element dfdl:nilKind="literalValue" dfdl:nilValue="%ES;" dfdl:nilValueDelimiterPolicy="none" dfdl:useNilForDefault="yes" name="AsofDate" nillable="true" type="xsd:string"/>


</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element dfdl:emptyValueDelimiterPolicy="none" dfdl:initiator="" dfdl:terminator="%CR;%LF;" maxOccurs="unbounded" minOccurs="0" name="Rec_03">
<xsd:annotation>
<xsd:appinfo source="http://www.ogf.org/dfdl/">
<dfdl:discriminator>{fn:true()}</dfdl:discriminator>
</xsd:appinfo>
</xsd:annotation>
<xsd:complexType>

<xsd:sequence dfdl:initiator="03," dfdl:separator="" dfdl:separatorSuppressionPolicy="never">

<xsd:element dfdl:terminator="," name="AccountNumber" type="xsd:string"/>
<xsd:element dfdl:nilKind="literalValue" dfdl:nilValue="%ES;" dfdl:terminator="," dfdl:useNilForDefault="yes" name="CurrencyCode" nillable="true" type="xsd:string"/>
<xsd:element dfdl:nilKind="literalValue" dfdl:nilValue="%ES;" dfdl:terminator="," dfdl:useNilForDefault="yes" name="TypeCode" nillable="true" type="xsd:string"/>
<xsd:element dfdl:nilKind="literalValue" dfdl:nilValue="%ES;" dfdl:terminator="," dfdl:useNilForDefault="yes" name="Amount" type="xsd:string"/>
<xsd:element dfdl:nilKind="literalValue" dfdl:nilValue="%ES;" dfdl:terminator="," dfdl:useNilForDefault="yes" name="ItemCount" nillable="true" type="xsd:string"/>
<xsd:element dfdl:nilKind="literalValue" dfdl:nilValue="%ES;" dfdl:terminator="," dfdl:useNilForDefault="yes" name="FundsType" nillable="true" type="xsd:string"/>
<xsd:element dfdl:nilKind="literalValue" dfdl:nilValue="%ES;" dfdl:terminator="," dfdl:useNilForDefault="yes" name="FundsTypeValueDate" nillable="true" type="xsd:string"/>
<xsd:element dfdl:nilKind="literalValue" dfdl:nilValue="%ES;" dfdl:terminator="," dfdl:useNilForDefault="yes" name="FundsTypeNoofDistribution" nillable="true" type="xsd:string"/>
<xsd:element dfdl:nilKind="literalValue" dfdl:nilValue="%ES;" dfdl:terminator="," dfdl:useNilForDefault="yes" name="FundsTypeDollarsImmediatelyAvailable" nillable="true" type="xsd:string"/>
<xsd:element dfdl:emptyValueDelimiterPolicy="terminator" dfdl:nilKind="literalValue" dfdl:nilValue="%ES;" dfdl:terminator="/%CR;%LF;" dfdl:useNilForDefault="yes" name="AsOfDate" nillable="true" type="xsd:string"/>

<!-- Record 16 AccountList -->
<xsd:element dfdl:emptyValueDelimiterPolicy="none" dfdl:initiator="" maxOccurs="unbounded" minOccurs="0" name="Rec_16">
<xsd:annotation>
<xsd:appinfo source="http://www.ogf.org/dfdl/">
<dfdl:discriminator>{fn:true()}</dfdl:discriminator>
</xsd:appinfo>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence dfdl:initiator="16," dfdl:separator="" dfdl:terminator="">
<!-- <xsd:element dfdl:emptyValueDelimiterPolicy="none" dfdl:nilValueDelimiterPolicy="none" dfdl:occursCountKind="implicit" maxOccurs="unbounded" minOccurs="0" name="Record16" type="xsd:string"/>
-->

<xsd:element dfdl:terminator="," name="BAITypeRecord" type="xsd:string"/>
<xsd:element dfdl:terminator="," dfdl:textNumberJustification="right" dfdl:textNumberPadCharacter="0" dfdl:textNumberPattern="#######" dfdl:textNumberRep="standard" dfdl:textOutputMinLength="14" dfdl:textPadKind="none" dfdl:textStandardBase="10" name="Amount" type="xsd:integer"/>
<xsd:element dfdl:terminator="," name="FundType" type="xsd:string"/>
<xsd:element dfdl:terminator="," name="MNTransactionSequenceNumber" type="xsd:string"/>
<xsd:element dfdl:terminator="/%CR;%LF;" name="BankReference" type="xsd:string"/>

<!-- Record 88 Detailed Account -->
<xsd:element dfdl:emptyValueDelimiterPolicy="none" dfdl:initiator="" dfdl:terminator="%CR;%LF;" maxOccurs="unbounded" minOccurs="0" name="Rec_88">
<xsd:annotation>
<xsd:appinfo source="http://www.ogf.org/dfdl/">
<dfdl:discriminator>{fn:true()}</dfdl:discriminator>
</xsd:appinfo>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence dfdl:separatorSuppressionPolicy="anyEmpty">
<xsd:element dfdl:emptyValueDelimiterPolicy="none" dfdl:nilValueDelimiterPolicy="none" dfdl:occursCountKind="implicit" minOccurs="0" name="Record88" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>

<!-- Record 49 Detailed Account -->
<xsd:element dfdl:emptyValueDelimiterPolicy="none" dfdl:initiator="" maxOccurs="unbounded" name="Rec_49">
<xsd:annotation>
<xsd:appinfo source="http://www.ogf.org/dfdl/">
<dfdl:discriminator>{fn:true()}</dfdl:discriminator>
</xsd:appinfo>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence dfdl:initiator="49," dfdl:separator="," dfdl:terminator="/">
<xsd:element dfdl:initiator="+" dfdl:textNumberJustification="right" dfdl:textNumberPadCharacter="0" dfdl:textNumberPattern="#####" dfdl:textNumberRep="standard" dfdl:textOutputMinLength="14" dfdl:textPadKind="padChar" dfdl:textStandardBase="10" name="Amount" type="xsd:integer"/>
<xsd:element dfdl:textNumberJustification="right" dfdl:textNumberPadCharacter="0" dfdl:textNumberPattern="####" dfdl:textNumberRep="standard" dfdl:textOutputMinLength="5" dfdl:textPadKind="padChar" dfdl:textStandardBase="10" name="RecCount" type="xsd:integer"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>


<xsd:element dfdl:emptyValueDelimiterPolicy="none" dfdl:initiator="98," dfdl:terminator="" maxOccurs="unbounded" minOccurs="0" name="Rec_98">
<xsd:annotation>
<xsd:appinfo source="http://www.ogf.org/dfdl/">
<dfdl:discriminator>{fn:true()}</dfdl:discriminator>
</xsd:appinfo>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence dfdl:separator="," dfdl:terminator="/">
<xsd:element dfdl:initiator="+" dfdl:terminator="" dfdl:textNumberJustification="right" dfdl:textNumberPadCharacter="0" dfdl:textNumberPattern="#####" dfdl:textNumberRep="standard" dfdl:textOutputMinLength="14" dfdl:textPadKind="padChar" dfdl:textStandardBase="10" dfdl:textTrimKind="none" name="Amount" type="xsd:integer"/>
<xsd:element dfdl:terminator="" dfdl:textNumberJustification="right" dfdl:textNumberPadCharacter="0" dfdl:textNumberPattern="####" dfdl:textNumberRep="standard" dfdl:textOutputMinLength="6" dfdl:textPadKind="padChar" dfdl:textStandardBase="10" name="AccountCount" type="xsd:integer"/>
<xsd:element dfdl:textNumberJustification="right" dfdl:textNumberPadCharacter="0" dfdl:textNumberPattern="#####" dfdl:textNumberRep="standard" dfdl:textOutputMinLength="6" dfdl:textPadKind="padChar" dfdl:textStandardBase="10" name="RecordCount" type="xsd:integer"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>

</xsd:complexType>
</xsd:element>


<!-- Record 98 Group Header -->
<!-- Record 03 AccountList -->


<!-- Record 99 Group Header -->
<xsd:element dfdl:initiator="" dfdl:terminator="%CR;%LF;" name="Record_99">
<xsd:complexType>
<xsd:annotation>
<xsd:appinfo source="http://www.ogf.org/dfdl/">
<dfdl:discriminator>{fn:true()}</dfdl:discriminator>
</xsd:appinfo>
</xsd:annotation>
<xsd:sequence dfdl:initiator="99" dfdl:separator="," dfdl:terminator="/">


<!-- <xsd:element name="RecordType" type="xsd:string" /> -->
<xsd:element dfdl:initiator="+" dfdl:textNumberJustification="right" dfdl:textNumberPadCharacter="0" dfdl:textNumberPattern="#####" dfdl:textNumberRep="standard" dfdl:textOutputMinLength="14" dfdl:textPadKind="padChar" dfdl:textStandardBase="10" dfdl:textStringPadCharacter="" ibmDfdlExtn:sampleValue="+00000006568575" name="Amount" type="xsd:integer"/>
<xsd:element dfdl:textNumberCheckPolicy="strict" dfdl:textNumberJustification="right" dfdl:textNumberPadCharacter="0" dfdl:textNumberPattern="###" dfdl:textNumberRep="standard" dfdl:textOutputMinLength="6" dfdl:textPadKind="padChar" dfdl:textStandardBase="10" name="GroupCount" type="xsd:integer"/>
<xsd:element dfdl:textNumberJustification="right" dfdl:textNumberPadCharacter="0" dfdl:textNumberPattern="####" dfdl:textNumberRep="standard" dfdl:textOutputMinLength="6" dfdl:textPadKind="padChar" dfdl:textStandardBase="10" name="RecordCount" type="xsd:integer"/>

</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>

dfdl trace



********************* DFDL Parser Setup Starting *********************
Schema = /BAI2_MessageDef/bai2.xsd
**********************************************************************



********************* DFDL Parser Starting *********************
Data = C:\Users\db2admin\Downloads\bai2testfile0207.txt
Message = B_22 (/BAI2_MessageDef/bai2.xsd)
****************************************************************

Jul 4, 2017, 9:10:48 PM info: Offset: 0. Parsing will start from root element 'B_22'.
[dfdl = /BAI2_MessageDef/bai2.xsd, scd = #xscd(/schemaElement::B_22), 63]

Jul 4, 2017, 9:10:48 PM info: The default value of '%LF;' was assigned to variable 'outputNewLine' in namespace 'http://www.ogf.org/dfdl/dfdl-1.0/'.
[dfdl = /BAI2_MessageDef/bai2.xsd, scd = , 133]

Jul 4, 2017, 9:10:48 PM info: Offset: 0. Starting to process element 'B_22'.
[dfdl = /BAI2_MessageDef/bai2.xsd, scd = #xscd(/schemaElement::B_22), 54]

Jul 4, 2017, 9:10:48 PM info: Offset: 0. Starting to process element 'Head01'.
[dfdl = /BAI2_MessageDef/bai2.xsd, scd = #xscd(/schemaElement::B_22/type::0/model::sequence/schemaElement::Head01), 56]

Jul 4, 2017, 9:10:48 PM info: Offset: 0. Found initiator '01,' for 'Head01'
[dfdl = /BAI2_MessageDef/bai2.xsd, scd = #xscd(/schemaElement::B_22/type::0/model::sequence/schemaElement::Head01), 53]

Jul 4, 2017, 9:10:48 PM info: Offset: 3. Starting to process element 'SenderIdentification'.
[dfdl = /BAI2_MessageDef/bai2.xsd, scd = #xscd(/schemaElement::B_22/type::0/model::sequence/schemaElement::Head01/type::0/model::sequence/schemaElement::SenderIdentification), 70]

Jul 4, 2017, 9:10:48 PM info: Offset: 12. The simple content region of element 'SenderIdentification' does not match the literal nil value.
[dfdl = /BAI2_MessageDef/bai2.xsd, scd = #xscd(/schemaElement::B_22/type::0/model::sequence/schemaElement::Head01/type::0/model::sequence/schemaElement::SenderIdentification), 117]

Jul 4, 2017, 9:10:48 PM info: Offset: 3. Found delimited value '072000096' for element 'SenderIdentification'. The delimiter was ','.
[dfdl = /BAI2_MessageDef/bai2.xsd, scd = #xscd(/schemaElement::B_22/type::0/model::sequence/schemaElement::Head01/type::0/model::sequence/schemaElement::SenderIdentification), 112]

Jul 4, 2017, 9:10:48 PM info: Offset: 12. Finished processing element 'SenderIdentification'.
[dfdl = /BAI2_MessageDef/bai2.xsd, scd = #xscd(/schemaElement::B_22/type::0/model::sequence/schemaElement::Head01/type::0/model::sequence/schemaElement::SenderIdentification), 71]

Jul 4, 2017, 9:10:48 PM info: Offset: 12. Found separator ',' owned by the 'sequence' group contained within element 'Head01'.
[dfdl = /BAI2_MessageDef/bai2.xsd, scd = #xscd(/schemaElement::B_22/type::0/model::sequence/schemaElement::Head01/type::0/model::sequence), 104]

Jul 4, 2017, 9:10:48 PM info: Offset: 13. Starting to process element 'ReceiverIdentification'.
[dfdl = /BAI2_MessageDef/bai2.xsd, scd = #xscd(/schemaElement::B_22/type::0/model::sequence/schemaElement::Head01/type::0/model::sequence/schemaElement::ReceiverIdentification), 73]

Jul 4, 2017, 9:10:48 PM info: Offset: 22. The simple content region of element 'ReceiverIdentification' does not match the literal nil value.
[dfdl = /BAI2_MessageDef/bai2.xsd, scd = #xscd(/schemaElement::B_22/type::0/model::sequence/schemaElement::Head01/type::0/model::sequence/schemaElement::ReceiverIdentification), 119]

Jul 4, 2017, 9:10:48 PM info: Offset: 13. Found delimited value '072000096' for element 'ReceiverIdentification'. The delimiter was ','.
[dfdl = /BAI2_MessageDef/bai2.xsd, scd = #xscd(/schemaElement::B_22/type::0/model::sequence/schemaElement::Head01/type::0/model::sequence/schemaElement::ReceiverIdentification), 115]

Jul 4, 2017, 9:10:48 PM info: Offset: 22. Finished processing element 'ReceiverIdentification'.
[dfdl = /BAI2_MessageDef/bai2.xsd, scd = #xscd(/schemaElement::B_22/type::0/model::sequence/schemaElement::Head01/type::0/model::sequence/schemaElement::ReceiverIdentification), 73]

Jul 4, 2017, 9:10:48 PM info: Offset: 22. Found separator ',' owned by the 'sequence' group contained within element 'Head01'.
[dfdl = /BAI2_MessageDef/bai2.xsd, scd = #xscd(/schemaElement::B_22/type::0/model::sequence/schemaElement::Head01/type::0/model::sequence), 104]

Jul 4, 2017, 9:10:48 PM info: Offset: 23. Starting to process element 'FileCreationDate'.
[dfdl = /BAI2_MessageDef/bai2.xsd, scd = #xscd(/schemaElement::B_22/type::0/model::sequence/schemaElement::Head01/type::0/model::sequence/schemaElement::FileCreationDate), 67]

Jul 4, 2017, 9:10:48 PM info: Offset: 29. The simple content region of element 'FileCreationDate' does not match the literal nil value.
[dfdl = /BAI2_MessageDef/bai2.xsd, scd = #xscd(/schemaElement::B_22/type::0/model::sequence/schemaElement::Head01/type::0/model::sequence/schemaElement::FileCreationDate), 113]

Jul 4, 2017, 9:10:48 PM info: Offset: 23. Found delimited value '161005' for element 'FileCreationDate'. The delimiter was ','.
[dfdl = /BAI2_MessageDef/bai2.xsd, scd = #xscd(/schemaElement::B_22/type::0/model::sequence/schemaElement::Head01/type::0/model::sequence/schemaElement::FileCreationDate), 106]

Jul 4, 2017, 9:10:48 PM info: Offset: 29. Finished processing element 'FileCreationDate'.
[dfdl = /BAI2_MessageDef/bai2.xsd, scd = #xscd(/schemaElement::B_22/type::0/model::sequence/schemaElement::Head01/type::0/model::sequence/schemaElement::FileCreationDate), 67]

Jul 4, 2017, 9:10:48 PM info: Offset: 29. Found separator ',' owned by the 'sequence' group contained within element 'Head01'.
[dfdl = /BAI2_MessageDef/bai2.xsd, scd = #xscd(/schemaElement::B_22/type::0/model::sequence/schemaElement::Head01/type::0/model::sequence), 104]

Jul 4, 2017, 9:10:48 PM info: Offset: 30. Starting to process element 'FileCreationTime'.
[dfdl = /BAI2_MessageDef/bai2.xsd, scd = #xscd(/schemaElement::B_22/type::0/model::sequence/schemaElement::Head01/type::0/model::sequence/schemaElement::FileCreationTime), 67]

Jul 4, 2017, 9:10:48 PM info: Offset: 30. Found delimited value '0739' for element 'FileCreationTime'. The delimiter was ','.
[dfdl = /BAI2_MessageDef/bai2.xsd, scd = #xscd(/schemaElement::B_22/type::0/model::sequence/schemaElement::Head01/type::0/model::sequence/schemaElement::FileCreationTime), 104]

Jul 4, 2017, 9:10:48 PM info: Offset: 34. Finished processing element 'FileCreationTime'.
[dfdl = /BAI2_MessageDef/bai2.xsd, scd = #xscd(/schemaElement::B_22/type::0/model::sequence/schemaElement::Head01/type::0/model::sequence/schemaElement::FileCreationTime), 67]

Jul 4, 2017, 9:10:48 PM info: Offset: 34. Found separator ',' owned by the 'sequence' group contained within element 'Head01'.
[dfdl = /BAI2_MessageDef/bai2.xsd, scd = #xscd(/schemaElement::B_22/type::0/model::sequence/schemaElement::Head01/type::0/model::sequence), 104]

Jul 4, 2017, 9:10:48 PM info: Offset: 35. Starting to process element 'FileIdentificationNumber'.
[dfdl = /BAI2_MessageDef/bai2.xsd, scd = #xscd(/schemaElement::B_22/type::0/model::sequence/schemaElement::Head01/type::0/model::sequence/schemaElement::FileIdentificationNumber), 75]

Jul 4, 2017, 9:10:48 PM info: Offset: 35. Found delimited value '1' for element 'FileIdentificationNumber'. The delimiter was ','.
[dfdl = /BAI2_MessageDef/bai2.xsd, scd = #xscd(/schemaElement::B_22/type::0/model::sequence/schemaElement::Head01/type::0/model::sequence/schemaElement::FileIdentificationNumber), 109]

Jul 4, 2017, 9:10:48 PM info: Offset: 36. The simple content region of element 'FileIdentificationNumber' was converted to logical value '1'.
[dfdl = /BAI2_MessageDef/bai2.xsd, scd = #xscd(/schemaElement::B_22/type::0/model::sequence/schemaElement::Head01/type::0/model::sequence/schemaElement::FileIdentificationNumber), 122]

Jul 4, 2017, 9:10:48 PM info: Offset: 36. Finished processing element 'FileIdentificationNumber'.
[dfdl = /BAI2_MessageDef/bai2.xsd, scd = #xscd(/schemaElement::B_22/type::0/model::sequence/schemaElement::Head01/type::0/model::sequence/schemaElement::FileIdentificationNumber), 75]

Jul 4, 2017, 9:10:48 PM info: Offset: 36. Found separator ',' owned by the 'sequence' group contained within element 'Head01'.
[dfdl = /BAI2_MessageDef/bai2.xsd, scd = #xscd(/schemaElement::B_22/type::0/model::sequence/schemaElement::Head01/type::0/model::sequence), 104]

Jul 4, 2017, 9:10:48 PM info: Offset: 37. Starting to process element 'PhysicalRecordLength'.
[dfdl = /BAI2_MessageDef/bai2.xsd, scd = #xscd(/schemaElement::B_22/type::0/model::sequence/schemaElement::Head01/type::0/model::sequence/schemaElement::PhysicalRecordLength), 71]

Jul 4, 2017, 9:10:48 PM info: Offset: 37. Found delimited value '80' for element 'PhysicalRecordLength'. The delimiter was ','.
[dfdl = /BAI2_MessageDef/bai2.xsd, scd = #xscd(/schemaElement::B_22/type::0/model::sequence/schemaElement::Head01/type::0/model::sequence/schemaElement::PhysicalRecordLength), 106]

Jul 4, 2017, 9:10:48 PM info: Offset: 39. Finished processing element 'PhysicalRecordLength'.
[dfdl = /BAI2_MessageDef/bai2.xsd, scd = #xscd(/schemaElement::B_22/type::0/model::sequence/schemaElement::Head01/type::0/model::sequence/schemaElement::PhysicalRecordLength), 71]

Jul 4, 2017, 9:10:48 PM info: Offset: 39. Found separator ',' owned by the 'sequence' group contained within element 'Head01'.
[dfdl = /BAI2_MessageDef/bai2.xsd, scd = #xscd(/schemaElement::B_22/type::0/model::sequence/schemaElement::Head01/type::0/model::sequence), 104]

Jul 4, 2017, 9:10:48 PM info: Offset: 40. Starting to process element 'BlockSize'.
[dfdl = /BAI2_MessageDef/bai2.xsd, scd = #xscd(/schemaElement::B_22/type::0/model::sequence/schemaElement::Head01/type::0/model::sequence/schemaElement::BlockSize), 60]

Jul 4, 2017, 9:10:48 PM info: Offset: 40. Found delimited value '00' for element 'BlockSize'. The delimiter was ','.
[dfdl = /BAI2_MessageDef/bai2.xsd, scd = #xscd(/schemaElement::B_22/type::0/model::sequence/schemaElement::Head01/type::0/model::sequence/schemaElement::BlockSize), 95]

Jul 4, 2017, 9:10:48 PM info: Offset: 42. Finished processing element 'BlockSize'.
[dfdl = /BAI2_MessageDef/bai2.xsd, scd = #xscd(/schemaElement::B_22/type::0/model::sequence/schemaElement::Head01/type::0/model::sequence/schemaElement::BlockSize), 60]

Jul 4, 2017, 9:10:48 PM info: Offset: 42. Found separator ',' owned by the 'sequence' group contained within element 'Head01'.
[dfdl = /BAI2_MessageDef/bai2.xsd, scd = #xscd(/schemaElement::B_22/type::0/model::sequence/schemaElement::Head01/type::0/model::sequence), 104]

Jul 4, 2017, 9:10:48 PM info: Offset: 43. Starting to process element 'VersionNumber'.
[dfdl = /BAI2_MessageDef/bai2.xsd, scd = #xscd(/schemaElement::B_22/type::0/model::sequence/schemaElement::Head01/type::0/model::sequence/schemaElement::VersionNumber), 64]

Jul 4, 2017, 9:10:48 PM info: Offset: 43. Found delimited value '2' for element 'VersionNumber'. The delimiter was '/'.
[dfdl = /BAI2_MessageDef/bai2.xsd, scd = #xscd(/schemaElement::B_22/type::0/model::sequence/schemaElement::Head01/type::0/model::sequence/schemaElement::VersionNumber), 98]

Jul 4, 2017, 9:10:48 PM info: Offset: 44. Finished processing element 'VersionNumber'.
[dfdl = /BAI2_MessageDef/bai2.xsd, scd = #xscd(/schemaElement::B_22/type::0/model::sequence/schemaElement::Head01/type::0/model::sequence/schemaElement::VersionNumber), 64]

Jul 4, 2017, 9:10:48 PM info: Offset: 44. Found terminator '/' for 'sequence'.
[dfdl = /BAI2_MessageDef/bai2.xsd, scd = #xscd(/schemaElement::B_22/type::0/model::sequence/schemaElement::Head01/type::0/model::sequence), 56]

Jul 4, 2017, 9:10:48 PM info: Offset: 45. Found terminator '%CR;%LF;' for 'Head01'.
[dfdl = /BAI2_MessageDef/bai2.xsd, scd = #xscd(/schemaElement::B_22/type::0/model::sequence/schemaElement::Head01), 61]

Jul 4, 2017, 9:10:48 PM info: Offset: 47. Finished processing element 'Head01'.
[dfdl = /BAI2_MessageDef/bai2.xsd, scd = #xscd(/schemaElement::B_22/type::0/model::sequence/schemaElement::Head01), 57]

Jul 4, 2017, 9:10:48 PM info: Offset: 47. Up to 'unbounded' occurrences of element 'GroupHead02' will be expected because occursCountKind='implicit' and maxOccurs='unbounded'.
[dfdl = /BAI2_MessageDef/bai2.xsd, scd = #xscd(/schemaElement::B_22/type::0/model::sequence/schemaElement::GroupHead02), 153]

Jul 4, 2017, 9:10:48 PM info: Offset: 47. Optional element 'GroupHead02' encountered. The DFDL parser will return to this position if the element is not present in the data stream.
[dfdl = /BAI2_MessageDef/bai2.xsd, scd = #xscd(/schemaElement::B_22/type::0/model::sequence/schemaElement::GroupHead02), 158]

Jul 4, 2017, 9:10:48 PM info: Offset: 47. Starting to process element 'GroupHead02'.
[dfdl = /BAI2_MessageDef/bai2.xsd, scd = #xscd(/schemaElement::B_22/type::0/model::sequence/schemaElement::GroupHead02), 62]

Jul 4, 2017, 9:10:48 PM info: Offset: 47. Starting to process element 'Rec_02'.
[dfdl = /BAI2_MessageDef/bai2.xsd, scd = #xscd(/schemaElement::B_22/type::0/model::sequence/schemaElement::GroupHead02/type::0/model::sequence/schemaElement::Rec_02), 57]

Jul 4, 2017, 9:10:48 PM info: Offset: 47. Did not find initiator for 'sequence'
[dfdl = /BAI2_MessageDef/bai2.xsd, scd = #xscd(/schemaElement::B_22/type::0/model::sequence/schemaElement::GroupHead02/type::0/model::sequence/schemaElement::Rec_02/type::0/model::sequence), 57]

Jul 4, 2017, 9:10:48 PM info: Offset: 47. Element 'sequence' is empty because the initiator was not found in the data stream.
[dfdl = /BAI2_MessageDef/bai2.xsd, scd = #xscd(/schemaElement::B_22/type::0/model::sequence/schemaElement::GroupHead02/type::0/model::sequence/schemaElement::Rec_02/type::0/model::sequence), 103]

Jul 4, 2017, 9:10:48 PM error: CTDP3060E: Initiator '02,' not found at offset '47' for sequence or choice within element '/B_22[1]/GroupHead02[1]/Rec_02[1]'.

Jul 4, 2017, 9:10:48 PM info: Offset: 47. Parser was unable to resolve data on the current branch and will evaluate the next available branch beginning at offset '47' owned by the 'sequence' group contained within element 'B_22'.
[dfdl = /BAI2_MessageDef/bai2.xsd, scd = #xscd(/schemaElement::B_22/type::0/model::sequence), 207]

Jul 4, 2017, 9:10:48 PM info: Offset: 47. Occurrence '1' of element 'GroupHead02' was not found in the data. occursCountKind is 'implicit' so no more occurrences of this element will be expected.
[dfdl = /BAI2_MessageDef/bai2.xsd, scd = #xscd(/schemaElement::B_22/type::0/model::sequence/schemaElement::GroupHead02), 174]

Jul 4, 2017, 9:10:48 PM info: Offset: 47. Starting to process element 'Record_99'.
[dfdl = /BAI2_MessageDef/bai2.xsd, scd = #xscd(/schemaElement::B_22/type::0/model::sequence/schemaElement::Record_99), 60]

Jul 4, 2017, 9:10:48 PM info: Offset: 47. Did not find initiator for 'sequence'
[dfdl = /BAI2_MessageDef/bai2.xsd, scd = #xscd(/schemaElement::B_22/type::0/model::sequence/schemaElement::Record_99/type::0/model::sequence), 57]

Jul 4, 2017, 9:10:48 PM info: Offset: 47. Element 'sequence' is empty because the initiator was not found in the data stream.
[dfdl = /BAI2_MessageDef/bai2.xsd, scd = #xscd(/schemaElement::B_22/type::0/model::sequence/schemaElement::Record_99/type::0/model::sequence), 103]

Jul 4, 2017, 9:10:48 PM error: CTDP3060E: Initiator '99' not found at offset '47' for sequence or choice within element '/B_22[1]/Record_99[1]'.

Jul 4, 2017, 9:10:48 PM fatal: CTDP3060E: Initiator '99' not found at offset '47' for sequence or choice within element '/B_22[1]/Record_99[1]'.



could you please help me to correct the structure,
thanks in advance
Back to top
View user's profile Send private message
timber
PostPosted: Tue Jul 04, 2017 10:47 am Post subject: Reply with quote

Grand Master

Joined: 25 Aug 2015
Posts: 1280

Please respect our time, and do the following for us:
- read the trace and compare with the input message
- identify where in the message the parsing starts to go wrong. Highlight that position in the input message.
- identify where in the trace the parsing starts to go wrong. Highlight that position in the trace.
Back to top
View user's profile Send private message
Display posts from previous:
Post new topicReply to topic Goto page 1, 2  Next Page 1 of 2

MQSeries.net Forum IndexWebSphere Message Broker (ACE) SupportDefining BAI 88 Record(Continuation) using DFDL
Jump to:



You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
Protected by Anti-Spam ACP


Theme by Dustin Baccetti
Powered by phpBB 2001, 2002 phpBB Group

Copyright MQSeries.net. All rights reserved.