source: icXML/icXML-devel/src/xercesc/dom/DOMImplementationRegistry.hpp @ 2722

Last change on this file since 2722 was 2722, checked in by cameron, 6 years ago

Original Xerces files with import mods for icxercesc

File size: 3.7 KB
Line 
1/*
2 * Licensed to the Apache Software Foundation (ASF) under one or more
3 * contributor license agreements.  See the NOTICE file distributed with
4 * this work for additional information regarding copyright ownership.
5 * The ASF licenses this file to You under the Apache License, Version 2.0
6 * (the "License"); you may not use this file except in compliance with
7 * the License.  You may obtain a copy of the License at
8 *
9 *      http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17
18/*
19 * $Id: DOMImplementationRegistry.hpp 527149 2007-04-10 14:56:39Z amassari $
20 */
21
22#if !defined(XERCESC_INCLUDE_GUARD_DOMIMPLEMENTATIONREGISTRY_HPP)
23#define XERCESC_INCLUDE_GUARD_DOMIMPLEMENTATIONREGISTRY_HPP
24
25 /**
26  * This class holds the list of registered DOMImplementations.  Implementation
27  * or application can register DOMImplementationSource to the registry, and
28  * then can query DOMImplementation based on a list of requested features.
29  *
30  * <p>This provides an application with an implementation independent starting
31  * point.
32  *
33  * @see DOMImplementation
34  * @see DOMImplementationList
35  * @see DOMImplementationSource
36  * @since DOM Level 3
37  */
38
39#include <xercesc/util/XercesDefs.hpp>
40
41XERCES_CPP_NAMESPACE_BEGIN
42
43
44class DOMImplementation;
45class DOMImplementationSource;
46class DOMImplementationList;
47
48class CDOM_EXPORT DOMImplementationRegistry
49{
50public:
51    // -----------------------------------------------------------------------
52    //  Static DOMImplementationRegistry interface
53    // -----------------------------------------------------------------------
54    /** @name Functions introduced in DOM Level 3 */
55    //@{
56    /**
57     * Return the first registered implementation that has the desired features,
58     * or null if none is found.
59     *
60     * @param features A string that specifies which features are required.
61     *                 This is a space separated list in which each feature is
62     *                 specified by its name optionally followed by a space
63     *                 and a version number.
64     *                 This is something like: "XML 1.0 Traversal 2.0"
65     * @return An implementation that has the desired features, or
66     *   <code>null</code> if this source has none.
67     * @since DOM Level 3
68     */
69    static DOMImplementation* getDOMImplementation(const XMLCh* features);
70
71    /**
72     * Return the list of registered implementation that have the desired features.
73     *
74     * @param features A string that specifies which features are required.
75     *                 This is a space separated list in which each feature is
76     *                 specified by its name optionally followed by a space
77     *                 and a version number.
78     *                 This is something like: "XML 1.0 Traversal 2.0"
79     * @return A DOMImplementationList object that contains the DOMImplementation
80     *         that have the desired features
81     * @since DOM Level 3
82     */
83    static DOMImplementationList* getDOMImplementationList(const XMLCh* features);
84
85    /**
86     * Register an implementation.
87     *
88     * @param source   A DOMImplementation Source object to be added to the registry.
89     *                 The registry does NOT adopt the source object.  Users still own it.
90     * @since DOM Level 3
91     */
92    static void addSource(DOMImplementationSource* source);
93    //@}
94
95private:
96    DOMImplementationRegistry();
97};
98
99XERCES_CPP_NAMESPACE_END
100
101#endif
Note: See TracBrowser for help on using the repository browser.