You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MapForce生成SWIFT ISO20022 XML:移除子元素冗余命名空间求助

解决ISO20022 XML生成中AppHdr子元素多余命名空间的问题

问题原因

<Fr>元素带上根命名空间urn:swift:saa:xsd:saa.2.0,是因为AppHdr的子元素被错误关联到了根Schema的类型,而非ISO20022头规范对应的命名空间类型,XML生成时为明确元素归属,自动添加了多余的命名空间声明。

方法一:通过MapForce配置修复

  • 直接导入官方的head.001.001.01.xsd(ISO20022应用头标准Schema),不要手动给AppHdr元素添加命名空间。
  • 在映射中,将AppHdr节点关联到该Schema的根AppHdr元素,确保其所有子元素(如<Fr>)都使用该Schema中定义的类型,而非根Schema的类型。
  • 检查数据源映射:如果<Fr>是从其他数据源映射过来的,要确保映射目标是ISO20022头Schema里的<Fr>节点,而非根命名空间下的同名元素。

方法二:修改XML Schema修复

如果需要自定义Schema,按以下步骤调整:

  1. 在根Schema(DataPDU所在的xsd)的<xs:schema>标签内导入ISO20022头的Schema:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           targetNamespace="urn:swift:saa:xsd:saa.2.0"
           xmlns="urn:swift:saa:xsd:saa.2.0"
           elementFormDefault="qualified">
  <!-- 导入ISO20022应用头Schema -->
  <xs:import namespace="urn:iso:std:iso:20022:tech:xsd:head.001.001.01"
             schemaLocation="head.001.001.01.xsd"/>
  
  <!-- 定义DataPDU、Header、Body等结构 -->
  <xs:element name="DataPDU">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="Header" type="xs:anyType"/>
        <xs:element name="Body">
          <xs:complexType>
            <!-- 使用导入的命名空间定义AppHdr元素 -->
            <xs:element name="AppHdr" type="head:AppHdr" xmlns:head="urn:iso:std:iso:20022:tech:xsd:head.001.001.01"/>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>
  1. 确保head.001.001.01.xsd文件路径正确,这样AppHdr的所有子元素会自动继承它的命名空间,不会带上根命名空间的声明。

内容的提问来源于stack exchange,提问作者Sam CMS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 21:23:29