The OMXMLSCHEMA library can be used to validate a markup event stream against an XML schema instance conforming to the W3C specification. If the schema is known in advance, it can be compiled using the function compile-schema. Otherwise, if the schema is determined dynamically, use empty-schema.
Both methods provide a compiled instance of xml-schema-type
. Whichever way you obtain it, the
instance can then be used as an argument to the function w3c.validated
or w3c.validator
.
This program validates input against a schema, reports validation errors and keeps going:
import "omxmlschema.xmd" prefixed by w3c. define markup sink function report-errors (value string sink s) as using output as s do markup-parse #current-input output "%c" done process local w3c.xml-schema-type example-schema set example-schema to w3c.compile-schema from file "example-schema.xsd" do xml-parse scan file "example-input.xml" using output as w3c.validator against example-schema report-errors-to report-errors (#log) output #content done