org.apache.xerces.impl.xs.models

## Class XSEmptyCM

- java.lang.Object
- - org.apache.xerces.impl.xs.models.XSEmptyCM

- All Implemented Interfaces:
    XSCMValidator

      public class XSEmptyCM
      extends java.lang.Object
      implements XSCMValidator

  XSEmptyCM is a derivative of the abstract content model base class that handles a content model with no children (elements). This model validated on the way in.
  Version:
    $Id: XSEmptyCM.java 1155073 2011-08-08 20:02:50Z knoaman $
  Author:
    Elena Litani, IBM, Lisa Martin, IBM

  # INTERNAL:

    Usage of this class is not supported. It may be altered or removed at any time.

- - ### Field Summary

    - ### Fields inherited from interface org.apache.xerces.impl.xs.models.XSCMValidator

      `FIRST_ERROR, SUBSEQUENT_ERROR`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `XSEmptyCM()`
    `XSEmptyCM(XSOpenContentDecl openContent)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `allowExpandedName(XSWildcardDecl wildcard, org.apache.xerces.xni.QName curElem, SubstitutionGroupHandler subGroupHandler, XSElementDeclHelper eDeclHelper)`
    `boolean` | `checkUniqueParticleAttribution(SubstitutionGroupHandler subGroupHandler, XSConstraints xsConstraints)` check whether this content violates UPA constraint.
    `boolean` | `endContentModel(int[] currentState)` The method indicates the end of list of children
    `XSElementDecl` | `findMatchingElemDecl(org.apache.xerces.xni.QName elementName, SubstitutionGroupHandler subGroupHandler)`
    `java.util.List` | `getDefinedNames(SubstitutionGroupHandler subGroupHandler)`
    `XSOpenContentDecl` | `getOpenContent()`
    `java.lang.String` | `getTermName(int termId)` Returns the name of the term (element or wildcard) for the given identifier.
    `boolean` | `isCompactedForUPA()` Checks if this content model has had its min/maxOccurs values reduced for purposes of speeding up UPA.
    `boolean` | `isOpenContent(XSWildcardDecl w)`
    `XSElementDecl` | `nextElementTransition(int[] s, int[] sn, int[] index)`
    `XSWildcardDecl` | `nextWildcardTransition(int[] s, int[] sn, int[] index)`
    `int[]` | `occurenceInfo(int[] state)` Returns an array containing information about the current repeating term or `null` if no occurrence counting was being performed at the current state.
    `java.lang.Object` | `oneTransition(org.apache.xerces.xni.QName elementName, int[] currentState, SubstitutionGroupHandler subGroupHandler, XSElementDeclHelper eDeclHelper)` The method corresponds to one transaction in the content model.
    `void` | `optimizeStates(org.apache.xerces.impl.xs.models.XS11CMRestriction.XS11CM base, int[] b, int[] d, int indexb)`
    `int[]` | `startContentModel()` This methods to be called on entering a first element whose type has this content model.
    `java.util.Vector` | `whatCanGoHere(int[] state)` Check which elements are valid to appear at this point.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### XSEmptyCM

          public XSEmptyCM()

    - #### XSEmptyCM

          public XSEmptyCM(XSOpenContentDecl openContent)

  - ### Method Detail

    - #### startContentModel

          public int[] startContentModel()

      This methods to be called on entering a first element whose type has this content model. It will return the initial state of the content model
      Specified by:
        `startContentModel` in interface `XSCMValidator`
      Returns:
        Start state of the content model

    - #### oneTransition

          public java.lang.Object oneTransition(org.apache.xerces.xni.QName elementName,
                                       int[] currentState,
                                       SubstitutionGroupHandler subGroupHandler,
                                       XSElementDeclHelper eDeclHelper)

      The method corresponds to one transaction in the content model.
      Specified by:
        `oneTransition` in interface `XSCMValidator`
      Parameters:
        `elementName` - the qualified name of the element
        `currentState` - Current state
        `subGroupHandler` - the substitution group handler
        `eDeclHelper` - A helper that allows inquiry of global element declarations
      Returns:
        element index corresponding to the element from the Schema grammar

    - #### endContentModel

          public boolean endContentModel(int[] currentState)

      The method indicates the end of list of children
      Specified by:
        `endContentModel` in interface `XSCMValidator`
      Parameters:
        `currentState` - Current state of the content model
      Returns:
        true if the last state was a valid final state

    - #### checkUniqueParticleAttribution

          public boolean checkUniqueParticleAttribution(SubstitutionGroupHandler subGroupHandler,
                                               XSConstraints xsConstraints)
                                                 throws XMLSchemaException

      check whether this content violates UPA constraint.
      Specified by:
        `checkUniqueParticleAttribution` in interface `XSCMValidator`
      Parameters:
        `subGroupHandler` - the substitution group handler
        `xsConstraints` - the XML Schema Constraint checker
      Returns:
        true if this content model contains other or list wildcard
      Throws:
        `XMLSchemaException`

    - #### whatCanGoHere

          public java.util.Vector whatCanGoHere(int[] state)

      Check which elements are valid to appear at this point. This method also works if the state is in error, in which case it returns what should have been seen.
      Specified by:
        `whatCanGoHere` in interface `XSCMValidator`
      Parameters:
        `state` - the current state
      Returns:
        a Vector whose entries are instances of either XSWildcardDecl or XSElementDecl.

    - #### occurenceInfo

          public int[] occurenceInfo(int[] state)

      Description copied from interface: `XSCMValidator`

      Returns an array containing information about the current repeating term or `null` if no occurrence counting was being performed at the current state.

      If an array is returned it will have a length == 4 and will contain:

      - a[0] :: min occurs
      - a[1] :: max occurs
      - a[2] :: current value of the counter
      - a[3] :: identifier for the repeating term
      Specified by:
        `occurenceInfo` in interface `XSCMValidator`
      Parameters:
        `state` - the current state
      Returns:
        an array containing information about the current repeating term

    - #### getTermName

          public java.lang.String getTermName(int termId)

      Description copied from interface: `XSCMValidator`
      Returns the name of the term (element or wildcard) for the given identifier.
      Specified by:
        `getTermName` in interface `XSCMValidator`
      Parameters:
        `termId` - identifier for the element declaration or wildcard
      Returns:
        the name of the element declaration or wildcard

    - #### isCompactedForUPA

          public boolean isCompactedForUPA()

      Description copied from interface: `XSCMValidator`
      Checks if this content model has had its min/maxOccurs values reduced for purposes of speeding up UPA. If so, this content model should not be used for any purpose other than checking unique particle attribution
      Specified by:
        `isCompactedForUPA` in interface `XSCMValidator`
      Returns:
        a boolean that says whether this content has been compacted for UPA

    - #### nextElementTransition

          public XSElementDecl nextElementTransition(int[] s,
                                            int[] sn,
                                            int[] index)

    - #### nextWildcardTransition

          public XSWildcardDecl nextWildcardTransition(int[] s,
                                              int[] sn,
                                              int[] index)

    - #### isOpenContent

          public boolean isOpenContent(XSWildcardDecl w)

    - #### allowExpandedName

          public boolean allowExpandedName(XSWildcardDecl wildcard,
                                  org.apache.xerces.xni.QName curElem,
                                  SubstitutionGroupHandler subGroupHandler,
                                  XSElementDeclHelper eDeclHelper)

    - #### getDefinedNames

          public java.util.List getDefinedNames(SubstitutionGroupHandler subGroupHandler)

    - #### optimizeStates

          public void optimizeStates(org.apache.xerces.impl.xs.models.XS11CMRestriction.XS11CM base,
                            int[] b,
                            int[] d,
                            int indexb)

    - #### getOpenContent

          public XSOpenContentDecl getOpenContent()

    - #### findMatchingElemDecl

          public XSElementDecl findMatchingElemDecl(org.apache.xerces.xni.QName elementName,
                                           SubstitutionGroupHandler subGroupHandler)

      Specified by:
        `findMatchingElemDecl` in interface `XSCMValidator`

Copyright © 1999-2022 The Apache Software Foundation. All Rights Reserved.