XSCMValidator (Xerces2 Implementation)
Date: 2018-10-16

org.apache.xerces.impl.xs.models

## Interface XSCMValidator

- All Known Implementing Classes:
    XSAllCM, XSDFACM, XSEmptyCM

      public interface XSCMValidator

  Note: State of the content model is stored in the validator
  Version:
    $Id: XSCMValidator.java 806363 2009-08-20 21:18:48Z mrglavas $
  Author:
    Sandy Gao, IBM, Elena Litani, IBM

  # INTERNAL:

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

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static short` | `FIRST_ERROR`
    `static short` | `SUBSEQUENT_ERROR`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `checkUniqueParticleAttribution(SubstitutionGroupHandler subGroupHandler)` check whether this content violates UPA constraint.
    `boolean` | `endContentModel(int[] state)` The method indicates the end of list of children
    `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.
    `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[] state, SubstitutionGroupHandler subGroupHandler)` The method corresponds to one transaction in the content model.
    `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.

- - ### Field Detail

    - #### FIRST_ERROR

          static final short FIRST_ERROR

      See Also:
        Constant Field Values

    - #### SUBSEQUENT_ERROR

          static final short SUBSEQUENT_ERROR

      See Also:
        Constant Field Values

  - ### Method Detail

    - #### startContentModel

          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
      Returns:
        Start state of the content model

    - #### oneTransition

          java.lang.Object oneTransition(org.apache.xerces.xni.QName elementName,
                                         int[] state,
                                         SubstitutionGroupHandler subGroupHandler)

      The method corresponds to one transaction in the content model.
      Parameters:
        `elementName` -
        `state` - Current state
      Returns:
        element decl or wildcard decl that corresponds to the element from the Schema grammar

    - #### endContentModel

          boolean endContentModel(int[] state)

      The method indicates the end of list of children
      Parameters:
        `state` - Current state of the content model
      Returns:
        true if the last state was a valid final state

    - #### checkUniqueParticleAttribution

          boolean checkUniqueParticleAttribution(SubstitutionGroupHandler subGroupHandler)
                                          throws XMLSchemaException

      check whether this content violates UPA constraint.
      Parameters:
        `subGroupHandler` - the substitution group handler
      Returns:
        true if this content model contains other or list wildcard
      Throws:
        `XMLSchemaException`

    - #### whatCanGoHere

          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.
      Parameters:
        `state` - the current state
      Returns:
        a Vector whose entries are instances of either XSWildcardDecl or XSElementDecl.

    - #### occurenceInfo

          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.

      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
      Parameters:
        `state` - the current state
      Returns:
        an array containing information about the current repeating term

    - #### getTermName

          java.lang.String getTermName(int termId)

      Returns the name of the term (element or wildcard) for the given identifier.
      Parameters:
        `termId` - identifier for the element declaration or wildcard
      Returns:
        the name of the element declaration or wildcard

    - #### isCompactedForUPA

          boolean isCompactedForUPA()

      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
      Returns:
        a boolean that says whether this content has been compacted for UPA

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