17370845950

FpML(金融产品标记语言)XML标准是什么
FpML是专为OTC衍生品设计的强语义XML标准,强制校验币种、LEI、日期规则等字段,要求命名空间、版本匹配及深度嵌套解析,否则导致估值偏差、监管拒收或结算失败。

FpML 不是通用 XML 格式,而是一套专为场外衍生品(OTC derivatives)设计的、带强语义约束的行业级 XML 标准。

它解决的核心问题是:当两家银行确认一笔利率互换或信用违约互换时,如何让双方系统“说同一种话”,避免因字段理解偏差导致估值不一致、监管报送被拒、甚至净额结算失败。


为什么不能直接用普通 XML 写交易数据?

你可以手写一个 100000000,但 FpML 要求你明确:
– 这个名义本金是否含币种和计价日?
– 它属于哪个 ?该 party 是否绑定了 LEI(法人识别编码)?
– 它关联的是哪个 ?是否启用 “Modified Following” 日历调整规则?

这些不是可选项——FpML 的 XSD Schema(如 fpml-main-5-11.xsd)会强制校验:
businessDayConvention 只能取枚举值("Following""ModifiedFollowing" 等)
fpml:PositiveDecimal 类型字段不允许负数或空字符串

中的 creationTimestamp 必须带时区(如 2025-12-26T05:23:00+08:00


常见解析失败的三个典型原因

  • 没绑定命名空间:根元素漏了 xmlns="http://www.fpml.org/FpML-5/confirmation",导致 XPath 查询全失效
  • 版本错配:用 FpML 5.10 的 XSD 去校验 5.14 报文, 等新元素直接报 Validation failed for xml instance
  • 忽略 :很多开发认为日期就是字符串,但 FpML 要求把 “起息日是否顺延” 拆成独立节点,否则风控引擎可能按自然日计息,造成头寸偏差

在 SQL Server 里导入 FpML 时最易丢的数据

FpML 是深度嵌套结构,直接用 OPENROWSET + .nodes() 解析时,以下字段常被跳过:

  • @currency 属性:比如 100000000 —— 若只取文本值,就丢了币种信息
  • 这类 ID 引用:需先提取所有 ,再做 JOIN,否则对手方名称永远是 NULL
  • 下的 分属不同层级,用单层 XPath 易漏掉 spread

  USD-LIBOR-BBA
  0.005
  
    3
    M
  

FpML 的复杂性不在语法,而在它把法律条款(如 ISDA 第 5(a)(vi) 条“违约事件”)、会计处理(如估值层级 Level 2/3)、监管要求(如 CFTC 的 Real-Time Reporting 字段)全部压缩进 XML 元素与属性的组合里。
少读一个 或误判一个 xsi:nil="true",都可能让整笔互换在监管报送中被标记为“不完整”。