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:
  • Field Details

  • Method Details

    • 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>