slam/php-validatore-fattura-elettronica

v1.2.1-patch20231221.1 2023-12-21 15:34 UTC

README

Latest Stable Version Downloads Integrate Code Coverage

警告:此包仅适用于意大利标准!

安装

composer require slam/php-validatore-fattura-elettronica

使用

use SlamFatturaElettronica\Validator;

$feValidator = new Validator();
$feValidator->assertValidXml('<xml ...>');

// In caso di struttura XML errata, viene lanciata una
//      SlamFatturaElettronica\Exception\InvalidXmlStructureException
// In caso di XML valido ma non aderente all'XSD, viene lanciata una
//      SlamFatturaElettronica\Exception\InvalidXsdStructureComplianceException

列出所有异常

use SlamFatturaElettronica\Validator;

$feValidator = new Validator();
$feValidator->getAllExceptions('<xml ...>');

// Restituisce un array contentente le eccezioni rilevati. Se non ci sono errori l'array sarà vuoto:

通知

use SlamFatturaElettronica\Validator;

$feValidator = new Validator();
$feValidator->assertValidXml('<xml ...>', Validator::XSD_MESSAGGI_LATEST);

参考

目前有两个参考网站

  1. https://www.agenziaentrate.gov.it/wps/content/Nsilib/Nsi/Schede/Comunicazioni/Fatture+e+corrispettivi/Fatture+e+corrispettivi+ST/ST+invio+di+fatturazione+elettronica/?page=schedecomunicazioni
  2. http://www.fatturapa.gov.it/export/fatturazione/it/normativa/f-2.htm

这个库使用的XSD来自第一个网站,即www.agenziaentrate.gov.it,尽管版本号已经明确,但它似乎是最新的(例如,在文档类型中,Autofattura有所不同)。

版本 1.2.1 的电子邮件验证

版本 1.2.1 引入了一个用于电子邮件验证的正则表达式,但它是构建不当的。鉴于这个库的功能更广泛,电子邮件的正则表达式已被更宽松的一个覆盖。电子邮件验证由用户负责。

diff --git a/xsd/Schema_VFPR121a.xsd b/xsd/Schema_VFPR121a.xsd
index e999199..fa5696b 100644
--- a/xsd/Schema_VFPR121a.xsd
+++ b/xsd/Schema_VFPR121a.xsd
@@ -1364,8 +1364,9 @@
   </xs:simpleType>
   <xs:simpleType name="EmailType">
     <xs:restriction base="xs:token">
+      <xs:minLength value="7" />
       <xs:maxLength value="256" />
-      <xs:pattern value="([!#-'*+/-9=?A-Z^-~-]+(\.[!#-'*+/-9=?A-Z^-~-]+)*|&quot;(\[\]!#-[^-~ \t]|(\\[\t -~]))+&quot;)@([!#-'*+/-9=?A-Z^-~-]+(\.[!#-'*+/-9=?A-Z^-~-]+)*|\[[\t -Z^-~]*\])" />
+      <xs:pattern value=".+@.+[.]+.+" />
     </xs:restriction>
   </xs:simpleType>
   <xs:simpleType name="EmailContattiType">