I am new to XML transformations (XSLT).
I am trying to figure out a namespace issue I am facing and need some help. 

Details below:

XSLT file:
----------

```
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">
<xsl:output method="xml" indent="yes"/>
    <xsl:template match="/">
        <Address xmlns="http://gov.co.uk">
            <xsl:variable name="NameSpace">http://gov.co.uk/Test/1</xsl:variable>
            <xsl:element name="Name" namespace="{$NameSpace}">
              <ForeName>Rex</ForeName>
              <MiddleName>XYZ</MiddleName>
            </xsl:element>
            <xsl:element name="street" namespace="{$NameSpace}">
              <DoorNo>123</DoorNo>
            </xsl:element>
        </Address>
    </xsl:template>
</xsl:stylesheet>

```

---

OutPut XML:
-----------

```
<?xml version="1.0" encoding="utf-8"?>
<Address xmlns="http://gov.co.uk">
    <Name xmlns="http://gov.co.uk/Test/1">
        <ForeName xmlns="http://gov.co.uk">Rex</ForeName>
        <MiddleName xmlns="http://gov.co.uk">XYZ</MiddleName>
    </Name>
    <street xmlns="http://gov.co.uk/Test/1">
        <DoorNo xmlns="http://gov.co.uk">123</DoorNo>
    </street>
</Address>

```

As you can see, the namespace for the `ForeName` is xmlns="http://gov.co.uk" which is derived from the root node `Address`, but I need it to be derived from the closest parent node `Name`, i.e. xmlns="http://gov.co.uk/test/1".

I have some thing like this below 

```
<xsl:element name="ForeName" namespace="{$NameSpace}">REX</xsl:element>

```

but I am not convinced with this as I have some hundreds of elements in my XSLT file and I need to modify every element like above.

Is there any way we can force the child elements namespace to derive from its parent node ?