/*
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 *
 * This code is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License version 2 only, as
 * published by the Free Software Foundation.  Oracle designates this
 * particular file as subject to the "Classpath" exception as provided
 * by Oracle in the LICENSE file that accompanied this code.
 *
 * This code is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 * version 2 for more details (a copy is included in the LICENSE file that
 * accompanied this code).
 *
 * You should have received a copy of the GNU General Public License version
 * 2 along with this work; if not, write to the Free Software Foundation,
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
 *
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
 * or visit www.oracle.com if you need additional information or have any
 * questions.
 */

/*
 * This file is available under and governed by the GNU General Public
 * License version 2 only, as published by the Free Software Foundation.
 * However, the following notice accompanied the original version of this
 * file and, per its terms, should not be removed:
 *
 * Copyright (c) 2004 World Wide Web Consortium,
 *
 * (Massachusetts Institute of Technology, European Research Consortium for
 * Informatics and Mathematics, Keio University). All Rights Reserved. This
 * work is distributed under the W3C(r) Software License [1] in the hope that
 * it will be useful, but WITHOUT ANY WARRANTY; without even the implied
 * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 *
 * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
 */

package org.w3c.dom;

Each Document has a doctype attribute whose value is either null or a DocumentType object. The DocumentType interface in the DOM Core provides an interface to the list of entities that are defined for the document, and little else because the effect of namespaces and the various XML schema efforts on DTD representation are not clearly understood as of this writing.

DOM Level 3 doesn't support editing DocumentType nodes. DocumentType nodes are read-only.

See also the Document Object Model (DOM) Level 3 Core Specification.

/** * Each <code>Document</code> has a <code>doctype</code> attribute whose value * is either <code>null</code> or a <code>DocumentType</code> object. The * <code>DocumentType</code> interface in the DOM Core provides an interface * to the list of entities that are defined for the document, and little * else because the effect of namespaces and the various XML schema efforts * on DTD representation are not clearly understood as of this writing. * <p>DOM Level 3 doesn't support editing <code>DocumentType</code> nodes. * <code>DocumentType</code> nodes are read-only. * <p>See also the <a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>Document Object Model (DOM) Level 3 Core Specification</a>. */
public interface DocumentType extends Node {
The name of DTD; i.e., the name immediately following the DOCTYPE keyword.
/** * The name of DTD; i.e., the name immediately following the * <code>DOCTYPE</code> keyword. */
public String getName();
A NamedNodeMap containing the general entities, both external and internal, declared in the DTD. Parameter entities are not contained. Duplicates are discarded. For example in:
<!DOCTYPE
ex SYSTEM "ex.dtd" [ <!ENTITY foo "foo"> <!ENTITY bar
"bar"> <!ENTITY bar "bar2"> <!ENTITY % baz "baz">
]> <ex/>
the interface provides access to foo and the first declaration of bar but not the second declaration of bar or baz. Every node in this map also implements the Entity interface.
The DOM Level 2 does not support editing entities, therefore entities cannot be altered in any way.
/** * A <code>NamedNodeMap</code> containing the general entities, both * external and internal, declared in the DTD. Parameter entities are * not contained. Duplicates are discarded. For example in: * <pre>&lt;!DOCTYPE * ex SYSTEM "ex.dtd" [ &lt;!ENTITY foo "foo"&gt; &lt;!ENTITY bar * "bar"&gt; &lt;!ENTITY bar "bar2"&gt; &lt;!ENTITY % baz "baz"&gt; * ]&gt; &lt;ex/&gt;</pre> * the interface provides access to <code>foo</code> * and the first declaration of <code>bar</code> but not the second * declaration of <code>bar</code> or <code>baz</code>. Every node in * this map also implements the <code>Entity</code> interface. * <br>The DOM Level 2 does not support editing entities, therefore * <code>entities</code> cannot be altered in any way. */
public NamedNodeMap getEntities();
A NamedNodeMap containing the notations declared in the DTD. Duplicates are discarded. Every node in this map also implements the Notation interface.
The DOM Level 2 does not support editing notations, therefore notations cannot be altered in any way.
/** * A <code>NamedNodeMap</code> containing the notations declared in the * DTD. Duplicates are discarded. Every node in this map also implements * the <code>Notation</code> interface. * <br>The DOM Level 2 does not support editing notations, therefore * <code>notations</code> cannot be altered in any way. */
public NamedNodeMap getNotations();
The public identifier of the external subset.
Since:1.4, DOM Level 2
/** * The public identifier of the external subset. * @since 1.4, DOM Level 2 */
public String getPublicId();
The system identifier of the external subset. This may be an absolute URI or not.
Since:1.4, DOM Level 2
/** * The system identifier of the external subset. This may be an absolute * URI or not. * @since 1.4, DOM Level 2 */
public String getSystemId();
The internal subset as a string, or null if there is none. This is does not contain the delimiting square brackets.

Note: The actual content returned depends on how much information is available to the implementation. This may vary depending on various parameters, including the XML processor used to build the document.

Since:1.4, DOM Level 2
/** * The internal subset as a string, or <code>null</code> if there is none. * This is does not contain the delimiting square brackets. * <p ><b>Note:</b> The actual content returned depends on how much * information is available to the implementation. This may vary * depending on various parameters, including the XML processor used to * build the document. * @since 1.4, DOM Level 2 */
public String getInternalSubset(); }