There are no defaults value for these properties. And actually,
dfdl:textNumberPadKind isn't a thing, it should be dfdl:textPadKind. But
if textPadKind="none" then no padding will be added.

But another option is that dfdl:fillByte is being used to fill those
extra bytes. Perhaps dfdl:fillByte="f"?

- Steve

On 6/25/19 2:28 PM, Costello, Roger L. wrote:
> Hi Steve,
> 
>>  I would guess that you have: 
>>  textNumberPadKind="padChar", 
>>  textNumberPadCharacter="f", and 
>>  textNumberJustification="left"
> 
> Actually, I looked at my defaults.dfdl.xsd file and it doesn't mention any of 
> those properties. If those properties are not specified, do they default to 
> the values you list?
> 
> /Roger
> 
> -----Original Message-----
> From: Steve Lawrence <[email protected]> 
> Sent: Tuesday, June 25, 2019 2:14 PM
> To: [email protected]
> Subject: [EXT] Re: 0,100 --> parse --> 100 --> 100ff ... Huh?
> 
> This is a good example of the difference between # and 0 pattern characters 
> when unparsing.
> 
> With the pattern "0,000", the value "100" will be padded with zero's and so 
> will unparse to "0,100", which matches the expected length of 5.
> 
> However, with the pattern "#,###", the value "100" will unparse to "100"--no 
> comma is needed and it will not zero pad. But your test1 element is defined 
> as having a length of 5 and the the unparsed value has a length of 3. In this 
> case, Daffodil uses textNumberPadKind and related properties 
> (textNumberPadCharacter, textNumberJustification,
> etc.) to pad the unparsed value up to the needed 5 characters.
> 
> So I would guess that you have textNumberPadKind="padChar", 
> textNumberPadCharacter="f", and textNumberJustification="left". Those three 
> properties will cause Daffodil to add extra "f" characters as padding to the 
> right of the string.
> 
> I don't think I would say to never use the '#' character. There are certainly 
> going to be times where you don't want extra padding characters, like in some 
> delimited formats where numbers do not have explicit lengths.
> 
> - Steve
> 
> On 6/25/19 1:32 PM, Costello, Roger L. wrote:
>> Hello DFDL community,
>>
>> My input file has this:
>>
>> 0,100
>>
>> 0,100
>>
>> My DFDL schema is this:
>>
>> <xs:elementname="input">
>> <xs:complexType>
>> <xs:sequencedfdl:separator="%NL;"dfdl:separatorPosition="infix">
>> <xs:elementname="test1"type="xs:unsignedInt"
>>                  dfdl:length="5"dfdl:lengthKind="explicit"
>>                  dfdl:textNumberCheckPolicy="strict"
>>                  dfdl:textNumberPattern="#,###"/> 
>> <xs:elementname="test2"type="xs:unsignedInt"
>>                  dfdl:length="5"dfdl:lengthKind="explicit"
>>                  dfdl:textNumberCheckPolicy="strict"
>>                  dfdl:textNumberPattern="0,000"/> </xs:sequence> 
>> </xs:complexType> </xs:element>
>>
>> The output of parsing is this:
>>
>> <input>
>> <test1>100</test1>
>> <test2>100</test2>
>> </input>
>>
>> The output of unparsing is this:
>>
>> 100ff
>> 0,100
>>
>> Huh?
>>
>> Why am I getting 100ff?
>>
>> I think the lesson learned is never use the pound (#) symbol in 
>> dfdl:textNumberPattern. Do you agree?
>>
>> /Roger
>>
> 

Reply via email to