/* * 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 org.apache.xerces.dom3.as; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.w3c.dom.Attr; /** * @deprecated * This interface extends the <code>Element</code> interface with additional * methods for guided document editing. An object implementing this * interface must also implement NodeEditAS interface. * <p>See also the <a href='http://www.w3.org/TR/2001/WD-DOM-Level-3-ASLS-20011025'>Document Object Model (DOM) Level 3 Abstract Schemas and Load and Save Specification</a>. */ 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 <code>true</code> if no reason it can't be done; * <code>false</code> 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 <code>Node</code> in which the attribute can possibly * be set. * @return <code>true</code> if no reason it can't be done; * <code>false</code> 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 * <code>setAttributeNS</code>. * @param name Qualified name of attribute. * @param attrval Value to be assigned to the attribute. * @param namespaceURI <code>namespaceURI</code> of namespace. * @return <code>true</code> if no reason it can't be done; * <code>false</code> 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 <code>true</code> if no reason it can't be done; * <code>false</code> 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 <code>true</code> if no reason it can't be done; * <code>false</code> if it can't be done. */ public boolean canRemoveAttributeNS(String attrname, String namespaceURI); /** * Determines if an attribute node can be removed. * @param attrNode The <code>Attr</code> node to remove from the * attribute list. * @return <code>true</code> if no reason it can't be done; * <code>false</code> if it can't be done. */ public boolean canRemoveAttributeNode(Node attrNode); /** * Returns an <code>NodeList</code> containing the possible * <code>Element</code> 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 <code>NodeList</code> containing the possible * <code>Element</code> 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 <code>NodeList</code> containing all the possible * <code>Attr</code>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 <code>true</code> if the element is defined, * <code>false</code> 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 <code>namespaceURI</code> of namespace. * @param name Qualified name of namespace. This is for sub-elements. * @return A boolean that is <code>true</code> if the element is defined, * <code>false</code> otherwise. */ public boolean isElementDefinedNS(String elemTypeName, String namespaceURI, String name); }