source: NonGTP/Xerces/xercesc/dom/DOMDocumentFragment.hpp @ 188

Revision 188, 6.5 KB checked in by mattausch, 19 years ago (diff)

added xercesc to support

Line 
1#ifndef DOMDocumentFragment_HEADER_GUARD_
2#define DOMDocumentFragment_HEADER_GUARD_
3
4/*
5 * The Apache Software License, Version 1.1
6 *
7 * Copyright (c) 2001-2002 The Apache Software Foundation.  All rights
8 * reserved.
9 *
10 * Redistribution and use in source and binary forms, with or without
11 * modification, are permitted provided that the following conditions
12 * are met:
13 *
14 * 1. Redistributions of source code must retain the above copyright
15 *    notice, this list of conditions and the following disclaimer.
16 *
17 * 2. Redistributions in binary form must reproduce the above copyright
18 *    notice, this list of conditions and the following disclaimer in
19 *    the documentation and/or other materials provided with the
20 *    distribution.
21 *
22 * 3. The end-user documentation included with the redistribution,
23 *    if any, must include the following acknowledgment:
24 *       "This product includes software developed by the
25 *        Apache Software Foundation (http://www.apache.org/)."
26 *    Alternately, this acknowledgment may appear in the software itself,
27 *    if and wherever such third-party acknowledgments normally appear.
28 *
29 * 4. The names "Xerces" and "Apache Software Foundation" must
30 *    not be used to endorse or promote products derived from this
31 *    software without prior written permission. For written
32 *    permission, please contact apache\@apache.org.
33 *
34 * 5. Products derived from this software may not be called "Apache",
35 *    nor may "Apache" appear in their name, without prior written
36 *    permission of the Apache Software Foundation.
37 *
38 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
39 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
40 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
41 * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
42 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
43 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
44 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
45 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
46 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
47 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
48 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
49 * SUCH DAMAGE.
50 * ====================================================================
51 *
52 * This software consists of voluntary contributions made by many
53 * individuals on behalf of the Apache Software Foundation, and was
54 * originally based on software copyright (c) 2001, International
55 * Business Machines, Inc., http://www.ibm.com .  For more information
56 * on the Apache Software Foundation, please see
57 * <http://www.apache.org/>.
58 */
59
60/*
61 * $Id: DOMDocumentFragment.hpp,v 1.6 2003/03/07 19:59:02 tng Exp $
62 */
63
64
65#include <xercesc/util/XercesDefs.hpp>
66#include "DOMNode.hpp"
67
68XERCES_CPP_NAMESPACE_BEGIN
69
70
71/**
72 * OMDocumentFragment is a "lightweight" or "minimal"
73 * DOMDocument object.
74 *
75 * It is very common to want to be able to
76 * extract a portion of a document's tree or to create a new fragment of a
77 * document. Imagine implementing a user command like cut or rearranging a
78 * document by moving fragments around. It is desirable to have an object
79 * which can hold such fragments and it is quite natural to use a DOMNode for
80 * this purpose. While it is true that a <code>DOMDocument</code> object could
81 * fulfil this role,  a <code>DOMDocument</code> object can potentially be a
82 * heavyweight  object, depending on the underlying implementation. What is
83 * really needed for this is a very lightweight object.
84 * <code>DOMDocumentFragment</code> is such an object.
85 * <p>Furthermore, various operations -- such as inserting nodes as children
86 * of another <code>DOMNode</code> -- may take <code>DOMDocumentFragment</code>
87 * objects as arguments;  this results in all the child nodes of the
88 * <code>DOMDocumentFragment</code>  being moved to the child list of this node.
89 * <p>The children of a <code>DOMDocumentFragment</code> node are zero or more
90 * nodes representing the tops of any sub-trees defining the structure of the
91 * document. <code>DOMDocumentFragment</code> nodes do not need to be
92 * well-formed XML documents (although they do need to follow the rules
93 * imposed upon well-formed XML parsed entities, which can have multiple top
94 * nodes).  For example, a <code>DOMDocumentFragment</code> might have only one
95 * child and that child node could be a <code>DOMText</code> node. Such a
96 * structure model  represents neither an HTML document nor a well-formed XML
97 * document.
98 * <p>When a <code>DOMDocumentFragment</code> is inserted into a
99 * <code>DOMDocument</code> (or indeed any other <code>DOMNode</code> that may take
100 * children) the children of the <code>DOMDocumentFragment</code> and not the
101 * <code>DOMDocumentFragment</code>  itself are inserted into the
102 * <code>DOMNode</code>. This makes the <code>DOMDocumentFragment</code> very
103 * useful when the user wishes to create nodes that are siblings; the
104 * <code>DOMDocumentFragment</code> acts as the parent of these nodes so that the
105 *  user can use the standard methods from the <code>DOMNode</code>  interface,
106 * such as <code>insertBefore()</code> and  <code>appendChild()</code>.
107 *
108 * @since DOM Level 1
109 */
110
111class CDOM_EXPORT DOMDocumentFragment: public DOMNode {
112protected:
113    // -----------------------------------------------------------------------
114    //  Hidden constructors
115    // -----------------------------------------------------------------------
116    /** @name Hidden constructors */
117    //@{   
118    DOMDocumentFragment() {};
119    //@}
120
121private:
122    // -----------------------------------------------------------------------
123    // Unimplemented constructors and operators
124    // -----------------------------------------------------------------------
125    /** @name Unimplemented constructors and operators */
126    //@{
127    DOMDocumentFragment(const DOMDocumentFragment &);
128    DOMDocumentFragment & operator = (const DOMDocumentFragment &);
129    //@}
130
131public:
132    // -----------------------------------------------------------------------
133    //  All constructors are hidden, just the destructor is available
134    // -----------------------------------------------------------------------
135    /** @name Destructor */
136    //@{
137    /**
138     * Destructor
139     *
140     */
141    virtual ~DOMDocumentFragment() {};
142        //@}
143
144};
145
146XERCES_CPP_NAMESPACE_END
147
148#endif
Note: See TracBrowser for help on using the repository browser.