/* * The Apache Software License, Version 1.1 * * * Copyright (c) 2001, 2002 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 "Xerces" 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, International * Business Machines, Inc., http://www.apache.org. For more * information on the Apache Software Foundation, please see * . */ package com.sun.org.apache.xerces.internal.dom; import java.util.Vector; import org.w3c.dom.DOMException; import com.sun.org.apache.xerces.internal.dom3.as.*; import com.sun.org.apache.xerces.internal.impl.xs.SchemaGrammar; /** * To begin with, an abstract schema is a generic structure that could * contain both internal and external subsets. An ASModel is an * abstract object that could map to a DTD , an XML Schema , a database * schema, etc. An ASModel could represent either an internal * or an external subset; hence an abstract schema could be composed of an * ASModel representing the internal subset and an * ASModel representing the external subset. Note that the * ASModel representing the external subset could consult the * ASModel representing the internal subset. Furthermore, the * ASModel representing the internal subset could be set to * null by the setInternalAS method as a mechanism for * "removal". In addition, only one ASModel representing the * external subset can be specified as "active" and it is possible that none * are "active". Finally, the ASModel contains the factory * methods needed to create a various types of ASObjects like * ASElementDeclaration, ASAttributeDeclaration, * etc. *

See also the * Document Object Model (DOM) Level 3 Abstract Schemas and Load and Save Specification. * @deprecated * @author Pavani Mukthipudi * @author Neil Graham * @version $Id: ASModelImpl.java,v 1.5 2003/03/24 20:27:12 elena Exp $ */ public class ASModelImpl implements ASModel { // // Data // boolean fNamespaceAware = true; // conceptually, an ASModel may contain grammar information and/or // other ASModels. These two fields divide that function. protected Vector fASModels; protected SchemaGrammar fGrammar = null; // // Constructors // public ASModelImpl() { fASModels = new Vector(); } public ASModelImpl(boolean isNamespaceAware) { fASModels = new Vector(); fNamespaceAware = isNamespaceAware; } // // ASObject methods // /** * A code representing the underlying object as defined above. */ public short getAsNodeType() { String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "NOT_SUPPORTED_ERR", null); throw new DOMException(DOMException.NOT_SUPPORTED_ERR, msg); } /** * The ASModel object associated with this * ASObject. For a node of type AS_MODEL, this * is null. */ public ASModel getOwnerASModel() { String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "NOT_SUPPORTED_ERR", null); throw new DOMException(DOMException.NOT_SUPPORTED_ERR, msg); } /** * The ASModel object associated with this * ASObject. For a node of type AS_MODEL, this * is null. */ public void setOwnerASModel(ASModel ownerASModel) { String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "NOT_SUPPORTED_ERR", null); throw new DOMException(DOMException.NOT_SUPPORTED_ERR, msg); } /** * The name of this ASObject depending on the * ASObject type. */ public String getNodeName() { String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "NOT_SUPPORTED_ERR", null); throw new DOMException(DOMException.NOT_SUPPORTED_ERR, msg); } /** * The name of this ASObject depending on the * ASObject type. */ public void setNodeName(String nodeName) { String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "NOT_SUPPORTED_ERR", null); throw new DOMException(DOMException.NOT_SUPPORTED_ERR, msg); } /** * The namespace prefix of this node, or null if it is * unspecified. */ public String getPrefix() { String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "NOT_SUPPORTED_ERR", null); throw new DOMException(DOMException.NOT_SUPPORTED_ERR, msg); } /** * The namespace prefix of this node, or null if it is * unspecified. */ public void setPrefix(String prefix) { String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "NOT_SUPPORTED_ERR", null); throw new DOMException(DOMException.NOT_SUPPORTED_ERR, msg); } /** * Returns the local part of the qualified name of this * ASObject. */ public String getLocalName() { String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "NOT_SUPPORTED_ERR", null); throw new DOMException(DOMException.NOT_SUPPORTED_ERR, msg); } /** * Returns the local part of the qualified name of this * ASObject. */ public void setLocalName(String localName) { String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "NOT_SUPPORTED_ERR", null); throw new DOMException(DOMException.NOT_SUPPORTED_ERR, msg); } /** * The namespace URI of this node, or null if it is * unspecified. defines how a namespace URI is attached to schema * components. */ public String getNamespaceURI() { String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "NOT_SUPPORTED_ERR", null); throw new DOMException(DOMException.NOT_SUPPORTED_ERR, msg); } /** * The namespace URI of this node, or null if it is * unspecified. defines how a namespace URI is attached to schema * components. */ public void setNamespaceURI(String namespaceURI) { String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "NOT_SUPPORTED_ERR", null); throw new DOMException(DOMException.NOT_SUPPORTED_ERR, msg); } /** * Creates a copy of this ASObject. See text for * cloneNode off of Node but substitute AS * functionality. * @param deep Setting the deep flag on, causes the whole * subtree to be duplicated. Setting it to false only * duplicates its immediate child nodes. * @return Cloned ASObject. */ public ASObject cloneASObject(boolean deep) { String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "NOT_SUPPORTED_ERR", null); throw new DOMException(DOMException.NOT_SUPPORTED_ERR, msg); } // // ASModel methods // /** * true if this ASModel defines the document * structure in terms of namespaces and local names ; false * if the document structure is defined only in terms of * QNames. */ public boolean getIsNamespaceAware() { return fNamespaceAware; } /** * 0 if used internally, 1 if used externally, 2 if not all. An exception * will be raised if it is incompatibly shared or in use as an internal * subset. */ public short getUsageLocation() { String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "NOT_SUPPORTED_ERR", null); throw new DOMException(DOMException.NOT_SUPPORTED_ERR, msg); } /** * The URI reference. */ public String getAsLocation() { String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "NOT_SUPPORTED_ERR", null); throw new DOMException(DOMException.NOT_SUPPORTED_ERR, msg); } /** * The URI reference. */ public void setAsLocation(String asLocation) { String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "NOT_SUPPORTED_ERR", null); throw new DOMException(DOMException.NOT_SUPPORTED_ERR, msg); } /** * The hint to locating an ASModel. */ public String getAsHint() { String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "NOT_SUPPORTED_ERR", null); throw new DOMException(DOMException.NOT_SUPPORTED_ERR, msg); } /** * The hint to locating an ASModel. */ public void setAsHint(String asHint) { String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "NOT_SUPPORTED_ERR", null); throw new DOMException(DOMException.NOT_SUPPORTED_ERR, msg); } /** * If usage is EXTERNAL_SUBSET or NOT_USED, and the * ASModel is simply a container of other ASModels. */ public boolean getContainer() { return (fGrammar != null); } /** * Instead of returning an all-in-one ASObject with * ASModel methods, have discernible top-level/"global" * element declarations. If one attempts to add, set, or remove a node * type other than the intended one, a hierarchy exception (or * equivalent is thrown). */ public ASNamedObjectMap getElementDeclarations() { String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "NOT_SUPPORTED_ERR", null); throw new DOMException(DOMException.NOT_SUPPORTED_ERR, msg); } /** * Instead of returning an all-in-one ASObject with * ASModel methods, have discernible top-level/"global" * attribute declarations. If one attempts to add, set, or remove a node * type other than the intended one, a hierarchy exception (or * equivalent is thrown). */ public ASNamedObjectMap getAttributeDeclarations() { String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "NOT_SUPPORTED_ERR", null); throw new DOMException(DOMException.NOT_SUPPORTED_ERR, msg); } /** * Instead of returning an all-in-one ASObject with * ASModel methods, have discernible top-level/"global" * notation declarations. If one attempts to add, set, or remove a node * type other than the intended one, a hierarchy exception (or * equivalent is thrown). */ public ASNamedObjectMap getNotationDeclarations() { String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "NOT_SUPPORTED_ERR", null); throw new DOMException(DOMException.NOT_SUPPORTED_ERR, msg); } /** * Instead of returning an all-in-one ASObject with * ASModel methods, have discernible top-level/"global" * entity declarations. If one attempts to add, set, or remove a node * type other than the intended one, a hierarchy exception (or * equivalent is thrown). */ public ASNamedObjectMap getEntityDeclarations() { String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "NOT_SUPPORTED_ERR", null); throw new DOMException(DOMException.NOT_SUPPORTED_ERR, msg); } /** * Instead of returning an all-in-one ASObject with * ASModel methods, have discernible top-level/"global * content model declarations. If one attempts to add, set, or remove a * node type other than the intended one, a hierarchy exception (or * equivalent is thrown). */ public ASNamedObjectMap getContentModelDeclarations() { String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "NOT_SUPPORTED_ERR", null); throw new DOMException(DOMException.NOT_SUPPORTED_ERR, msg); } /** * This method will allow the nesting or "importation" of ASModels. * @param abstractSchema ASModel to be set. Subsequent calls will nest * the ASModels within the specified ownerASModel. */ public void addASModel(ASModel abstractSchema) { fASModels.addElement(abstractSchema); } /** * To retrieve a list of nested ASModels without reference to names. * @return A list of ASModels. */ public ASObjectList getASModels() { String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "NOT_SUPPORTED_ERR", null); throw new DOMException(DOMException.NOT_SUPPORTED_ERR, msg); } /** * Removes only the specified ASModel from the list of * ASModels. * @param as AS to be removed. */ public void removeAS(ASModel as) { fASModels.removeElement(as); } /** * Determines if an ASModel itself is valid, i.e., confirming * that it's well-formed and valid per its own formal grammar. * @return true if the ASModel is valid, * false otherwise. */ public boolean validate() { String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "NOT_SUPPORTED_ERR", null); throw new DOMException(DOMException.NOT_SUPPORTED_ERR, msg); } /** * Imports ASObject into ASModel. * @param asobject ASObject to be imported. */ public void importASObject(ASObject asobject) { String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "NOT_SUPPORTED_ERR", null); throw new DOMException(DOMException.NOT_SUPPORTED_ERR, msg); } /** * Inserts ASObject into ASModel. * @param asobject ASObject to be inserted. */ public void insertASObject(ASObject asobject) { String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "NOT_SUPPORTED_ERR", null); throw new DOMException(DOMException.NOT_SUPPORTED_ERR, msg); } /** * Creates an element declaration for the element type specified. * @param namespaceURI The namespace URI of the element type * being declared. * @param name The name of the element. The format of the name could be * an NCName as defined by XML Namespaces or a Name as defined by XML * 1.0; it's ASModel-dependent. * @return A new ASElementDeclaration object with * name attribute set to tagname and * namespaceURI set to systemId. Other * attributes of the element declaration are set through * ASElementDeclaration interface methods. * @exception DOMException * INVALID_CHARACTER_ERR: Raised if the specified name contains an * illegal character. */ public ASElementDeclaration createASElementDeclaration(String namespaceURI, String name) throws DOMException { String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "NOT_SUPPORTED_ERR", null); throw new DOMException(DOMException.NOT_SUPPORTED_ERR, msg); } /** * Creates an attribute declaration. * @param namespaceURI The namespace URI of the attribute being declared. * @param name The name of the attribute. The format of the name could be * an NCName as defined by XML Namespaces or a Name as defined by XML * 1.0; it's ASModel-dependent. * @return A new ASAttributeDeclaration object with * appropriate attributes set by input parameters. * @exception DOMException * INVALID_CHARACTER_ERR: Raised if the input name * parameter contains an illegal character. */ public ASAttributeDeclaration createASAttributeDeclaration(String namespaceURI, String name) throws DOMException { String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "NOT_SUPPORTED_ERR", null); throw new DOMException(DOMException.NOT_SUPPORTED_ERR, msg); } /** * Creates a new notation declaration. * @param namespaceURI The namespace URI of the notation being declared. * @param name The name of the notation. The format of the name could be * an NCName as defined by XML Namespaces or a Name as defined by XML * 1.0; it's ASModel-dependent. * @param systemId The system identifier for the notation declaration. * @param publicId The public identifier for the notation declaration. * @return A new ASNotationDeclaration object with * notationName attribute set to name and * publicId and systemId set to the * corresponding fields. * @exception DOMException * INVALID_CHARACTER_ERR: Raised if the specified name contains an * illegal character. */ public ASNotationDeclaration createASNotationDeclaration(String namespaceURI, String name, String systemId, String publicId) throws DOMException { String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "NOT_SUPPORTED_ERR", null); throw new DOMException(DOMException.NOT_SUPPORTED_ERR, msg); } /** * Creates an ASEntityDeclaration. * @param name The name of the entity being declared. * @return A new ASEntityDeclaration object with * entityName attribute set to name. * @exception DOMException * INVALID_CHARACTER_ERR: Raised if the specified name contains an * illegal character. */ public ASEntityDeclaration createASEntityDeclaration(String name) throws DOMException { String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "NOT_SUPPORTED_ERR", null); throw new DOMException(DOMException.NOT_SUPPORTED_ERR, msg); } /** * Creates an object which describes part of an * ASElementDeclaration's content model. * @param minOccurs The minimum occurrence for the subModels of this * ASContentModel. * @param maxOccurs The maximum occurrence for the subModels of this * ASContentModel. * @param operator operator of type AS_CHOICE, * AS_SEQUENCE, AS_ALL or * AS_NONE. * @return A new ASContentModel object. * @exception DOMASException * A DOMASException, e.g., minOccurs > maxOccurs. */ public ASContentModel createASContentModel(int minOccurs, int maxOccurs, short operator) throws DOMASException { String msg = DOMMessageFormatter.formatMessage(DOMMessageFormatter.DOM_DOMAIN, "NOT_SUPPORTED_ERR", null); throw new DOMException(DOMException.NOT_SUPPORTED_ERR, msg); } // convenience methods public SchemaGrammar getGrammar() { return fGrammar; } public void setGrammar(SchemaGrammar grammar) { fGrammar = grammar; } public Vector getInternalASModels() { return fASModels; } }