Uploaded image for project: 'Daffodil'
  1. Daffodil
  2. DAFFODIL-2193

dfdl:lengthKind="prefixed" with dfdl:lengthUnits="characters" gives wrong parse result

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Minor
    • Resolution: Unresolved
    • 2.4.0
    • None
    • Back End, Front End
    • None

    Description

      3ABC
      

      That data can be described with the following schema:

      Unable to find source-code formatter for language: xsd. Available languages are: actionscript, ada, applescript, bash, c, c#, c++, cpp, css, erlang, go, groovy, haskell, html, java, javascript, js, json, lua, none, nyan, objc, perl, php, python, r, rainbow, ruby, scala, sh, sql, swift, visualbasic, xml, yaml
      <xs:element name="D"type="xs:string"
          dfdl:lengthUnits="characters"
          dfdl:lengthKind="prefixed"
          dfdl:prefixLengthType="D-type"
          dfdl:prefixIncludesPrefixLength="no"/>
      
      <xs:simpleType name="D-type"
          dfdl:lengthKind="explicit"
          dfdl:length="1"> 
        <xs:restrictionbase="xs:integer"/>
      </xs:simpleType>
      

      DAFFODIL-114 added support for lengthKind="characters", but upon testing it looks like it created an Assert.invariant if the lengthKind="characters" for a prefixed length element. On 2.4.0, that invariant doesn't happen, but the lenght is calculated incorrectly. In 2.4.0, it only parses a single character, even though the prefix length is 3.

      Also see related DAFFODIL-2029, which is to add support for unparsing lengthKind="characters" prefixed length elements.

      If we don't support this yet, we might just want to make it a notYetImplemented error.

      Attachments

        Activity

          People

            Unassigned Unassigned
            slawrence Steve Lawrence
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated: