com.sun.msv.reader.relax.core

Class RELAXCoreReader

public class RELAXCoreReader extends RELAXReader implements XSDatatypeResolver

reads RELAX module (classic RELAX module; no namespace extension) by SAX2 and constructs abstract grammar model. This class does not recognize extensions introduced by RELAX Namespace (like anyOtherElement, or <ref label="..." namespace="..." />.

Author: Kohsuke KAWAGUCHI

Nested Class Summary
static classRELAXCoreReader.StateFactory
Field Summary
static StringERR_EXPROTED_HEDGERULE_CONSTRAINT
static StringERR_ID_ABUSE
static StringERR_ID_ABUSE_1
static StringERR_INCONSISTENT_TARGET_NAMESPACE
static StringERR_LABEL_COLLISION
static StringERR_MISSING_TARGET_NAMESPACE
static StringERR_MORE_THAN_ONE_INLINE_TAG
static StringERR_MULTIPLE_ATTPOOL_DECLARATIONS
static StringERR_MULTIPLE_ATTRIBUTE_CONSTRAINT
static StringERR_MULTIPLE_TAG_DECLARATIONS
static StringERR_NAMESPACE_NOT_SUPPROTED
static StringERR_ROLE_COLLISION
static StringERR_UNDEFINED_ATTPOOL
static StringERR_UNDEFINED_ELEMENTRULE
static StringERR_UNDEFINED_HEDGERULE
static StringERR_UNDEFINED_TAG
static StringWRN_ILLEGAL_RELAXCORE_VERSION
static StringWRN_NO_EXPROTED_LABEL
Constructor Summary
RELAXCoreReader(GrammarReaderController controller, SAXParserFactory parserFactory, ExpressionPool pool)
RELAXCoreReader(GrammarReaderController controller, SAXParserFactory parserFactory, RELAXCoreReader.StateFactory stateFactory, ExpressionPool pool, String expectedTargetNamespace)
full constructor.
Method Summary
voidaddUserDefinedType(XSDatatypeExp exp)
StatecreateExpressionChildState(State parent, StartTagInfo tag)
RELAXModulegetResult()
obtains parsed grammar object only if parsing was successful.
GrammargetResultAsGrammar()
static SchemagetRELAXCoreSchema4Schema()
static RELAXModuleparse(String moduleURL, SAXParserFactory factory, GrammarReaderController controller, ExpressionPool pool)
loads RELAX module
static RELAXModuleparse(InputSource module, SAXParserFactory factory, GrammarReaderController controller, ExpressionPool pool)
loads RELAX module
XSDatatypeExpresolveXSDatatype(String typeName)
gets DataType object from type name.

Field Detail

ERR_EXPROTED_HEDGERULE_CONSTRAINT

public static final String ERR_EXPROTED_HEDGERULE_CONSTRAINT

ERR_ID_ABUSE

public static final String ERR_ID_ABUSE

ERR_ID_ABUSE_1

public static final String ERR_ID_ABUSE_1

ERR_INCONSISTENT_TARGET_NAMESPACE

public static final String ERR_INCONSISTENT_TARGET_NAMESPACE

ERR_LABEL_COLLISION

public static final String ERR_LABEL_COLLISION

ERR_MISSING_TARGET_NAMESPACE

public static final String ERR_MISSING_TARGET_NAMESPACE

ERR_MORE_THAN_ONE_INLINE_TAG

public static final String ERR_MORE_THAN_ONE_INLINE_TAG

ERR_MULTIPLE_ATTPOOL_DECLARATIONS

public static final String ERR_MULTIPLE_ATTPOOL_DECLARATIONS

ERR_MULTIPLE_ATTRIBUTE_CONSTRAINT

public static final String ERR_MULTIPLE_ATTRIBUTE_CONSTRAINT

ERR_MULTIPLE_TAG_DECLARATIONS

public static final String ERR_MULTIPLE_TAG_DECLARATIONS

ERR_NAMESPACE_NOT_SUPPROTED

public static final String ERR_NAMESPACE_NOT_SUPPROTED

ERR_ROLE_COLLISION

public static final String ERR_ROLE_COLLISION

ERR_UNDEFINED_ATTPOOL

public static final String ERR_UNDEFINED_ATTPOOL

ERR_UNDEFINED_ELEMENTRULE

public static final String ERR_UNDEFINED_ELEMENTRULE

ERR_UNDEFINED_HEDGERULE

public static final String ERR_UNDEFINED_HEDGERULE

ERR_UNDEFINED_TAG

public static final String ERR_UNDEFINED_TAG

WRN_ILLEGAL_RELAXCORE_VERSION

public static final String WRN_ILLEGAL_RELAXCORE_VERSION

WRN_NO_EXPROTED_LABEL

public static final String WRN_NO_EXPROTED_LABEL

Constructor Detail

RELAXCoreReader

public RELAXCoreReader(GrammarReaderController controller, SAXParserFactory parserFactory, ExpressionPool pool)

RELAXCoreReader

public RELAXCoreReader(GrammarReaderController controller, SAXParserFactory parserFactory, RELAXCoreReader.StateFactory stateFactory, ExpressionPool pool, String expectedTargetNamespace)
full constructor.

Parameters: stateFactory this object creates all parsing state object. Parsing behavior can be modified by changing this object. expectedTargetNamespace expected value of 'targetNamespace' attribute. If this value is null, then the module must have 'targetNamepsace' attribute. If this value is non-null and module doesn't have targetNamespace attribute, then expectedTargetNamespace is used as the module's target namespace (chameleon effect). If expectedNamespace differs from the module's targetNamespace attribute, then an error will be issued.

Method Detail

addUserDefinedType

public final void addUserDefinedType(XSDatatypeExp exp)

createExpressionChildState

public State createExpressionChildState(State parent, StartTagInfo tag)

getResult

public final RELAXModule getResult()
obtains parsed grammar object only if parsing was successful.

getResultAsGrammar

public final Grammar getResultAsGrammar()

getRELAXCoreSchema4Schema

public static Schema getRELAXCoreSchema4Schema()

parse

public static RELAXModule parse(String moduleURL, SAXParserFactory factory, GrammarReaderController controller, ExpressionPool pool)
loads RELAX module

parse

public static RELAXModule parse(InputSource module, SAXParserFactory factory, GrammarReaderController controller, ExpressionPool pool)
loads RELAX module

resolveXSDatatype

public XSDatatypeExp resolveXSDatatype(String typeName)
gets DataType object from type name. If undefined type name is specified, this method is responsible to report an error, and recovers.