You are viewing a plain text version of this content. The canonical link for it is here.
Posted to general@xerces.apache.org by "Flaim, Brian J, CSCIO" <fl...@att.com> on 2001/08/13 17:18:57 UTC

RE: cvs commit: xml-xerces/c/src/validators/common DFAContentMode l.hpp MixedContentModel.hpp SimpleContentModel.hpp

what is this and why was it sent to me?

-----Original Message-----
From: knoaman@apache.org [mailto:knoaman@apache.org]
Sent: Monday, August 13, 2001 11:07 AM
To: xml-xerces-cvs@apache.org
Subject: cvs commit: xml-xerces/c/src/validators/common
DFAContentModel.hpp MixedContentModel.hpp SimpleContentModel.hpp


knoaman     01/08/13 08:06:39

  Modified:    c/src/framework XMLContentModel.hpp
               c/src/internal XMLScanner.cpp XMLScanner.hpp XMLScanner2.cpp
               c/src/validators/common DFAContentModel.hpp
                        MixedContentModel.hpp SimpleContentModel.hpp
  Log:
  update <any> validation.
  
  Revision  Changes    Path
  1.12      +6 -0      xml-xerces/c/src/framework/XMLContentModel.hpp
  
  Index: XMLContentModel.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/framework/XMLContentModel.hpp,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- XMLContentModel.hpp	2001/05/28 20:53:35	1.11
  +++ XMLContentModel.hpp	2001/08/13 15:06:38	1.12
  @@ -56,6 +56,9 @@
   
   /*
    * $Log: XMLContentModel.hpp,v $
  + * Revision 1.12  2001/08/13 15:06:38  knoaman
  + * update <any> validation.
  + *
    * Revision 1.11  2001/05/28 20:53:35  tng
    * Schema: move static data gInvalidTrans, gEOCFakeId, gEpsilonFakeId to
XMLContentModel for others to access
    *
  @@ -171,6 +174,9 @@
   
       virtual ContentLeafNameTypeVector* getContentLeafNameTypeVector()
   	  const = 0;
  +
  +    virtual unsigned int getNextState(const unsigned int currentState,
  +                                      const unsigned int elementIndex)
const = 0;
   
   protected :
       //
-----------------------------------------------------------------------
  
  
  
  1.60      +81 -36    xml-xerces/c/src/internal/XMLScanner.cpp
  
  Index: XMLScanner.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/internal/XMLScanner.cpp,v
  retrieving revision 1.59
  retrieving revision 1.60
  diff -u -r1.59 -r1.60
  --- XMLScanner.cpp	2001/08/07 13:47:47	1.59
  +++ XMLScanner.cpp	2001/08/13 15:06:39	1.60
  @@ -55,7 +55,7 @@
    */
   
   /*
  - * $Id: XMLScanner.cpp,v 1.59 2001/08/07 13:47:47 tng Exp $
  + * $Id: XMLScanner.cpp,v 1.60 2001/08/13 15:06:39 knoaman Exp $
    */
   
   
  @@ -153,38 +153,41 @@
   //
