com.sun.msv.relaxns.reader
Class RELAXNSReader

java.lang.Object
  extended by org.xml.sax.helpers.XMLFilterImpl
      extended by com.sun.msv.reader.GrammarReader
          extended by com.sun.msv.reader.relax.RELAXReader
              extended by com.sun.msv.relaxns.reader.RELAXNSReader
All Implemented Interfaces:
IDContextProvider2, ValidationContext, ContentHandler, DTDHandler, EntityResolver, ErrorHandler, XMLFilter, XMLReader

public class RELAXNSReader
extends RELAXReader

parses RELAX Namespace XML and constructs a SchemaProvider.

Author:
Kohsuke KAWAGUCHI

Nested Class Summary
 
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_INLINEMODULE_NOT_FOUND
           
static String ERR_NAMESPACE_COLLISION
           
static String ERR_TOPLEVEL_PARTICLE_MUST_BE_RELAX_CORE
           
static String ERR_UNKNOWN_LANGUAGE
           
 RELAXGrammar grammar
          RELAX grammar that is currentlt being loaded
static String RELAXNamespaceNamespace
          namespace URI of RELAX Namespace.
protected  SchemaProvider schemaProvider
           
static String WRN_ILLEGAL_RELAXNAMESPACE_VERSION
           
 
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
backwardReference, basePrefixResolver, controller, 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, parserFactory, pool, prefixResolver, WRN_DEPRECATED_TYPENAME, WRN_MAYBE_WRONG_NAMESPACE
 
Constructor Summary
RELAXNSReader(GrammarReaderController controller, SAXParserFactory parserFactory, ExpressionPool pool)
           
 
Method Summary
 IslandSchemaReader getIslandSchemaReader(String language, String expectedTargetNamespace)
          creates an IslandSchemaReader that can parse the specified language.
 RELAXGrammar getResult()
          obtains parsed grammar object only if parsing was successful.
 Grammar getResultAsGrammar()
          gets the parsed AGM.
 SchemaProvider getSchemaProvider()
          obtains parsed grammar object as SchemaProvider only if parsing was successful.
protected  boolean isGrammarElement(StartTagInfo tag)
          checks if given element is that of the grammar elements.
protected  String localizeMessage(String propertyName, Object[] args)
          formats localized message with arguments
static RELAXGrammar parse(InputSource module, SAXParserFactory factory, GrammarReaderController controller, ExpressionPool pool)
          loads RELAX grammar
static RELAXGrammar parse(String moduleURL, SAXParserFactory factory, GrammarReaderController controller, ExpressionPool pool)
          loads RELAX grammar
 Datatype resolveDataType(String typeName)
           
protected  Expression resolveElementRef(String namespace, String label)
          obtains an Expression specified by given (namespace,label) pair.
protected  Expression resolveHedgeRef(String namespace, String label)
          obtains an Expression specified by given (namespace,label) pair.
 
Methods inherited from class com.sun.msv.reader.relax.RELAXReader
canHaveOccurs, createExpressionChildState, createFacetState, getPool, interceptExpression
 
Methods inherited from class com.sun.msv.reader.GrammarReader
_parse, addBackPatchJob, addBackPatchJob, combineURI, combineURL, createParserFactory, detectUndefinedOnes, endPrefixMapping, getBackwardCompatibleType, getBaseUri, getCurrentState, getDeclaredLocationOf, getLocator, inputSourceFromLSInput, isNotation, isUnparsedEntity, iterateInscopeNamespaces, onID, parse, parse, parse, popState, pushState, reportError, reportError, reportError, reportError, reportError, reportError, reportError, reportError, reportWarning, reportWarning, reportWarning, reportWarning, resolveLocation, resolveNamespacePrefix, runBackPatchJob, setDeclaredLocationOf, setDocumentLocator, setLocator, splitQName, startPrefixMapping, switchSource, switchSource, switchSource
 
Methods inherited from class org.xml.sax.helpers.XMLFilterImpl
characters, endDocument, endElement, error, fatalError, getContentHandler, getDTDHandler, getEntityResolver, getErrorHandler, getFeature, getParent, getProperty, ignorableWhitespace, notationDecl, processingInstruction, resolveEntity, setContentHandler, setDTDHandler, setEntityResolver, setErrorHandler, setFeature, setParent, setProperty, skippedEntity, startDocument, startElement, unparsedEntityDecl, warning
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

RELAXNamespaceNamespace

public static final String RELAXNamespaceNamespace
namespace URI of RELAX Namespace.

See Also:
Constant Field Values

grammar

public final RELAXGrammar grammar
RELAX grammar that is currentlt being loaded


schemaProvider

protected SchemaProvider schemaProvider

WRN_ILLEGAL_RELAXNAMESPACE_VERSION

public static final String WRN_ILLEGAL_RELAXNAMESPACE_VERSION
See Also:
Constant Field Values

ERR_TOPLEVEL_PARTICLE_MUST_BE_RELAX_CORE

public static final String ERR_TOPLEVEL_PARTICLE_MUST_BE_RELAX_CORE
See Also:
Constant Field Values

ERR_INLINEMODULE_NOT_FOUND

public static final String ERR_INLINEMODULE_NOT_FOUND
See Also:
Constant Field Values

ERR_UNKNOWN_LANGUAGE

public static final String ERR_UNKNOWN_LANGUAGE
See Also:
Constant Field Values

ERR_NAMESPACE_COLLISION

public static final String ERR_NAMESPACE_COLLISION
See Also:
Constant Field Values
Constructor Detail

RELAXNSReader

public RELAXNSReader(GrammarReaderController controller,
                     SAXParserFactory parserFactory,
                     ExpressionPool pool)
Method Detail

parse

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


parse

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


getResult

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


getResultAsGrammar

public Grammar getResultAsGrammar()
Description copied from class: GrammarReader
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.

Specified by:
getResultAsGrammar in class GrammarReader

getSchemaProvider

public final SchemaProvider getSchemaProvider()
obtains parsed grammar object as SchemaProvider only if parsing was successful.


getIslandSchemaReader

public IslandSchemaReader getIslandSchemaReader(String language,
                                                String expectedTargetNamespace)
creates an IslandSchemaReader that can parse the specified language. This method can be overrided by the derived class to incorporate other language implementations.

Returns:
return null if the given language is unrecognized. error will be handled by the caller. So this method should not attempt to report nor recover from error.

resolveDataType

public Datatype resolveDataType(String typeName)

isGrammarElement

protected boolean isGrammarElement(StartTagInfo tag)
Description copied from class: GrammarReader
checks if given element is that of the grammar elements.

Specified by:
isGrammarElement in class GrammarReader

resolveElementRef

protected Expression resolveElementRef(String namespace,
                                       String label)
Description copied from class: RELAXReader
obtains an Expression specified by given (namespace,label) pair. this method is called to parse <ref label="..." /> element.

Specified by:
resolveElementRef in class RELAXReader

resolveHedgeRef

protected Expression resolveHedgeRef(String namespace,
                                     String label)
Description copied from class: RELAXReader
obtains an Expression specified by given (namespace,label) pair. this method is called to parse <hedgeRef label="..." /> element.

Specified by:
resolveHedgeRef in class RELAXReader

localizeMessage

protected String localizeMessage(String propertyName,
                                 Object[] args)
Description copied from class: GrammarReader
formats localized message with arguments

Overrides:
localizeMessage in class RELAXReader


MSV