You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@daffodil.apache.org by "Mike Beckerle (Jira)" <ji...@apache.org> on 2022/11/01 18:57:00 UTC

[jira] [Commented] (DAFFODIL-2738) Support indirect setting of dfdlx:repType/repValues

    [ https://issues.apache.org/jira/browse/DAFFODIL-2738?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17627296#comment-17627296 ] 

Mike Beckerle commented on DAFFODIL-2738:
-----------------------------------------

Really dfdlx:repType is a DFDL property and should work like any property applicable to elements or simple types. It shouldn't have to be on the element or its immediately referenced simple type. It should be able to be anywhere in the derivation of the simple type. 

> Support indirect setting of dfdlx:repType/repValues
> ---------------------------------------------------
>
>                 Key: DAFFODIL-2738
>                 URL: https://issues.apache.org/jira/browse/DAFFODIL-2738
>             Project: Daffodil
>          Issue Type: New Feature
>          Components: Back End
>    Affects Versions: 3.3.0
>            Reporter: Olabusayo Kilo
>            Assignee: Steve Lawrence
>            Priority: Minor
>
> This is part of a large schema project. So link access to the schema project will follow in a different comment.
> But a short synopsis is when the repType of an element in a binary data format is an unsignedlong, the repType is ignored in favor of treating the element like a string type.
> For example:
> {code:xml}
>  
>   <xs:element name="a" type="tns:jobEnum"/>
>   <simpleType name="jobEnum" dfdlx:repType="xs:enum4">
>     <restriction base="xs:string">
>       <enumeration value="CTO" dfdlx:repValues="1"/>
>       <enumeration value="MANAGER" dfdlx:repValues="2"/>
>       <enumeration value="TEAM_LEAD" dfdlx:repValues="3"/>
>     </restriction>
>   </simpleType>
>   <xs:simpleType name="enum4" dfdl:length="4" dfdl:lengthKind="explicit" dfld:lengthUnit="bits">
>     <xs:restriction base="xs:unsignedLong"/>
>   </xs:simpleType>
> {code}
>  
> Would result in the following trace
> {code:xml}
> <Element name='a'><SpecifiedLengthExplicitParser><a parser='StringOfSpecifiedLengthParser' /></SpecifiedLengthExplicitParser><AssertExpressionEvaluationParser/></Element>
> {code}
> rather than
> {code:xml}
> <Element name='a'><SpecifiedLengthExplicitParser><a parser='Binary*SpecifiedLengthParser' /></SpecifiedLengthExplicitParser><AssertExpressionEvaluationParser/></Element>
> {code}
> Unfortunately the workaround mentioned in https://issues.apache.org/jira/browse/DAFFODIL-2596?focusedCommentId=17475017&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-17475017, won't work for our usecase because the data is binary and has very specific bit length requirements.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)