* Appendix G: 36.2 Unparser - property precedence tables.
Neither Section 13.6.2 nor 13.7.1 mention the decimalSigned property.
We need to add language which clarifies this.
I believe this is roughly what is needed:
In Section 13.6.2, add this material at the start of the section:
The signed number types are byte, short, int, long, integer, float, double
The unsigned number types have names beginning with "unsigned", as well as nonNegativeInteger.
For type xs:decimal the decimal is considered signed if dfdl:decimalSigned="yes" and unsigned if dfdl:decimalSigned="no".
In Section 13.7.1 we need to add this:
When dfdl:binaryNumberRep="binary", then dfdl:decimalSigned controls whether the underlying representation is interpreted as a twos-complement signed binary integer or an unsigned binary integer. This value is then scaled using dfdl:binaryDecimalVirtualPoint to convert to/from the infoset value.
When dfdl:binaryNumberRep is 'bcd', no sign is possible and the dfdl:decimalSigned property is ignored.
When dfdl:binaryNumberRep is 'packed' a sign nibble is required and the dfdl:decimalSigned property is ignored.
(rationale: packed but unsigned is the same as BCD)
When dfdl:binaryNumberRep is "ibm4690Packed" the dfdl:decimalSigned property is used to determine if negative values are allowed, i.e., the packed digits may be preceded by a negative sign nibble.
If dfdl:decimalSigned is "no" then no sign nibble is expected or allowed.