Even if a TDML file has setup a default namespace to be the same as the target namespace, an expression in the schema still has to use prefix-qualified names for referring to every element.
when ../foo/bar should work if the default namespace is the same as for the ex prefix.
To test this, take any test, e.g., test_repeatFlags3, and change the discriminator expression to remove the ex: prefixes. Add a xmlns="http://example.com" at the top of the TDML file.
Voila, it fails. Annoyingly and silently, because ../foo when there is no default namespace looks for peer element foo but doesn't look in the right namespace, so returns "empty node list", which is legal, but useless.