37 lines
1.0 KiB
Python
37 lines
1.0 KiB
Python
#Prérequis : Install
|
|
|
|
from lxml import etree
|
|
import sys
|
|
|
|
# Emplacement du fichier CSV et XML
|
|
xsdfile = "validation.xsd"
|
|
xmlfile = "file.xml"
|
|
|
|
|
|
def valider_xml(xml_path, xsd_path):
|
|
try:
|
|
# Charger le schéma XSD
|
|
with open(xsd_path, 'rb') as schema_file:
|
|
schema_root = etree.XML(schema_file.read())
|
|
schema = etree.XMLSchema(schema_root)
|
|
|
|
# Parser avec prise en compte des namespaces
|
|
parser = etree.XMLParser(ns_clean=True)
|
|
|
|
# Charger le fichier XML en mode binaire avec le parser
|
|
with open(xml_path, 'rb') as xml_file:
|
|
xml_doc = etree.parse(xml_file, parser)
|
|
|
|
# Valider le fichier XML
|
|
schema.assertValid(xml_doc)
|
|
print("Le fichier XML est valide.")
|
|
|
|
except etree.XMLSchemaError as e:
|
|
print("Erreur de schéma XSD:", e)
|
|
except etree.DocumentInvalid as e:
|
|
print("Le fichier XML est invalide:", e)
|
|
except Exception as e:
|
|
print("Erreur lors de la validation du fichier XML:", e)
|
|
|
|
valider_xml(xmlfile, xsdfile)
|