Preserve trailing spaces in flat file schema

Preserve trailing spaces in flat file schema, Flat file schema,Perserve trailing spaces.

If the trailing spaces of your flat file message is being truncated by BizTalk then the workaround to this is add the (pad_char_type="none" ) attribute to the (schemainfo and fieldinfo) tags.I used the flat file schema wizard to generate the schema. Before modification my schema looked like this.

 

<xs:schema xmlns="” targetNamespace=" ">

  <xs:annotation>

    <xs:appinfo>

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

    </xs:appinfo>

  </xs:annotation>

  <xs:element name="RecordNode">

    <xs:annotation>

      <xs:appinfo>

        <b:recordInfo structure="delimited" child_delimiter_type="hex" child_delimiter="0xD 0xA" child_order="postfix" 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>

            <b:groupInfo sequence_number="0" />

          </xs:appinfo>

        </xs:annotation>

        <xs:element maxOccurs="unbounded" name="RecordField" type="xs:string">

          <xs:annotation>

            <xs:appinfo>

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

            </xs:appinfo>

          </xs:annotation>

        </xs:element>

      </xs:sequence>

    </xs:complexType>

  </xs:element>

</xs:schema

 

After modification my schema changed to this.

 

<xs:annotation>

    <xs:appinfo>

     <b:schemaInfo standard="Flat File" codepage="65001" pad_char_type="none" count_positions_by_byte="false" parser_optimization="complexity" lookahead_depth="3" suppress_empty_nodes="false" generate_empty_nodes="true" allow_early_termination="true" early_terminate_optional_fields="false" allow_message_breakup_of_infix_root="false" compile_parse_tables="false" root_reference="RecordNode" />

    </xs:appinfo>

  </xs:annotation>

  <xs:element name="RecordNode">

    <xs:annotation>

      <xs:appinfo>

        <b:recordInfo structure="delimited" child_delimiter_type="hex" child_delimiter="0xD 0xA" child_order="postfix" 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>

            <b:groupInfo sequence_number="0" />

          </xs:appinfo>

        </xs:annotation>

        <xs:element maxOccurs="unbounded" name="RecordField" type="xs:string">

          <xs:annotation>

            <xs:appinfo>

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

            </xs:appinfo>

          </xs:annotation>

        </xs:element>

      </xs:sequence>

    </xs:complexType>

  </xs:element>

</xs:schema>