00001 /* 00002 * The Apache Software License, Version 1.1 00003 * 00004 * 00005 * Copyright (c) 2000 The Apache Software Foundation. All rights 00006 * reserved. 00007 * 00008 * Redistribution and use in source and binary forms, with or without 00009 * modification, are permitted provided that the following conditions 00010 * are met: 00011 * 00012 * 1. Redistributions of source code must retain the above copyright 00013 * notice, this list of conditions and the following disclaimer. 00014 * 00015 * 2. Redistributions in binary form must reproduce the above copyright 00016 * notice, this list of conditions and the following disclaimer in 00017 * the documentation and/or other materials provided with the 00018 * distribution. 00019 * 00020 * 3. The end-user documentation included with the redistribution, 00021 * if any, must include the following acknowledgment: 00022 * "This product includes software developed by the 00023 * Apache Software Foundation (http://www.apache.org/)." 00024 * Alternately, this acknowledgment may appear in the software itself, 00025 * if and wherever such third-party acknowledgments normally appear. 00026 * 00027 * 4. The names "Xalan" and "Apache Software Foundation" must 00028 * not be used to endorse or promote products derived from this 00029 * software without prior written permission. For written 00030 * permission, please contact apache@apache.org. 00031 * 00032 * 5. Products derived from this software may not be called "Apache", 00033 * nor may "Apache" appear in their name, without prior written 00034 * permission of the Apache Software Foundation. 00035 * 00036 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED 00037 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 00038 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 00039 * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR 00040 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 00041 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 00042 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF 00043 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 00044 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 00045 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT 00046 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 00047 * SUCH DAMAGE. 00048 * ==================================================================== 00049 * 00050 * This software consists of voluntary contributions made by many 00051 * individuals on behalf of the Apache Software Foundation and was 00052 * originally based on software copyright (c) 1999, International 00053 * Business Machines, Inc., http://www.ibm.com. For more 00054 * information on the Apache Software Foundation, please see 00055 * <http://www.apache.org/>. 00056 */ 00057 #if !defined(URISUPPORT_HEADER_GUARD_1357924680) 00058 #define URISUPPORT_HEADER_GUARD_1357924680 00059 00060 00061 00062 // Base include file. Must be first. 00063 #include <PlatformSupport/PlatformSupportDefinitions.hpp> 00064 00065 00066 00067 #include <xercesc/util/XMLURL.hpp> 00068 00069 00070 00071 #include <XalanDOM/XalanDOMString.hpp> 00072 00073 00074 00075 #include <Include/XalanAutoPtr.hpp> 00076 00077 00078 00079 #include <PlatformSupport/XSLException.hpp> 00080 00081 00082 00083 class XALAN_PLATFORMSUPPORT_EXPORT URISupport 00084 { 00085 public: 00086 00087 typedef XalanAutoPtr<XMLURL> URLAutoPtrType; 00088 00095 static URLAutoPtrType 00096 getURLFromString(const XalanDOMString& urlString) 00097 { 00098 return getURLFromString(urlString.c_str()); 00099 } 00100 00107 static void 00108 getURLFromString( 00109 const XalanDOMString& urlString, 00110 XMLURL& url) 00111 { 00112 getURLFromString(urlString.c_str(), url); 00113 } 00114 00121 static URLAutoPtrType 00122 getURLFromString(const XalanDOMChar* urlString); 00123 00130 static void 00131 getURLFromString( 00132 const XalanDOMChar* urlString, 00133 XMLURL& url) 00134 { 00135 url.setURL(getURLStringFromString(urlString).c_str()); 00136 } 00137 00145 static URLAutoPtrType 00146 getURLFromString( 00147 const XalanDOMString& urlString, 00148 const XalanDOMString& base) 00149 { 00150 return getURLFromString(getURLStringFromString(urlString, base)); 00151 } 00152 00160 static URLAutoPtrType 00161 getURLFromString( 00162 const XalanDOMChar* urlString, 00163 const XalanDOMChar* base); 00164 00171 static XalanDOMString 00172 getURLStringFromString(const XalanDOMString& urlString) 00173 { 00174 XalanDOMString result; 00175 00176 getURLStringFromString(urlString.c_str(), urlString.length(), result); 00177 00178 return result; 00179 } 00180 00187 static void 00188 getURLStringFromString( 00189 const XalanDOMString& urlString, 00190 XalanDOMString& theNormalizedURI) 00191 { 00192 getURLStringFromString(urlString.c_str(), urlString.length(), theNormalizedURI); 00193 } 00194 00201 static XalanDOMString 00202 getURLStringFromString(const XalanDOMChar* urlString) 00203 { 00204 XalanDOMString theNormalizedURI; 00205 00206 getURLStringFromString(urlString, theNormalizedURI); 00207 00208 return theNormalizedURI; 00209 } 00210 00217 static void 00218 getURLStringFromString( 00219 const XalanDOMChar* urlString, 00220 XalanDOMString& theNormalizedURI) 00221 { 00222 assert(urlString != 0); 00223 00224 getURLStringFromString( 00225 urlString, 00226 XalanDOMString::length(urlString), 00227 theNormalizedURI); 00228 } 00229 00237 static void 00238 getURLStringFromString( 00239 const XalanDOMChar* urlString, 00240 XalanDOMString::size_type len, 00241 XalanDOMString& theNormalizedURI); 00242 00250 static XalanDOMString 00251 getURLStringFromString( 00252 const XalanDOMString& urlString, 00253 const XalanDOMString& base) 00254 { 00255 XalanDOMString theNormalizedURI; 00256 00257 getURLStringFromString( 00258 urlString.c_str(), 00259 urlString.length(), 00260 base.c_str(), 00261 base.length(), 00262 theNormalizedURI); 00263 00264 return theNormalizedURI; 00265 } 00266 00274 static void 00275 getURLStringFromString( 00276 const XalanDOMString& urlString, 00277 const XalanDOMString& base, 00278 XalanDOMString& theNormalizedURI) 00279 { 00280 getURLStringFromString(urlString.c_str(), base.c_str(), theNormalizedURI); 00281 } 00282 00290 static XalanDOMString 00291 getURLStringFromString( 00292 const XalanDOMChar* urlString, 00293 const XalanDOMChar* base) 00294 { 00295 XalanDOMString theNormalizedURI; 00296 00297 getURLStringFromString(urlString, base, theNormalizedURI); 00298 00299 return theNormalizedURI; 00300 } 00301 00309 static void 00310 getURLStringFromString( 00311 const XalanDOMChar* urlString, 00312 const XalanDOMChar* base, 00313 XalanDOMString& theNormalizedURI) 00314 { 00315 assert(urlString != 0 && base != 0); 00316 00317 getURLStringFromString( 00318 urlString, 00319 XalanDOMString::length(urlString), 00320 base, 00321 XalanDOMString::length(base), 00322 theNormalizedURI); 00323 } 00324 00332 static void 00333 getURLStringFromString( 00334 const XalanDOMChar* urlString, 00335 XalanDOMString::size_type urlStringLen, 00336 const XalanDOMChar* base, 00337 XalanDOMString::size_type baseLen, 00338 XalanDOMString& theNormalizedURI); 00339 00347 static XalanDOMString& 00348 NormalizeURIText(XalanDOMString& uriString); 00349 00357 static const XalanDOMString 00358 NormalizeURIText(const XalanDOMString& uriString); 00359 00360 00361 class InvalidURIException : public XSLException 00362 { 00363 public: 00364 00370 InvalidURIException(const XalanDOMString& theMessage); 00371 00372 virtual 00373 ~InvalidURIException(); 00374 }; 00375 00376 00377 static const XalanDOMChar s_fileProtocolString1[]; 00378 00379 static const XalanDOMChar s_fileProtocolString2[]; 00380 }; 00381 00382 00383 00384 #endif // URISUPPORT_HEADER_GUARD_1357924680
Doxygen and GraphViz are used to generate this API documentation from the Xalan-C header files.
![]() |
Xalan-C++ XSLT Processor Version 1.4 |
|