Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## com.sun.msv.grammar.xmlschema
Class ElementDeclExp

    java.lang.Object
      com.sun.msv.grammar.Expression
          com.sun.msv.grammar.ReferenceExp
              com.sun.msv.grammar.xmlschema.ElementDeclExp

All Implemented Interfaces:
  java.io.Serializable

public class ElementDeclExp
extends ReferenceExp

Element declaration.

the inherited exp field holds an expression that also matches to substituted element declarations.

The `body` field contains an expression that matches only to this element declaration without no substituted element decls.

## Element Declaration Schema Component Properties

This table shows the mapping between "element declaration schema component properties" (which is defined in the spec) and corresponding method/field of this class.

Property of the spec | method/field of this class
name | The `ReferenceExp.name` field.
target namespace | the `getTargetNamespace()` method.
type definition | `getTypeDefinition()` method.
scope | To be implemented
value constraint | To be implemented. Accessible through the `body` field.
nillable | the `isNillable` field.
identity constraints | The `identityConstraints` field of the `ElementDeclExp.XSElementExp`, which in turn can be obtained throught the `body` field.
substitution group affiliation | The `substitutionAffiliation` field.
substitution group exclusion | The `finalValue` field.
disallowed substitution | The `block` field.
abstract | the `isAbstract()` method.
annotation | Unaccessible. This information is removed during the parsing phase.

### Abstractness

The `exp` field and the `self` field are very similar. In fact, the only difference is that the former is affected by the abstract property, while the latter isn't.

So if it has to be affected by the abstract property (like referencing a complex type as the element body), you should use the `exp` field. If you don't want to be affected by the abstract property (like referencing a complex type as the base type of another complex type), then you should refer to the `body` field.

Author:
  Kohsuke KAWAGUCHI
See Also:
  Serialized Form

Nested Class Summary
`class` | `ElementDeclExp.XSElementExp` XML Schema version of `ElementExp`.

Field Summary
`static int` | `ALL`
`int` | `block` The disallowed substitution property of this schema component, implemented as a bit field.
`ReferenceExp` | `body` The expression that represents the "body" of this expression.
`static int` | `EXTENSION`
`int` | `finalValue` The substitution group exclusions property of this schema component, implemented as a bit field.
`boolean` | `isNillable` gets the nillable property of this component as specified in the spec.
`XMLSchemaSchema` | `parent` parent XMLSchemaSchema object to which this object belongs.
`static int` | `RESTRICTION`
`static int` | `SUBSTITUTION`
`ElementDeclExp` | `substitutionAffiliation` The substitution group affiliation property of this component, if any.
`ReferenceExp` | `substitutions` choices of all elements that can validly substitute this element.

Fields inherited from class com.sun.msv.grammar.ReferenceExp
`exp, name`

Fields inherited from class com.sun.msv.grammar.Expression
`anyString, epsilon, nullSet, verifierTag`

Constructor Summary
`ElementDeclExp(XMLSchemaSchema schema, java.lang.String typeLocalName)`

Method Summary
`Expression` | `getContentModel()` gets the pattern that represents the content model of this element declaration.
`ElementDeclExp.XSElementExp` | `getElementExp()`
`java.lang.String` | `getTargetNamespace()` gets the target namespace property of this component as specified in the spec.
`XMLSchemaTypeExp` | `getTypeDefinition()` gets the type definition property of this schema component.
`boolean` | `isAbstract()` checks if this element declaration is abstract.
`boolean` | `isDefined()` checks if this ReferenceExp is properly defined.
`boolean` | `isGlobal()` gets the scope property of this component as specified in the spec.
`boolean` | `isRestrictionBlocked()`
`boolean` | `isSubstitutionBlocked()`
`void` | `setAbstract(boolean isAbstract)`
`void` | `setElementExp(ElementDeclExp.XSElementExp exp)`

Methods inherited from class com.sun.msv.grammar.ReferenceExp
`equals, visit, visit, visit, visit`

Methods inherited from class com.sun.msv.grammar.Expression
`getExpandedExp, hashCode, isEpsilonReducible, peelOccurence, visit, visit, visit, visit`

Methods inherited from class java.lang.Object
`getClass, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### substitutionAffiliation

    public ElementDeclExp substitutionAffiliation

  The substitution group affiliation property of this component, if any. Otherwise null.

### body

    public final ReferenceExp body

  The expression that represents the "body" of this expression. Usually, this refers to XSElementExp, but not necessarily.

### substitutions

    public final ReferenceExp substitutions

  choices of all elements that can validly substitute this element.

### parent

    public final XMLSchemaSchema parent

  parent XMLSchemaSchema object to which this object belongs.

### isNillable

    public boolean isNillable

  gets the nillable property of this component as specified in the spec.

### RESTRICTION

    public static final int RESTRICTION

See Also:
  Constant Field Values

### EXTENSION

    public static final int EXTENSION

See Also:
  Constant Field Values

### SUBSTITUTION

    public static final int SUBSTITUTION

See Also:
  Constant Field Values

### ALL

    public static final int ALL

See Also:
  Constant Field Values

### finalValue

    public int finalValue

  The substitution group exclusions property of this schema component, implemented as a bit field.

  a bit-wise OR of RESTRICTION and EXTENSION.

### block

    public int block

  The disallowed substitution property of this schema component, implemented as a bit field.

  a bit-wise OR of RESTRICTION, EXTENSION, and SUBSTITUTION.

Constructor Detail

### ElementDeclExp

    public ElementDeclExp(XMLSchemaSchema schema,
                          java.lang.String typeLocalName)

Method Detail

### setElementExp

    public void setElementExp(ElementDeclExp.XSElementExp exp)

### getElementExp

    public ElementDeclExp.XSElementExp getElementExp()

### getContentModel

    public Expression getContentModel()

  gets the pattern that represents the content model of this element declaration. This method is just a short cut for `self.contentModel`.

### isGlobal

    public boolean isGlobal()

  gets the scope property of this component as specified in the spec.

  Returns:
    true if this component is global. false if this component is local.

### getTargetNamespace

    public final java.lang.String getTargetNamespace()

  gets the target namespace property of this component as specified in the spec.

  If the property is absent, then this method returns the empty string.

  This method is just a shortcut for `parent.targetNamespace`.

### isAbstract

    public boolean isAbstract()

  checks if this element declaration is abstract.

  Returns:
    true if this method is abstract.

### setAbstract

    public void setAbstract(boolean isAbstract)

### isSubstitutionBlocked

    public boolean isSubstitutionBlocked()

### isRestrictionBlocked

    public boolean isRestrictionBlocked()

### getTypeDefinition

    public XMLSchemaTypeExp getTypeDefinition()

  gets the type definition property of this schema component.

### isDefined

    public boolean isDefined()

  Description copied from class: `ReferenceExp`
  checks if this ReferenceExp is properly defined. this method is used to detect undeclared definitions. Derived classes can override this method.

  Overrides:
    `isDefined` in class `ReferenceExp`

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD