
Hi folks, This is to try to pick up on the issue identified by Suman in today's call. The Issue Consider the following example: <xs:element name="root"> <xs:complexType> <xs:sequence> <xs:annotation><xs:appinfo source="http://dataformat.org" /> <hidden> <xs:element name="repeats" type="xs:integer"/> </hidden> </xs:appinfo></xs:annotation > <xs:element name="testElement" type="xs:integer " minOccurs="0" maxOccurs="unbounded" dfdl:repeatCount="../repeats"> </xs:complexType> </xs:element> The problem is that the path "../repeats" can be broken by modifications to the logical model due to name clashes on "repeats" and there are cases that can be constructed where this would not be obvious to a user. Possible Solutions Possible fixes to this include: 1. Disallow XPath references to hidden elements the user is forced to place the material into the global context to refer to it. 2. Provide a special XPath operator to indicate we are referencing a hidden element, possibilities include: a. "../hidden(repeats)" b. "hidden(../repeats)" c. "../dfdl:hidden/repeats" 3. Only allow hidden elements to be present in top level global complex types. These can then be included where needed. (This is the solution that Suman was pushing but I don't fully understand it - in particular I don't see how it resolves the ambiguity issue.) I believe my preference here is 2a or 2b followed by 1. Comments/suggestions/opinions? Thanks, Martin