Fixed Width Format | MuleSoft Documentation
# Fixed Width Format
MIME Type: `application/flatfile`
ID: `flatfile`
Fixed width types are technically considered a type of Flat File format, but when selecting this option, the Transform component offers you settings that are better tailored to the needs of this format.
Fixed width in DataWeave supports files of up to 15 MB, and the memory requirement is roughly 40 to 1. For example, a 1-MB file requires up to 40 MB of memory to process, so it’s important to consider this memory requirement in conjunction with your TPS needs for large fixed width files. This is not an exact figure; the value might vary according to the complexity of the mapping instructions.   
---  
## Configuration Properties
DataWeave supports the following configuration properties for this format.
### Reader Properties
This format accepts properties that provide instructions for reading input data.
Parameter | Type | Default | Description  
---|---|---|---  
`allowLenientWithBinaryNotEndElement` |  When the schema contains elements of type Binary or Packed, the `lenient` option does not allow short records, regardless of the last element’s format type. When you set this property to `true`, the validation applies only to cases in which the record ends with type Binary or Packed. Valid values are `true` or `false`.  
`enforceRequires` |  Produces an error when set to `true` if a required value is missing. Valid values are `true` or `false`.  
`missingValues` |  Fill character used to represent missing values. To activate a non-default setting, set the `useMissCharAsDefaultForFill` property to `true`, and use one of the following values to `missingValues`:
  * `none` (for the reader) or `NONE` (for the writer): Treats all data as values.
  * `spaces` (for the reader) or `SPACES` (for the writer): Interprets a field consisting of only spaces as a missing value. Default for flat file and fixed-width formats.
  * `zeroes` (for the reader) or `ZEROES` (for the writer): Interprets numeric fields consisting of only `0` characters _and_ character fields consisting of only spaces as missing values.
  * `nulls` (for the reader) or `NULLS` (for the writer): Interprets a field consisting only of `0` bytes as a missing value. Default for COBOL copybook schema.

  
`notTruncateDependingOnSubjectNotPresent` |  Fills the entire group when the DEPENDING ON subject is not present. Valid values are `true` or `false`.  
`recordParsing` |  Specifies the expected type of separation between lines or records:
  * `strict`: Line break is expected at exact end of each record. `strict` is the default.
  * `lenient`: Line break is used, but records can be shorter or longer than the schema specifies. Do not use `lenient` if your payload lacks line breaks. The other options to `recordParsing` support records that lack line breaks.
  * `noTerminator`: Records follow one another with no separation. This option is preferred for fixed-length records that lack a line break.
  * `singleRecord`: The entire input is a single record.

Note that schemas with type `Binary` or `Packed` don’t allow for line break detection, so setting `recordParsing` to `lenient` only allows long records to be handled, not short ones. These schemas also currently only work with certain single-byte character encodings (so not with UTF-8 or any multibyte format).  
`retainEmptyStringFieldsOnParsing` |  Allow parsing behavior to keep missing string value fields with a default value in the output map Valid values are `true` or `false`.  
`schemaPath` (Required) |  Path to the schema definition. Specifies the location in your local disk of the schema file that parses your input.  
`segmentIdent` |  Segment identifier in the schema for fixed-width or COBOL copybook schemas. Required when parsing a single segment or record definition if the schema includes multiple segment definitions.  
`structureIdent` |  Structure identifier in the schema for flat file schemas. Required when parsing a structure definition if the schema includes multiple structure definitions.  
`truncateDependingOn` |  For COBOL copybook, truncates DEPENDING ON values to the length used. Valid values are `true` or `false`.  
`useMissCharAsDefaultForFill` |  By default, the flat file reader and writer use spaces for missing characters and ignore the setting of the `missingValues` property. When you set this property to `true`, DataWeave honors the setting of the `missingValues property`. Introduced in DataWeave 2.3 (2.3.0-20210823) for the September 2021 release of Mule 4.3.0-20210823. Valid values are `true` or `false`.  
`zonedDecimalStrict` |  For COBOL copybook, uses the 'strict' ASCII form of sign encoding for zoned decimal values. Valid values are `true` or `false`.  
### Writer Properties
This format accepts properties that provide instructions for writing output data.
Parameter | Type | Default | Description  
---|---|---|---  
`bufferSize` |  Size of the buffer writer, in bytes. The value must be greater than `8`.  
Generates the output as a data stream when set to `true`, and defers the script’s execution until the generated content is consumed. Valid values are `true` or `false`.  
The encoding to use for the output, such as UTF-8.  
`enforceRequires` |  Produces an error when set to `true` if a required value is missing. Valid values are `true` or `false`.  
`missingValues` |  Fill character used to represent missing values. To activate a non-default setting, set the `useMissCharAsDefaultForFill` property to `true`, and use one of the following values to `missingValues`:
  * `none` (for the reader) or `NONE` (for the writer): Treats all data as values.
  * `spaces` (for the reader) or `SPACES` (for the writer): Interprets a field consisting of only spaces as a missing value. Default for flat file and fixed-width formats.
  * `zeroes` (for the reader) or `ZEROES` (for the writer): Interprets numeric fields consisting of only `0` characters _and_ character fields consisting of only spaces as missing values.
  * `nulls` (for the reader) or `NULLS` (for the writer): Interprets a field consisting only of `0` bytes as a missing value. Default for COBOL copybook schema.

  
`notTruncateDependingOnSubjectNotPresent` |  Fills the entire group when the DEPENDING ON subject is not present. Valid values are `true` or `false`.  
`recordTerminator` |  Line break for a record separator. Valid values: `lf`, `cr`, `crlf`, `none`. Note that in Mule versions 4.0.4 and later, this is only used as a separator when there are multiple records. Values translate directly to character codes (`none` leaves no termination on each record).  
`schemaPath` (Required) |  Path to the schema definition. Specifies the location in your local disk of the schema file that parses your input.  
`segmentIdent` |  Segment identifier in the schema for fixed-width or COBOL copybook schemas. Required when parsing a single segment or record definition if the schema includes multiple segment definitions.  
`structureIdent` |  Structure identifier in the schema for flat file schemas. Required when parsing a structure definition if the schema includes multiple structure definitions.  
`trimValues` |  Trim values that are longer than the width of a field. Valid values are `true` or `false`.  
`truncateDependingOn` |  For COBOL copybook, truncates DEPENDING ON values to the length used. Valid values are `true` or `false`.  
`useMissCharAsDefaultForFill` |  By default, the flat file reader and writer use spaces for missing characters and ignore the setting of the `missingValues` property. When you set this property to `true`, DataWeave honors the setting of the `missingValues property`. Introduced in DataWeave 2.3 (2.3.0-20210823) for the September 2021 release of Mule 4.3.0-20210823. Valid values are `true` or `false`.  
`zonedDecimalStrict` |  For COBOL copybook, uses the 'strict' ASCII form of sign encoding for zoned decimal values. Valid values are `true` or `false`.  
## Supported MIME Types (for Fixed Width)
The Fixed Width format supports the following MIME types.