RELAX NG is a schema language for XML, an alternative to using DTDs. It is designed to be simple and easy to learn, and has both an XML syntax and a non-XML syntax. It supports datatyping and XML namespaces, and it integrates attributes into content models.
RELAX NG is specified by ISO/IEC 19757-2:2003.
Use the OMRELAXNG library when you want to validate input against a RELAX NG schema.
This program validates input against a RELAX NG schema, reports validation errors and keeps going:
import "omrelaxng.xmd" prefixed by relaxng. 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 relaxng.relaxng-schema-type example-schema set example-schema to relaxng.compile-schema file "example-schema.rng" do xml-parse scan file "example-input.xml" using output as relaxng.validator against example-schema report-errors-to report-errors (#error) output #content done