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

使用ZUGFeRD-csharp生成的XRechnung XML遇Schematron验证失败求助

问题:XRechnung XML Schematron验证失败

我使用C#的ZUGFeRD-csharp(s2industries)库将德国发票PDF转换为ZUGFeRD XRechnung格式,配置参数为:
ZUGFeRDVersion.Version21, s2industries.ZUGFeRD.Profile.XRechnung
XML已成功生成,但通过XRechnung Validator验证时抛出异常:
Schematron validation of the submitted XRechnung failed

附上生成的XML文件,恳请协助排查需要补充或修正的内容:

<?xml version="1.0" encoding="utf-8"?>
<rsm:CrossIndustryInvoice xmlns:a="urn:un:unece:uncefact:data:standard:QualifiedDataType:100" xmlns:rsm="urn:un:unece:uncefact:data:standard:CrossIndustryInvoice:100" xmlns:qdt="urn:un:unece:uncefact:data:standard:QualifiedDataType:100" xmlns:ram="urn:un:unece:uncefact:data:standard:ReusableAggregateBusinessInformationEntity:100" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:udt="urn:un:unece:uncefact:data:standard:UnqualifiedDataType:100">
  <rsm:ExchangedDocumentContext>
    <ram:GuidelineSpecifiedDocumentContextParameter>
      <ram:ID>urn:cen.eu:en16931:2017#compliant#urn:xoev-de:kosit:standard:xrechnung_2.0</ram:ID>
    </ram:GuidelineSpecifiedDocumentContextParameter>
  </rsm:ExchangedDocumentContext>
  <rsm:ExchangedDocument>
    <ram:ID>1111111</ram:ID>
    <ram:TypeCode>111</ram:TypeCode>
    <ram:IssueDateTime>
      <udt:DateTimeString format="102">20221219</udt:DateTimeString>
    </ram:IssueDateTime>
    <ram:IncludedNote>
      <ram:Content>dummy content
</ram:Content>
      <ram:SubjectCode>REG</ram:SubjectCode>
    </ram:IncludedNote>
  </rsm:ExchangedDocument>
  <rsm:SupplyChainTradeTransaction>
    <ram:IncludedSupplyChainTradeLineItem>
      <ram:AssociatedDocumentLineDocument>
        <ram:LineID>1</ram:LineID>
      </ram:AssociatedDocumentLineDocument>
      <ram:SpecifiedTradeProduct>
        <ram:Name> </ram:Name>
      </ram:SpecifiedTradeProduct>
      <ram:SpecifiedLineTradeAgreement>
        <ram:GrossPriceProductTradePrice>
          <ram:ChargeAmount>2840.00</ram:ChargeAmount>
        </ram:GrossPriceProductTradePrice>
        <ram:NetPriceProductTradePrice>
          <ram:ChargeAmount>2840.0000</ram:ChargeAmount>
        </ram:NetPriceProductTradePrice>
      </ram:SpecifiedLineTradeAgreement>
      <ram:SpecifiedLineTradeDelivery>
        <ram:BilledQuantity unitCode="H87">0.00</ram:BilledQuantity>
      </ram:SpecifiedLineTradeDelivery>
      <ram:SpecifiedLineTradeSettlement>
        <ram:ApplicableTradeTax>
          <ram:TypeCode>VAT</ram:TypeCode>
          <ram:ExemptionReason>Normalsatz</ram:ExemptionReason>
          <ram:CategoryCode>S</ram:CategoryCode>
          <ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
        </ram:ApplicableTradeTax>
        <ram:SpecifiedTradeSettlementLineMonetarySummation>
          <ram:LineTotalAmount>0.00</ram:LineTotalAmount>
        </ram:SpecifiedTradeSettlementLineMonetarySummation>
      </ram:SpecifiedLineTradeSettlement>
    </ram:IncludedSupplyChainTradeLineItem>
    <ram:ApplicableHeaderTradeAgreement>
      <ram:BuyerReference>992-03005-81</ram:BuyerReference>
      <ram:SellerTradeParty>
        <ram:Name>dummy name
</ram:Name>
        <ram:DefinedTradeContact>
          <ram:PersonName>dummy person
</ram:PersonName>
        </ram:DefinedTradeContact>
        <ram:PostalTradeAddress>
          <ram:PostcodeCode />
          <ram:LineOne />
          <ram:CityName />
          <ram:CountryID>DE</ram:CountryID>
        </ram:PostalTradeAddress>
      </ram:SellerTradeParty>
      <ram:BuyerTradeParty>
        <ram:Name>
