I donít think you understood my question(s) but thanks anyway.
From: Michael Kay
Your questions seem to suggest a lot of confusion, and I don't think that can be solved by answering them directly.
An element (instance) has a name (the "expanded name") that's in two parts: namesapce URI and local name. The local name is as written in the source, the namespace URI is obtained by looking for the namespace binding of its prefix and/or the default namespace.
A schema defines rules for elements in terms of their expanded name. When you use an element name in name="x" its local name is x and it's namespace URI is either null or the target namespace depending on the values of elementForm and elementFormDefault. If you use an element name in ref="[p:]x" then its local name is x and its namespace URI is obtained by looking for the namespace binding of p or the default namespace.
If the expanded name in the schema is different from the expanded name in the instance (whether it's the local names that differ or the URIs) then they're simply talking about different elements.