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 |