com.sun.msv.grammar
Class ElementExp

java.lang.Object
  |
  +--com.sun.msv.grammar.Expression
        |
        +--com.sun.msv.grammar.ElementExp
All Implemented Interfaces:
NameClassAndExpression, Serializable
Direct Known 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
hashCode, isEpsilonReducible, visit, visit, visit, visit
 
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

contentModel

public Expression contentModel
content model of this element declaration.

ignoreUndeclaredAttributes

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

ElementExp

public ElementExp(Expression contentModel,
                  boolean ignoreUndeclaredAttributes)
Method Detail

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

equals

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

visit

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

visit

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

visit

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

visit

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