in xml the namespace is the url. the prefix is an alias (which is random, and has no value). the xml will define the alias:
in your first sample:
<COM_1 xmlns="urn:biztalk-org:biztalk:biztalk_1">
<body>
<doc:Z_COATING_ORDER xmlns:doc="urn:sap-com:doc:sap:rfc:functions" xmlns="">
<IM_BACK>#_DATA_#</IM_BACK>
</doc:Z_COATING_ORDER >
</body>
</COM_1>
- xmlns="urn:biztalk-org:biztalk:biztalk_1" - defines namespace with no prefix. so it the namespace for the node
- xmlns:doc="urn:sap-com:doc:sap:rfc:functions" - defines doc as prefix to the namespace. so any node that is prefixed as "doc:" is using this namespace
with prefixes specified and not implied its the same as (biz and doc are arbitrary, any value can be used):
<biz:COM_1 xmlns:biz="urn:biztalk-org:biztalk:biztalk_1">
<biz:body>
<doc:Z_COATING_ORDER xmlns:doc="urn:sap-com:doc:sap:rfc:functions" xmlns="">
<doc:IM_BACK>#_DATA_#</doc:IM_BACK>
</doc:Z_COATING_ORDER >
</biz:body>
</biz:COM_1>
with your code:
[XmlRoot("doc", Namespace = "urn:biztalk-org:biztalk:biztalk_1")]
public class COM1
you define "doc" as the name of the node, and "urn:biztalk-org:biztalk:biztalk_1" as its namespace name. the serializer makes up the "q1" as the alias.
again the following is semantically the same as specifying the alias:
<doc xmlns:"urn:biztalk-org:biztalk:biztalk_1">
<body>
<Z_COATING_ORDER>
<IM_BACK>Rü-TEST</q1:IM_BACK>
<Z_COATING_ORDER>
</body>
</doc>
note: to handle multiple namespaces, the xml serializer aways uses the prefix mode and doesn't count on inhertance. also when paring, you only specify the valid namespace, not the prefix alias