/*
* Copyright (c) 2001 World Wide Web Consortium,
* (Massachusetts Institute of Technology, Institut National de
* Recherche en Informatique et en Automatique, Keio University). All
* Rights Reserved. This program is distributed under the W3C's Software
* Intellectual Property License. This program 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 W3C License http://www.w3.org/Consortium/Legal/ for more details.
*/
package com.sun.org.apache.xerces.internal.dom3.as;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.w3c.dom.Attr;
/**
* @deprecated
* This interface extends the Element
interface with additional
* methods for guided document editing. An object implementing this
* interface must also implement NodeEditAS interface.
*
See also the Document Object Model (DOM) Level 3 Abstract Schemas and Load
and Save Specification.
*/
public interface ElementEditAS extends NodeEditAS {
/**
* The list of qualified element names defined in the abstract schema.
*/
public NodeList getDefinedElementTypes();
/**
* Determines element content type.
* @return Constant for one of EMPTY_CONTENTTYPE, ANY_CONTENTTYPE,
* MIXED_CONTENTTYPE, ELEMENTS_CONTENTTYPE.
*/
public short contentType();
/**
* Determines if the value for specified attribute can be set.
* @param attrname Name of attribute.
* @param attrval Value to be assigned to the attribute.
* @return true
if no reason it can't be done;
* false
if it can't be done.
*/
public boolean canSetAttribute(String attrname,
String attrval);
/**
* Determines if an attribute node can be added with respect to the
* validity check level.This is an attribute node, there is no need for
* canSetAttributreNodeNS!
* @param attrNode Node
in which the attribute can possibly
* be set.
* @return true
if no reason it can't be done;
* false
if it can't be done.
*/
public boolean canSetAttributeNode(Attr attrNode);
/**
* Determines if the attribute with given namespace and qualified name can
* be created if not already present in the attribute list of the
* element. If the attribute with same qualified name and namespaceURI
* is already present in the elements attribute list it tests for the
* value of the attribute and its prefix to the new value. See DOM core
* setAttributeNS
.
* @param name Qualified name of attribute.
* @param attrval Value to be assigned to the attribute.
* @param namespaceURI namespaceURI
of namespace.
* @return true
if no reason it can't be done;
* false
if it can't be done.
*/
public boolean canSetAttributeNS(String name,
String attrval,
String namespaceURI);
/**
* Verifies if an attribute by the given name can be removed.
* @param attrname Name of attribute.
* @return true
if no reason it can't be done;
* false
if it can't be done.
*/
public boolean canRemoveAttribute(String attrname);
/**
* Verifies if an attribute by the given local name and namespace can be
* removed.
* @param attrname Local name of the attribute to be removed.
* @param namespaceURI The namespace URI of the attribute to remove.
* @return true
if no reason it can't be done;
* false
if it can't be done.
*/
public boolean canRemoveAttributeNS(String attrname,
String namespaceURI);
/**
* Determines if an attribute node can be removed.
* @param attrNode The Attr
node to remove from the
* attribute list.
* @return true
if no reason it can't be done;
* false
if it can't be done.
*/
public boolean canRemoveAttributeNode(Node attrNode);
/**
* Returns an NodeList
containing the possible
* Element
names that can appear as children of this type
* of element.
* @return List of possible children element types of this element.
*/
public NodeList getChildElements();
/**
* Returns an NodeList
containing the possible
* Element
names that can appear as a parent of this type
* of element.
* @return List of possible parent element types of this element.
*/
public NodeList getParentElements();
/**
* Returns an NodeList
containing all the possible
* Attr
s that can appear with this type of element.
* @return List of possible attributes of this element.
*/
public NodeList getAttributeList();
/**
* Determines if this element is defined in the currently active AS.
* @param elemTypeName Name of element.
* @return A boolean that is true
if the element is defined,
* false
otherwise.
*/
public boolean isElementDefined(String elemTypeName);
/**
* Determines if this element in this namespace is defined in the
* currently active AS.
* @param elemTypeName Name of element.
* @param namespaceURI namespaceURI
of namespace.
* @param name Qualified name of namespace. This is for sub-elements.
* @return A boolean that is true
if the element is defined,
* false
otherwise.
*/
public boolean isElementDefinedNS(String elemTypeName,
String namespaceURI,
String name);
}