Create schema from flat file that has repeatable header-detail lines group

Home Page Forums BizTalk 2004 – BizTalk 2010 Create schema from flat file that has repeatable header-detail lines group

Viewing 1 reply thread
  • Author
    Posts
    • #26073

      Hi there

      My input is a flat file, comma separated values, that has repeatable header-detail groups. In each header-detail group, there can be only one header line but there may be more than one detail lines. Example given below which has two header-detail groups

      143,H,33
      123,D,43,44,a,4
      333,D,65,54,g,3
      223,H,345
      433,D,23,97,y,1

      If second value is ‘H’ then it is a header line and if second value is ‘D’ then it is a detail line. I now need to create its schema.

      Question: How can I figure out while creating its schema that which is a header line and which is a detail line, so that my schema is created as below:

      <input>
      <group>
      <header>…</header>
      <detail>…</detail>
      <detail>…</detail>
      </group>
      <group>
      <header>…</header>
      <detail>…</detail>
      </group>
      </input>

      Please help me in this regard.

      Thanks in advance

    • #26075

      try this schema xsd:

      <?xml version="1.0" encoding="utf-16"?>

      <xs:schema xmlns="http://BizTalk_Server_Project2.FlatFileSchema2&quot; xmlns:b="schemas.microsoft.com/…/2003" targetNamespace="http://BizTalk_Server_Project2.FlatFileSchema2&quot; xmlns:xs="http://www.w3.org/…/XMLSchema"&gt;

       <xs:annotation>

         <xs:appinfo>

           <schemaEditorExtension:schemaInfo namespaceAlias="b" extensionClass="Microsoft.BizTalk.FlatFileExtension.FlatFileExtension" standardName="Flat File" xmlns:schemaEditorExtension="schemas.microsoft.com/…/SchemaEditorExtensions" />

           <b:schemaInfo standard="Flat File" codepage="65001" default_pad_char=" " pad_char_type="char" count_positions_by_byte="false" parser_optimization="complexity" lookahead_depth="10" suppress_empty_nodes="false" generate_empty_nodes="true" allow_early_termination="false" early_terminate_optional_fields="false" allow_message_breakup_of_infix_root="false" compile_parse_tables="false" root_reference="Input" />

         </xs:appinfo>

       </xs:annotation>

       <xs:element name="Input">

         <xs:annotation>

           <xs:appinfo>

             <b:recordInfo structure="delimited" child_delimiter_type="hex" child_delimiter="0xD 0xA" child_order="infix" sequence_number="1" preserve_delimiter_for_empty_data="true" suppress_trailing_delimiters="false" />

           </xs:appinfo>

         </xs:annotation>

         <xs:complexType>

           <xs:sequence>

             <xs:annotation>

               <xs:appinfo>

                 <groupInfo sequence_number="0" xmlns="schemas.microsoft.com/…/2003" />

               </xs:appinfo>

             </xs:annotation>

             <xs:element maxOccurs="unbounded" name="Group">

               <xs:annotation>

                 <xs:appinfo>

                   <b:recordInfo sequence_number="1" structure="delimited" preserve_delimiter_for_empty_data="true" suppress_trailing_delimiters="false" child_delimiter_type="hex" child_delimiter="0x0D 0x0A" />

                 </xs:appinfo>

               </xs:annotation>

               <xs:complexType>

                 <xs:sequence>

                   <xs:annotation>

                     <xs:appinfo>

                       <b:groupInfo sequence_number="0" />

                     </xs:appinfo>

                   </xs:annotation>

                   <xs:element minOccurs="1" maxOccurs="1" name="Header">

                     <xs:annotation>

                       <xs:appinfo>

                         <b:recordInfo structure="delimited" child_delimiter_type="char" child_delimiter="," child_order="infix" preserve_delimiter_for_empty_data="true" suppress_trailing_delimiters="false" sequence_number="1" />

                       </xs:appinfo>

                     </xs:annotation>

                     <xs:complexType>

                       <xs:sequence>

                         <xs:annotation>

                           <xs:appinfo>

                             <groupInfo sequence_number="0" xmlns="schemas.microsoft.com/…/2003" />

                           </xs:appinfo>

                         </xs:annotation>

                         <xs:element name="Header_Child1" type="xs:string">

                           <xs:annotation>

                             <xs:appinfo>

                               <b:fieldInfo justification="left" sequence_number="1" />

                             </xs:appinfo>

                           </xs:annotation>

                         </xs:element>

                         <xs:element name="Header_Child2" type="xs:string">

                           <xs:annotation>

                             <xs:appinfo>

                               <b:fieldInfo justification="left" sequence_number="2" />

                             </xs:appinfo>

                           </xs:annotation>

                         </xs:element>

                         <xs:element name="Header_Child3" type="xs:string">

                           <xs:annotation>

                             <xs:appinfo>

                               <b:fieldInfo justification="left" sequence_number="3" />

                             </xs:appinfo>

                           </xs:annotation>

                         </xs:element>

                       </xs:sequence>

                     </xs:complexType>

                   </xs:element>

                   <xs:element minOccurs="1" maxOccurs="unbounded" name="Details">

                     <xs:annotation>

                       <xs:appinfo>

                         <b:recordInfo structure="delimited" child_delimiter_type="char" child_delimiter="," child_order="infix" preserve_delimiter_for_empty_data="true" suppress_trailing_delimiters="false" sequence_number="2" />

                       </xs:appinfo>

                     </xs:annotation>

                     <xs:complexType>

                       <xs:sequence>

                         <xs:annotation>

                           <xs:appinfo>

                             <groupInfo sequence_number="0" xmlns="schemas.microsoft.com/…/2003" />

                           </xs:appinfo>

                         </xs:annotation>

                         <xs:element name="Details_Child1" type="xs:string">

                           <xs:annotation>

                             <xs:appinfo>

                               <b:fieldInfo justification="left" sequence_number="1" />

                             </xs:appinfo>

                           </xs:annotation>

                         </xs:element>

                         <xs:element name="Details_Child2" type="xs:string">

                           <xs:annotation>

                             <xs:appinfo>

                               <b:fieldInfo justification="left" sequence_number="2" />

                             </xs:appinfo>

                           </xs:annotation>

                         </xs:element>

                         <xs:element name="Details_Child3" type="xs:string">

                           <xs:annotation>

                             <xs:appinfo>

                               <b:fieldInfo justification="left" sequence_number="3" />

                             </xs:appinfo>

                           </xs:annotation>

                         </xs:element>

                         <xs:element name="Details_Child4" type="xs:string">

                           <xs:annotation>

                             <xs:appinfo>

                               <b:fieldInfo justification="left" sequence_number="4" />

                             </xs:appinfo>

                           </xs:annotation>

                         </xs:element>

                         <xs:element name="Details_Child5" type="xs:string">

                           <xs:annotation>

                             <xs:appinfo>

                               <b:fieldInfo justification="left" sequence_number="5" />

                             </xs:appinfo>

                           </xs:annotation>

                         </xs:element>

                         <xs:element name="Details_Child6" type="xs:string">

                           <xs:annotation>

                             <xs:appinfo>

                               <b:fieldInfo justification="left" sequence_number="6" />

                             </xs:appinfo>

                           </xs:annotation>

                         </xs:element>

                       </xs:sequence>

                     </xs:complexType>

                   </xs:element>

                 </xs:sequence>

               </xs:complexType>

             </xs:element>

           </xs:sequence>

         </xs:complexType>

       </xs:element>

      </xs:schema>

Viewing 1 reply thread
  • The forum ‘BizTalk 2004 – BizTalk 2010’ is closed to new topics and replies.