True if this term has statically required instances in the data stream.
True if this term has statically required instances in the data stream.
This excludes elements that have no representation e.g., elements with dfdl:inputValueCalc.
True if a "real" array, i.e., not an optional element, but something that can potentially have 2 or more occurrences based on maxOccurs and dfdl:occursCountKind that indicates whether maxOccurs will be respected.
True if a "real" array, i.e., not an optional element, but something that can potentially have 2 or more occurrences based on maxOccurs and dfdl:occursCountKind that indicates whether maxOccurs will be respected.
True if an array has at least one required element based on a minOccurs and a dfdl:occursCountKind that means that minOccurs will be respected.
True if an array has at least one required element based on a minOccurs and a dfdl:occursCountKind that means that minOccurs will be respected.
True if a recurring element has a fixed number of occurrences.
True if a recurring element has a fixed number of occurrences.
One way this can happen is dfdl:occursCountKind of 'fixed'.
In the future, can be enhanced to take more situations into account. E.g., Another way something can be fixed number of occurrences is dfdl:occursCountKind='expression' where the expression is a constant, whether a manifest constant like '5', or an expression that happens to be shown, by the schema compiler, to be constant for this element. One such example would be if the expression is just the value of a variable for which there are no dfdl:setVariable statements possible, so it is guaranteed to have the default or an externally specified fixed number as its value.
Distinguishes elements which have minOccurs 0, maxOccurs 1, and a dfdl:occursCountKind that means parsing/unparsing will respect these bounds.
Distinguishes elements which have minOccurs 0, maxOccurs 1, and a dfdl:occursCountKind that means parsing/unparsing will respect these bounds.
This enables implementations to use different, lighter weight, representations for optional elements (e.g., null or not null object reference) vs what is required for arrays (growable vector of slots).
True if the element is required to appear in the stream of unparser infoset events.
True if the element is required to appear in the stream of unparser infoset events. False means appears "maybe", may or may not appear.
This includes elements that have no representation in the data stream. That is, an element with dfdl:inputValueCalc will be isRequiredStreamingUnparserEvent true.
All arrays/optionals are treated as not required because we tolerate invalidity of the data here.
OutputValueCalc elements are treated as optional. If present they are supposed to get their values ignored and overwritten by the computation.
Can have a varying number of occurrences.
Can have a varying number of occurrences.
Can be used for any Term, e.g., returns false for model groups true for elements with potentially varying number of occurrences.
Scalars are false here, as are fixed-length arrays.
Differs from (isOptional || isArray) because that is true for fixed-length arrays, where this is false if they are fixed length.
dfdl:occursCountKind is not part of this concept. So for example an element with occursCountKind='expression' has exactly the number of occurrences the expression value specifies. But this is considered varying as that element declaration may correspond to many arrays of data where the expression gives a different number of occurrences each time.
For an array or optional, defined if there is a PoU for the element, the defined value being the effective minOccurs value.
For an array or optional, defined if there is a PoU for the element, the defined value being the effective minOccurs value.