00001 /* 00002 * Copyright (c) 2001-2007 00003 * DecisionSoft Limited. All rights reserved. 00004 * Copyright (c) 2004-2007 00005 * Oracle. All rights reserved. 00006 * 00007 * Licensed under the Apache License, Version 2.0 (the "License"); 00008 * you may not use this file except in compliance with the License. 00009 * You may obtain a copy of the License at 00010 * 00011 * http://www.apache.org/licenses/LICENSE-2.0 00012 * 00013 * Unless required by applicable law or agreed to in writing, software 00014 * distributed under the License is distributed on an "AS IS" BASIS, 00015 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 00016 * See the License for the specific language governing permissions and 00017 * limitations under the License. 00018 * 00019 * $Id: URIResolver.hpp,v 1.11 2007/11/29 16:53:00 jpcs Exp $ 00020 */ 00021 00022 #ifndef _URIRESOLVER_HPP 00023 #define _URIRESOLVER_HPP 00024 00025 #include <xqilla/framework/XQillaExport.hpp> 00026 00027 #include <xercesc/util/XMemory.hpp> 00028 00029 class DynamicContext; 00030 class Sequence; 00031 class QueryPathNode; 00032 00036 class XQILLA_API URIResolver : public XERCES_CPP_NAMESPACE_QUALIFIER XMemory 00037 { 00038 public: 00039 /* virtual destructor, does nothing */ 00040 virtual ~URIResolver() {}; 00041 00042 /* Resolve the given uri (and baseUri) to a Sequence (reference parameter). If the uri 00043 is relative, the base uri can be obtained from the context. If the uri is not handled 00044 by this URIResolver, returns false, otherwise returns true. */ 00045 virtual bool resolveDocument(Sequence &result, const XMLCh* uri, DynamicContext *context, const QueryPathNode *projection) = 0; 00046 00047 /* Resolve the given uri (and baseUri) to a Sequence (reference parameter). If the uri 00048 is relative, the base uri can be obtained from the context. If the uri is not handled 00049 by this URIResolver, returns false, otherwise returns true. */ 00050 virtual bool resolveCollection(Sequence &result, const XMLCh* uri, DynamicContext *context, const QueryPathNode *projection) = 0; 00051 00052 /* Resolve the default collection. If it is not defined, returns false, otherwise returns true. */ 00053 virtual bool resolveDefaultCollection(Sequence &result, DynamicContext *context, const QueryPathNode *projection) = 0; 00054 }; 00055 #endif