dummy DLR

</ram:Name>
        <ram:PostalTradeAddress>
          <ram:PostcodeCode />
          <ram:LineOne />
          <ram:CityName />
          <ram:CountryID>DE</ram:CountryID>
        </ram:PostalTradeAddress>
      </ram:BuyerTradeParty>
    </ram:ApplicableHeaderTradeAgreement>
    <ram:ApplicableHeaderTradeDelivery>
      <ram:ActualDeliverySupplyChainEvent>
        <ram:OccurrenceDateTime>
          <udt:DateTimeString format="102">20221219</udt:DateTimeString>
        </ram:OccurrenceDateTime>
      </ram:ActualDeliverySupplyChainEvent>
    </ram:ApplicableHeaderTradeDelivery>
    <ram:ApplicableHeaderTradeSettlement>
      <ram:InvoiceCurrencyCode>EUR</ram:InvoiceCurrencyCode>
      <ram:SpecifiedTradeSettlementPaymentMeans>
        <ram:TypeCode>58</ram:TypeCode>
        <ram:Information>dummy info </ram:Information>
        <ram:PayeePartyCreditorFinancialAccount>
          <ram:IBANID>dummy banid</ram:IBANID>
        </ram:PayeePartyCreditorFinancialAccount>
        <ram:PayeeSpecifiedCreditorFinancialInstitution>
          <ram:BICID>dummy BIC</ram:BICID>
        </ram:PayeeSpecifiedCreditorFinancialInstitution>
      </ram:SpecifiedTradeSettlementPaymentMeans>
      <ram:ApplicableTradeTax>
        <ram:CalculatedAmount>544.54</ram:CalculatedAmount>
        <ram:TypeCode>VAT</ram:TypeCode>
        <ram:BasisAmount>2866.00</ram:BasisAmount>
        <ram:CategoryCode>S</ram:CategoryCode>
        <ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
      </ram:ApplicableTradeTax>
      <ram:SpecifiedTradePaymentTerms>
        <ram:Description>Terms of payment</ram:Description>
      </ram:SpecifiedTradePaymentTerms>
      <ram:SpecifiedTradeSettlementHeaderMonetarySummation>
        <ram:LineTotalAmount>2866.00</ram:LineTotalAmount>
        <ram:ChargeTotalAmount>0.00</ram:ChargeTotalAmount>
        <ram:AllowanceTotalAmount>0.00</ram:AllowanceTotalAmount>
        <ram:TaxBasisTotalAmount>2866.00</ram:TaxBasisTotalAmount>
        <ram:TaxTotalAmount currencyID="EUR">544.54</ram:TaxTotalAmount>
        <ram:GrandTotalAmount>3410.54</ram:GrandTotalAmount>
        <ram:TotalPrepaidAmount>0.00</ram:TotalPrepaidAmount>
        <ram:DuePayableAmount>3410.54</ram:DuePayableAmount>
      </ram:SpecifiedTradeSettlementHeaderMonetarySummation>
    </ram:ApplicableHeaderTradeSettlement>
  </rsm:SupplyChainTradeTransaction>
</rsm:CrossIndustryInvoice>

需要修正的内容

  • 商品名称为空:ram:SpecifiedTradeProduct/ram:Name仅含空格,XRechnung要求商品名称为必填项,需填写真实商品名称。
  • 行项目数量无效:ram:BilledQuantity值为0.00,行项目数量不能为0,需设置与金额匹配的真实数量(例如对应单价2840.00的数量1)。
  • 行项目金额逻辑矛盾:行项目的LineTotalAmount为0.00,但NetPriceProductTradePrice/ChargeAmount为2840.00,行项目总金额应等于单价×数量,需修正数值保持逻辑一致。
  • 合计金额不匹配:头部LineTotalAmount为2866.00,但唯一行项目的总金额为0.00,合计金额需等于所有行项目金额之和,需调整数值统一。
  • 地址信息缺失:买卖双方ram:PostalTradeAddress下的PostcodeCode、LineOne、CityName均为空,XRechnung要求完整地址信息,需补充邮编、街道、城市等必填字段。
  • 银行账号格式无效:ram:IBANID和ram:BICID为测试假数据,需替换为符合格式的真实银行账号信息。
  • 发票类型代码不符:ram:TypeCode为111,XRechnung标准中普通发票的类型代码通常为380,需根据业务场景修改为对应代码。
  • 文本字段冗余换行:部分文本字段(如ram:Name、ram:Content)包含多余换行,需清理为无冗余格式的文本内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 08:45:21