【问题标题】:How do I remove the xsi prefix in SOAP::Lite generated XML?如何删除 SOAP::Lite 生成的 XML 中的 xsi 前缀?
【发布时间】:2016-02-26 17:41:22
【问题描述】:

我正在从 Soap::Lite 发送请求。我正在使用 SOAP::Data 创建 XML。在 XML 中的每个标记上都添加了 xsi:type="xsd:string"。如何从所有标签中删除它?

我正在创建这样的 xml:

SOAP::Data->type('string')->name('Desc')->value( 'Test'),

【问题讨论】:

  • 您要仅删除前缀xsi: 还是整个xsi:type 属性?
  • 我想删除整个 xsi:type attr
  • 你为什么要这么做?
  • 客户端在请求调用中不接受它
  • 如果从链中删除->type('string') 会怎样?您可能还需要在 SOAP::Lite 对象上调用 autotype(0)

标签: xml perl soap


【解决方案1】:

->type('string') 为元素添加了显式类型,因此您需要先将其删除。但即使没有 SOAP::Lite 默认为“自动键入”,它会自动添加 xsi:type 属性,您也需要通过在 SOAP::Lite 对象上调用 ->autotype(0) 来抑制该行为。

SOAP::Lite 库具有悠久的历史,可以追溯到“rpc/encoded”是 SOAP 服务的主要类型。 “编码”样式需要 xsi:type 属性,但“文档/文字”样式(现在更流行)不需要。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-12
    • 2021-07-10
    • 2022-01-06
    • 2016-02-02
    相关资源
    最近更新 更多