---------------------------------------------------------------------------
   XMLScanner::XMLScanner(XMLValidator* const valToAdopt) :
   
  -    fAttrList(0)
  -    , fDocHandler(0)
  -    , fDocTypeHandler(0)
  -    , fDoNamespaces(false)
  -    , fEntityHandler(0)
  -    , fEntityResolver(0)
  -    , fErrorReporter(0)
  -    , fErrorHandler(0)
  +    fDoNamespaces(false)
       , fExitOnFirstFatal(true)
       , fValidationConstraintFatal(false)
  -    , fIDRefList(0)
       , fInException(false)
  -    , fRawAttrList(0)
       , fReuseGrammar(false)
  -    , fScannerId(0)
  -    , fSequenceId(0)
       , fStandalone(false)
       , fHasNoDTD(true)
       , fValidate(false)
  -    , fValidator(valToAdopt)
  -    , fDTDValidator(0)
  -    , fSchemaValidator(0)
       , fValidatorFromUser(false)
  -    , fValScheme(Val_Never)
       , fDoSchema(false)
       , fSchemaFullChecking(false)
       , fSeeXsi(false)
  +    , fErrorCount(0)
       , fEmptyNamespaceId(0)
       , fUnknownNamespaceId(0)
       , fXMLNamespaceId(0)
       , fXMLNSNamespaceId(0)
       , fSchemaNamespaceId(0)
  +    , fElemStateSize(16)
  +    , fScannerId(0)
  +    , fSequenceId(0)
  +    , fElemState(0)
  +    , fAttrList(0)
  +    , fDocHandler(0)
  +    , fDocTypeHandler(0)
  +    , fEntityHandler(0)
  +    , fEntityResolver(0)
  +    , fErrorReporter(0)
  +    , fErrorHandler(0)
  +    , fIDRefList(0)
  +    , fRawAttrList(0)
  +    , fValidator(valToAdopt)
  +    , fDTDValidator(0)
  +    , fSchemaValidator(0)
  +    , fValScheme(Val_Never)
       , fGrammarResolver(0)
       , fGrammar(0)
       , fEntityDeclPool(0)
  @@ -208,38 +211,41 @@
                           , XMLErrorReporter* const  errHandler
                           , XMLValidator* const      valToAdopt) :
   
  -    fAttrList(0)
  -    , fDocHandler(docHandler)
  -    , fDocTypeHandler(docTypeHandler)
  -    , fDoNamespaces(false)
  -    , fEntityHandler(entityHandler)
  -    , fEntityResolver(0)
  -    , fErrorReporter(errHandler)
  -    , fErrorHandler(0)
  +    fDoNamespaces(false)
       , fExitOnFirstFatal(true)
       , fValidationConstraintFatal(false)
  -    , fIDRefList(0)
       , fInException(false)
  -    , fRawAttrList(0)
       , fReuseGrammar(false)
  -    , fScannerId(0)
  -    , fSequenceId(0)
       , fStandalone(false)
       , fHasNoDTD(true)
       , fValidate(false)
  -    , fValidator(valToAdopt)
  -    , fDTDValidator(0)
  -    , fSchemaValidator(0)
       , fValidatorFromUser(false)
  -    , fValScheme(Val_Never)
       , fDoSchema(false)
       , fSchemaFullChecking(false)
       , fSeeXsi(false)
  +    , fErrorCount(0)
       , fEmptyNamespaceId(0)
       , fUnknownNamespaceId(0)
       , fXMLNamespaceId(0)
       , fXMLNSNamespaceId(0)
       , fSchemaNamespaceId(0)
  +    , fElemStateSize(16)
  +    , fScannerId(0)
  +    , fSequenceId(0)
  +    , fElemState(0)
  +    , fAttrList(0)
  +    , fDocHandler(docHandler)
  +    , fDocTypeHandler(docTypeHandler)
  +    , fEntityHandler(entityHandler)
  +    , fEntityResolver(0)
  +    , fErrorReporter(errHandler)
  +    , fErrorHandler(0)
  +    , fIDRefList(0)
  +    , fRawAttrList(0)
  +    , fValidator(valToAdopt)
  +    , fDTDValidator(0)
  +    , fSchemaValidator(0)
  +    , fValScheme(Val_Never)
       , fGrammarResolver(0)
       , fGrammar(0)
       , fEntityDeclPool(0)
  @@ -259,6 +265,7 @@
   
   XMLScanner::~XMLScanner()
   {
  +    delete [] fElemState;
       delete fAttrList;
       delete fIDRefList;
       delete fRawAttrList;
  @@ -859,6 +866,11 @@
       }
   
       //
  +    //  Create the element state array
  +    //
  +    fElemState = new unsigned int[fElemStateSize];
  +
  +    //
       //  Create the attribute list, which is used to store attribute
values
       //  during start tag processing. Give it a reasonable initial size
