@@ -49,6 +49,13 @@ def encode_for_export(string_to_encode, max_chars, encoding="latin"):
4949 "Schema_del_file_xml_FatturaPA_v1.2.2.xsd" ,
5050)
5151
52+ _fpa_simple_schema_file = get_module_resource (
53+ "l10n_it_account" ,
54+ "tools" ,
55+ "xsd" ,
56+ "Schema_VFSM10.xsd" ,
57+ )
58+
5259fpa_schema = xmlschema .XMLSchema (
5360 _fpa_schema_file ,
5461 locations = {"http://www.w3.org/2000/09/xmldsig#" : _old_xsd_specs },
@@ -57,31 +64,45 @@ def encode_for_export(string_to_encode, max_chars, encoding="latin"):
5764 loglevel = 20 ,
5865)
5966
67+ fpa_simple_schema = xmlschema .XMLSchema (
68+ _fpa_simple_schema_file ,
69+ locations = {"http://www.w3.org/2000/09/xmldsig#" : _old_xsd_specs },
70+ validation = "lax" ,
71+ allow = "local" ,
72+ loglevel = 20 ,
73+ )
74+
75+
76+ # fix <xs:import namespace="http://www.w3.org/2000/09/xmldsig#"
77+ # schemaLocation="http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd" /> # noqa: B950
78+ class _VeryOldXSDSpecResolverTYVMSdI (etree .Resolver ):
79+ def resolve (self , system_url , public_id , context ):
80+ if (
81+ system_url
82+ == "http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd" # noqa: B950
83+ ):
84+ _logger .info (
85+ "mapping URL for %r to local file %r" ,
86+ system_url ,
87+ _old_xsd_specs ,
88+ )
89+ return self .resolve_filename (self ._old_xsd_specs , context )
90+ else :
91+ return super ().resolve (system_url , public_id , context )
6092
61- def fpa_schema_etree ():
62- # fix <xs:import namespace="http://www.w3.org/2000/09/xmldsig#"
63- # schemaLocation="http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd" /> # noqa: B950
64-
65- class VeryOldXSDSpecResolverTYVMSdI (etree .Resolver ):
66- def resolve (self , system_url , public_id , context ):
67- if (
68- system_url
69- == "http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd" # noqa: B950
70- ):
71- _logger .info (
72- "mapping URL for %r to local file %r" ,
73- system_url ,
74- _old_xsd_specs ,
75- )
76- return self .resolve_filename (self ._old_xsd_specs , context )
77- else :
78- return super ().resolve (system_url , public_id , context )
7993
94+ def fpa_schema_etree ():
8095 parser = etree .XMLParser ()
81- parser .resolvers .add (VeryOldXSDSpecResolverTYVMSdI ())
96+ parser .resolvers .add (_VeryOldXSDSpecResolverTYVMSdI ())
8297 return etree .parse (_fpa_schema_file , parser )
8398
8499
100+ def fpa_simple_schema_etree ():
101+ parser = etree .XMLParser ()
102+ parser .resolvers .add (_VeryOldXSDSpecResolverTYVMSdI ())
103+ return etree .parse (_fpa_simple_schema_file , parser )
104+
105+
85106# Funzione per leggere i possibili valori dei tipi enumeration
86107def fpa_schema_get_enum (type_name ):
87108 enum = fpa_schema .types [type_name ].get_facet (xmlschema .names .XSD_ENUMERATION )
0 commit comments