Can treat any DINode, even simple ones, as a container of other nodes.
Copy method keeps these objects null to avoid allocation unless they are really needed.
Copy method keeps these objects null to avoid allocation unless they are really needed.
Copy method keeps these objects null to avoid allocation unless they are really needed.
Copy method keeps these objects null to avoid allocation unless they are really needed.
Obtain the data value.
Obtain the data value. Implements default values, and outputValueCalc for unparsing.
Caches the string so we're not allocating strings just to do facet checks
Caches the string so we're not allocating strings just to do facet checks
Note: there is no infoset data member for isHidden.
Note: there is no infoset data member for isHidden. A hidden group is a DFDL schema characteristic for a model group. Elements inside it will have (their element base) isHidden statically on the schema. So there is no notion of creating an infoset element then making it hidden by marking it in some way. Rather, the corresponding elementRuntimeData tells you whether it is hidden or not.
When we convert to XML, then if we want to preserve information about things being hidden (for inspection by looking at the XML) then we need to add an attribute. But for the infoset itself, we don't need it.
Tells if the element is nilled or not.
Tells if the element is nilled or not.
Throws InfosetNoDataException if we don't yet know if it is nil or not (i.e., hasn't be set, nor has anything been set to indicate that it won't be nilled.)
Used for just testing whether a node has the nil indicators set.
Used for just testing whether a node has the nil indicators set. That is, dodges the expression evaluation complexity where specific exceptions are thrown when you ask about data that isn't known yet.
Retrieve the schema component that gave rise to this infoset item.
Retrieve the schema component that gave rise to this infoset item.
Parsing of a text number first does setDataValue to a string, then a conversion does overwrite data value with a number.
Parsing of a text number first does setDataValue to a string, then a conversion does overwrite data value with a number. Unparsing does setDataValue to a value, then overwriteDataValue to a string.
This is purely to make debugging easier.
This is purely to make debugging easier.
The totalElementCount is the total count of how many elements this InfosetItem contains.
The totalElementCount is the total count of how many elements this InfosetItem contains.
(Used to call this 'size', but size is often a length-like thing, so changed name to be more distinctive)
valid = Nope means not checked valid = One(true) means valid valid = One(false) means invalid
valid = Nope means not checked valid = One(true) means valid valid = One(false) means invalid
This has to produce a useful string regardless of the state of the node.
Used to determine if expressions can be evaluated without any nodes. They all save/restore the current node, so this is the placeholder they use for that purpose.