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
    Modifier and Type | Field and Description
    --- | ---
    `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
    Modifier and Type | Method and Description
    --- | ---
    `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>