| commit | 9311c70d22e499b701a9900132d9a1e50d91283e | [log] [tgz] |
|---|---|---|
| author | Steve Lawrence <slawrence@tresys.com> | Fri Aug 25 09:25:29 2017 -0400 |
| committer | Steve Lawrence <slawrence@tresys.com> | Mon Aug 28 09:38:36 2017 -0400 |
| tree | 191d731552eb82d8c806b93414913857aa22178a | |
| parent | 5a335fbe656a5b4995b97054c1b28cf0b68f071c [diff] |
Ensure Bit/ByteOrderChange parsers always exist at root If the dfdl:byteOrder or dfdl:bitOrder properties were not provided, Daffodil did not complain, and it would not insert a Bit/ByteOrderChange parser at root. This meant that Daffodil would use a default value, which in some cases caused incorrect behavior. It also meant that the check for valid bit and byte orders (e.g. not bigEndian & leastSignificantBitFirst) never occurred since that only happend in ByteOrderChange parsers, meaning it could allow invalid bit/byte order combinations. This changes Daffodil so the root element will always insert Bit and ByteOrderChange parsers, ensuring that the validity of the properties are correct and ensuring correct parsing/unparsing. This means that byteOrder is now always required, even in some cases where it might not technically be needed. This also modifies the initial UState/PState creation to not set bit/byte order, but to instead rely on the Bit/ByteOrderChange parsers to always be inserted first thing. DFDL-1835
Daffodil is the open source implementation of the Data Format Description Language (DFDL), a specification created by the Open Grid Forum. DFDL is capable of describing many data formats, including textual and binary, commercial record-oriented, scientific and numeric, modern and legacy, and many industry standards. It leverages XML technology and concepts, using a subset of W3C XML schema type system and annotations to describe such data. Daffodil uses this description to parse data into an infoset represented as XML or JSON, easily capable of ingestion, validation, and transformation.
For more information about Daffodil, see the Daffodil Wiki.
To build Daffodil:
$ sbt clean package
To run all Daffodil tests:
# run all unit tests $ sbt test # run all command line tests $ sbt cli
To build the Daffodil CLI:
$ sbt stage
The above will create Linux and Windows shell scripts in daffodil-cli/target/universal/stage/bin/. See the Daffodil CLI for details on its usage.
For questions, we can be reached on the Daffodil users mailing list or in the #Daffodil room on NCSA HipChat. Bugs can be reported via the Daffodil JIRA, or via email at daffodil-fouo-support@tresys.com for company confidential, FOUO, or security relevant issues.
Daffodil is licensed under the University of Illinois/NCSA Open Source License.