00001 /* 00002 * Copyright (c) 2001-2006 00003 * DecisionSoft Limited. All rights reserved. 00004 * Copyright (c) 2004-2006 00005 * Progress Software Corporation. All rights reserved. 00006 * Copyright (c) 2004-2006 00007 * Oracle. All rights reserved. 00008 * 00009 * See the file LICENSE for redistribution information. 00010 * 00011 * $Id: URIResolver.hpp,v 1.7 2006/11/01 16:37:12 jpcs Exp $ 00012 */ 00013 00014 #ifndef _URIRESOLVER_HPP 00015 #define _URIRESOLVER_HPP 00016 00017 #include <xqilla/framework/XQillaExport.hpp> 00018 #include <xercesc/util/XercesDefs.hpp> 00019 00020 class DynamicContext; 00021 class Sequence; 00022 00023 XERCES_CPP_NAMESPACE_BEGIN 00024 class DOMDocument; 00025 class DOMNodeList; 00026 XERCES_CPP_NAMESPACE_END 00027 00031 class XQILLA_API URIResolver { 00032 public: 00033 /* virtual destructor, does nothing */ 00034 virtual ~URIResolver() {}; 00035 00036 /* Resolve the given uri (and baseUri) to a Sequence (reference parameter). If the uri 00037 is relative, the base uri can be obtained from the context. If the uri is not handled 00038 by this URIResolver, returns false, otherwise returns true. */ 00039 virtual bool resolveDocument(Sequence &result, const XMLCh* uri, DynamicContext* context) = 0; 00040 00041 /* Resolve the given uri (and baseUri) to a Sequence (reference parameter). If the uri 00042 is relative, the base uri can be obtained from the context. If the uri is not handled 00043 by this URIResolver, returns false, otherwise returns true. */ 00044 virtual bool resolveCollection(Sequence &result, const XMLCh* uri, DynamicContext* context) = 0; 00045 00046 /* Resolve the default collection. If it is not defined, returns false, otherwise returns true. */ 00047 virtual bool resolveDefaultCollection(Sequence &result, DynamicContext* context) = 0; 00048 }; 00049 #endif // _URIRESOLVER_HPP