In creating demos, I always need to make sure that we have a realistic scenario. With regards to that, we try to be particular about the namespace that we choose for the varoius WSDL elements. This post documents what guidance I have read and recieved.

In an old article by Scott Seely he mentions, "Each component will have its own targetNamespace with a common root URI".

When I asked Aaron Skonnard what this root should be he gave the following guidance, "Typically it is a heuristic". He then mentioned that several companies use the following convention in asmx:

* http://domain/company/division/name_that_describes_what_the_namespace_defines.

W3C typically also puts in the Year. Some companies also use the namespace for versioning.

So thinking thruogh this, I came up with the following example:

* http://msdn.microsoft.com/visualstudio/samples/2005/09/24

An example of the service namespace might then be:

* http://msdn.microsoft.com/visualstudio/samples/2005/09/24/WebService

When selecting the binding namespace we might want to add the protocol that is supported by the binding. This is particularly useful if multiple bindings with multiple protocols are supported.

* http://msdn.microsoft.com/visualstudio/samples/2005/09/24/WebService/soap12

Schema types should be in a different namespace as the types can be shared. An example:

* http://msdn.microsoft.com/visualstudio/samples/2005/09/24/types