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.

daffodil

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.

daffodil

More Information

Apache Daffodil

Related Articles

Apache Daffodil Gets VS Code Extension

Apache Daffodil Now Top Level Project

Apache Daffodil Improves DFDL Compatibility

Flink Gets Event-time Streaming

The Significance Of Big Data

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.

Banner


Robot Army Video As Robots Shipped En Masse
16/11/2025

To mark the “first mass delivery” of its Walker S2 Humanoid Robots, Chinese manufacturer UBTECH posted a spectacular  video of its "Robot Army" on YouTube. Watch and be amazed.



Next On The Menu - Edible Robots
21/11/2025

Researchers from the Laboratory of Intelligent Systems at the Ecole Polytechnique Federale de Lausanne in Switzerland have demonstrated robotic batteries and actuators that can be inges [ ... ]


More News

pico book

 

Comments




or email your comment to: comments@i-programmer.info