1:- module(xsd, [ 2 xsd_validate/2, 3 xsd_validate/3 4 ]). 5 6:- use_module(library(xsd/validate)). 7:- use_module(library(xsd/flatten)). 8 9:- dynamic xml_loaded/2. 10 11xsd_validate(Xsd, Xml) :- 12 xsd_validate(Xsd, Xml, []). 13 14xsd_validate(Xsd, Xml, Options) :- 15 ensure_flattened(Xsd, Xsd_), 16 ensure_flattened(Xml, Xml_), 17 validate:validate(Xsd_, Xml_, Options). 18 19ensure_flattened(A, Id) :- 20 xml_loaded(A, Id). 21 22ensure_flattened(A, Id) :- 23 \+ xml_loaded(A, _), 24 flatten:xml_flatten(A, Id), 25 assert(xml_loaded(A, Id))