Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-30 10:27:33

0001 /*
0002  * Licensed to the Apache Software Foundation (ASF) under one or more
0003  * contributor license agreements.  See the NOTICE file distributed with
0004  * this work for additional information regarding copyright ownership.
0005  * The ASF licenses this file to You under the Apache License, Version 2.0
0006  * (the "License"); you may not use this file except in compliance with
0007  * the License.  You may obtain a copy of the License at
0008  * 
0009  *      http://www.apache.org/licenses/LICENSE-2.0
0010  * 
0011  * Unless required by applicable law or agreed to in writing, software
0012  * distributed under the License is distributed on an "AS IS" BASIS,
0013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
0014  * See the License for the specific language governing permissions and
0015  * limitations under the License.
0016  */
0017 
0018 /*
0019  * $Id$
0020  */
0021 
0022 #if !defined(XERCESC_INCLUDE_GUARD_XINCLUDELOCATION_HPP)
0023 #define XERCESC_INCLUDE_GUARD_XINCLUDELOCATION_HPP
0024 
0025 #include <xercesc/util/XercesDefs.hpp>
0026 #include <xercesc/dom/DOM.hpp>
0027 
0028 XERCES_CPP_NAMESPACE_BEGIN
0029 
0030 
0031 /**
0032   * Class for representing and manipulating the XMLCh * href's used
0033   * by an xi:include element.
0034   *
0035   * This class is designed primarily for internal use. This class implements
0036   * the functionality required to calculate relative hrefs and the base URI
0037   * fixups required for performing XInclude functionality.
0038   */
0039 class XINCLUDE_EXPORT XIncludeLocation
0040 {
0041 public:
0042      /** Create an XIncludeLocation, primed with the supplied href
0043       *
0044       * @param href the initial URI value
0045       *
0046       * @return nothing
0047       */
0048     XIncludeLocation(const XMLCh *href);
0049 
0050      /** Destructor
0051       *
0052       * @return nothing
0053       */
0054     ~XIncludeLocation();
0055 
0056      /** Prepend the supplied href to the current location and modify the current XIncludeLocation's
0057       * internal href field
0058       *
0059       * @param toPrepend the path to prepend
0060       *
0061       * @return the resultant compound URI
0062       */
0063     const XMLCh *prependPath(const XMLCh *toPrepend);
0064 
0065      /** Get the current XIncludeLocation's compound URI location
0066       *
0067       * @return the current URI
0068       */
0069     const XMLCh *getLocation(){
0070         return fHref;
0071     };
0072 
0073      /** Get a pointer to the end of the protocol section of a URI
0074       *
0075       * @param URI a URI to strip the protocol from
0076       *
0077       * @return a pointer into the supplied URI immediately after the last character of the protocol section
0078       *            the pointer points to the first character after the protocol.
0079       */
0080     static const XMLCh *findEndOfProtocol(const XMLCh *URI);
0081 
0082 private:
0083     const XMLCh *fHref;
0084 };
0085 
0086 XERCES_CPP_NAMESPACE_END
0087 
0088 #endif /* XINCLUDELOCATION_HPP */
0089