com.sun.msv.reader.relax.core

Class RELAXCoreReader

Implemented Interfaces:
IDContextProvider2, ValidationContext, XSDatatypeResolver
Known Direct Subclasses:
RELAXCoreIslandSchemaReader

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 class
RELAXCoreReader.StateFactory

Nested classes/interfaces inherited from class com.sun.msv.reader.relax.RELAXReader

RELAXReader.StateFactory

Nested classes/interfaces inherited from class com.sun.msv.reader.GrammarReader

GrammarReader.BackPatch, GrammarReader.BackwardReferenceMap, GrammarReader.ChainPrefixResolver, GrammarReader.PrefixResolver

Field Summary

static String
ERR_EXPROTED_HEDGERULE_CONSTRAINT
static String
ERR_ID_ABUSE
static String
ERR_ID_ABUSE_1
static String
ERR_INCONSISTENT_TARGET_NAMESPACE
static String
ERR_LABEL_COLLISION
static String
ERR_MISSING_TARGET_NAMESPACE
static String
ERR_MORE_THAN_ONE_INLINE_TAG
static String
ERR_MULTIPLE_ATTPOOL_DECLARATIONS
static String
ERR_MULTIPLE_ATTRIBUTE_CONSTRAINT
static String
ERR_MULTIPLE_TAG_DECLARATIONS
static String
ERR_NAMESPACE_NOT_SUPPROTED
static String
ERR_ROLE_COLLISION
static String
ERR_UNDEFINED_ATTPOOL
static String
ERR_UNDEFINED_ELEMENTRULE
static String
ERR_UNDEFINED_HEDGERULE
static String
ERR_UNDEFINED_TAG
static String
WRN_ILLEGAL_RELAXCORE_VERSION
static String
WRN_NO_EXPROTED_LABEL

Fields inherited from class com.sun.msv.reader.relax.RELAXReader

ERR_ILLEGAL_OCCURS, ERR_MISPLACED_OCCURS, RELAXCoreNamespace, sfactory

Fields inherited from class com.sun.msv.reader.GrammarReader

ERR_BAD_ATTRIBUTE_VALUE, ERR_BAD_TYPE, ERR_CHARACTERS, ERR_CONFLICTING_ATTRIBUTES, ERR_DATATYPE_ALREADY_DEFINED, ERR_DISALLOWED_ATTRIBUTE, ERR_FRAGMENT_IDENTIFIER, ERR_ILLEGAL_FINAL_VALUE, ERR_MALPLACED_ELEMENT, ERR_MISSING_ATTRIBUTE, ERR_MISSING_ATTRIBUTE_2, ERR_MISSING_CHILD_EXPRESSION, ERR_MISSING_CHILD_TYPE, ERR_MISSING_TOPLEVEL, ERR_MORE_THAN_ONE_CHILD_EXPRESSION, ERR_MORE_THAN_ONE_CHILD_TYPE, ERR_RECURSIVE_DATATYPE, ERR_RECURSIVE_INCLUDE, ERR_RUNAWAY_EXPRESSION, ERR_UNDEFINED_DATATYPE, WRN_DEPRECATED_TYPENAME, WRN_MAYBE_WRONG_NAMESPACE, backwardReference, basePrefixResolver, controller, locator, parserFactory, pool, prefixResolver

Constructor Summary

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

Method Summary

void
addUserDefinedType(XSDatatypeExp exp)
State
createExpressionChildState(State parent, StartTagInfo tag)
this method must be implemented by the derived class to create language-default expresion state.
static Schema
getRELAXCoreSchema4Schema()
RELAXModule
getResult()
obtains parsed grammar object only if parsing was successful.
Grammar
getResultAsGrammar()
gets the parsed AGM.
static RELAXModule
parse(InputSource module, SAXParserFactory factory, GrammarReaderController controller, ExpressionPool pool)
loads RELAX module
static RELAXModule
parse(String moduleURL, SAXParserFactory factory, GrammarReaderController controller, ExpressionPool pool)
loads RELAX module
XSDatatypeExp
resolveXSDatatype(String typeName)
gets DataType object from type name.

Methods inherited from class com.sun.msv.reader.relax.RELAXReader

createExpressionChildState, createFacetState

Methods inherited from class com.sun.msv.reader.GrammarReader

_parse, addBackPatchJob, addBackPatchJob, combineURI, combineURL, createExpressionChildState, detectUndefinedOnes, endPrefixMapping, getBackwardCompatibleType, getBaseUri, getCurrentState, getDeclaredLocationOf, getResultAsGrammar, isNotation, isUnparsedEntity, iterateInscopeNamespaces, onID, parse, parse, popState, pushState, reportError, reportError, reportError, reportError, reportError, reportError, reportError, reportError, reportWarning, reportWarning, reportWarning, reportWarning, resolveLocation, resolveNamespacePrefix, runBackPatchJob, setDeclaredLocationOf, setDocumentLocator, splitQName, startPrefixMapping, switchSource, switchSource

Field Details

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 Details

RELAXCoreReader

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

RELAXCoreReader

public RELAXCoreReader(GrammarReaderController controller,
                       SAXParserFactory parserFactory,
                       RELAXReader.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 Details

addUserDefinedType

public final void addUserDefinedType(XSDatatypeExp exp)

createExpressionChildState

public State createExpressionChildState(State parent,
                                        StartTagInfo tag)
this method must be implemented by the derived class to create language-default expresion state.
Overrides:
createExpressionChildState in interface RELAXReader
Returns:
null if the start tag is an error.

getRELAXCoreSchema4Schema

public static Schema getRELAXCoreSchema4Schema()

getResult

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

getResultAsGrammar

public final Grammar getResultAsGrammar()
gets the parsed AGM. Should any error happens, this method should returns null. derived classes should implement type-safe getGrammar method, along with this method.
Overrides:
getResultAsGrammar in interface GrammarReader

parse

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

parse

public static RELAXModule parse(String moduleURL,
                                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.
Specified by:
resolveXSDatatype in interface XSDatatypeResolver