
When we were implementing unordered sequences, this raised some questions around evaluating relative paths in expressions, for elements in a choice or unordered sequence : DFDL spec: (gwdrp-dfdl-v1.0.4 section 15) "When processing a choice group the parser validates any contained path expressions. If a path expression contained inside a choice branch refers to any other branch of the choice, then it is a schema definition error." 1. I'm not clear what benefit this restriction on path expressions gives. It seems redundant since in any single instance of a choice group, if the branch being processed exists, then by definition none of it's sibling branches exist. Any expression path referring to a non-existent branch would correctly return <empty sequence> If the choice group is inside a repeating structure, then expressions referring to choice branches within other instances of the choice could be useful. Should an expression referring to branches in other instances of a choice cause a schemadef error? Example expression on el_b could be { fn:count(../../el_choice/el_a) } - parent [sequence] - el_choice [minOccurs=5 maxOccurs=5] [choice] - el_a - el_b 2. Should an expression that potentially refers to branches in the choice cause a schemadef error? Example identically named elements in and out of a choice expression on el_c could be { fn:count(../el_a) } - parent [sequence] - el_a - el_b - [embedded choice group] - el_a - el_c Regards, Mark Frost _____________________________________ MP 211, IBM Hursley, Winchester, SO21 2JN Phone: (01962) 817009 or x247009 Email: frostmar@uk.ibm.com 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