Extension & targetNameSpace

First question:

Can I place an extension on a restriction type?

And if so, how? Via what method? Directly? Via reference? Both?

And if so for both, what other ways?

Second question:

targetNameSpace is to set a name space for the xml element in my schema? yes or no then an explanation comment please.

a xmlns:xsi=“uri” is to set the prefix for the xsi namespace and a
xsi:noNamespaceSchemaLocation=“uri” is to set the location of my schema? yes or no, then a feedback comment please.

is the targetNameSapce needed… I find it non-necessary to do when it can(by what I’m reading) define top level element and complex type(another question is that by definning type level complex type, do that also mean that type level complex when use in a element that is nested in another element gain the namespace too?). I find it unnecessary to use targetNameSapce when it doesn’t cover all element being defined in the schema.

informational feedback please anyone!