com.sun.msv.grammar

Class ElementExp

Implemented Interfaces:
NameClassAndExpression, Serializable
Known Direct Subclasses:
AnyOtherElementExp, ElementDeclExp.XSElementExp, ElementPattern, ElementRule, ExternalElementExp

public abstract class ElementExp
extends Expression
implements NameClassAndExpression

Element declaration. For RELAX, this is a base implementation of 'elementRule' declaration. For TREX, this is a base implementation of 'element' pattern. Each grammar must/can provide only one concrete implementation. Therefore, they cannot override visit method.

This class can be extended.

Author:
Kohsuke KAWAGUCHI
See Also:
Serialized Form

Field Summary

Expression
contentModel
content model of this element declaration.
boolean
ignoreUndeclaredAttributes
a flag that indicates undeclared attributes should be ignored.

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

anyString, epsilon, nullSet, verifierTag

Constructor Summary

ElementExp(Expression contentModel, boolean ignoreUndeclaredAttributes)

Method Summary

boolean
equals(Object o)
Expression
getContentModel()
abstract NameClass
getNameClass()
obtains a constraint over tag name.
Object
visit(ExpressionVisitor visitor)
boolean
visit(ExpressionVisitorBoolean visitor)
Expression
visit(ExpressionVisitorExpression visitor)
void
visit(ExpressionVisitorVoid visitor)

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

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

Field Details

contentModel

public Expression contentModel
content model of this element declaration.

ignoreUndeclaredAttributes

public boolean ignoreUndeclaredAttributes
a flag that indicates undeclared attributes should be ignored.

Constructor Details

ElementExp

public ElementExp(Expression contentModel,
                  boolean ignoreUndeclaredAttributes)

Method Details

equals

public final boolean equals(Object o)
Overrides:
equals in interface Expression

getContentModel

public final Expression getContentModel()
Specified by:
getContentModel in interface NameClassAndExpression

getNameClass

public abstract 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

visit

public final Object visit(ExpressionVisitor visitor)
Overrides:
visit in interface Expression

visit

public final boolean visit(ExpressionVisitorBoolean visitor)
Overrides:
visit in interface Expression

visit

public final Expression visit(ExpressionVisitorExpression visitor)
Overrides:
visit in interface Expression

visit

public final void visit(ExpressionVisitorVoid visitor)
Overrides:
visit in interface Expression