286
| Create
table that compares Daffodil features to IBM DFDL features (Steve/Mike)
16/2: Take table from section 22 of DFDL 1.0 spec and add columns showing implementations. 1/3: No progress 10/5: No progress. Work on this for next call. ... 7/6: No further progress 5/7: Steve has added column for IBM DFDL and emailed to WG. Mike will add column for Daffodil. 2/8: Closed. Mike has added column and discussion for Daffodil and emailed to WG. Steve to convert to an experience document and add to Redmine @ https://redmine.ogf.org/dmsf_files/13539?download=. Document can be updated as required. |
Regards
Steve Hanson
IBM
Integration Bus, Hursley, UK
Architect, IBM
DFDL
Co-Chair, OGF
DFDL Working Group
smh@uk.ibm.com
tel:+44-1962-815848
mob:+44-7717-378890
From: Mike
Beckerle <mbeckerle.dfdl@gmail.com>
To: Steve
Hanson/UK/IBM@IBMGB
Cc: DFDL-WG
<dfdl-wg@ogf.org>
Date: 19/07/2016
20:13
Subject: Re:
[DFDL-WG] Action 286 - Daffodil v IBM DFDL feature comparison
Feature | Detection | IBM DFDL | Daffodil v2.0 |
Validation | External switch | Yes | partial. Parsing only. |
Named Formats | dfdl:defineFormat or dfdl:ref | Yes | Yes |
Choices | xs:choice in xsd | Yes | Partial - choiceDispatchKey and choiceBranchKey not supported. |
Arrays where size not known in advance | dfdl:occursCountKind 'implicit', 'parsed', 'stopValue' | Partial - not 'stopValue' | Partial – not ‘stopValue’ |
Expressions | Use of a DFDL expression in any property value | Yes | Yes. Limitation - query-style expressions not supported. These are expressions which require iteration over children of an element rather than constant-time access. For example fn:count(/a/b) where element 'a' has multiple element 'b' children separated by other element declarations. Hence, gathering all the b children requires iterating. |
End of parent | dfdl:lengthKind "endOfParent" | No | No |
Simple type restrictions | xs:simpleType in xsd | Partial - not unions | Partial – not unions |
Text representation for types other than String | dfdl:representation "text" for Number, Calendar or Boolean types | Yes | Partial – type Boolean not implemented |
Delimiters | dfdl:separator <> "" or dfdl:initiator <> "" or dfdl:terminator <> "" or dfdl:lengthKind "delimited" | Yes | Yes |
Nils | XSDL nillable 'true' in xsd | Yes | Partial - nilKind 'logicalValue' not supported |
Defaults | XSDL default or fixed in xsd | Partial - unparsing only | Partial Simple types - ?? (Some support in parsing and in unparsing) Complex types – No |
Bi-Directional text. | dfdl:textBiDi 'yes' | No | No |
Lengths in Bits | dfdl:alignmentUnits 'bits' or dfdl:lengthUnits 'bits' | Yes | Yes |
Delimited lengths and representation binary element | dfdl:representation 'binary' (or implied binary) and dfdl:lengthKind 'delimited' | Yes | Partial – delimiters must not use character class entities like %NL or %WSP*. |
Regular expressions | dfdl:lengthKind
'pattern', dfdl:assert with dfdl:testkind 'pattern' , dfdl:discriminator with dfdl:testkind 'pattern' | Partial - only for dfdl:lengthKind | Yes |
Zoned numbers | dfdl:textNumberRep 'zoned' | Yes | No |
IBM 390 packed numbers | dfdl:binaryNumberRep 'packed' | Yes | No |
IBM 390 packed calendars | dfdl:binaryCalendarRep 'packed' | No | No |
IBM 390 floats | dfdl:binaryFloatRep 'ibm390Hex' | Yes | No |
Unordered sequences | dfdl:sequenceKind 'unordered' | Yes | No |
Floating elements | dfdl:floating 'yes' | No | No |
dfdl functions in expression language | dfdl:functions in expression | No | Yes |
Hidden groups | dfdl:hiddenGroupRef <> '' | No | Yes |
Calculated values | dfdl:inputValueCalc <> '' or dfdl:outputValueCalc <> '' | No | Yes |
Escape schemes | dfd:defineEscapeScheme in xsd | Yes | Yes |
Extended encodings | Any dfdl:encoding value beyond the core list | Yes | Partial - iso-8859-1 works. Others - TBD. |
Asserts | dfdl:assert in xsd | Partial - not on global elements or simple types | Yes |
Discriminators | dfdl:discriminator in xsd | Partial - not on global elements or simple types | Yes |
Prefixed lengths | dfdl:lengthKind 'prefixed' | Partial - not nested prefixed lengths | No |
Variables | dfdl:defineVariable,
dfdl:newVariableInstances, dfdl:setVariable Variables in DFDL expression language Note that variables as a feature is dependent on the Expressions feature. | Partial - not newVariableinstance or external variables | Partial – not newVariableInstance |
BCD calendars | dfdl:binaryCalendarRep "bcd" | Yes | No |
BCD numbers | dfdl:binaryNumberRep "bcd" | Yes | No |
Multiple schemas | xs:include or xs:import in xsd | Yes | Yes |
IBM 4690 packed numbers | dfdl:binaryNumberRep "ibm4690Packed" | Yes | No |
IBM 4690 packed calendars | dfdl:binaryCalendarRep "ibm4690Packed" | Yes | No |
DFDL Byte Value Entities | Use of %#r syntax in a DFDL String Literal other than the dfdl:fillByte property | Yes | No |
DFDL Standard Character Set Encodings | dfdl:encoding name begins with "X-DFDL-". | No | Partial: X-DFDL-US-ASCII-7-BIT-PACKED, but not the 6-bit variant. |
Bit Order - Least Significant Bit First | dfdl:bitOrder with value 'leastSignificantBitFirst' | No | Yes |
286
| Create
table that compares Daffodil features to IBM DFDL features (Steve/Mike)
16/2: Take table from section 22 of DFDL 1.0 spec and add columns showing implementations. 1/3: No progress 10/5: No progress. Work on this for next call. ... 7/6: No further progress 5/7: |
To kick this off here is the optional features table from spec section 21 with a column added for IBM DFDL
Feature | Detection | IBM DFDL |
Validation | External switch | Yes |
Named Formats | dfdl:defineFormat or dfdl:ref | Yes |
Choices | xs:choice in xsd | Yes |
Arrays where size not known in advance | dfdl:occursCountKind 'implicit', 'parsed', 'stopValue' | Partial - not 'stopValue' |
Expressions | Use of a DFDL expression in any property value | Yes |
End of parent | dfdl:lengthKind "endOfParent" | No |
Simple type restrictions | xs:simpleType in xsd | Partial - not unions |
Text representation for types other than String | dfdl:representation "text" for Number, Calendar or Boolean types | Yes |
Delimiters | dfdl:separator <> "" or dfdl:initiator <> "" or dfdl:terminator <> "" or dfdl:lengthKind "delimited" | Yes |
Nils | XSDL nillable 'true' in xsd | Yes |
Defaults | XSDL default or fixed in xsd | Partial - unparsing only |
Bi-Directional text. | dfdl:textBiDi 'yes' | No |
Lengths in Bits | dfdl:alignmentUnits 'bits' or dfdl:lengthUnits 'bits' | Yes |
Delimited lengths and representation binary element | dfdl:representation 'binary' (or implied binary) and dfdl:lengthKind 'delimited' | Yes |
Regular expressions | dfdl:lengthKind
'pattern', dfdl:assert with dfdl:testkind 'pattern' , dfdl:discriminator with dfdl:testkind 'pattern' | Partial - only for dfdl:lengthKind |
Zoned numbers | dfdl:textNumberRep 'zoned' | Yes |
IBM 390 packed numbers | dfdl:binaryNumberRep 'packed' | Yes |
IBM 390 packed calendars | dfdl:binaryCalendarRep 'packed' | No |
IBM 390 floats | dfdl:binaryFloatRep 'ibm390Hex' | Yes |
Unordered sequences | dfdl:sequenceKind 'unordered' | Yes |
Floating elements | dfdl:floating 'yes' | No |
dfdl functions in expression language | dfdl:functions in expression | No |
Hidden groups | dfdl:hiddenGroupRef <> '' | No |
Calculated values | dfdl:inputValueCalc <> '' or dfdl:outputValueCalc <> '' | No |
Escape schemes | dfd:defineEscapeScheme in xsd | Yes |
Extended encodings | Any dfdl:encoding value beyond the core list | Yes |
Asserts | dfdl:assert in xsd | Partial - not on global elements or simple types |
Discriminators | dfdl:discriminator in xsd | Partial - not on global elements or simple types |
Prefixed lengths | dfdl:lengthKind 'prefixed' | Partial - not nested prefixed lengths |
Variables | dfdl:defineVariable,
dfdl:newVariableInstances, dfdl:setVariable Variables in DFDL expression language Note that variables as a feature is dependent on the Expressions feature. | Partial - not newVariableinstance or external variables |
BCD calendars | dfdl:binaryCalendarRep "bcd" | Yes |
BCD numbers | dfdl:binaryNumberRep "bcd" | Yes |
Multiple schemas | xs:include or xs:import in xsd | Yes |
IBM 4690 packed numbers | dfdl:binaryNumberRep "ibm4690Packed" | Yes |
IBM 4690 packed calendars | dfdl:binaryCalendarRep "ibm4690Packed" | Yes |
DFDL Byte Value Entities | Use of %#r syntax in a DFDL String Literal other than the dfdl:fillByte property | Yes |
DFDL Standard Character Set Encodings | dfdl:encoding name begins with "X-DFDL-". | No |
Bit Order - Least Significant Bit First | dfdl:bitOrder with value 'leastSignificantBitFirst' | No |
--
dfdl-wg mailing list
dfdl-wg@ogf.org
https://www.ogf.org/mailman/listinfo/dfdl-wg
Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number
741598.
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6
3AU
Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number
741598.
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6
3AU