- ADD - Lists and Values section
- ADD - Conditions Tutorial
- ADD - Rules Tutorial
- ADD - Reduce Tutorial
- ADD - Suggested Tutorial
- ADD - Tutorials section
- ADD - Minimal Tutorial
- CHANGE - Remove the "Hyphen-Minus" and "Full Stop" characters from Base.[Schema Field Delimiter] and Base.[Schema Key-Value Separator] allowed values
- ADD - Explicitly define the numeral system to be used for the "Number" Data Type
- ADD - Explicitly define the allowed decimal separator for the "Number" Data Type
- ADD - Set a maximum length to the "String" Data Type
- CHANGE - Rename Field.12: EndOfLine to "EndOfLine" from "EndOfLineCharacter"
- CHANGE - Rename Field.13: FieldIDMethod to "FieldIDMethod" from "FieldIDByHeaderOrPosition"
- CHANGE - Rename Field.36: ListID to "ListID" from "List"
- CHANGE - Rename Field.50: HypothesisListID to "HypothesisListID" from "HypothesisList"
- CHANGE - Rename Field.54: ConclusionListID to "ConclusionListID" from "ConclusionList"
- CHANGE - Rename Field.64: TotalCount to "TotalCount" from "LineCount"
- CHANGE - Convert all references to UTF-8 decimal codes to Unicode code points expressed in hexadecimal
- DELETE - Field.5: Name from Summary Record
- DELETE - Field.6: Annotation from Summary Record
- ADD - "Key Case Sensitivity" to the Base Definition
- ADD - "Hexadecimal" to the Base Definition Data Types
- ADD - "Hexadecimal List" to the Base Definition Data Types
- CHANGE - Clarifications made to the Examples descriptions
- CHANGE - Rename project to Text File Schema
- CHANGE - Definition is migrated from a MS Word document to the HTML/PHP website "https://textfileschema.omegatower.net/"
- CHANGE - Multiple minor text corrections and clarifications
- CHANGE - EndOfLineCharacter String List is changed from "EOL" to "NEWLINE"
- CHANGE - Field 11: CharacterEncoding is changed to "String" from "String List"
- CHANGE - Move schema definition to new format
- CHANGE - Renamed ENUMERATION to LIST
- CHANGE - "FIXEDWIDTH" becomes "FIXED-WIDTH"
- CHANGE - All multiple word String List members now include spaces. i.e. - "NOTEMPTY" becomes "NOT EMPTY"
- ADD - TrailingDelimiter=MULTIPLE
- CHANGE - Values no longer have to be enclosed when it is human entered data
- DELETE - CONTROL.CompositeValueSeparator due to lack of utility now that Lists are available
- CHANGE - The FFSD Record is now an FFSD Field
- CHANGE - Delete rules that were where a dependent field having data forced a parent field to be set. For example just because a DateFormat field has data no longer forces the DataType to be equal to "DATE TIME"
- ADD - VALUE record is now defined in order to allow LIST and CONDITION to be true parent records
- DELETE - CONDITION.ID1-ID10 fields as these are now in a LIST
- CHANGE - META.CharacterSet is changed to CharacterEncoding
- CHANGE - Schema is now to be UTF-8 Character Encoding
- CHANGE - Complete defining Conditions and Rules
- CHANGE - ConditionLevel to Level
- CHANGE - RuleLevel to Level
- ADD - Level=BOTH for when a condition or rule is to be applied to both records and fields
- CHANGE - convert several fields from regex to Lists to allow for better explanations of what they are for
- CHANGE - Complete defining Lists
- ADD - HypothesisOperator=EXISTS
- ADD - ConclusionOperator=EXISTS
- ADD - Type=RULE. This will be rules for when a field has a specified value
- CHANGE - The primer has been updated to properly enclose fields when needed undoing partially the change from 0.7.0.10
- ADD - Type=SUMMARY. This will allow for verification of the number of records in the file as well as serve as proof that the file has been received completely
- CHANGE - The ID field has been changed to be a 1 based counter
- ADD - Record.Required, this will have similar function as Field.Required
- ADD - Record.HasData, this will have similar function as Field.HasData
- MOVE - Record.KeyField
- MOVE - Record.ParentKeyField
- ADD - Type=CONDITION. This will be conditions between records or fields
- ADD - RECORD.TrailingDelimiter. This is either "YES" or "NO" and indicates if the record is to have a delimiter after the final field
- ADD - Type=List. This will be a list of values a field is allowed to have
- CHANGE - FIELD.StringAllowedValues is replaced by FIELD.List. This will allow better control over allowed values allow a single List to be reused and will allow for numbers to have specified values as well
- CHANGE - Swap the layout locations of FIELD.ParentID and FIELD.Position. This will allow consistency with keeping common fields among the record types together and towards the beginning of the record
- ADD - RECORD.KeyField and RECORD.ParentKeyField. These will allow the records to be out of strict order. If they are empty then parent/child record linking will be strictly based on row order
- CHANGE - FIELD.AllowEmpty to FIELD.HasData
- CHANGE - FIELD.HasData allowed values are now - "ALWAYS", "NEVER" or "OPTIONAL"
- CHANGE - All human entered text values are to be enclosed in the CONTROL.SchemaEnclosureCharacter. This will allow the ability to have both human entered text or a schema code as the field value. This also changes the use of the CONTROL.SchemaEnclosureCharacter to only be used to enclose the value of the key-value pair not the entire field. In addition the key-value separator does not to be double escaped any longer when it is in the value
- CHANGE - META.RecordIDPosition moved back to RECORD. This will allow a record type to be determined by inspecting different fields when a header row is used
- CHANGE - RECORD.RecordIDValue now allowed to also have "EMPTY" or "NOTEMPTY" schema codes
- ADD - META.EndOfLineCharacter, this is either "EOL" or decimal values
- ADD - FIELD.AllowEmpty, this is either "YES" or "NO"
- CHANGE - CONTROL.CompositeValueSeperator is now to be a decimal value
- DELETE - META.HeaderLineRow
- DELETE - META.HasHeaderLine
- ADD - RECORD.IsHeader
- ADD - CONTROL.SchemaEnclosureCharacter
- CHANGE - META.FileType options are now "DELIMITED" or "FIXEDWIDTH"
- CHANGE - META.SeparatorCharacter is renamed to DelimiterCharacter
- CHANGE - Move ID column to column 2, Type column is back to column 1
- CHANGE - Control becomes "Type=CONTROL"
- CHANGE - Composite element separator moved to it's own column in the CONTROL record
- CHANGE - added Keys to the CONTROL record
- ADD - META.HeaderLineRow. Allows for edge case where the header isn't the first line of the file
- ADD - META.FieldIDByHeaderOrPosition. Allows for edge case where fields may not be present in file. Allows for edge case where field order is not fixed
- ADD - RECORD.RecordRow. Allows for edge case where the record does not have an ID but does have a fixed row CHANGE - META.HasHeaderLine. Three options are now - "REQUIRED", "OPTIONAL" and "NO"
- CHANGE - "Type=FFSD" to "Type=META". This will help keep the record whose name is "FFSD" unique
- CHANGE - Reorganized so that the fields are under their parent record I think any software needs to be able accept any order since they are uniquely identified, but the output should be in this order when saved
- CHANGE - position of "RecordIDPositon" to be in the META record I believe this is a more appropriate place and will prevent the case where different records could end up with different ID positions
- ADD - StringRegex, NumericMinimumValue and NumericMaximumValue. This will help further define allowed values for these data types
- CHANGE - Move the ID column to the first column
- ADD - an ID column for the Control record
- DELETE - Remove the Verbosity field from the Control record
- CHANGE - Replace ":" with "=" as default key-value separator
- Initial specification written