blob: c046b029f28b72264d85fd0eb61f3f4547794eaf [file] [log] [blame]
/*
* 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;
/**
* The <code>ASObject</code> interface is analogous to a <code>Node</code> in
* , e.g., an element declaration.
* <p>Opaque.
* <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 ASObject {
// ASObjectType
/**
* The node is an <code>ASElementDeclaration</code>.
*/
public static final short AS_ELEMENT_DECLARATION = 1;
/**
* The node is an <code>ASAttributeDeclaration</code>.
*/
public static final short AS_ATTRIBUTE_DECLARATION = 2;
/**
* The node is a <code>ASNotationDeclaration</code>.
*/
public static final short AS_NOTATION_DECLARATION = 3;
/**
* The node is an <code>ASEntityDeclaration</code>.
*/
public static final short AS_ENTITY_DECLARATION = 4;
/**
* The node is a <code>ASContentModel</code>.
*/
public static final short AS_CONTENTMODEL = 5;
/**
* The node is a <code>ASModel</code>.
*/
public static final short AS_MODEL = 6;
/**
* A code representing the underlying object as defined above.
*/
public short getAsNodeType();
/**
* The <code>ASModel</code> object associated with this
* <code>ASObject</code>. For a node of type <code>AS_MODEL</code>, this
* is <code>null</code>.
*/
public ASModel getOwnerASModel();
/**
* The <code>ASModel</code> object associated with this
* <code>ASObject</code>. For a node of type <code>AS_MODEL</code>, this
* is <code>null</code>.
*/
public void setOwnerASModel(ASModel ownerASModel);
/**
* The <code>name</code> of this <code>ASObject</code> depending on the
* <code>ASObject</code> type.
*/
public String getNodeName();
/**
* The <code>name</code> of this <code>ASObject</code> depending on the
* <code>ASObject</code> type.
*/
public void setNodeName(String nodeName);
/**
* The namespace prefix of this node, or <code>null</code> if it is
* unspecified.
*/
public String getPrefix();
/**
* The namespace prefix of this node, or <code>null</code> if it is
* unspecified.
*/
public void setPrefix(String prefix);
/**
* Returns the local part of the qualified name of this
* <code>ASObject</code>.
*/
public String getLocalName();
/**
* Returns the local part of the qualified name of this
* <code>ASObject</code>.
*/
public void setLocalName(String localName);
/**
* The namespace URI of this node, or <code>null</code> if it is
* unspecified. defines how a namespace URI is attached to schema
* components.
*/
public String getNamespaceURI();
/**
* The namespace URI of this node, or <code>null</code> if it is
* unspecified. defines how a namespace URI is attached to schema
* components.
*/
public void setNamespaceURI(String namespaceURI);
/**
* Creates a copy of this <code>ASObject</code>. See text for
* <code>cloneNode</code> off of <code>Node</code> but substitute AS
* functionality.
* @param deep Setting the <code>deep</code> flag on, causes the whole
* subtree to be duplicated. Setting it to <code>false</code> only
* duplicates its immediate child nodes.
* @return Cloned <code>ASObject</code>.
*/
public ASObject cloneASObject(boolean deep);
}