dbertoni    01/11/26 15:13:17

  Modified:    c/src/XPath XalanQNameByValue.cpp XalanQNameByValue.hpp
  Log:
  Made constructor more flexible.
  
  Revision  Changes    Path
  1.3       +22 -12    xml-xalan/c/src/XPath/XalanQNameByValue.cpp
  
  Index: XalanQNameByValue.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XPath/XalanQNameByValue.cpp,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- XalanQNameByValue.cpp     2001/09/26 20:58:46     1.2
  +++ XalanQNameByValue.cpp     2001/11/26 23:13:17     1.3
  @@ -145,14 +145,14 @@
   {
        ElementPrefixResolverProxy      theProxy(namespaceContext, envSupport, 
domSupport);
   
  -     resolvePrefix(qname, theProxy);
  +     resolvePrefix(qname, &theProxy);
   }
   
   
   
   XalanQNameByValue::XalanQNameByValue(
                        const XalanDOMString&   qname,
  -                     const PrefixResolver&   theResolver) :
  +                     const PrefixResolver*   theResolver) :
        m_namespace(),
        m_localpart()
   {
  @@ -222,13 +222,17 @@
   void
   XalanQNameByValue::resolvePrefix(
                        const XalanDOMString&   qname,
  -                     const PrefixResolver&   theResolver)
  +                     const PrefixResolver*   theResolver)
   {
        const XalanDOMString::size_type         indexOfNSSep = indexOf(qname, 
XalanUnicode::charColon);
        const XalanDOMString::size_type         theLength = length(qname);
   
  -     if(indexOfNSSep < theLength)
  +     if(indexOfNSSep >= theLength)
        {
  +             m_localpart = qname;
  +     }
  +     else
  +     {
                const XalanDOMString    prefix = substring(qname, 0, 
indexOfNSSep);
   
                if(::equals(prefix, DOMServices::s_XMLString))
  @@ -240,10 +244,17 @@
                {
                        return;
                }
  +             else if (theResolver == 0)
  +             {
  +                     throw XSLException(
  +                             TranscodeFromLocalCodePage("Unable to resolve 
prefix '") +
  +                             prefix +
  +                             TranscodeFromLocalCodePage("'"));
  +             }
                else
                {
                        const XalanDOMString* const             theNamespace =
  -                             theResolver.getNamespaceForPrefix(prefix);
  +                             theResolver->getNamespaceForPrefix(prefix);
   
                        if (theNamespace != 0)
                        {
  @@ -253,13 +264,12 @@
   
                if(0 == length(m_namespace))
                {
  -                     throw XSLException(TranscodeFromLocalCodePage("Prefix 
must resolve to a namespace: ") + prefix);
  +                     throw XSLException(
  +                             TranscodeFromLocalCodePage("The prefix '") +
  +                              prefix +
  +                             TranscodeFromLocalCodePage("' must resolve to a 
namespace."));
                }
  -     }
  -     else
  -     {
  -             // $$$ ToDo: error or warning...
  -     }
   
  -     m_localpart = indexOfNSSep == theLength ? qname : substring(qname, 
indexOfNSSep + 1);
  +             m_localpart = substring(qname, indexOfNSSep + 1);
  +     }
   }
  
  
  
  1.3       +2 -2      xml-xalan/c/src/XPath/XalanQNameByValue.hpp
  
  Index: XalanQNameByValue.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XPath/XalanQNameByValue.hpp,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- XalanQNameByValue.hpp     2001/09/14 20:04:46     1.2
  +++ XalanQNameByValue.hpp     2001/11/26 23:13:17     1.3
  @@ -154,7 +154,7 @@
         */
        XalanQNameByValue(
                        const XalanDOMString&   qname,
  -                     const PrefixResolver&   theResolver);
  +                     const PrefixResolver*   theResolver = 0);
   
        virtual
        ~XalanQNameByValue();
  @@ -217,7 +217,7 @@
        void
        resolvePrefix(
                        const XalanDOMString&   qname,
  -                     const PrefixResolver&   theResolver);
  +                     const PrefixResolver*   theResolver);
   
        XalanDOMString  m_namespace;
   
  
  
  

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

Reply via email to