w3c.compile-schema

function

Library: XML schema (OMXMLSCHEMA)
Import : omxmlschema.xmd

Returns: compiled schema


Declaration
export xml-schema-type function
   compile-schema           from value     string source              schema-input optional
                              at value     string                     schema-uri   optional
                             via value     entity-resolver            resolver     optional
                            into value     xml-schema-type            collection   optional
    


Purpose

Use compile-schema to compile a W3C XML schema as specified in W3C XML Schema specification, so that you may validate XML input against it.

If the schema is invalid and cannot be compiled, compile-schema throws the compile-error exception.

You can supply the schema XML document to compile directly in the schema-input argument, or alternatively provide its location using the schema-uri argument. If the root document references other W3C schema documents using the import or include constructs, compile-schema will try to resolve and load them using the resolver argument.

You can also compile multiple schema documents for different XML namespaces and bundle them using the collection argument. This can be useful if you need to validate an XML document whose namespace and schema is not known in advance. If the document explicitly specifies the schema using the xsi:schemaLocation or xsi:noNamespaceSchemaLocation attribute, you can use w3c.empty-schema instead.

Example

In this example we compile a schema in file example-schema.xsd and validate XML input against it, reporting any errors along the way:

  import "omxmlschema.xmd" prefixed by w3c.
  
  process
     local w3c.xml-schema-type example-schema
  
     set example-schema to w3c.compile-schema at "example-schema.xsd"
  
     do xml-parse scan file "example-input.xml"
        do markup-parse w3c.validated #content against example-schema
           output "%c"
        done
     done
  
  element #implied
     output "%c"
            

Other Library Functions