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


Arduino UNO Q Takes On Raspberry Pi
08/10/2025

Arduino has just been taken over by Qualcomm, a company generally known for its many patent disputes as well as its ARM processors. More importantly, a new Arduino has just been announced that could b [ ... ]



Anthropic Says Claude Sonnet 4.5 Is World's Best Coding Model
06/10/2025

Anthropic has released Claude Sonnet 4.5, describing it as the best coding model in the world. Anthropic says this is the strongest model for building complex agents, the best model at using computers [ ... ]


More News

pico book

 

Comments




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