import sys import os import xmlschema # Funkce pro kontrolu, zda soubor existuje def check_file_exists(file_path): if not os.path.isfile(file_path): print(f"Chyba: Soubor '{file_path}' nebyl nalezen.") sys.exit(1) # Kontrola, zda byly předány dva parametry (název XSD a XML souboru) if len(sys.argv) != 3: print(f"Použití: python {sys.argv[0]} ") sys.exit(1) # Získání cest k XSD a XML souborům xsd_file = sys.argv[1] xml_file = sys.argv[2] # Kontrola, zda soubory existují check_file_exists(xsd_file) check_file_exists(xml_file) try: # Načtení XSD schématu ze souboru xsd_schema = xmlschema.XMLSchema11(xsd_file) # Validace XML souboru proti XSD if xsd_schema.is_valid(xml_file): print(f"Soubor {xml_file} je validní podle {xsd_file}.") else: print(f"Soubor {xml_file} NENÍ validní podle {xsd_file}.") # Zobrazení chyb validace for error in xsd_schema.iter_errors(xml_file): # Zkrácení výpisu chyby - typ chyby, pozice a zpráva print(f"Chyba: {error.reason}") print(f"Zpráva: {str(error).splitlines()[0]}\n") # Zkrácený výpis první řádky chyby except xmlschema.XMLSchemaException as e: print(f"Chyba při validaci schématu: {e}")