问题
Long story short, I'm changing the web-server container for an application. The old container would send back SOAP responses as follows:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Body>
... other elements ...
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
In the new server, I'm able to send back the following responses:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
... other elements ...
</soap:Body>
</soap:Envelope>
As you can see, the only thing different is the namespace prefix used (SOAP-ENV versus soap). I do not have transparency on all the clients who could be dependent on these web-services, but are the two XML responses identical? Could any client break as a result of seeing (simply) a different namespace prefix for the root Envelope and Body tags, even if they ultimately point to the same URI?
回答1:
No, namespace prefix names are insignificant apart from their bindings to namespace values.
It is possible that some poorly-written software will have an improper dependency on an XML namespace prefix. However, per well-adopted W3C standards, namespace prefix names only derive meaning through their binding to a namespace value. They are insignificant apart from that binding.
No conformant XML processor will depend upon the specific namespace prefix name itself.
来源:https://stackoverflow.com/questions/54791081/does-having-a-different-name-for-the-xml-namespace-prefix-matter