org.apache.xmlbeans

## Interface SchemaParticle

All Known Implementing Classes:
  SchemaGlobalElementImpl, SchemaLocalElementImpl, SchemaParticleImpl

    public interface SchemaParticle

Represents a Schema particle definition.

The content model of a complex type is a tree of particles. Each particle is either an `ALL`, `CHOICE`, `SEQUENCE`, `ELEMENT`, or `WILDCARD`. All, choice and sequence particles are groups that can have child particles; elements and wildcards are always leaves of the particle tree.

The tree of particles available on a schema type is minimized, that is, it already has removed "pointless" particles such as empty sequences, nonrepeating sequences with only one item, and so on. (Pointless particles are defined precisely in the XML Schema specification.)

See Also:
  `SchemaType.getContentModel()`

### Field Summary

Fields
`static int` `ALL` An xs:all group.
`static int` `CHOICE` A xs:choice group.
`static int` `ELEMENT` An xs:element particle.
`static int` `LAX` Lax wildcard processing.
`static int` `SEQUENCE` A xs:sequence group.
`static int` `SKIP` Skip wildcard processing.
`static int` `STRICT` Strict wildcard processing.
`static int` `WILDCARD` An xs:any particle, also known as an element wildcard.

### Method Summary

All Methods Instance Methods Abstract Methods
`QNameSet` `acceptedStartNames()` Returns the QNameSet of element names that can be accepted at the beginning of this particle.
`boolean` `canStartWithElement(QName name)` True if this particle can start with the given element (taking into account the structure of all child particles of course).
`int` `countOfParticleChild()` The number of children.
`String` `getDefaultText()` For elements only: returns the default (or fixed) text value
`XmlAnySimpleType` `getDefaultValue()` For elements only: returns the default (or fixed) strongly-typed value
`String` `getDocumentation()` Returns user specified documentation
`int` `getIntMaxOccurs()` Returns the maxOccurs value, pegged to a 32-bit int for convenience of a validating state machine that doesn't count higher than MAX_INT anyway.
`int` `getIntMinOccurs()` Returns the minOccurs value, pegged to a 32-bit int for convenience of a validating state machine that doesn't count higher than MAX_INT anyway.
`BigInteger` `getMaxOccurs()` Returns the maxOccurs value for this particle, or null if it is unbounded.
`BigInteger` `getMinOccurs()` Returns the minOccurs value for this particle.
`QName` `getName()` For elements only: the QName for the element use.
`SchemaParticle` `getParticleChild(int i)` Another way to access the particle children.
`SchemaParticle[]` `getParticleChildren()` Applies to sequence, choice, and all particles only: returns an array of all the particle children in order.
`int` `getParticleType()` Returns the particle type (`ALL`, `CHOICE`, `SEQUENCE`, `ELEMENT`, or `WILDCARD`).
`SchemaType` `getType()` For elements only: returns the type of the element.
`int` `getWildcardProcess()` For wildcards, returns the processing code (`STRICT`, `LAX`, `SKIP`).
`QNameSet` `getWildcardSet()` For wildcards, returns a QNameSet representing the wildcard.
`boolean` `isDefault()` For elements only: True if has default.
`boolean` `isFixed()` For elements only: true if is fixed value.
`boolean` `isNillable()` For elements only: true if nillable.
`boolean` `isSingleton()` One if minOccurs == maxOccurs == 1.
`boolean` `isSkippable()` True if this particle can be skipped (taking into account both the minOcurs as well as the structure of all the child particles)

### Field Detail

#### ALL

    static final int ALL

An xs:all group. See `getParticleType()`.

See Also:
  Constant Field Values

#### CHOICE

    static final int CHOICE

A xs:choice group. See `getParticleType()`.

See Also:
  Constant Field Values

#### SEQUENCE

    static final int SEQUENCE

A xs:sequence group. See `getParticleType()`.

See Also:
  Constant Field Values

#### ELEMENT

    static final int ELEMENT

An xs:element particle. This code means the particle can be coerced to `SchemaLocalElement`. See `getParticleType()`.

See Also:
  Constant Field Values

#### WILDCARD

    static final int WILDCARD

An xs:any particle, also known as an element wildcard. See `getParticleType()`.

See Also:
  Constant Field Values

#### STRICT

    static final int STRICT

Strict wildcard processing. See `getWildcardProcess()`

See Also:
  Constant Field Values

#### LAX

    static final int LAX

Lax wildcard processing. See `getWildcardProcess()`

See Also:
  Constant Field Values

#### SKIP

    static final int SKIP

Skip wildcard processing. See `getWildcardProcess()`

See Also:
  Constant Field Values

### Method Detail

#### getParticleType

    int getParticleType()

Returns the particle type (`ALL`, `CHOICE`, `SEQUENCE`, `ELEMENT`, or `WILDCARD`).

#### getMinOccurs

    BigInteger getMinOccurs()

Returns the minOccurs value for this particle. If it's not specified explicitly, this returns BigInteger.ONE.

#### getMaxOccurs

    BigInteger getMaxOccurs()

Returns the maxOccurs value for this particle, or null if it is unbounded. If it's not specified explicitly, this returns BigInteger.ONE.

#### getIntMinOccurs

    int getIntMinOccurs()

Returns the minOccurs value, pegged to a 32-bit int for convenience of a validating state machine that doesn't count higher than MAX_INT anyway.

#### getIntMaxOccurs

    int getIntMaxOccurs()

Returns the maxOccurs value, pegged to a 32-bit int for convenience of a validating state machine that doesn't count higher than MAX_INT anyway. Unbounded is given as MAX_INT.

#### isSingleton

    boolean isSingleton()

One if minOccurs == maxOccurs == 1.

#### getParticleChildren

    SchemaParticle[] getParticleChildren()

Applies to sequence, choice, and all particles only: returns an array of all the particle children in order.

#### getParticleChild

    SchemaParticle getParticleChild(int i)

Another way to access the particle children.

#### countOfParticleChild

    int countOfParticleChild()

The number of children.

#### canStartWithElement

    boolean canStartWithElement(QName name)

True if this particle can start with the given element (taking into account the structure of all child particles of course).

#### acceptedStartNames

    QNameSet acceptedStartNames()

Returns the QNameSet of element names that can be accepted at the beginning of this particle.

#### isSkippable

    boolean isSkippable()

True if this particle can be skipped (taking into account both the minOcurs as well as the structure of all the child particles)

#### getWildcardSet

    QNameSet getWildcardSet()

For wildcards, returns a QNameSet representing the wildcard.

#### getWildcardProcess

    int getWildcardProcess()

For wildcards, returns the processing code (`STRICT`, `LAX`, `SKIP`).

#### getName

    QName getName()

For elements only: the QName for the element use. May be unqualified version of referenced element's name.

#### getType

    SchemaType getType()

For elements only: returns the type of the element.

#### isNillable

    boolean isNillable()

For elements only: true if nillable.

#### getDefaultText

    String getDefaultText()

For elements only: returns the default (or fixed) text value

#### getDefaultValue

    XmlAnySimpleType getDefaultValue()

For elements only: returns the default (or fixed) strongly-typed value

#### isDefault

    boolean isDefault()

For elements only: True if has default. If isFixed, then isDefault is always true.

#### isFixed

    boolean isFixed()

For elements only: true if is fixed value.

#### getDocumentation

    String getDocumentation()

Returns user specified documentation

     <xs:element ... >
       <xs:annotation>
         <xs:documentation>
          getDocumentation method will return whatever stuff here.
         </xs:documentation>
       </xs:annotation>
     </xs:element>