XML数电票校验
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_0dc4c020/validate-einvoice-xml。
技能介绍
解决什么问题
在处理发票解析或数据迁移时,系统经常需要区分全面数字化电子发票(数电票)与传统电子发票。两者虽然都是 XML 格式,但结构规范差异明显。直接混用解析逻辑会导致字段缺失或校验失败。该技能用于验证 XML 文件是否符合数电票的格式规范,避免在数据处理链路上出现格式混淆。
技能如何工作
该技能通过检查数电票 XML 的核心结构与特征字段来进行验证:
- 根元素识别:确认根节点为
EInvoice(传统发票通常为Invoice)。 - 头部信息 (Header):检查
EIid(20位唯一标识)、EInvoiceTag、Version等必需子元素。 - 数据区 (EInvoiceData):验证
SellerInformation(销售方)、BuyerInformation(购买方)、BasicInformation(基本金额等)以及IssuItemInformation(开票项目)是否存在。 - 税务与签名:校验
TaxSupervisionInfo中的 20位InvoiceNumber,以及TaxBureauSignature中的数字签名。
快速判断逻辑:如果只需粗略筛查,该技能会优先检查三个关键特征——根元素是 EInvoice、发票号码是 20位数字(区别于传统发票的 8位或12位)、且包含 TaxBureauSignature 签名节点。
适用边界与注意点
- 适用范围:仅针对中国数电票的 XML 结构进行格式校验,不校验业务逻辑(如金额与税率是否匹配)。
- 格式差异:该技能明确区分了数电票与传统电子发票的
根元素、发票号码长度和版本标识差异。 - 输出结果:验证完成后,会生成结构化的报告,指出缺失的节点或不符合规范的字段,方便开发人员快速定位解析问题。
使用场景
- 接入外部发票 XML 时,先判断是否为数电票,再选择 EInvoice 解析分支。
- 清洗开票系统导出文件前,批量检查根元素、Header 和 20 位发票号码是否齐全。
- 排查解析失败时,核对 SellerInformation、BuyerInformation 等必需节点是否存在。
适合人员
- 需要解析中国数电票 XML 的财务系统工程师,典型诉求是区分 EInvoice 与传统 Invoice 结构。
- 负责发票数据接入的数据工程师,典型诉求是先校验 Header、EInvoiceData 和税务字段再入库。
- 维护开票工具链的后端开发者,典型诉求是快速定位缺少 TaxBureauSignature 或 20 位发票号码的文件。