00001 /* 00002 * Copyright 1999-2004 The Apache Software Foundation. 00003 * 00004 * Licensed under the Apache License, Version 2.0 (the "License"); 00005 * you may not use this file except in compliance with the License. 00006 * You may obtain a copy of the License at 00007 * 00008 * http://www.apache.org/licenses/LICENSE-2.0 00009 * 00010 * Unless required by applicable law or agreed to in writing, software 00011 * distributed under the License is distributed on an "AS IS" BASIS, 00012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 00013 * See the License for the specific language governing permissions and 00014 * limitations under the License. 00015 */ 00016 #if !defined(XERCESELEMENTBRIDGE_HEADER_GUARD_1357924680) 00017 #define XERCESELEMENTBRIDGE_HEADER_GUARD_1357924680 00018 00019 00020 00021 #include <xalanc/XercesParserLiaison/XercesParserLiaisonDefinitions.hpp> 00022 00023 00024 00025 #if XERCES_VERSION_MAJOR >= 2 00026 #include <xercesc/dom/deprecated/DOM_Element.hpp> 00027 #else 00028 #include <xercesc/dom/DOM_Element.hpp> 00029 #endif 00030 00031 00032 00033 #include <xalanc/XalanDOM/XalanElement.hpp> 00034 00035 00036 00037 #include <xalanc/PlatformSupport/DOMStringHelper.hpp> 00038 00039 00040 00041 #include <xalanc/XercesParserLiaison/Deprecated/XercesDOM_NodeHack.hpp> 00042 #include <xalanc/XercesParserLiaison/Deprecated/XercesNamedNodeMapBridge.hpp> 00043 #include <xalanc/XercesParserLiaison/Deprecated/XercesNodeListBridge.hpp> 00044 00045 00046 00047 XALAN_CPP_NAMESPACE_BEGIN 00048 00049 00050 00051 class XercesBridgeNavigator; 00052 00053 00059 class XALAN_XERCESPARSERLIAISON_EXPORT XercesElementBridge : public XalanElement 00060 { 00061 public: 00062 00063 typedef XERCES_CPP_NAMESPACE_QUALIFIER DOM_Element DOM_ElementType; 00064 00065 XercesElementBridge( 00066 const DOM_ElementType& theXercesElement, 00067 const XercesBridgeNavigator& theNavigator); 00068 00069 virtual 00070 ~XercesElementBridge(); 00071 00072 00076 virtual const XalanDOMString& 00077 getNodeName() const; 00078 00082 virtual const XalanDOMString& 00083 getNodeValue() const; 00084 00088 virtual NodeType 00089 getNodeType() const; 00090 00100 virtual XalanNode* 00101 getParentNode() const; 00102 00116 virtual const XalanNodeList* 00117 getChildNodes() const; 00118 00124 virtual XalanNode* 00125 getFirstChild() const; 00126 00132 virtual XalanNode* 00133 getLastChild() const; 00134 00140 virtual XalanNode* 00141 getPreviousSibling() const; 00142 00148 virtual XalanNode* 00149 getNextSibling() const; 00150 00155 virtual const XalanNamedNodeMap* 00156 getAttributes() const; 00157 00167 virtual XalanDocument* 00168 getOwnerDocument() const; 00169 00171 00173 00192 #if defined(XALAN_NO_COVARIANT_RETURN_TYPE) 00193 virtual XalanNode* 00194 #else 00195 virtual XercesElementBridge* 00196 #endif 00197 cloneNode(bool deep) const; 00198 00200 00202 00219 virtual XalanNode* 00220 insertBefore( 00221 XalanNode* newChild, 00222 XalanNode* refChild); 00223 00237 virtual XalanNode* 00238 replaceChild( 00239 XalanNode* newChild, 00240 XalanNode* oldChild); 00241 00249 virtual XalanNode* 00250 removeChild(XalanNode* oldChild); 00251 00263 virtual XalanNode* 00264 appendChild(XalanNode* newChild); 00265 00267 00269 00277 virtual bool 00278 hasChildNodes() const; 00279 00280 00282 00284 00285 00299 virtual void 00300 setNodeValue(const XalanDOMString& nodeValue); 00301 00303 00305 00322 virtual void 00323 normalize(); 00324 00338 virtual bool 00339 isSupported( 00340 const XalanDOMString& feature, 00341 const XalanDOMString& version) const; 00342 00356 virtual const XalanDOMString& 00357 getNamespaceURI() const; 00358 00363 virtual const XalanDOMString& 00364 getPrefix() const; 00365 00373 virtual const XalanDOMString& 00374 getLocalName() const; 00375 00405 virtual void 00406 setPrefix(const XalanDOMString& prefix); 00407 00408 virtual bool 00409 isIndexed() const; 00410 00411 virtual IndexType 00412 getIndex() const; 00413 00415 00416 // These interfaces are inherited from XalanElement... 00417 00426 virtual const XalanDOMString& 00427 getTagName() const; 00428 00436 virtual const XalanDOMString& 00437 getAttribute(const XalanDOMString& name) const; 00438 00446 virtual XalanAttr* 00447 getAttributeNode(const XalanDOMString& name) const; 00448 00459 virtual XalanNodeList* 00460 getElementsByTagName(const XalanDOMString& name) const; 00461 00463 00465 00487 virtual void 00488 setAttribute( 00489 const XalanDOMString& name, 00490 const XalanDOMString& value); 00491 00511 virtual XalanAttr* 00512 setAttributeNode(XalanAttr* newAttr); 00513 00515 00517 00533 virtual XalanAttr* 00534 removeAttributeNode(XalanAttr* oldAttr); 00535 00548 virtual void 00549 removeAttribute(const XalanDOMString& name); 00550 00552 00554 00565 virtual const XalanDOMString& 00566 getAttributeNS( 00567 const XalanDOMString& namespaceURI, 00568 const XalanDOMString& localName) const; 00569 00610 virtual void 00611 setAttributeNS( 00612 const XalanDOMString& namespaceURI, 00613 const XalanDOMString& qualifiedName, 00614 const XalanDOMString& value); 00615 00630 virtual void 00631 removeAttributeNS( 00632 const XalanDOMString& namespaceURI, 00633 const XalanDOMString& localName); 00634 00645 virtual XalanAttr* 00646 getAttributeNodeNS( 00647 const XalanDOMString& namespaceURI, 00648 const XalanDOMString& localName) const; 00649 00669 virtual XalanAttr* 00670 setAttributeNodeNS(XalanAttr* newAttr); 00671 00687 virtual XalanNodeList* 00688 getElementsByTagNameNS( 00689 const XalanDOMString& namespaceURI, 00690 const XalanDOMString& localName) const; 00691 00697 DOM_ElementType 00698 getXercesNode() const 00699 { 00700 return m_xercesNode; 00701 } 00702 00704 00705 private: 00706 00707 // Not implemented... 00708 XercesElementBridge(const XercesElementBridge& theSource); 00709 00710 XalanNode& 00711 operator=(const XalanNode& theSource); 00712 00713 bool 00714 operator==(const XercesElementBridge& theRHS) const; 00715 00716 // Data members... 00717 XercesDOM_ElementHack m_xercesNode; 00718 00719 const XercesBridgeNavigator& m_navigator; 00720 00721 XercesNodeListBridge m_children; 00722 00723 XercesNamedNodeMapBridge m_attributes; 00724 }; 00725 00726 00727 00728 XALAN_CPP_NAMESPACE_END 00729 00730 00731 00732 #endif // !defined(XERCESELEMENTBRIDGE_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.9 |
|