Apache Daffodil 4 Adds New API |
Written by Kay Ewbank | |||
Thursday, 09 October 2025 | |||
Apache Daffodil 4 has been released. This is a major upgrade that has moved to depending on Scala 3, Java 17 or newer. The new version also includes a new backwards incompatible validation API. Daffodil is an open source implementation of the Data Format Description Language specification (DFDL). Daffodil was first created at the University of Illinois National Center for Supercomputing Applications (NCSA) in 2009, and entered the Apache Incubator in August 2017. DFDL is a specification that was developed by the Open Grid Forum. It can be used to describe many data formats, including textual and binary, scientific and numeric, legacy and modern, commercial record-oriented, and many industry and military standards. DFDL defines a language that is a subset of W3C XML schema to describe the logical format of the data, and annotations within the schema to describe the physical representation. Daffodil is used to convert between fixed format data and XML/JSON. It had Java and Scala APIs, provides Apache NiFI processors for parsing and unparsing NiFi FlowFiles, and has an extension to XML Calabash that declares XProc pipeline steps to parse and unparse input data. Once converted into XML or JSON, the data can then be consumed, inspected, and manipulated as fixed format data using standard XML or JSON technologies and libraries. Daffodil can also be used to serialize or "unparse" data back to the original data format. The DFDL infoset can also be converted directly to/from the data structures carried by data processing frameworks so as to bypass any XML/JSON overheads. The first change to the new version is that Daffodil now requires Scala 3.3.6 and Java 17+. For Scala 3, the change mainly affects the way embedded XML is handled in Daffodil, as Scala 3 also changes the way embedded XML is handled. There's a new Validation API that has replaced the Validation Modes(withValidationMode) /withValidator with the withValidation(validatorName[, validationConfigurationURL]) method. Daffodil provides a number of built-in validators for use with DataProcessor.withValidation(String, URL), specifically xerces, daffodil, and schematron. Developers can also create their own custom validators by creating a custom class that implements the validator interface. Daffodil 4.0 is available now. More InformationRelated ArticlesApache Daffodil Gets VS Code Extension Apache Daffodil Now Top Level Project Apache Daffodil Improves DFDL Compatibility Flink Gets Event-time Streaming To be informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed and follow us on Twitter, Facebook or Linkedin.
Comments
or email your comment to: comments@i-programmer.info |