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

UBL发票XML中CustomizationID取值及位置错误排查

UBL发票XML校验错误:CustomizationID元素位置问题

我依据UBL-Invoice-2.1.xsd和EN16931校验规则生成发票UBL XML文件,在欧盟ITB平台校验时遇到问题。按照规则要求加入了CustomizationID元素,值为urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0,但校验返回错误:

cvc-complex-type.2.4.a: Invalid content was found starting with element '{urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2}:CustomizationID}'. One of '{urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2}:IssueTime, {urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2}:DueDate, ..., {urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2}:AccountingSupplierParty}' is expected.

错误原因

这个错误和CustomizationID的取值无关,核心问题是元素的位置不符合UBL 2.1 XSD的结构约束。UBL-Invoice-2.1.xsd对Invoice根元素下的子元素顺序有严格要求:CustomizationID必须作为Invoice的第一个子元素出现,在IssueTime、DueDate、AccountingSupplierParty等所有后续元素之前。你当前将CustomizationID放在了错误的位置(比如这些元素之后),导致XSD结构校验失败。

解决方法

  1. 调整元素位置:将CustomizationID元素移动到Invoice根元素的最开头,确保它是第一个子元素,在IssueTime、DueDate等所有其他元素之前
  2. 确认命名空间正确:CustomizationID的命名空间必须是urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2,与XSD定义一致(通常用前缀cbc:指代该命名空间)
  3. 参考正确结构示例:
<Invoice xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"
         xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2">
  <cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0</cbc:CustomizationID>
  <cbc:IssueTime>2024-05-20T14:30:00Z</cbc:IssueTime>
  <cbc:DueDate>2024-06-19</cbc:DueDate>
  <cac:AccountingSupplierParty>
    <!-- 供应商信息内容 -->
  </cac:AccountingSupplierParty>
  <!-- 其他发票元素 -->
</Invoice>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 20:22:38