that
       //  will serve for most folks, though it will grow as required.
  @@ -2726,6 +2738,7 @@
   
       // save the contentleafname and currentscope before addlevel, for
later use
       ContentLeafNameTypeVector* cv = 0;
  +    XMLContentModel* cm = 0;
       int currentScope = Grammar::TOP_LEVEL_SCOPE;
       if (!isRoot && fGrammar->getGrammarType() ==
Grammar::SchemaGrammarType) {
           SchemaElementDecl* tempElement = (SchemaElementDecl*)
fElemStack.topElement()->fThisElement;
  @@ -2734,7 +2747,8 @@
           if ((modelType == SchemaElementDecl::Mixed)
             ||  (modelType == SchemaElementDecl::Children))
           {
  -            cv =
tempElement->getContentModel()->getContentLeafNameTypeVector();
  +            cm = tempElement->getContentModel();
  +            cv = cm->getContentLeafNameTypeVector();
               currentScope = fElemStack.getCurrentScope();
           }
       }
  @@ -2744,7 +2758,7 @@
       //  but we don't have the element decl yet, we just tell the element
stack
       //  to expand up to get ready.
       //
  -    fElemStack.addLevel();
  +    unsigned int elemDepth = fElemStack.addLevel();
       fElemStack.setValidationFlag(fValidate);
   
       //
  @@ -2806,7 +2820,9 @@
       bool laxThisOne = false;
       if (cv) {
           QName element(fPrefixBuf.getRawBuffer(), fNameBuf.getRawBuffer(),
uriId);
  -        laxThisOne = laxElementValidation(&element, cv);
  +        // elementDepth will be > 0, as cv is only constructed if element
is not
  +        // root.
  +        laxThisOne = laxElementValidation(&element, cv, cm, elemDepth -
1);
       }
   
       //
  @@ -3015,7 +3031,15 @@
           if (typeinfo)
               currentScope = typeinfo->getScopeDefined();
           fElemStack.setCurrentScope(currentScope);
  +
  +        // Set element next state
  +        if (elemDepth >= fElemStateSize) {
  +            resizeElemState();
  +        }
  +
  +        fElemState[elemDepth] = 0;
       }
  +
       fElemStack.setCurrentGrammar(fGrammar);
   
       //
  @@ -3497,3 +3521,24 @@
   }
   
   
  +//
---------------------------------------------------------------------------
  +//  XMLScanner: Helper methos
  +//
