org.kohsuke.rngom.ast.util
Class CheckingSchemaBuilder

java.lang.Object
  extended by org.kohsuke.rngom.parse.host.Base
      extended by org.kohsuke.rngom.parse.host.SchemaBuilderHost
          extended by org.kohsuke.rngom.ast.util.CheckingSchemaBuilder
All Implemented Interfaces:
SchemaBuilder

public class CheckingSchemaBuilder
extends SchemaBuilderHost

Wraps a SchemaBuilder and does all the semantic checks required by the RELAX NG spec.

Usage

Whereas you normally write it as follows:

 YourParsedPattern r = (YourParsedPattern)parseable.parse(sb);
 
write this as follows:
 YourParsedPattern r = (YourParsedPattern)parseable.parse(new CheckingSchemaBuilder(sb,eh));
 

The checking is done by using the rngom.binary package, so if you are using that package for parsing schemas, then there's no need to use this.

Author:
Kohsuke Kawaguchi (kk@kohsuke.org)

Constructor Summary
CheckingSchemaBuilder(SchemaBuilder sb, ErrorHandler eh)
           
CheckingSchemaBuilder(SchemaBuilder sb, ErrorHandler eh, org.relaxng.datatype.DatatypeLibraryFactory dlf)
           
 
Method Summary
 ParsedPattern expandPattern(ParsedPattern p)
          Called after all the parsing is done.
 
Methods inherited from class org.kohsuke.rngom.parse.host.SchemaBuilderHost
annotate, annotateAfter, commentAfter, getNameClassBuilder, makeAnnotations, makeAttribute, makeChoice, makeCommentList, makeDataPatternBuilder, makeElement, makeElementAnnotationBuilder, makeEmpty, makeErrorPattern, makeExternalRef, makeGrammar, makeGroup, makeInterleave, makeList, makeLocation, makeMixed, makeNotAllowed, makeOneOrMore, makeOptional, makeText, makeValue, makeZeroOrMore, usesComments
 
Methods inherited from class org.kohsuke.rngom.parse.host.Base
cast, cast
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CheckingSchemaBuilder

public CheckingSchemaBuilder(SchemaBuilder sb,
                             ErrorHandler eh)
Parameters:
sb - Your SchemaBuilder that parses RELAX NG schemas.
eh - All the errors found will be sent to this handler.

CheckingSchemaBuilder

public CheckingSchemaBuilder(SchemaBuilder sb,
                             ErrorHandler eh,
                             org.relaxng.datatype.DatatypeLibraryFactory dlf)
Method Detail

expandPattern

public ParsedPattern expandPattern(ParsedPattern p)
                            throws BuildException,
                                   IllegalSchemaException
Description copied from interface: SchemaBuilder
Called after all the parsing is done.

This hook typically allows as SchemaBuilder to expand notAllowed (if it's following the simplification as in the spec.)

Specified by:
expandPattern in interface SchemaBuilder
Overrides:
expandPattern in class SchemaBuilderHost
Throws:
BuildException
IllegalSchemaException


Copyright © 2011. All Rights Reserved.