Thanks Steve. So if I specify these properties > dfdl:lengthKind="explicit" > dfdl:length="9" > dfdl:lengthUnits="characters"
on an element with complexType, does that implicitly mean "If the element's value has a length of less than 9, then the value must be left-justified and must be padded on the right with spaces? That seems to be how Daffodil is behaving. /Roger -----Original Message----- From: Steve Lawrence <slawre...@apache.org> Sent: Wednesday, May 18, 2022 9:16 AM To: users@daffodil.apache.org Subject: [EXT] Re: Why does Daffodil ignore my specification of textStringJustification and textStringPadCharacter? Padding/justification only applies to simple xs:string types. They do not apply to complex types. An alternative would be to model the extra spaces as a terminator of your MilitaryDayTime element, e.g. <xs:element name="MilitaryDayTime" dfdl:lengthKind="implicit" dfdl:terminator="%SP;%SP;"> On 5/18/22 8:49 AM, Roger L Costello wrote: > Hi Folks, > > My input contains slash-separated fields of fixed length. Here's an example > input: > > /05180801Z/ > > That represents: > Month = 05 > Day = 18 > Hour = 08 > Minute = 01 > Time zone = Z > > The field may contain a choice of either a MonthDayTime element or a > MilitaryDayTime element. The above example shows a MonthDayTime value. Here > is a MilitaryDayTime value: > > /211300Z / > > That represents: > Day = 21 > Hour = 13 > Minute = 00 > Time zone = Z > > Notice the space following the time zone. The space is important because the > field is exactly 9 characters long. The value doesn't take up the 9 > characters, so it is padded with a space. > > In my DFDL schema I specified these DFDL properties: > > dfdl:lengthKind="explicit" > dfdl:length="9" > dfdl:lengthUnits="characters" > dfdl:textStringJustification="left" > dfdl:textStringPadCharacter="%SP;" > > When I run the DFDL schema Daffodil generates two warning messages: > > [warn] Schema Definition Warning: DFDL property was ignored: > textStringPadCharacter="%SP;" > [warn] Schema Definition Warning: DFDL property was ignored: > textStringJustification="left" > > Below is the relevant portion of my DFDL schema. Why am I getting these > warnings? > > <xs:element name="TimeOfReturnToOperations" minOccurs="0" > dfdl:lengthKind="explicit" > dfdl:length="9" > dfdl:lengthUnits="characters" > dfdl:textStringJustification="left" > dfdl:textStringPadCharacter="%SP;"> > <xs:complexType> > <xs:choice dfdl:choiceLengthKind="implicit"> > <xs:element name="MonthDayTime"> > <xs:complexType> > <xs:sequence dfdl:separator=""> > <xs:element name="Month" > type="non-zero-length-string" > dfdl:lengthPattern="01|02|03|04|05|06|07|08|09|10|11|12"/> > <xs:element name="Day" type="non-zero-length-string" > dfdl:lengthPattern="[0-9]{2}"/> > <xs:element name="Hour" > type="non-zero-length-string" dfdl:lengthPattern="[0-9]{2}"/> > <xs:element name="Minute" > type="non-zero-length-string" dfdl:lengthPattern="[0-9]{2}"/> > <xs:element name="TimeZone" > type="non-zero-length-string" dfdl:lengthPattern="Z"/> > </xs:sequence> > </xs:complexType> > </xs:element> > <xs:element name="MilitaryDayTime"> > <xs:complexType> > <xs:sequence dfdl:separator=""> > <xs:element name="Day" type="non-zero-length-string" > dfdl:lengthPattern="[0-9]{2}"/> > <xs:element name="Hour" > type="non-zero-length-string" dfdl:lengthPattern="[0-9]{2}"/> > <xs:element name="Minute" > type="non-zero-length-string" dfdl:lengthPattern="[0-9]{2}"/> > <xs:element name="TimeZone" > type="non-zero-length-string" dfdl:lengthPattern="Z"/> > </xs:sequence> > </xs:complexType> > </xs:element> > </xs:choice> > </xs:complexType> > </xs:element>