You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by kn...@apache.org on 2002/12/04 19:21:23 UTC

cvs commit: xml-xerces/c/src/xercesc/validators/schema/identity XercesXPath.cpp

knoaman     2002/12/04 10:21:23

  Modified:    c/src/xercesc/validators/schema/identity XercesXPath.cpp
  Log:
  Identity constraint fix.
  
  Revision  Changes    Path
  1.4       +21 -4     xml-xerces/c/src/xercesc/validators/schema/identity/XercesXPath.cpp
  
  Index: XercesXPath.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/schema/identity/XercesXPath.cpp,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- XercesXPath.cpp	4 Nov 2002 14:47:42 -0000	1.3
  +++ XercesXPath.cpp	4 Dec 2002 18:21:23 -0000	1.4
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.4  2002/12/04 18:21:23  knoaman
  + * Identity constraint fix.
  + *
    * Revision 1.3  2002/11/04 14:47:42  tng
    * C++ Namespace Support.
    *
  @@ -750,13 +753,27 @@
                   addToken(tokens, XercesXPath::EXPRTOKEN_PERIOD);
                   starIsMultiplyOperator = true;
                   currentOffset++;
  -            } else {                    // '.'
  +            } else if (ch == chPipe) { // '|'
  +                addToken(tokens, XercesXPath::EXPRTOKEN_PERIOD);
  +                starIsMultiplyOperator = true;
  +                currentOffset++;
  +            } else if (XMLReader::isWhitespace(ch)) {
  +                do {
  +                    if (++currentOffset == endOffset)
  +                        break;
  +
  +                    ch = data[currentOffset];
  +                } while (XMLReader::isWhitespace(ch));
  +
  +                if (currentOffset == endOffset || ch == chPipe) {
  +				    addToken(tokens, XercesXPath::EXPRTOKEN_PERIOD);
  +                    starIsMultiplyOperator = true;
  +                    break;
  +                }
  +            } else {
                   ThrowXML(XPathException, XMLExcepts::XPath_InvalidChar);
               }
   
  -            if (currentOffset == endOffset) {
  -                break;
  -            }
               break;
           case CHARTYPE_ATSIGN:           // '@'
               addToken(tokens, XercesXPath::EXPRTOKEN_ATSIGN);
  
  
  

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