Let's state the two options being considered,
as I said I'd do this for the wider DFDL WG for the call today:
1) Global group approach
Summary:
- Particle to hide can be a local element,
element ref, local sequence, local choice or group ref
- Particle is removed from its parent
into a dedicated global group of composition sequence and replaced in the
parent by a new empty local sequence
- The new empty local sequence carries
a dfdl:hidden annotation that has a property dfdl:groupRef, other DFDL
properties are not allowed
- Alternatively, the new empty local sequence
carries a dfdl:hiddenGroupRef property, other DFDL properties are not allowed
Pros:
- Removal of all DFDL annotations and
use of the resultant pure XSD results in same infoset
- Global group can be reused
Cons:
- Making something hidden is a refactor
operation
- Global group sequence needs DFDL properties
setting correctly
2) Hidden flag approach
Summary:
- Particle to hide can be a local element,
element ref
- Particle takes a dfdl:hidden property
- xs:minOccurs MUST be 0
- A dfdl:minOccurs property takes the
place of xs:minOccurs.
Pros:
- Easy to make something hidden
Cons:
- Removal of all DFDL annotations and
using pure XSD does not guarantee the same infoset
- Breaks validation
- Duplication of minOccurs property
- Have to wrap a local sequence, choice
or group ref in a complex element in order to hide it (they can't take
minOccurs = 0)
Regards
Steve Hanson
Strategy, Common Transformation & DFDL
Co-Chair, OGF DFDL WG
IBM SWG, Hursley, UK,
smh@uk.ibm.com,
tel +44-(0)1962-815848
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