00001 /* 00002 * Licensed to the Apache Software Foundation (ASF) under one 00003 * or more contributor license agreements. See the NOTICE file 00004 * distributed with this work for additional information 00005 * regarding copyright ownership. The ASF licenses this file 00006 * to you under the Apache License, Version 2.0 (the "License"); 00007 * you may not use this file except in compliance with the License. 00008 * You may obtain a copy of the License at 00009 * 00010 * http://www.apache.org/licenses/LICENSE-2.0 00011 * 00012 * Unless required by applicable law or agreed to in writing, software 00013 * distributed under the License is distributed on an "AS IS" BASIS, 00014 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 00015 * See the License for the specific language governing permissions and 00016 * limitations under the License. 00017 */ 00018 #if !defined(XERCESDOMIMPLEMENTATIONWRAPPER_HEADER_GUARD_1357924680) 00019 #define XERCESDOMIMPLEMENTATIONWRAPPER_HEADER_GUARD_1357924680 00020 00021 00022 00023 #include <xalanc/XercesParserLiaison/XercesParserLiaisonDefinitions.hpp> 00024 00025 #include <xalanc/Include/XalanMemMgrAutoPtr.hpp> 00026 00027 #include <xalanc/XalanDOM/XalanDOMImplementation.hpp> 00028 00029 00030 00031 #include <xalanc/XercesParserLiaison/XercesWrapperTypes.hpp> 00032 00033 00034 00035 XALAN_CPP_NAMESPACE_BEGIN 00036 00037 00038 00039 class XercesWrapperNavigator; 00040 00041 00042 00043 class XALAN_XERCESPARSERLIAISON_EXPORT XercesDOMImplementationWrapper : public XalanDOMImplementation 00044 { 00045 public: 00046 00047 XercesDOMImplementationWrapper(DOMImplementationType* theXercesDOMImplementation); 00048 00049 static XercesDOMImplementationWrapper* 00050 create(MemoryManager& theManager, DOMImplementationType* theXercesDOMImplementation); 00051 00052 virtual 00053 ~XercesDOMImplementationWrapper(); 00054 00055 /** @name Getter functions */ 00056 //@{ 00057 00058 /** 00059 * Test if the DOM implementation implements a specific feature. 00060 * 00061 * @param feature The string of the feature to test (case-insensitive). The legal 00062 * values are defined throughout this specification. The string must be 00063 * an <EM>XML name</EM> (see also Compliance). 00064 * @param version This is the version number of the package name to test. 00065 * In Level 1, this is the string "1.0". If the version is not specified, 00066 * supporting any version of the feature will cause the method to return 00067 * <code>true</code>. 00068 * @return <code>true</code> if the feature is implemented in the specified 00069 * version, <code>false</code> otherwise. 00070 */ 00071 virtual bool 00072 hasFeature( 00073 const XalanDOMString& feature, 00074 const XalanDOMString& version); 00075 00076 //@} 00077 00078 /** @name Functions introduced in DOM Level 2. */ 00079 //@{ 00080 00081 /** 00082 * Creates an empty <code>DOMDocumentType</code> node. 00083 * Entity declarations and notations are not made available. 00084 * Entity reference expansions and default attribute additions 00085 * do not occur. It is expected that a future version of the DOM 00086 * will provide a way for populating a <code>DOMDocumentType</code>. 00087 * @param qualifiedName The <em>qualified name</em> 00088 * of the document type to be created. 00089 * @param publicId The external subset public identifier. 00090 * @param systemId The external subset system identifier. 00091 * @return A new <code>DocumentType</code> node with 00092 * <code>Node.ownerDocument</code> set to <code>null</code>. 00093 */ 00094 virtual XalanDocumentType* 00095 createDocumentType( 00096 const XalanDOMString& qualifiedName, 00097 const XalanDOMString& publicId, 00098 const XalanDOMString& systemId); 00099 00100 /** 00101 * Creates an XML <code>DOMDocument</code> object of the specified type 00102 * with its document element. 00103 * @param namespaceURI The <em>namespace URI</em> of 00104 * the document element to create, or <code>null</code>. 00105 * @param qualifiedName The <em>qualified name</em> 00106 * of the document element to be created. 00107 * @param doctype The type of document to be created or <code>null</code>. 00108 * <p>When <code>doctype</code> is not <code>null</code>, its 00109 * <code>Node.ownerDocument</code> attribute is set to the document 00110 * being created. 00111 * @return A new <code>Document</code> object. 00112 * @exception DOMException 00113 * WRONG_DOCUMENT_ERR: Raised if <code>doctype</code> has already 00114 * been used with a different document. 00115 */ 00116 virtual XalanDocument* 00117 createDocument( 00118 const XalanDOMString& namespaceURI, 00119 const XalanDOMString& qualifiedName, 00120 const XalanDocumentType& doctype); 00121 00122 /** 00123 * Get the Xerces node this instance represent. 00124 * 00125 * @return The Xerces node 00126 */ 00127 DOMImplementationType* 00128 getXercesNode() const 00129 { 00130 return m_xercesNode; 00131 } 00132 00133 //@} 00134 00135 private: 00136 00137 // These are not defined... 00138 00139 XercesDOMImplementationWrapper(const XercesDOMImplementationWrapper& theSource); 00140 00141 XercesDOMImplementationWrapper& 00142 operator=(const XercesDOMImplementationWrapper& theSource); 00143 00144 bool 00145 operator==(const XercesDOMImplementationWrapper& theRHS) const; 00146 00147 // Data members... 00148 00149 DOMImplementationType* const m_xercesNode; 00150 }; 00151 00152 00153 00154 XALAN_CPP_NAMESPACE_END 00155 00156 00157 00158 #endif // !defined (XERCESDOMIMPLEMENTATIONWRAPPER_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.11 |
|