org.apache.xerces.impl.xs.models
Class XSDFACM

java.lang.Object
  |
  +--org.apache.xerces.impl.xs.models.XSDFACM
All Implemented Interfaces:
XSCMValidator

public class XSDFACM
extends java.lang.Object
implements XSCMValidator

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.

Version:
$Id: XSDFACM.java,v 1.3 2002/01/29 01:15:16 lehors Exp $
Author:
Neil Graham, IBM

Fields inherited from interface org.apache.xerces.impl.xs.models.XSCMValidator
FIRST_ERROR, SUBSEQUENT_ERROR
 
Constructor Summary
XSDFACM(CMNode syntaxTree, int leafCount)
          Constructs a DFA content model.
XSDFACM(CMNode syntaxTree, int leafCount, boolean mixed)
          Constructs a DFA content model.
 
Method Summary
 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
 java.lang.Object oneTransition(org.apache.xerces.xni.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.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

XSDFACM

public XSDFACM(CMNode syntaxTree,
               int leafCount)
Constructs a DFA content model.
Parameters:
symbolTable - The symbol table.
syntaxTree - The syntax tree of the content model.
leafCount - The number of leaves.
Throws:
java.lang.RuntimeException - Thrown if DFA can't be built.

XSDFACM

public XSDFACM(CMNode syntaxTree,
               int leafCount,
               boolean mixed)
Constructs a DFA content model.
Parameters:
symbolTable - The symbol table.
syntaxTree - The syntax tree of the content model.
leafCount - The number of leaves.
Throws:
java.lang.RuntimeException - Thrown if DFA can't be built.
Method Detail

isFinalState

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

oneTransition

public java.lang.Object oneTransition(org.apache.xerces.xni.QName curElem,
                                      int[] state,
                                      SubstitutionGroupHandler subGroupHandler)
one transition only
Specified by:
oneTransition in interface XSCMValidator
Parameters:
curElem - The current element's QName
stateStack - stack to store the previous state
curPos - the current position of the stack
Throws:
java.lang.RuntimeException - thrown on error

startContentModel

public int[] startContentModel()
Description copied from interface: XSCMValidator
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
Following copied from interface: org.apache.xerces.impl.xs.models.XSCMValidator
Returns:
Start state of the content model

endContentModel

public boolean endContentModel(int[] state)
Description copied from interface: XSCMValidator
The method indicates the end of list of children
Specified by:
endContentModel in interface XSCMValidator
Following copied from interface: org.apache.xerces.impl.xs.models.XSCMValidator
Parameters:
state - Current state of the content model
Returns:
true if the last state was a valid final state

checkUniqueParticleAttribution

public boolean checkUniqueParticleAttribution(SubstitutionGroupHandler subGroupHandler)
                                       throws XMLSchemaException
check whether this content violates UPA constraint.
Specified by:
checkUniqueParticleAttribution in interface XSCMValidator
Parameters:
errors - to hold the UPA errors
Returns:
true if this content model contains other or list wildcard


Copyright © 1999-2002 Apache XML Project. All Rights Reserved.