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

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

public class XSSimpleCM
extends java.lang.Object
implements XSCMValidator

XSSimpleCM is a derivative of the abstract content model base class that handles a small set of simple content models that are just way overkill to give the DFA treatment.

This class handles the following scenarios:

These all involve a unary operation with one element type, or a binary operation with two elements. These are very simple and can be checked in a simple way without a DFA and without the overhead of setting up a DFA for such a simple check. This model validated on the way in.

Version:
$Id: XSSimpleCM.java,v 1.3 2002/01/29 01:15:16 lehors Exp $
Author:
Elena Litani, IBM

Fields inherited from interface org.apache.xerces.impl.xs.models.XSCMValidator
FIRST_ERROR, SUBSEQUENT_ERROR
 
Constructor Summary
XSSimpleCM(short operator, XSElementDecl elem)
          Constructs a simple content model.
XSSimpleCM(short operator, XSElementDecl elem1, XSElementDecl elem2)
          Constructs a simple content model.
 
Method Summary
 boolean checkUniqueParticleAttribution(SubstitutionGroupHandler subGroupHandler)
          check whether this content violates UPA constraint.
 boolean endContentModel(int[] currentState)
          The method indicates the end of list of children
 java.lang.Object oneTransition(org.apache.xerces.xni.QName elementName, int[] currentState, 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.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

XSSimpleCM

public XSSimpleCM(short operator,
                  XSElementDecl elem)
Constructs a simple content model.

XSSimpleCM

public XSSimpleCM(short operator,
                  XSElementDecl elem1,
                  XSElementDecl elem2)
Constructs a simple content model.
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)
The method corresponds to one transaction in the content model.
Specified by:
oneTransition in interface XSCMValidator
Parameters:
elementName -  
state - Current state
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:
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.