from lxml import etree as E class DenyExternal(E.Resolver): def resolve(self, url, public_id, context): raise ValueError("External resources are disabled") def parse(text): if "yes" root = parse(source) schema_source = "" contract = E.XMLSchema(parse(schema_source)) print(contract.validate(root))