public class

XSDFACM

extends Object
implements XSCMValidator
java.lang.Object
   ↳ org.apache.xerces.impl.xs.models.XSDFACM

Class Overview

DFAContentModel is the implementation of XSCMValidator that does all of the non-trivial element content validation. This class does the conversion from the regular expression to the DFA that it then uses in its validation algorithm.

Summary

[Expand]
Inherited Constants
From interface org.apache.xerces.impl.xs.models.XSCMValidator
Public Constructors
XSDFACM(CMNode syntaxTree, int leafCount)
Constructs a DFA content model.
Public Methods
boolean checkUniqueParticleAttribution(SubstitutionGroupHandler subGroupHandler)
check whether this content violates UPA constraint.
boolean endContentModel(int[] state)
The method indicates the end of list of children
boolean isFinalState(int state)
check whether the given state is one of the final states
Object oneTransition(QName curElem, int[] state, SubstitutionGroupHandler subGroupHandler)
one transition only
int[] startContentModel()
This methods to be called on entering a first element whose type has this content model.
Vector whatCanGoHere(int[] state)
Check which elements are valid to appear at this point.
[Expand]
Inherited Methods
From class java.lang.Object
From interface org.apache.xerces.impl.xs.models.XSCMValidator

Public Constructors

public XSDFACM (CMNode syntaxTree, int leafCount)

Constructs a DFA content model.

Parameters
syntaxTree The syntax tree of the content model.
leafCount The number of leaves.
Throws
RuntimeException Thrown if DFA can't be built.

Public Methods

public boolean checkUniqueParticleAttribution (SubstitutionGroupHandler subGroupHandler)

check whether this content violates UPA constraint.

Parameters
subGroupHandler the substitution group handler
Returns
  • true if this content model contains other or list wildcard

public 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

public boolean isFinalState (int state)

check whether the given state is one of the final states

Parameters
state the state to check
Returns
  • whether it's a final state

public Object oneTransition (QName curElem, int[] state, SubstitutionGroupHandler subGroupHandler)

one transition only

Parameters
curElem The current element's QName
state stack to store the previous state
subGroupHandler the substitution group handler
Returns
  • null if transition is invalid; otherwise the Object corresponding to the XSElementDecl or XSWildcardDecl identified. Also, the state array will be modified to include the new state; this so that the validator can store it away.
Throws
RuntimeException thrown on error

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

Returns
  • Start state of the content model

public 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.