1. A method for navigation of a data structure, comprising: receiving an input path expression for a query of a data structure to locate one or more elements in the data structure at runtime, the input path expression including at least one wildcard character or descendent axis; accessing a schema of the data structure and obtaining information relating to the one or more elements; modifying the input path expression by expanding the wildcard character or descendent axis where the schema suggests only one possible resolution, expanding the wildcard character or descendent axis into an expression with multiple paths combined with a path union operator where the schema suggests more than one possible resolution, and inserting a predicate of one where the schema suggests an element can appear only once, and a position( )=n, where schema suggests an element can appear n times, where n>1; and using the modified path expression to query the data structure at runtime.