/*
* 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;
/**
* @deprecated
* This interface extends a Node
from with additional methods
* for guided document editing. The expectation is that an instance of the
* DOMImplementationAS
interface can be obtained by using
* binding-specific casting methods on an instance of the
* DOMImplementation
interface when the DOM implementation
* supports the feature "AS-DOC
".
*
See also the Document Object Model (DOM) Level 3 Abstract Schemas and Load
and Save Specification.
*/
public interface NodeEditAS {
// ASCheckType
/**
* Check for well-formedness of this node.
*/
public static final short WF_CHECK = 1;
/**
* Check for namespace well-formedness includes WF_CHECK
.
*/
public static final short NS_WF_CHECK = 2;
/**
* Checks for whether this node is partially valid. It includes
* NS_WF_CHECK
.
*/
public static final short PARTIAL_VALIDITY_CHECK = 3;
/**
* Checks for strict validity of the node with respect to active AS which
* by definition includes NS_WF_CHECK
.
*/
public static final short STRICT_VALIDITY_CHECK = 4;
/**
* Determines whether the insertBefore
operation from the
* Node
interface would make this document invalid with
* respect to the currently active AS. Describe "valid" when referring
* to partially completed documents.
* @param newChild Node
to be inserted.
* @param refChild Reference Node
.
* @return true
if no reason it can't be done;
* false
if it can't be done.
*/
public boolean canInsertBefore(Node newChild,
Node refChild);
/**
* Has the same arguments as RemoveChild
.
* @param oldChild Node
to be removed.
* @return true
if no reason it can't be done;
* false
if it can't be done.
*/
public boolean canRemoveChild(Node oldChild);
/**
* Has the same arguments as ReplaceChild
.
* @param newChild New Node
.
* @param oldChild Node
to be replaced.
* @return true
if no reason it can't be done;
* false
if it can't be done.
*/
public boolean canReplaceChild(Node newChild,
Node oldChild);
/**
* Has the same arguments as AppendChild
.
* @param newChild Node
to be appended.
* @return true
if no reason it can't be done;
* false
if it can't be done.
*/
public boolean canAppendChild(Node newChild);
/**
* Determines if the Node is valid relative to currently active AS. It
* doesn't normalize before checking if the document is valid. To do so,
* one would need to explicitly call a normalize method.
* @param deep Setting the deep
flag on causes the
* isNodeValid
method to check for the whole subtree of
* the current node for validity. Setting it to false
* only checks the current node and its immediate child nodes. The
* validate
method on the DocumentAS
* interface, however, checks to determine whether the entire document
* is valid.
* @param wFValidityCheckLevel Flag to tell at what level validity and
* well-formedness checking is done.
* @return true
if the node is valid/well-formed in the
* current context and check level defined by
* wfValidityCheckLevel
, false
if not.
* @exception DOMASException
* NO_AS_AVAILABLE
: Raised if the
* DocumentEditAS
related to this node does not have any
* active ASModel
and wfValidityCheckLevel
* is set to PARTIAL
or STRICT_VALIDITY_CHECK
* .
*/
public boolean isNodeValid(boolean deep,
short wFValidityCheckLevel)
throws DOMASException;
}