- /*
- * $Id: DocumentEx.java,v 1.1.1.1 2000/11/23 01:53:35 edwingo Exp $
- *
- * The Apache Software License, Version 1.1
- *
- *
- * Copyright (c) 2000 The Apache Software Foundation. All rights
- * reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in
- * the documentation and/or other materials provided with the
- * distribution.
- *
- * 3. The end-user documentation included with the redistribution,
- * if any, must include the following acknowledgment:
- * "This product includes software developed by the
- * Apache Software Foundation (http://www.apache.org/)."
- * Alternately, this acknowledgment may appear in the software itself,
- * if and wherever such third-party acknowledgments normally appear.
- *
- * 4. The names "Crimson" and "Apache Software Foundation" must
- * not be used to endorse or promote products derived from this
- * software without prior written permission. For written
- * permission, please contact apache@apache.org.
- *
- * 5. Products derived from this software may not be called "Apache",
- * nor may "Apache" appear in their name, without prior written
- * permission of the Apache Software Foundation.
- *
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
- * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
- * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
- * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- * ====================================================================
- *
- * This software consists of voluntary contributions made by many
- * individuals on behalf of the Apache Software Foundation and was
- * originally based on software copyright (c) 1999, Sun Microsystems, Inc.,
- * http://www.sun.com. For more information on the Apache Software
- * Foundation, please see <http://www.apache.org/>.
- */
-
- package org.apache.crimson.tree;
-
- import java.util.Locale;
-
- import org.w3c.dom.Document;
- import org.w3c.dom.Node;
-
-
- /**
- * This interface extends the DOM Document model in several useful ways.
- * It supports: <UL>
- *
- * <LI> Application-specialized element creation and document customization
- * at parse time;
- * <LI> Document printing;
- * <LI> The URI with which the document is associated;
- * <LI> Access to elements by their XML "ID" attributes (when the
- * document was constructed with an appropriate XML parser);
- * <LI> Application-level control over the language in which
- * diagnostics are provided (useful for multi-language applications
- * such as servers);
- * <LI> Moving nodes between DOM Documents. (DOM Level 1 only talks
- * about nodes that are coupled to a single DOM document.)
- *
- * </UL>
- *
- *
- * @author David Brownell
- * @version $Revision: 1.1.1.1 $
- */
- public interface DocumentEx extends Document, XmlWritable, ElementFactory
- {
- /**
- * Returns the system ID (a URI) associated with the document,
- * or null if this is unknown.
- */
- public String getSystemId ();
-
-
- /**
- * Assigns the element factory to be used by this document.
- */
- public void setElementFactory (ElementFactory factory);
-
-
- /**
- * Returns the element factory to be used by this document.
- */
- public ElementFactory getElementFactory ();
-
-
- /**
- * Returns the element whose ID is given by the parameter; or null
- * if no such element is known. Element IDs are declared by
- * attributes of type "ID", and are commonly used for internal
- * linking by using attributes of type IDREF or IDREFS to turn
- * XML's hierarchical data structure into a directed graph.
- *
- * <P> Note that DOM itself provides no way to identify which element
- * attributes are declared with the "ID" attribute type. This feature
- * relies on interfaces which may not be publicly exposed, such as
- * XML processors telling a DOM builder about those attributes.
- *
- * @param id The value of the ID attribute which will be matched
- * by any element which is returned.
- * @deprecated As of DOM level 2, replaced by the method
- * Document.getElementById
- */
- // Note: HTML DOM has getElementById() with "Element" return type
- public ElementEx getElementExById (String id);
-
-
- /**
- * Returns the locale to be used for diagnostic messages.
- */
- public Locale getLocale ();
-
-
- /**
- * Assigns the locale to be used for diagnostic messages.
- * Multi-language applications, such as web servers dealing with
- * clients from different locales, need the ability to interact
- * with clients in languages other than the server's default.
- * When a Document is created, its locale is the default
- * locale for the virtual machine.
- *
- * @see #chooseLocale
- */
- public void setLocale (Locale locale);
-
-
- /**
- * Chooses a client locale to use for diagnostics, using the first
- * language specified in the list that is supported by this DOM
- * implementation. That locale is then automatically assigned using <a
- * href="#setLocale(java.util.Locale)">setLocale()</a>. Such a list
- * could be provided by a variety of user preference mechanisms,
- * including the HTTP <em>Accept-Language</em> header field.
- *
- * @see org.apache.crimson.util.MessageCatalog
- *
- * @param languages Array of language specifiers, ordered with the most
- * preferable one at the front. For example, "en-ca" then "fr-ca",
- * followed by "zh_CN". Both RFC 1766 and Java styles are supported.
- * @return The chosen locale, or null.
- */
- public Locale chooseLocale (String languages []);
-
-
- /**
- * Changes the "owner document" of the given node, and all child
- * and associated attribute nodes, to be this document. If the
- * node has a parent, it is first removed from that parent.
- *
- * @param node the node whose "owner" will be changed.
- * @exception DOMException WRONG_DOCUMENT_ERROR when attempting
- * to change the owner for some other DOM implementation<P>
- * HIERARCHY_REQUEST_ERROR when the node is a document, document
- * type, entity, or notation; or when it is an attribute associated
- * with an element whose owner is not being (recursively) changed.
- */
- public void changeNodeOwner (Node node);
- }