Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 10:14:50

0001 /*
0002  * Licensed to the Apache Software Foundation (ASF) under one or more
0003  * contributor license agreements.  See the NOTICE file distributed with
0004  * this work for additional information regarding copyright ownership.
0005  * The ASF licenses this file to You under the Apache License, Version 2.0
0006  * (the "License"); you may not use this file except in compliance with
0007  * the License.  You may obtain a copy of the License at
0008  * 
0009  *      http://www.apache.org/licenses/LICENSE-2.0
0010  * 
0011  * Unless required by applicable law or agreed to in writing, software
0012  * distributed under the License is distributed on an "AS IS" BASIS,
0013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
0014  * See the License for the specific language governing permissions and
0015  * limitations under the License.
0016  */
0017 
0018 /*
0019  * $Id$
0020  */
0021 
0022 #if !defined(XERCESC_INCLUDE_GUARD_DOMDOCUMENTTYPE_HPP)
0023 #define XERCESC_INCLUDE_GUARD_DOMDOCUMENTTYPE_HPP
0024 
0025 #include <xercesc/util/XercesDefs.hpp>
0026 #include <xercesc/dom/DOMNode.hpp>
0027 
0028 XERCES_CPP_NAMESPACE_BEGIN
0029 
0030 
0031 class DOMNamedNodeMap;
0032 
0033 /**
0034  * Each <code>DOMDocument</code> has a <code>doctype</code> attribute whose value
0035  * is either <code>null</code> or a <code>DOMDocumentType</code> object. The
0036  * <code>DOMDocumentType</code> interface in the DOM Core provides an interface
0037  * to the list of entities that are defined for the document, and little
0038  * else because the effect of namespaces and the various XML schema efforts
0039  * on DTD representation are not clearly understood as of this writing.
0040  * <p>The DOM Level 2 doesn't support editing <code>DOMDocumentType</code> nodes.
0041  * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113'>Document Object Model (DOM) Level 2 Core Specification</a>.
0042  *
0043  * @since DOM Level 1
0044  */
0045 class CDOM_EXPORT DOMDocumentType: public DOMNode {
0046 protected:
0047     // -----------------------------------------------------------------------
0048     //  Hidden constructors
0049     // -----------------------------------------------------------------------
0050     /** @name Hidden constructors */
0051     //@{    
0052     DOMDocumentType() {};
0053     //@}
0054 
0055 private:
0056     // -----------------------------------------------------------------------
0057     // Unimplemented constructors and operators
0058     // -----------------------------------------------------------------------
0059     /** @name Unimplemented constructors and operators */
0060     //@{
0061     DOMDocumentType(const DOMDocumentType &);
0062     DOMDocumentType & operator = (const DOMDocumentType &);
0063     //@}
0064 
0065 public:
0066     // -----------------------------------------------------------------------
0067     //  All constructors are hidden, just the destructor is available
0068     // -----------------------------------------------------------------------
0069     /** @name Destructor */
0070     //@{
0071     /**
0072      * Destructor
0073      *
0074      */
0075     virtual ~DOMDocumentType() {};
0076     //@}
0077 
0078     // -----------------------------------------------------------------------
0079     //  Virtual DOMDocumentType interface
0080     // -----------------------------------------------------------------------
0081     /** @name Functions introduced in DOM Level 1 */
0082     //@{
0083     /**
0084      * The name of DTD; i.e., the name immediately following the
0085      * <code>DOCTYPE</code> keyword.
0086      *
0087      * @since DOM Level 1
0088      */
0089     virtual const XMLCh *       getName() const = 0;
0090 
0091     /**
0092      * A <code>DOMNamedNodeMap</code> containing the general entities, both
0093      * external and internal, declared in the DTD. Parameter entities are
0094      * not contained. Duplicates are discarded. For example in:
0095      * <code>&lt;!DOCTYPE<br>
0096      * ex SYSTEM "ex.dtd" [ &lt;!ENTITY foo "foo"&gt; &lt;!ENTITY bar<br>
0097      * "bar"&gt; &lt;!ENTITY bar "bar2"&gt; &lt;!ENTITY % baz "baz"&gt;<br>
0098      * ]&gt; &lt;ex/&gt;<br></code>
0099      *  the interface provides access to <code>foo</code>
0100      * and the first declaration of <code>bar</code> but not the second
0101      * declaration of <code>bar</code> or <code>baz</code>. Every node in
0102      * this map also implements the <code>DOMEntity</code> interface.
0103      * <br>The DOM Level 2 does not support editing entities, therefore
0104      * <code>entities</code> cannot be altered in any way.
0105      *
0106      * @since DOM Level 1
0107      */
0108     virtual DOMNamedNodeMap *getEntities() const = 0;
0109 
0110 
0111     /**
0112      * A <code>DOMNamedNodeMap</code> containing the notations declared in the
0113      * DTD. Duplicates are discarded. Every node in this map also implements
0114      * the <code>DOMNotation</code> interface.
0115      * <br>The DOM Level 2 does not support editing notations, therefore
0116      * <code>notations</code> cannot be altered in any way.
0117      *
0118      * @since DOM Level 1
0119      */
0120     virtual DOMNamedNodeMap *getNotations() const = 0;
0121     //@}
0122 
0123     /** @name Functions introduced in DOM Level 2. */
0124     //@{
0125     /**
0126      * Get the public identifier of the external subset.
0127      *
0128      * @return The public identifier of the external subset.
0129      * @since DOM Level 2
0130      */
0131     virtual const XMLCh *     getPublicId() const = 0;
0132 
0133     /**
0134      * Get the system identifier of the external subset.
0135      *
0136      * @return The system identifier of the external subset.
0137      * @since DOM Level 2
0138      */
0139     virtual const XMLCh *     getSystemId() const = 0;
0140 
0141     /**
0142      * The internal subset as a string, or <code>null</code> if there is none.
0143      * This is does not contain the delimiting square brackets.The actual
0144      * content returned depends on how much information is available to the
0145      * implementation. This may vary depending on various parameters,
0146      * including the XML processor used to build the document.
0147      *
0148      * @return The internal subset as a string.
0149      * @since DOM Level 2
0150      */
0151     virtual const XMLCh *     getInternalSubset() const = 0;
0152     //@}
0153 
0154 };
0155 
0156 XERCES_CPP_NAMESPACE_END
0157 
0158 #endif
0159 
0160