---------------------------------------------------------------------------
  +void XMLScanner::resizeElemState() {
  +
  +    unsigned int newSize = fElemStateSize * 2;
  +    unsigned int* newElemState = new unsigned int[newSize];
  +
  +    // Copy the existing values
  +    unsigned int index = 0;
  +    for (; index < fElemStateSize; index++)
  +        newElemState[index] = fElemState[index];
  +
  +    for (; index < newSize; index++)
  +        newElemState[index] = 0;
  +
  +    // Delete the old array and udpate our members
  +    delete [] fElemState;
  +    fElemState = newElemState;
  +    fElemStateSize = newSize;
  +}
  \ No newline at end of file
  
  
  
  1.31      +38 -24    xml-xerces/c/src/internal/XMLScanner.hpp
  
  Index: XMLScanner.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/internal/XMLScanner.hpp,v
  retrieving revision 1.30
  retrieving revision 1.31
  diff -u -r1.30 -r1.31
  --- XMLScanner.hpp	2001/08/02 16:54:39	1.30
  +++ XMLScanner.hpp	2001/08/13 15:06:39	1.31
  @@ -56,6 +56,9 @@
   
   /*
    * $Log: XMLScanner.hpp,v $
  + * Revision 1.31  2001/08/13 15:06:39  knoaman
  + * update <any> validation.
  + *
    * Revision 1.30  2001/08/02 16:54:39  tng
    * Reset some Scanner flags in scanReset().
    *
  @@ -574,7 +577,9 @@
       void resolveSchemaGrammar(const XMLCh* const loc, const XMLCh* const
uri);
       bool switchGrammar(int newGrammarNameSpaceIndex);
       bool switchGrammar(const XMLCh* const newGrammarNameSpace);
  -    bool laxElementValidation(QName* element, ContentLeafNameTypeVector*
cv);
  +    bool laxElementValidation(QName* element, ContentLeafNameTypeVector*
cv,
  +                              const XMLContentModel* const cm,
  +                              const unsigned int parentElemDepth);
   
       //
-----------------------------------------------------------------------
       //  Private scanning methods
  @@ -622,8 +627,13 @@
           , const XMLCh       chEndChar
       );
   
  +    //
-----------------------------------------------------------------------
  +    //  Private helper methods
  +    //
-----------------------------------------------------------------------
  +    void resizeElemState();
   
   
  +
       //
-----------------------------------------------------------------------
       //  Data members
       //
  @@ -791,6 +801,11 @@
       //  fSchemaNamespaceId
       //      This is the id of the schema namespace URI.
       //
  +    //  fElemState
  +    //  fElemStateSize
  +    //      Stores an element next state from DFA content model - used
for
  +    //      wildcard validation
  +    //
       //  fGrammarResolver
       //      Grammar Pool that stores all the Grammar
       //
  @@ -808,38 +823,44 @@
       //      Use only if namespace is turned on.
       //
       //
-----------------------------------------------------------------------
  +    bool                        fDoNamespaces;
  +    bool                        fExitOnFirstFatal;
  +    bool                        fValidationConstraintFatal;
  +    bool                        fInException;
  +    bool                        fReuseGrammar;
  +    bool                        fStandalone;
  +    bool                        fHasNoDTD;
  +    bool                        fValidate;
  +    bool                        fValidatorFromUser;
  +    bool                        fDoSchema;
  +    bool                        fSchemaFullChecking;
  +    bool                        fSeeXsi;
  +    int                         fErrorCount;
  +    unsigned int                fEmptyNamespaceId;
  +    unsigned int                fUnknownNamespaceId;
  +    unsigned int                fXMLNamespaceId;
  +    unsigned int                fXMLNSNamespaceId;
  +    unsigned int                fSchemaNamespaceId;
  +    unsigned int                fElemStateSize;
  +    XMLUInt32                   fScannerId;
  +    XMLUInt32                   fSequenceId;
  +    unsigned int*               fElemState;
       RefVectorOf<XMLAttr>*       fAttrList;
       XMLBufferMgr                fBufMgr;
       XMLDocumentHandler*         fDocHandler;
       DocTypeHandler*             fDocTypeHandler;
  -    bool                        fDoNamespaces;
       ElemStack                   fElemStack;
       XMLEntityHandler*           fEntityHandler;
       EntityResolver*             fEntityResolver;
       XMLErrorReporter*           fErrorReporter;
       ErrorHandler*               fErrorHandler;
  -    bool                        fExitOnFirstFatal;
  -    bool                        fValidationConstraintFatal;
       RefHashTableOf<XMLRefInfo>* fIDRefList;
  -    bool                        fInException;
       RefVectorOf<KVStringPair>*  fRawAttrList;
       ReaderMgr                   fReaderMgr;
  -    bool                        fReuseGrammar;
  -    XMLUInt32                   fScannerId;
  -    XMLUInt32                   fSequenceId;
  -    bool                        fStandalone;
  -    bool                        fHasNoDTD;
  -    bool                        fValidate;
       XMLValidator*               fValidator;
       DTDValidator*               fDTDValidator;
       SchemaValidator*            fSchemaValidator;
  -    bool                        fValidatorFromUser;
       ValSchemes                  fValScheme;
  -    int                         fErrorCount;
  -    bool                        fDoSchema;
  -    bool                        fSchemaFullChecking;
  -    bool                        fSeeXsi;
  -
       XMLBuffer                   fAttNameBuf;
       XMLBuffer                   fAttValueBuf;
       XMLBuffer                   fCDataBuf;
  @@ -847,13 +868,6 @@
       XMLBuffer                   fQNameBuf;
       XMLBuffer                   fPrefixBuf;
       XMLBuffer                   fURIBuf;
  -
  -    unsigned int                fEmptyNamespaceId;
  -    unsigned int                fUnknownNamespaceId;
  -    unsigned int                fXMLNamespaceId;
  -    unsigned int                fXMLNSNamespaceId;
  -    unsigned int                fSchemaNamespaceId;
  -
       GrammarResolver*            fGrammarResolver;
       Grammar*                    fGrammar;
       NameIdPool<DTDEntityDecl>*  fEntityDeclPool;
  
  
  
  1.52      +62 -33    xml-xerces/c/src/internal/XMLScanner2.cpp
  
  Index: XMLScanner2.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/internal/XMLScanner2.cpp,v
  retrieving revision 1.51
  retrieving revision 1.52
  diff -u -r1.51 -r1.52
  --- XMLScanner2.cpp	2001/08/02 16:54:39	1.51
  +++ XMLScanner2.cpp	2001/08/13 15:06:39	1.52
  @@ -55,7 +55,7 @@
    */
   
   /*
  - * $Id: XMLScanner2.cpp,v 1.51 2001/08/02 16:54:39 tng Exp $
  + * $Id: XMLScanner2.cpp,v 1.52 2001/08/13 15:06:39 knoaman Exp $
    */
   
   
  @@ -96,6 +96,7 @@
   #include <validators/schema/SchemaSymbols.hpp>
   #include <validators/schema/SchemaGrammar.hpp>
   #include <validators/schema/TraverseSchema.hpp>
  +#include <validators/schema/SubstitutionGroupComparator.hpp>
   
   
   
  @@ -2757,58 +2758,86 @@
   // if skip - no validation
   // if lax - validate only if the element if found
   
  -bool XMLScanner::laxElementValidation(QName* element,
ContentLeafNameTypeVector* cv)
  +bool XMLScanner::laxElementValidation(QName* element,
ContentLeafNameTypeVector* cv,
  +                                      const XMLContentModel* const cm,
  +                                      const unsigned int parentElemDepth)
   {
       bool skipThisOne = false;
       bool laxThisOne = false;
       unsigned int elementURI = element->getURI();
  +    unsigned int currState = fElemState[parentElemDepth];
   
  +    if (currState == XMLContentModel::gInvalidTrans) {
  +        return laxThisOne;
  +    }
  +
  +    SubstitutionGroupComparator comparator(fGrammarResolver,
fURIStringPool);
  +
       if (cv) {
  -        for (unsigned int i=0; i < cv->getLeafCount(); i++) {
  +        unsigned int i = 0;
  +        unsigned int leafCount = cv->getLeafCount();
  +
  +        for (; i < leafCount; i++) {
  +
               QName* fElemMap = cv->getLeafNameAt(i);
               unsigned int uri = fElemMap->getURI();
  +            unsigned int nextState;
  +            bool anyEncountered = false;
               ContentSpecNode::NodeTypes type = cv->getLeafTypeAt(i);
   
               if (type == ContentSpecNode::Leaf) {
  -                if ((uri == elementURI)
  -                   &&
!(XMLString::compareString(fElemMap->getLocalPart(),
element->getLocalPart())))
  -                    break;
  -            } else if (type == ContentSpecNode::Any) {
  -                break;
  -            } else if (type == ContentSpecNode::Any_NS) {
  -                if (uri == elementURI)
  -                    break;
  -            } else if (type == ContentSpecNode::Any_Other) {
  -                if (uri != elementURI)
  -                    break;
  -            } else if (type == ContentSpecNode::Any_Skip) {
  -                skipThisOne = true;
  -                break;
  -            } else if (type == ContentSpecNode::Any_NS_Skip) {
  -                if (uri == elementURI) {
  -                    skipThisOne = true;
  -                    break;
  +                if (((uri == elementURI)
  +                      &&
!XMLString::compareString(fElemMap->getLocalPart(),
element->getLocalPart()))
  +                    || comparator.isEquivalentTo(element, fElemMap)) {
  +
  +                    nextState = cm->getNextState(currState, i);
  +
  +                    if (nextState != XMLContentModel::gInvalidTrans) { 
  +                        fElemState[parentElemDepth] = nextState;
  +                        break;
  +                    }
                   }
  -            } else if (type == ContentSpecNode::Any_Other_Skip) {
  +            } else if ((type & 0x0f) == ContentSpecNode::Any) {
  +                anyEncountered = true;
  +            }
  +            else if ((type & 0x0f) == ContentSpecNode::Any_Other) {
                   if (uri != elementURI) {
  -                    skipThisOne = true;
  -                    break;
  +                    anyEncountered = true;
                   }
  -            } else if (type == ContentSpecNode::Any_Lax) {
  -                laxThisOne = true;
  -                break;
  -            } else if (type == ContentSpecNode::Any_NS_Lax) {
  +            }
  +            else if ((type & 0x0f) == ContentSpecNode::Any_NS) {
                   if (uri == elementURI) {
  -                    laxThisOne = true;
  -                    break;
  +                    anyEncountered = true;
                   }
  -            } else if (type == ContentSpecNode::Any_Other_Lax) {
  -                if (uri != elementURI) {
  -                    laxThisOne = true;
  +            } 
  +
  +            if (anyEncountered) {
  +
  +                nextState = cm->getNextState(currState, i);
  +                if (nextState != XMLContentModel::gInvalidTrans) {
  +                    fElemState[parentElemDepth] = nextState;
  +
  +                    if (type == ContentSpecNode::Any_Skip ||
  +                        type == ContentSpecNode::Any_NS_Skip ||
  +                        type == ContentSpecNode::Any_Other_Skip) {
  +                        skipThisOne = true;
  +                    }
  +                    else if (type == ContentSpecNode::Any_Lax ||
  +                             type == ContentSpecNode::Any_NS_Lax ||
  +                             type == ContentSpecNode::Any_Other_Lax) {
  +                        laxThisOne = true;
  +                    }
  +
                       break;
                   }
               }
           } // for
  +
  +        if (i == leafCount) { // no match
  +            fElemState[parentElemDepth] = XMLContentModel::gInvalidTrans;
  +            return laxThisOne;
  +        }
  +
       } // if
   
       if (skipThisOne) {
  
  
  
  1.10      +23 -0
xml-xerces/c/src/validators/common/DFAContentModel.hpp
  
  Index: DFAContentModel.hpp
  ===================================================================
  RCS file:
/home/cvs/xml-xerces/c/src/validators/common/DFAContentModel.hpp,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- DFAContentModel.hpp	2001/06/13 20:50:55	1.9
  +++ DFAContentModel.hpp	2001/08/13 15:06:39	1.10
  @@ -56,6 +56,9 @@
   
   /*
    * $Log: DFAContentModel.hpp,v $
  + * Revision 1.10  2001/08/13 15:06:39  knoaman
  + * update <any> validation.
  + *
    * Revision 1.9  2001/06/13 20:50:55  peiyongz
    * fIsMixed: to handle mixed Content Model
    *
  @@ -107,6 +110,7 @@
   #define DFACONTENTMODEL_HPP
   
   #include <util/XercesDefs.hpp>
  +#include <util/ArrayIndexOutOfBoundsException.hpp>
   #include <framework/XMLContentModel.hpp>
   #include <validators/common/ContentLeafNameTypeVector.hpp>
   
  @@ -165,6 +169,9 @@
   
       virtual ContentLeafNameTypeVector* getContentLeafNameTypeVector()
const ;
   
  +    virtual unsigned int getNextState(const unsigned int currentState,
  +                                      const unsigned int elementIndex)
const;
  +
   private :
       //
-----------------------------------------------------------------------
       //  Unimplemented constructors and operators
  @@ -283,5 +290,21 @@
       bool                    fIsMixed;
       ContentLeafNameTypeVector *fLeafNameTypeVector;
   };
  +
  +
  +inline unsigned int
  +DFAContentModel::getNextState(const unsigned int currentState,
  +                              const unsigned int elementIndex) const {
  +
  +    if (currentState == XMLContentModel::gInvalidTrans) {
  +        return XMLContentModel::gInvalidTrans;
  +    }
  +
  +    if (currentState >= fTransTableSize || elementIndex >= fElemMapSize)
{
  +        ThrowXML(ArrayIndexOutOfBoundsException,
XMLExcepts::Array_BadIndex);
  +    }
  +
  +    return fTransTable[currentState][elementIndex];
  +}
   
   #endif
  
  
  
  1.9       +13 -0
xml-xerces/c/src/validators/common/MixedContentModel.hpp
  
  Index: MixedContentModel.hpp
  ===================================================================
  RCS file:
/home/cvs/xml-xerces/c/src/validators/common/MixedContentModel.hpp,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- MixedContentModel.hpp	2001/05/11 13:27:19	1.8
  +++ MixedContentModel.hpp	2001/08/13 15:06:39	1.9
  @@ -56,6 +56,9 @@
   
   /*
    * $Log: MixedContentModel.hpp,v $
  + * Revision 1.9  2001/08/13 15:06:39  knoaman
  + * update <any> validation.
  + *
    * Revision 1.8  2001/05/11 13:27:19  tng
    * Copyright update.
    *
  @@ -162,6 +165,9 @@
   
       virtual ContentLeafNameTypeVector* getContentLeafNameTypeVector()
const ;
   
  +    virtual unsigned int getNextState(const unsigned int currentState,
  +                                      const unsigned int elementIndex)
const;
  +
   private :
       //
-----------------------------------------------------------------------
       //  Private helper methods
  @@ -213,6 +219,13 @@
   inline ContentLeafNameTypeVector*
MixedContentModel::getContentLeafNameTypeVector() const
   {
   	return 0;
  +}
  +
  +inline unsigned int 
  +MixedContentModel::getNextState(const unsigned int currentState,
  +                                const unsigned int elementIndex) const {
  +
  +    return XMLContentModel::gInvalidTrans;
   }
   
   #endif
  
  
  
  1.9       +17 -0
xml-xerces/c/src/validators/common/SimpleContentModel.hpp
  
  Index: SimpleContentModel.hpp
  ===================================================================
  RCS file:
/home/cvs/xml-xerces/c/src/validators/common/SimpleContentModel.hpp,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- SimpleContentModel.hpp	2001/05/11 13:27:20	1.8
  +++ SimpleContentModel.hpp	2001/08/13 15:06:39	1.9
  @@ -56,6 +56,9 @@
   
   /*
    * $Log: SimpleContentModel.hpp,v $
  + * Revision 1.9  2001/08/13 15:06:39  knoaman
  + * update <any> validation.
  + *
    * Revision 1.8  2001/05/11 13:27:20  tng
    * Copyright update.
    *
  @@ -165,6 +168,9 @@
   
       virtual ContentLeafNameTypeVector *getContentLeafNameTypeVector()
const;
   
  +    virtual unsigned int getNextState(const unsigned int currentState,
  +                                      const unsigned int elementIndex)
const;
  +
    private :
       //
-----------------------------------------------------------------------
       //  Unimplemented constructors and operators
  @@ -228,6 +234,17 @@
   {
       delete fFirstChild;
       delete fSecondChild;
  +}
  +
  +
  +//
---------------------------------------------------------------------------
  +//  SimpleContentModel: Virtual methods
  +//
---------------------------------------------------------------------------
  +inline unsigned int
  +SimpleContentModel::getNextState(const unsigned int currentState,
  +                                 const unsigned int elementIndex) const {
  +
  +    return XMLContentModel::gInvalidTrans;
   }
   
   #endif
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-cvs-help@xml.apache.org