
Mike dfdl:lengthUnits is not currently used by dfdl:choice. If by erratum we changed this, existing schemas could break as they would suddenly pick up the value from scope. We have a couple of alternatives: 1) A new property dfdl:choiceLengthUnits with enums 'bytes' and 'bits' (not seen a use case for 'characters'). For compatibility, an implementation would need to default the value to 'bytes' if not set locally or in scope, rather than give an error. ** 2) New enum for dfdl:choiceLengthKind 'explicitBits' which causes the dfdl:choiceLength to be interpreted as a bit count. Avoids the default pitfall, but is architecturally inconsistent with lengthKind/length/lengthUnits. ** IBM DFDL had to do a similar thing when dfdl:encodingErrorPolicy was added to avoid breaking existing schemas. Alternative is to bump the DFDL version number. Regards Steve Hanson IBM Hybrid Integration, Hursley, UK Architect, IBM DFDL Co-Chair, OGF DFDL Working Group smh@uk.ibm.com tel:+44-1962-815848 mob:+44-7717-378890 From: Mike Beckerle <mbeckerle.dfdl@gmail.com> To: "dfdl-wg@ogf.org" <dfdl-wg@ogf.org> Date: 15/12/2016 16:04 Subject: [DFDL-WG] spec bug dfdl:choiceLength says 'bytes' should use dfdl:lengthUnits Sent by: "dfdl-wg" <dfdl-wg-bounces@ogf.org> for dfdl:choiceLength, the description says "Specifies the length of the choice in bytes..." clearly this should use dfdl:lengthUnits. We have tons of cases where byte granularity is not sufficient, and this is hard to work around. You have to use dfdl:choiceLengthKind='implicit' and then carefully pad the branches to the same length in bits. It's painful. Mike Beckerle | OGF DFDL Workgroup Co-Chair | Tresys Technology | www.tresys.com Please note: Contributions to the DFDL Workgroup's email discussions are subject to the OGF Intellectual Property Policy -- dfdl-wg mailing list dfdl-wg@ogf.org https://www.ogf.org/mailman/listinfo/dfdl-wg Unless stated otherwise above: IBM United Kingdom Limited - Registered in England and Wales with number 741598. Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU