Any step expression can use a QName: h:body
The prefix binding is defined external to the expression (e.g. application specific).
Matching is based on the local name and namespace name and not the prefix.
We could add namespaces to the previous examples:
/s:contents/d:para /s:contents/d:para/h:a/@href
The application would have to define the prefixes 's', 'd', and 'h'.