Thanks Mike! Now my schema parses and unparses perfectly:
<xs:element name="input">
<xs:complexType>
<xs:sequence>
<xs:element name="two-bits" type="unsignedint2" />
<xs:element name="three-bits" type="unsignedint3" />
<xs:sequence dfdl:hiddenGroupRef="padToByteBoundary" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:group name="padToByteBoundary">
<xs:sequence dfdl:alignment="8"
dfdl:alignmentUnits="bits"
dfdl:fillByte="%#r00;"/>
</xs:group>
/Roger
From: Beckerle, Mike <[email protected]>
Sent: Monday, July 29, 2019 8:24 AM
To: [email protected]
Subject: [EXT] Re: Unparsing a byte that is padded to byte boundary produces
incorrect results
Check that the fillbyte is %#×00;
The unused bits of your byte are filled from the fill byte when unparsing.
Get Outlook for Android<https://aka.ms/ghei36>
________________________________
From: Costello, Roger L. <[email protected]<mailto:[email protected]>>
Sent: Monday, July 29, 2019 8:16:22 AM
To: [email protected]<mailto:[email protected]>
<[email protected]<mailto:[email protected]>>
Subject: Unparsing a byte that is padded to byte boundary produces incorrect
results
Hello DFDL community,
My input is binary. There is a 2-bit unsigned integer, followed by a 3-bit
unsigned integer, and then it is padded to an 8-bit boundary. The bits are
leastSignificantBitFirst. Here is my input (hex):
0E
Here is my DFDL Schema:
<xs:element name="input">
<xs:complexType>
<xs:sequence>
<xs:element name="two-bits" type="unsignedint2" />
<xs:element name="three-bits" type="unsignedint3" />
<xs:sequence dfdl:hiddenGroupRef="padToByteBoundary" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:group name="padToByteBoundary">
<xs:sequence dfdl:alignment="8" dfdl:alignmentUnits="bits"/>
</xs:group>
Parsing produces this XML:
<input>
<two-bits>2</two-bits>
<three-bits>3</three-bits>
</input>
Perfect!
However, unparsing produces incorrect binary (hex):
CE
Yikes! What am I doing wrong, please?
/Roger