xml中名称空间的替代方案

xml中名称空间的替代方案,xml,xml-parsing,xml-serialization,xsd,Xml,Xml Parsing,Xml Serialization,Xsd,我有一个web服务,它为我们的许多客户端提供xml提要,我们的客户端在不同类型的设备中使用xml。在XML中,我们也有一些名称空间。但是,我们的一个客户机无法检测名称空间,因为名称空间末端有一些限制。但我也不能为他提供新的xml。 请给我一些建议,这样我就可以在不使用名称空间的情况下满足名称空间的需要,这样我就可以将我的xml更改为可供所有名称空间使用 提前感谢。一种可能是使用样式表(/xsltproc)自动将包含名称空间的xml格式转换为另一种格式,去掉名称空间。本例中的样式表非常简单(只有几

我有一个web服务,它为我们的许多客户端提供xml提要,我们的客户端在不同类型的设备中使用xml。在XML中,我们也有一些名称空间。但是,我们的一个客户机无法检测名称空间,因为名称空间末端有一些限制。但我也不能为他提供新的xml。 请给我一些建议,这样我就可以在不使用名称空间的情况下满足名称空间的需要,这样我就可以将我的xml更改为可供所有名称空间使用


提前感谢。

一种可能是使用样式表(/
xsltproc
)自动将包含名称空间的xml格式转换为另一种格式,去掉名称空间。本例中的样式表非常简单(只有几行)并且易于维护。生成的文档只是旧文档的一个副本,没有名称空间,因此基本上保持不变。

一种可能性是使用样式表(/
xsltproc
)自动将包含名称空间的xml格式转换为另一种格式,去掉名称空间。本例中的样式表非常简单(只有几行)并且易于维护。结果文档只是旧文档的一个副本,没有名称空间,因此它基本上保持不变

But one of our clients can't detect namespaces because of some limitation at their end. 
在努力解决这个问题之前,人们需要更多地了解它的局限性。由于支持名称空间的XML解析器非常普遍,因此它们所处的环境一定非常奇怪,而且处理名称空间的能力可能不是它的唯一限制


在努力解决这个问题之前,人们需要更多地了解它的局限性。由于支持名称空间的XML解析器非常普遍,因此它们所处的环境一定非常奇怪,也许处理名称空间的能力不是它唯一的限制?

我只是应用了一个字符串替换机制,用
替换所有的
符号,现在我可以在客户端解析它了。

我只是应用了一个字符串替换机制,用
替换所有的
符号<代码> > <代码>,现在我可以在客户端解析它了。

类似于C程序员如何用函数名前缀来模拟名字,如<代码> httpjgGET()/<代码>和后缀()/vc>与名称空间中的C++方式一样,如<代码> http::GETE()//>代码>和<代码> http::())/代码>您可以使用
等元素输出XML,而不是
.Thnx@benhoyt。我只是应用了一个字符串替换机制来代替所有的<代码>:<代码>符号> <代码> <代码>,现在我可以在客户端解析它。类似于C程序员如何用函数名前缀来模拟名称空间,如<代码> httpjGET()/<代码>和后缀()/VC++ >与名称空间中的C++方式一样,在<代码> http::()
http::post()
,您可以用
之类的元素输出XML,而不是
。Thnx@benhoyt。我只是应用了一个字符串替换机制,将所有
符号替换为
我现在可以在客户端解析它了。有趣的是,您正在用
替换
的字符串吗_在整个XML文档中?这当然是非常危险的,因为属性和文本内容中可能有冒号。也许有某种方法可以只替换标记名中的冒号。如果您完全控制源XML输出,简单的字符串替换在您的情况下可能会起作用。也就是说,这种简单的方法可以ld最终被证明是脆弱的。有趣的是——您是否在整个XML文档中用
\uuu
替换
的字符串?当然,这是非常危险的,因为属性和文本内容中很可能有冒号。也许有某种方法可以只替换标记名中的字符串。如果您完全控制源XML输出但是,在你的情况下,简单的字符串替换可能对你有用。也就是说,这种简单化的方法最终可能会被证明是脆弱的。我只是想指出,可能存在不止一个名称空间。我认为他在寻找一种确定性的破解方法,而不是永久性的解决方案,但你是绝对正确的。名称空间是XML的核心,making可能存在其他标记的漏洞,这也意味着它们可以并行使用。我只是想指出,可能存在不止一个名称空间。我认为他在寻找一种确定性的破解方法,而不是永久性的解决方案,但你完全正确。名称空间是XML的核心,使其他标记的漏洞成为可能ble,这也意味着它们是并行使用的。