Xalan-C++ API Documentation

The Xalan C++ XSLT Processor Version 1.6

Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

XalanDocument.hpp

Go to the documentation of this file.
00001 /*
00002  * The Apache Software License, Version 1.1
00003  *
00004  *
00005  * Copyright (c) 1999 The Apache Software Foundation.  All rights 
00006  * reserved.
00007  *
00008  * Redistribution and use in source and binary forms, with or without
00009  * modification, are permitted provided that the following conditions
00010  * are met:
00011  *
00012  * 1. Redistributions of source code must retain the above copyright
00013  *    notice, this list of conditions and the following disclaimer. 
00014  *
00015  * 2. Redistributions in binary form must reproduce the above copyright
00016  *    notice, this list of conditions and the following disclaimer in
00017  *    the documentation and/or other materials provided with the
00018  *    distribution.
00019  *
00020  * 3. The end-user documentation included with the redistribution,
00021  *    if any, must include the following acknowledgment:  
00022  *       "This product includes software developed by the
00023  *        Apache Software Foundation (http://www.apache.org/)."
00024  *    Alternately, this acknowledgment may appear in the software itself,
00025  *    if and wherever such third-party acknowledgments normally appear.
00026  *
00027  * 4. The names "Xalan" and "Apache Software Foundation" must
00028  *    not be used to endorse or promote products derived from this
00029  *    software without prior written permission. For written 
00030  *    permission, please contact apache@apache.org.
00031  *
00032  * 5. Products derived from this software may not be called "Apache",
00033  *    nor may "Apache" appear in their name, without prior written
00034  *    permission of the Apache Software Foundation.
00035  *
00036  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
00037  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
00038  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
00039  * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
00040  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
00041  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
00042  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
00043  * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
00044  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
00045  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
00046  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
00047  * SUCH DAMAGE.
00048  * ====================================================================
00049  *
00050  * This software consists of voluntary contributions made by many
00051  * individuals on behalf of the Apache Software Foundation and was
00052  * originally based on software copyright (c) 1999, International
00053  * Business Machines, Inc., http://www.ibm.com.  For more
00054  * information on the Apache Software Foundation, please see
00055  * <http://www.apache.org/>.
00056  */
00057 #if !defined(XALANDOCUMENT_HEADER_GUARD_1357924680)
00058 #define XALANDOCUMENT_HEADER_GUARD_1357924680
00059 
00060 
00061 
00062 #include <xalanc/XalanDOM/XalanDOMDefinitions.hpp>
00063 #include <xalanc/XalanDOM/XalanNode.hpp>
00064 
00065 
00066 
00067 XALAN_CPP_NAMESPACE_BEGIN
00068 
00069 
00070 
00071 class XalanAttr;
00072 class XalanCDATASection;
00073 class XalanComment;
00074 class XalanDocumentFragment;
00075 class XalanDocumentType;
00076 class XalanDOMImplementation;
00077 class XalanElement;
00078 class XalanEntityReference;
00079 class XalanProcessingInstruction;
00080 class XalanText;
00081 
00082 
00083 
00084 /*
00085  * <meta name="usage" content="experimental"/>
00086  *
00087  * Base class for the DOM Document interface.
00088  *
00089  * This class is experimental and subject to change!!
00090  */
00091 
00092 class XALAN_DOM_EXPORT XalanDocument : public XalanNode
00093 {
00094 public:
00095 
00096     XalanDocument();
00097 
00098     virtual
00099     ~XalanDocument();
00100 
00101     // These interfaces are inherited from XalanNode...
00102 
00103     virtual const XalanDOMString&
00104     getNodeName() const = 0;
00105 
00109     virtual const XalanDOMString&
00110     getNodeValue() const = 0;
00111 
00115     virtual NodeType
00116     getNodeType() const = 0;
00117 
00127     virtual XalanNode*
00128     getParentNode() const = 0;
00129 
00143     virtual const XalanNodeList*
00144     getChildNodes() const = 0;
00145 
00151     virtual XalanNode*
00152     getFirstChild() const = 0;
00153 
00159     virtual XalanNode*
00160     getLastChild() const = 0;
00161 
00167     virtual XalanNode*
00168     getPreviousSibling() const = 0;
00169 
00175     virtual XalanNode*
00176     getNextSibling() const = 0;
00177 
00182     virtual const XalanNamedNodeMap*
00183     getAttributes() const = 0;
00184 
00194     virtual XalanDocument*
00195     getOwnerDocument() const = 0;
00196 
00198 
00200 
00219 #if defined(XALAN_NO_COVARIANT_RETURN_TYPE)
00220     virtual XalanNode*
00221 #else
00222     virtual XalanDocument*
00223 #endif
00224     cloneNode(bool deep) const = 0;
00225 
00227 
00229 
00246     virtual XalanNode*
00247     insertBefore(
00248             XalanNode*  newChild,
00249             XalanNode*  refChild) = 0;
00250 
00264     virtual XalanNode*
00265     replaceChild(
00266             XalanNode*  newChild,
00267             XalanNode*  oldChild) = 0;
00268 
00276     virtual XalanNode*
00277     removeChild(XalanNode*  oldChild) = 0;
00278 
00290     virtual XalanNode*
00291     appendChild(XalanNode*  newChild) = 0;
00292 
00294 
00296 
00304     virtual bool
00305     hasChildNodes() const = 0;
00306 
00307 
00309 
00311 
00312 
00326     virtual void
00327     setNodeValue(const XalanDOMString&      nodeValue) = 0;
00328 
00330 
00332 
00349     virtual void
00350     normalize() = 0;
00351 
00365     virtual bool
00366     isSupported(
00367             const XalanDOMString&   feature,
00368             const XalanDOMString&   version) const = 0;
00369 
00383     virtual const XalanDOMString&
00384     getNamespaceURI() const = 0;
00385 
00390     virtual const XalanDOMString&
00391     getPrefix() const = 0;
00392 
00400     virtual const XalanDOMString&
00401     getLocalName() const = 0;
00402 
00432     virtual void
00433     setPrefix(const XalanDOMString& prefix) = 0;
00434 
00440     virtual bool
00441     isIndexed() const = 0;
00442 
00449     virtual IndexType
00450     getIndex() const = 0;
00451 
00453 
00454     // These interfaces are new to XalanDocument...
00455 
00465     virtual XalanElement*
00466     createElement(const XalanDOMString& tagName) = 0;
00467 
00474     virtual XalanDocumentFragment*
00475     createDocumentFragment() = 0;
00476 
00484     virtual XalanText*
00485     createTextNode(const XalanDOMString&    data) = 0;
00486 
00494     virtual XalanComment*
00495     createComment(const XalanDOMString& data) = 0;
00496 
00506     virtual XalanCDATASection*
00507     createCDATASection(const XalanDOMString&    data) = 0;
00508 
00520     virtual XalanProcessingInstruction*
00521     createProcessingInstruction(
00522             const XalanDOMString&   target,
00523             const XalanDOMString&   data) = 0;
00524 
00541     virtual XalanAttr*
00542     createAttribute(const XalanDOMString&   name) = 0;
00543 
00554     virtual XalanEntityReference*
00555     createEntityReference(const XalanDOMString &name) = 0;
00556 
00558 
00569     virtual XalanDocumentType*
00570     getDoctype() const = 0;
00571 
00572 
00576     virtual XalanDOMImplementation*
00577     getImplementation() const = 0;
00578 
00579 
00583     virtual XalanElement*
00584     getDocumentElement() const = 0;
00585 
00600     virtual XalanNodeList*
00601     getElementsByTagName(const XalanDOMString&      tagname) const = 0;
00602 
00604 
00606 
00629     virtual XalanNode*
00630     importNode(
00631             XalanNode*  importedNode,
00632             bool        deep) = 0;
00633 
00656     virtual XalanElement*
00657     createElementNS(
00658             const XalanDOMString&   namespaceURI,
00659             const XalanDOMString&   qualifiedName) = 0;
00660 
00689     virtual XalanAttr*
00690     createAttributeNS(
00691             const XalanDOMString& namespaceURI,
00692             const XalanDOMString& qualifiedName) = 0;
00693 
00710     virtual XalanNodeList*
00711     getElementsByTagNameNS(
00712             const XalanDOMString&   namespaceURI,
00713             const XalanDOMString&   localName) const = 0;
00714 
00730     virtual XalanElement*
00731     getElementById(const XalanDOMString&    elementId) const = 0;
00732 
00734 
00735 protected:
00736 
00737     XalanDocument(const XalanDocument&  theSource);
00738 
00739     XalanDocument&
00740     operator=(const XalanDocument&  theSource);
00741 
00742     bool
00743     operator==(const XalanDocument&     theRHS) const;
00744 
00745 private:
00746 };
00747 
00748 
00749 
00750 XALAN_CPP_NAMESPACE_END
00751 
00752 
00753 
00754 #endif  // !defined(XALANDOCUMENT_HEADER_GUARD_1357924680)

Interpreting class diagrams

Doxygen and GraphViz are used to generate this API documentation from the Xalan-C header files.

Xalan-C++ XSLT Processor Version 1.6
Copyright © 2000, 2001, 2002, 2003 The Apache Software Foundation. All Rights Reserved.