peiyongz    2004/08/11 09:07:28

  Modified:    c/src/xercesc/util XMLString.hpp XMLString.cpp
  Log:
  isValidNOTATION
  
  Revision  Changes    Path
  1.26      +13 -0     xml-xerces/c/src/xercesc/util/XMLString.hpp
  
  Index: XMLString.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/XMLString.hpp,v
  retrieving revision 1.25
  retrieving revision 1.26
  diff -u -r1.25 -r1.26
  --- XMLString.hpp     25 May 2004 18:11:32 -0000      1.25
  +++ XMLString.hpp     11 Aug 2004 16:07:27 -0000      1.26
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.26  2004/08/11 16:07:27  peiyongz
  + * isValidNOTATION
  + *
    * Revision 1.25  2004/05/25 18:11:32  peiyongz
    * removeChar() added
    *
  @@ -1023,6 +1026,16 @@
         * @return Returns the length of the string
         */
       static unsigned int stringLen(const XMLCh* const src);
  +
  +    /**
  +      *
  +      * Checks whether an name is a valid NOTATION according to XML 1.0
  +      * @param name    The string to check its NOTATION validity
  +      * @param manager The memory manager
  +      * @return Returns true if name is NOTATION valid, otherwise false
  +      */
  +    static bool isValidNOTATION(const XMLCh*         const name
  +                              ,       MemoryManager* const manager = 
XMLPlatformUtils::fgMemoryManager);
   
       /**
         * Deprecated: please use XMLChar1_0::isValidNCName
  
  
  
  1.35      +52 -4     xml-xerces/c/src/xercesc/util/XMLString.cpp
  
  Index: XMLString.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/XMLString.cpp,v
  retrieving revision 1.34
  retrieving revision 1.35
  diff -u -r1.34 -r1.35
  --- XMLString.cpp     12 Jul 2004 21:09:01 -0000      1.34
  +++ XMLString.cpp     11 Aug 2004 16:07:27 -0000      1.35
  @@ -66,18 +66,22 @@
   #include <ctype.h>
   #include <stdlib.h>
   #include <errno.h>
  +
  +#include <xercesc/util/XMLString.hpp>
   #include <xercesc/util/ArrayIndexOutOfBoundsException.hpp>
   #include <xercesc/util/IllegalArgumentException.hpp>
   #include <xercesc/util/NumberFormatException.hpp>
  +#include <xercesc/util/OutOfMemoryException.hpp>
  +#include <xercesc/util/RuntimeException.hpp>
  +#include <xercesc/util/TranscodingException.hpp>
  +
   #include <xercesc/util/Janitor.hpp>
   #include <xercesc/util/PlatformUtils.hpp>
   #include <xercesc/util/RefArrayVectorOf.hpp>
  -#include <xercesc/util/RuntimeException.hpp>
   #include <xercesc/util/TransService.hpp>
  -#include <xercesc/util/TranscodingException.hpp>
  -#include <xercesc/util/XMLString.hpp>
   #include <xercesc/util/XMLUniDefs.hpp>
   #include <xercesc/util/XMLUni.hpp>
  +#include <xercesc/util/XMLUri.hpp>
   #include <xercesc/internal/XMLReader.hpp>
   
   XERCES_CPP_NAMESPACE_BEGIN
  @@ -667,6 +671,50 @@
   
       targetStr[copySize] = 0;
   }
  +
  +bool XMLString::isValidNOTATION(const XMLCh*         const name
  +                              ,       MemoryManager* const manager )
  +{
  +    //
  +    //  NOTATATION: <URI>:<localPart>
  +    //  where URI is optional
  +    //        ':' and localPart must be present
  +    //
  +    int nameLen = XMLString::stringLen(name);
  +    int colPos = XMLString::lastIndexOf(name, chColon);
  +
  +    if ((colPos == -1)         ||      // no ':'
  +        (colPos == nameLen - 1)  )     // <URI>':'
  +        return false;
  +
  +    // Examine URI
  +    if (colPos > 0)
  +    {
  +        XMLCh* temp = (XMLCh*) &(name[colPos]);
  +        *temp = 0;
  +
  +        try
  +        {            
  +            XMLUri  newURI(name, manager); // no relative uri support here
  +            *temp = chColon;
  +        }
  +        catch(const OutOfMemoryException&)
  +        {
  +            *temp = chColon;
  +            return false;
  +        }
  +        catch (...)
  +        {
  +            *temp = chColon;
  +            return false;
  +        }
  +    }
  +
  +    // Examine localpart
  +    return XMLString::isValidNCName(&(name[colPos+1]));
  +
  +}
  +
   
   /**
     * Deprecated: isValidNCName
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to