Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Daffodil 2.0.0 - detailed changelog

Core

  • support for unparse, with one-to-one feature parity with parse
  • support for unparse specific properties like dfdl:outputValueCalc, dfdl:filleByte, dfdl:truncateSpecifiedLengthString
  • now requires Java 8 and Scala 2.11
  • DFDL expression changes:
    • Support added for dfdl:contentLength(), dfdl:valueLength(), fn:error(), and math:pow() functions
    • fix bugs with equality comparisons and converting differing types
    • fix bugs with div/idiv not using the appropriate kindof division
    • fix bugs with daf:trace on complex types
  • creation of a new data input/output stream layer
  • add support for 3-, 4-, 5-, 6-, and 7-bit ASCII encodings
  • add property daf:parseUnparsePolicy and tunable to enable only parsing, unparsing, or both
  • add tunable unqualifiedPathStepProperty to specify how unqualified DFDL expression path steps are resolved
  • allow dfdl:lengthKind="pattern" when type="xs:hexBinary"
  • support for xs:choice direct dispatch
  • support for xs:boolean type
  • support for xs:hexBinary type with bit lengths
  • support for xs:ignoreCase="yes"
  • support for xs:union restrictions
  • support for runtime valued properties
  • improved diagnostic messages
  • numerous bug fixes and performance improvements

API

  • new parse and unparse API with InfosetInputter's and InfosetOutputter's
  • native infoset support for JDOM, w3c DOM, Scala XML Nodes, XML Text, and json

TDML

  • created an XSL stylesheet for creating DFDL tutorials from TDML files

Daffodil 1.1.0 detailed changelog

Core

  • initial support for unparsing, including support for unparsing
    • initiators, terminators, and separators
    • escape characters
    • padding/fillByte
    • delimited, fixed length, and pattern length strings
    • arrays with occursCountKind 'implicit', 'parsed', and 'fixed'
    • nillable simple and complex elements
    • sequences and choices
    • variables
  • support for stream infosets via XMLEventReader
  • no longer pretty print large infoset to decrease memory and time to print. Set the new prettyPrintElementLimit tunable to change the size at which infosets will not be pretty printed
  • improve support including/importing absolute Windows file paths
  • improve parser performance with calendar types
  • fixed bug with delimiters and escape characters in which scoping could be incorrect, resulting in the use of the wrong delimiter/escape char
  • improved OOLAG to make debugging easier
  • support for save/reload of unparsers

CLI

  • variables set on the command line using -D when saving a parser are saved, and can be overridden when reloading the parser
  • add --unparse option to performance subcommand to run unparser performance tests

TDML

  • enhancements to support unparser tests and round tripping parser tests
  • no longer trim resulting infoset, requiring expected infoset to be more exact, but give less false positives
  • detect and warn about duplicate test names

Daffodil 1.0.0 - detailed changelog

Core

  • schemas inside jars on the classpath can now be linked via include/import statements
  • updates to DFDL expression parser to fix numerous bugs and add features
    • add date, time, constructors
    • add timeZoneFromDateTime, Time, and Date functions
    • add comparison operators for booleans
    • improve error messages
  • support empty strings in long-form properties
  • throw SDE when testPattern is empty but testKind="pattern"
  • throw SDE when inputValueCalc is used on optional or non-scalar elements 
  • improve numerous diagnostic error messages
  • improve performance when writing hexBinary to the infoset
  • support %ES; in delimiters to make a delimiter optional
  • fix non-thread-safe code related to text numbers
  • fix numerous typos and grammatical errors
  • fix delimiter scanning with %WSP*;
  • add tests to validate Java 8 support
  • check for disallows regular expression constructs
  • add ability to specify a temporary directory, currently only useful as part of TDML tests
  • improve performance when processing errors are heavily used for backtracking

CLI

  • allow the --schema option to use schemas inside jar files on the classpath
  • only allow the --schema option to be provided once; all other schemas must come from import/include statements
  • prevent the eval command from aborting if a DFDL expression failed to compile
  • re-enable support for breakpoints
  • add validation and auto-completion to debugger display command

API

  • add new API functions to compile schema's in either File or URI form
  • only allow a single schema to be provided to the API; all other schemas must come from import/include statements
  • add scala API and scaladoc

TDML

...

Daffodil 0.15.0 - detailed changelog

Infrastructure

  • license information for dependencies is now distributed in the released files
  • remove test dependencies from released files
  • use a plugin to create release files rather than our own custom packager

Core

  • replace Saxon with custom written DFDL Expression compiler/evaluator. This causes large performance improvements when parsing files that rely on DFDL expressions.
  • temporarily remove support for unordered sequences
  • remove support for query-style paths in DFDL expressions
  • add dfdl namespace XPath constructor functions
  • add support for the ability to serialize and deserialize parsers

CLI

  • support the -P/--parser option to use a saved parser in the parse and performance subcommands
  • support the save-parser subcommand

API

...

Daffodil 0.14.0 - detailed changelog

Core

  • support for bitOrder property
  • support for encodingErrorPolicy="replace"
  • fix bug where schemas using import/include were not properly validated, causing various error messages
  • fix bug where lengthKind="explicit" in some cases incorrectly included initiators and terminators in the content length
  • various performance improvements, with some parses having increased speed of ~30%
  • improve error messages when invalid regular expressions are used in properties like testPattern and lengthPattern
  • fix error with when runtime byteOrder expressions fail
  • fix potential thread safety bugs in delimiter scanning

CLI

...

Daffodil 0.13.0 - detailed changelog

