docs: public Schema createSchema(SAXSource source, PropertyMap properties) throws IOException, SAXException, IncorrectSchemaException {
      SchemaPatternBuilder spb = new SchemaPatternBuilder();
      SAXResolver resolver = ResolverFactory.createResolver(properties);
      ErrorHandler eh = properties.get(ValidateProperty.ERROR_HANDLER);
      DatatypeLibraryFactory dlf = properties.get(RngProperty.DATATYPE_LIBRARY_FACTORY);
      if (dlf == null) {
        //Create a new Data Type Library Loader
        dlf = new DatatypeLibraryLoader();
      }
      try {
        Pattern start = SchemaBuilderImpl.parse(createParseable(source, resolver, eh, properties), eh, dlf, spb,
            properties.contains(WrapProperty.ATTRIBUTE_OWNER));
        //Wrap the pattern
        return wrapPattern2(start, spb, properties);
      }
      catch (IllegalSchemaException e) {
        throw new IncorrectSchemaException();
      }
    }