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 >> >
