org.apache.daffodil.processors.parsers
Tells us whether to attempt another array element at the current index, and how we should interpret the existence of an element or empty/zero-length based on the array index.
Tells us whether to attempt another array element at the current index, and how we should interpret the existence of an element or empty/zero-length based on the array index.
NOTE: must be stateless. State must be passed in, and returned for assignment to a loop var, or held in pstate.
Do things that must be done at the end of an array.
Do things that must be done at the end of an array.
This applies to both variable-occurrence and fixed-occurrence array elements, as well as optional elements.
This applies for optional elements as well because expressions can access them by way of index: e.g., fn:exists( optElement[dfdl:currentIndex()] )
False because combinators don't touch the data stream themselves.
False because combinators don't touch the data stream themselves. The processors they call do that work.
The digestion of maxOccurs with the occursCountKind results in maxRepeats.
The digestion of maxOccurs with the occursCountKind results in maxRepeats. For example, when occursCountKind is parsed, then maxRepeats is -1 (meaning unbounded) regardless of the value of maxOccurs.
The digestion of minOccurs with the occursCountKind results in minRepeats.
The digestion of minOccurs with the occursCountKind results in minRepeats. For example, when occursCountKind is parsed, then minRepeats is 0, regardless of the value of minOccurs.
Invokes the child parser.
Invokes the child parser. Once, only. Does NOT do iterations of it.
Do things that are done at the start of an array-element.
Do things that are done at the start of an array-element.
This applies to both variable-occurrence and fixed-occurrence array elements, as well as optional elements.
This applies for optional elements as well because expressions can access them by way of index: e.g., fn:exists( optElement[dfdl:currentIndex()] )
This makes more sense if you consider that an "optional" element (minOccurs 0, maxOccurs 1) when occursCountKind is 'parsed' is treated as an array with an unbounded number of possible occurrences. Similarly, if occursCountKind is 'expression', then minOccurs/maxOccurs are ignored (used only for validation), and there can be more than 1 occurrence.