|
||||
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><!DOCTYPE<br> 0096 * ex SYSTEM "ex.dtd" [ <!ENTITY foo "foo"> <!ENTITY bar<br> 0097 * "bar"> <!ENTITY bar "bar2"> <!ENTITY % baz "baz"><br> 0098 * ]> <ex/><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
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |