1.) Your own elements should be in your own namespace. e.g. the stock
HelloWorld example is in the http://tempuri.org namespace.
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<HelloWorldResponse xmlns="http://tempuri.org/">
<HelloWorldResult>Hello World</HelloWorldResult>
</HelloWorldResponse>
</soap:Body>
</soap:Envelope>
2.) Yes, absolutely
3.) Yup, that's exactly what namespaces are for. Each example node
below are different nodes even though they have the same name. The idea
is to stop us developers treading all over each others toes when our
xml documents meet
<container xmlns:ns1="some-namespace" xmlns:ns2="other-namespace"
xmlns="default-namespace">
<ns1:example>one</ns1:example>
<ns2:example>one</ns2:example>
<example>one</example>
</container>
Note that the above document is semantically identical to the one below
because the prefix (xx

doesn't mean anything, it's just short hand
for the namespace itself.
<foo:container xmlns:nonsense="some-namespace"
xmlns:hello="other-namespace" xmlns:foo="default-namespace">
<nonsense:example>one</nonsense:example>
<hello:example>one</hello:example>
<foo:example>one</foo:example>
</foo:container>
Josh
http://www.thejoyofcode.com/