mirror of
https://github.com/GSA/notifications-api.git
synced 2025-12-22 00:11:16 -05:00
20 lines
456 B
Python
20 lines
456 B
Python
|
|
from lxml import etree
|
||
|
|
from pathlib import Path
|
||
|
|
|
||
|
|
|
||
|
|
def validate_xml(document, schema_file_name):
|
||
|
|
|
||
|
|
path = Path(__file__).resolve().parent / schema_file_name
|
||
|
|
contents = path.read_text()
|
||
|
|
|
||
|
|
schema_root = etree.XML(contents.encode('utf-8'))
|
||
|
|
schema = etree.XMLSchema(schema_root)
|
||
|
|
parser = etree.XMLParser(schema=schema)
|
||
|
|
|
||
|
|
try:
|
||
|
|
etree.fromstring(document, parser)
|
||
|
|
except etree.XMLSyntaxError:
|
||
|
|
return False
|
||
|
|
|
||
|
|
return True
|