Dependencies

  • upgrade to scala-2.10.4
  • upgrade to sbt-0.13.2

Core

  • fix non-thread-safe code in date/time/dateTime types, text numbers, delimiters, occursCountKind='expression', and expression evaluation
  • use correct namespace for external variables
  • improve performance for data containing only ASCII encoding
  • remove broken support for lengthUnits=bytes with specified lengthKind and variable-width encodings
  • replace much of the parser combinator code with DFAs specifically tailored towards DFDL requirements, giving a performance increase on delimited data

CLI

...

Daffodil 0.12.0 - detailed changelog

Dependencies

  • upgrade to Saxon-HE-9.5.1-1
  • upgrade to jdom2-2.0.5
  • upgrade to scallop-0.9.4

Core

  • check for unescaped curly braces in DFDL literals
  • ignore dfdl:representation when type is xs:hexBinary or xs:string. Representation is assumed to be binary with xs:hexBinary, and text with xs:string
  • remove defaulting of dfdl:sequenceKind to ordered. The property must now be specified
  • fix bug causing the use of the wrong root element when not provided via the API or CLI
  • report schema definition error when no terminator is supplied, but lengthKind='delimited' and tralingSkip > 0
  • add check for alignment ambiguity
  • require xs:string and xs:hexBinary to defined minOccurs/maxOccurs when lengthKind='implicit'
  • when a delimiter is not found, display what was found in the error message
  • check for distinctness of delimiters
  • disallow whitespace in some properties. Instead the DFDL character entites such as %SP; must be used instead
  • add support for DFDL expressions in escapeCharacter and escapeEscapeCharacter 
  • fix incorrect parse failures when escapeEscapeCharacter was set to the empty string

API

  • add new function to the Compiler setValidateDFDLSchemas to enable/disable DFDL schema validation, such as unique particle attribute and various facet related checks

CLI

...

Daffodil 0.11.0 - detailed changelog

Core

  • add support for runtime expressions in byteOrder
  • add support for sequenceKind="unordered"
  • add support for infoset validation,  three modes
    1. "on": check constraints and Xerces validation
    2. "limited": check constraints, no Xerces validation
    3. "off"" no validation performed
  • add support for external variables
  • add support for advanced text number properties: 
    • textStandardDecimalSeparator (static & dynamic)
    • textStandardGroupingDeparator (static & dynamic)
    • textStandardExponentRep (static & dynamic) (renamed from textStandardExponentCharacter)
    • textStandardInfinityRep 
    • textStandardNaNRep 
    • textStandardZeroRep 
    • textNumberPattern 
    • textNumberCheckPolicy 
    • textNumberRounding 
    • textNumberRoundingMode 
    • textNumberRoundingIncrement 
  • add new DFDL expression compiler to better detect invalid expressions, primarily  those related to unordered sequences
  • add min/maxOccurs validation check
  • require appinfo source attribute to be "http://www.ogf.org/dfdl/"
  • add support for binary and text xs:decimal type
  • improve diagnostics when a variable is used but not set  
  • fix bug with dynamic separators using variables
  • fix SDE detection on last required element when maxOccurs="unbounded" and {{ occursCountKind="implicit"}} 
  • fix lengthKind='pattern' to not error when a match is not found, but instead  to return a length of zero
  • fix bug where nonNegativeInteger range was not checked correctly
  • fix bug iso-8859-1 support

Java API

  • fix bug in JAPI default log writer causing logs to fail to write 

CLI

  • new options to enable external variables
    • -D, --variables to define one or more external variables
    • -c, --config to define an XML file containing external variables
  • new option for validation
    • --validation-mode=<mode>, where mode can be "on", "off", or "limited" 
  • new option for the test subcommand
    • -i, --info to display more information about what a test failed. May be supplied multiple times to increase the amount of information

TDML

  • ability to enable validation via a new attribute, validation="<mode>", placed on a parserTestCase 

API

...

Daffodil 0.10.1 - detailed changelog

Core/ Java API

  • fix bug causing duplicate elements to be added to the infoset
  • fix bug where delimiters containing DFDL character entities but not starting with a DFDL character entity caused a schema definition error

Debugger

...

Daffodil 0.10.0 - detailed changelog

Core

  • xs:include and xs:import now work with relative file schemaLocations
  • respect minOccurs when occursCountKind="implicit"
  • diagnostics improvements
  • fix 7-bit USASCII with implicit alignment
  • add schema definition warning if xs:appinfo source is incorrect
  • fix unsignedXXX values
  • improve schema definition error detection
  • eliminate duplicate errors
  • require that a complexType must have exactly one child, which must be a sequence, choice, or group reference
  • allow spaces in pathnames to input files and schemas
  • calculated values (e.g. inputValueCalc) maintain their precision in error messages
  • check for invalid DFDL entities
  • support for escaping percent sign

Java API

  • fix character entity infoset output when using the Java API
  • add support for controlling the debugger, including a trace debugger
  • fix issue where multiple retrievals of the parser result caused error

TDML Runner

  • can now use CDATA tags in dfdl:infoset for cases where characters like < and > are in the expected output
  • replaceDFDLEntities attribute for documentPart element now defaults to false

CLI

  • new --trace option to display verbose output of Daffodil parsing
  • the --debug option can now take a file containing a list of debugger commands (e.g. --debug=cmds.txt)
  • add check for not yet implemented features
  • fix bug where order of multiple --schema options was not maintained

Debugger

...

this page has moved to https://daffodil.apache.org/releases/