diff -r 16ba58282d11 -r a754d69d5e60 jaxp/src/share/classes/org/w3c/dom/DOMImplementation.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/jaxp/src/share/classes/org/w3c/dom/DOMImplementation.java Sun Mar 04 11:55:34 2012 -0800 @@ -0,0 +1,165 @@ +/* + * 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; + +/** + * The DOMImplementation interface provides a number of methods + * for performing operations that are independent of any particular instance + * of the document object model. + *

See also the Document Object Model (DOM) Level 3 Core Specification. + */ +public interface DOMImplementation { + /** + * Test if the DOM implementation implements a specific feature and + * version, as specified in DOM Features. + * @param feature The name of the feature to test. + * @param version This is the version number of the feature to test. + * @return true if the feature is implemented in the + * specified version, false otherwise. + */ + public boolean hasFeature(String feature, + String version); + + /** + * Creates an empty DocumentType node. Entity declarations + * and notations are not made available. Entity reference expansions and + * default attribute additions do not occur.. + * @param qualifiedName The qualified name of the document type to be + * created. + * @param publicId The external subset public identifier. + * @param systemId The external subset system identifier. + * @return A new DocumentType node with + * Node.ownerDocument set to null. + * @exception DOMException + * INVALID_CHARACTER_ERR: Raised if the specified qualified name is not + * an XML name according to [XML 1.0]. + *
NAMESPACE_ERR: Raised if the qualifiedName is + * malformed. + *
NOT_SUPPORTED_ERR: May be raised if the implementation does not + * support the feature "XML" and the language exposed through the + * Document does not support XML Namespaces (such as [HTML 4.01]). + * @since DOM Level 2 + */ + public DocumentType createDocumentType(String qualifiedName, + String publicId, + String systemId) + throws DOMException; + + /** + * Creates a DOM Document object of the specified type with its document + * element. + *
Note that based on the DocumentType given to create + * the document, the implementation may instantiate specialized + * Document objects that support additional features than + * the "Core", such as "HTML" [DOM Level 2 HTML] + * . On the other hand, setting the DocumentType after the + * document was created makes this very unlikely to happen. + * Alternatively, specialized Document creation methods, + * such as createHTMLDocument [DOM Level 2 HTML] + * , can be used to obtain specific types of Document + * objects. + * @param namespaceURI The namespace URI of the document element to + * create or null. + * @param qualifiedName The qualified name of the document element to be + * created or null. + * @param doctype The type of document to be created or null. + * When doctype is not null, its + * Node.ownerDocument attribute is set to the document + * being created. + * @return A new Document object with its document element. + * If the NamespaceURI, qualifiedName, and + * doctype are null, the returned + * Document is empty with no document element. + * @exception DOMException + * INVALID_CHARACTER_ERR: Raised if the specified qualified name is not + * an XML name according to [XML 1.0]. + *
NAMESPACE_ERR: Raised if the qualifiedName is + * malformed, if the qualifiedName has a prefix and the + * namespaceURI is null, or if the + * qualifiedName is null and the + * namespaceURI is different from null, or + * if the qualifiedName has a prefix that is "xml" and + * the namespaceURI is different from " + * http://www.w3.org/XML/1998/namespace" [XML Namespaces] + * , or if the DOM implementation does not support the + * "XML" feature but a non-null namespace URI was + * provided, since namespaces were defined by XML. + *
WRONG_DOCUMENT_ERR: Raised if doctype has already + * been used with a different document or was created from a different + * implementation. + *
NOT_SUPPORTED_ERR: May be raised if the implementation does not + * support the feature "XML" and the language exposed through the + * Document does not support XML Namespaces (such as [HTML 4.01]). + * @since DOM Level 2 + */ + public Document createDocument(String namespaceURI, + String qualifiedName, + DocumentType doctype) + throws DOMException; + + /** + * This method returns a specialized object which implements the + * specialized APIs of the specified feature and version, as specified + * in DOM Features. The specialized object may also be obtained by using + * binding-specific casting methods but is not necessarily expected to, + * as discussed in . This method also allow the implementation to + * provide specialized objects which do not support the + * DOMImplementation interface. + * @param feature The name of the feature requested. Note that any plus + * sign "+" prepended to the name of the feature will be ignored since + * it is not significant in the context of this method. + * @param version This is the version number of the feature to test. + * @return Returns an object which implements the specialized APIs of + * the specified feature and version, if any, or null if + * there is no object which implements interfaces associated with that + * feature. If the DOMObject returned by this method + * implements the DOMImplementation interface, it must + * delegate to the primary core DOMImplementation and not + * return results inconsistent with the primary core + * DOMImplementation such as hasFeature, + * getFeature, etc. + * @since DOM Level 3 + */ + public Object getFeature(String feature, + String version); + +}