com.sun.msv.relaxns.grammar

Class ExternalElementExp

Implemented Interfaces:
NameClassAndExpression, Serializable

public class ExternalElementExp
extends ElementExp

place holder for imported element declaration. This class derives ElementExp because "elementDecl" is a constraint over one element. This class also provides stub methods so that programs who are not aware to divide&validate can gracefully degrade.
Author:
Kohsuke KAWAGUCHI
See Also:
Serialized Form

Field Summary

String
namespaceURI
namespace URI that this ExternalElementExp belongs to.
ElementDecl
rule
imported ElementDecl object that actually validates this element.
String
ruleName
name of the imported Rule
Locator
source
where did this reference is written in the source file.

Fields inherited from class com.sun.msv.grammar.ElementExp

contentModel, ignoreUndeclaredAttributes

Fields inherited from class com.sun.msv.grammar.Expression

anyString, epsilon, nullSet, verifierTag

Constructor Summary

ExternalElementExp(ExpressionPool pool, String namespaceURI, String ruleName, Locator loc)

Method Summary

NameClass
getNameClass()
obtains a constraint over tag name.

Methods inherited from class com.sun.msv.grammar.ElementExp

equals, getContentModel, getNameClass, visit, visit, visit, visit

Methods inherited from class com.sun.msv.grammar.Expression

equals, getExpandedExp, hashCode, isEpsilonReducible, peelOccurence, visit, visit, visit, visit, visit, visit, visit, visit

Field Details

namespaceURI

public final String namespaceURI
namespace URI that this ExternalElementExp belongs to.

rule

public ElementDecl rule
imported ElementDecl object that actually validates this element. this variable is set during binding phase.

ruleName

public final String ruleName
name of the imported Rule

source

public Locator source
where did this reference is written in the source file. can be set to null (to reduce memory usage) at anytime.

Constructor Details

ExternalElementExp

public ExternalElementExp(ExpressionPool pool,
                          String namespaceURI,
                          String ruleName,
                          Locator loc)

Method Details

getNameClass

public NameClass getNameClass()
obtains a constraint over tag name. ElementExp is cannot be shared because NameClass has to be mutable to absorb the difference of RELAX and TREX. In case of TREX, name class will be determined when parsing ElementExp itself. Thus effectively it's immutable. In case of RELAX, name class will be determined when its corresponding Clause object is parsed.
Specified by:
getNameClass in interface NameClassAndExpression
Overrides:
getNameClass in interface ElementExp