Hello DFDL community,
Below are the DFDL properties covered in my tutorial. Note that some properties
have an enumerated set of allowable values; I typically cover some but not all
the allowable values. At one point, Steve Lawrence says that I've covered only
about 30% of all the properties specified in the DFDL specification.
I have a question. But first, to best express my question let me first give you
an analogy. The SGML specification (SGML is the precursor to XML) is very
large, over 500 pages. However, most users use only a fraction of all the SGML
standard; perhaps 20% of the features are sufficient for 90% of all users.
Now to my question. The DFDL specification is large. It specifies many
properties. However, I suspect that most users will use only a fraction of all
the DFDL properties. Do you agree? Is the set of properties currently covered
in my tutorial sufficient for 90% of the users? Stated another way, is the set
of properties currently covered in my tutorial sufficient for parsing and
unparsing 90% of all the data formats that most people will typically ever
encounter? Or, am I missing some properties that will absolutely be needed by
most users? If so, what are those properties, please?
1. representation (text, binary)
2. byteOrder (littleEndian, bigEndian)
3. binaryNumberRep
4. bitOrder (leastSignficantBitFirst, mostSignificantBitFirst)
5. alignment, alignmentUnits
6. hexBinary
7. outputNewLine
8. lengthKind (implicit, explicit, delimited, pattern)
9. separator (whitespace-separated list of separators)
10. separatorPosition (infix, prefix)
11. initiator
12. terminator (whitespace-separated list of terminators)
13. lengthKind (delimited, explicit, pattern)
14. lengthUnits (characters, bits, bytes)
15. lengthPattern
16. length (integer, expression)
17. hiddenGroupRef
18. inputValueCalc
19. outputValueCalc
20. occursCountKind (fixed, implicit, expression)
21. occursCount
22. DFDL expressions, using XPath functions
23. textTrimKind, textStringPadCharacter, textStringJustification
24. binaryCalendarRep, binaryCalendarEpoch
25. assert
26. checkConstraints
27. ref
28. nilValue
29. separatorSuppressionPolicy
30. encoding
31. choice:
* discriminator
* initiatedContent
* choiceDispatchKey, choiceBranchKey
* encodeDFDLEntities
32. defineFormat, format
33. defineEscapeScheme,
34. escapeScheme (escapeKind (escapeCharacter|escapeBlock), escapeCharacter,
escapeEscapeCharacter, extraEscapedCharacters, generateEscapeBlock,
escapeBlockStart, escapeBlockEnd)
35. escapeSchemeRef
36. defineVariable
37. textStandardDecimalSeparator
38. documentFinalTerminatorCanBeMissing
39. dollar symbol ($) denotes end-of-file
40. DFDL schema
41. parsing vs unparsing
42. 2-pass parsing
43. DFDL entities
44. Flags that may be set when running Daffodil (--Validate on|off|limited,
-D, -l scala-xml)
45. DFDL vs ANTLR