[
https://issues.apache.org/jira/browse/DAFFODIL-1651?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17687132#comment-17687132
]
Mike McGann commented on DAFFODIL-1651:
---------------------------------------
So we want the following to succeed:
{noformat}
contentLength(../ex:other, "bytes")
{noformat}
and this to fail:
{noformat}
contentLength("other", "bytes")
{noformat}
so it is more than not array. It is not array and not literal. Or maybe
NodeReference is the term we are looking for. Then "../ex:other" would have to
evaluate to Node/Scalar/NodeReference which then could be convertable to
string. So would the type hierarchy make more sense to be:
* AnyTypeKind
** Exists
** Node/Scalar/NodeReference
** AnySimpleType
** Complex
> Unparse: dfdl:content/valueLength of an Array returns unexpected result
> -----------------------------------------------------------------------
>
> Key: DAFFODIL-1651
> URL: https://issues.apache.org/jira/browse/DAFFODIL-1651
> Project: Daffodil
> Issue Type: Bug
> Components: General, Unparsing
> Affects Versions: 2.0.0
> Reporter: Steve Lawrence
> Assignee: Mike McGann
> Priority: Major
> Fix For: 3.5.0
>
>
> When trying to get the dfdl:contentLength of dfdl:valueLength of an array,
> Daffodil returns the length of it's parent, rather than the array. This is
> because the NodeType.Exists parameter type ends up creating a DownArrayExists
> recipe, which does not change the current node. Either we need to disallow
> getting the content/valueLength of an array and require the user to wrap the
> array in a complex type, or we need to allow it and modify/add parsers to
> store value/contentLength of an array.
> Alternatively, we maybe be able to do some magic where we get the start pos
> of the first child and the end pos of the last child and return that length.
> It's not immeidately clear if that is correct.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)