【发布时间】:2015-04-22 18:44:42
【问题描述】:
我们需要向客户端发送特定的命名空间别名,并且必须使用 OSB。代理服务更改了我们精心设计的公开 WSDL 的名称空间别名。我找不到阻止 OSB 这样做的选项。
例如
对于命名空间http://schemas.xmlsoap.org/wsdl/,原来的wsdl start有
<soap:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/"/>
但是 OSB 像这样公开 WSDL
<WL5G3N0:definitions xmlns:WL5G3N0="http://schemas.xmlsoap.org/wsdl/"/>
原始别名“soap”被 OSB 自动更改为“WL5G3N0”并导致问题。许多引用的 XSD 文件也发生了相同类型的重命名。
我们如何防止在 OSB 中重命名别名?
【问题讨论】:
-
前缀在 XML 中没有任何意义,它们不会改变元素名称的语义,只要命名空间 URI 相同。为什么这会导致问题?如果是这样,您可能应该更改您的 XML 应用程序。
-
这个要求不是为了确认WSDL/SOAP/WSDL/XSD标准。此要求来自客户。我的问题是“可以关闭此功能吗?”和“如何关闭它(如果可能的话)”
-
我同意@MathiasMüller。听起来您的客户端所做的不是解析 XML,而是对某些内容进行字符串比较,当架构的前缀发生更改时(根据 XML 标准允许),他们无法处理。
-
我并不是说 OSB 的行为有问题。我只是想弄清楚它是否可以关闭。可以关闭吗?还是 OSB 不允许我们关闭它?