KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > sun > org > apache > xerces > internal > impl > xs > psvi > XSModel


1 /*
2  * The Apache Software License, Version 1.1
3  *
4  *
5  * Copyright (c) 2001, 2002 The Apache Software Foundation. All rights
6  * reserved.
7  *
8  * Redistribution and use in source and binary forms, with or without
9  * modification, are permitted provided that the following conditions
10  * are met:
11  *
12  * 1. Redistributions of source code must retain the above copyright
13  * notice, this list of conditions and the following disclaimer.
14  *
15  * 2. Redistributions in binary form must reproduce the above copyright
16  * notice, this list of conditions and the following disclaimer in
17  * the documentation and/or other materials provided with the
18  * distribution.
19  *
20  * 3. The end-user documentation included with the redistribution,
21  * if any, must include the following acknowledgment:
22  * "This product includes software developed by the
23  * Apache Software Foundation (http://www.apache.org/)."
24  * Alternately, this acknowledgment may appear in the software itself,
25  * if and wherever such third-party acknowledgments normally appear.
26  *
27  * 4. The names "Xerces" and "Apache Software Foundation" must
28  * not be used to endorse or promote products derived from this
29  * software without prior written permission. For written
30  * permission, please contact apache@apache.org.
31  *
32  * 5. Products derived from this software may not be called "Apache",
33  * nor may "Apache" appear in their name, without prior written
34  * permission of the Apache Software Foundation.
35  *
36  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
37  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
38  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
39  * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
40  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
41  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
42  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
43  * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
44  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
45  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
46  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
47  * SUCH DAMAGE.
48  * ====================================================================
49  *
50  * This software consists of voluntary contributions made by many
51  * individuals on behalf of the Apache Software Foundation and was
52  * originally based on software copyright (c) 2001, International
53  * Business Machines, Inc., http://www.apache.org. For more
54  * information on the Apache Software Foundation, please see
55  * <http://www.apache.org/>.
56  */

57
58 package com.sun.org.apache.xerces.internal.impl.xs.psvi;
59
60 /**
61  * This interface represents an XML Schema.
62  * The interface may be updated or replaced.
63  */

64 public interface XSModel {
65     /**
66      * Convenience method. Returns a list of all namespaces that belong to
67      * this schema. The value <code>null</code> is not a valid namespace
68      * name, but if there are components that don't have a target namespace,
69      * <code>null</code> is included in this list.
70      */

71     public StringList getNamespaces();
72
73     /**
74      * A set of namespace schema information information items ( of type
75      * <code>XSNamespaceItem</code>), one for each namespace name which
76      * appears as the target namespace of any schema component in the schema
77      * used for that assessment, and one for absent if any schema component
78      * in the schema had no target namespace. For more information see
79      * schema information.
80      */

81     public XSNamespaceItemList getNamespaceItems();
82
83     /**
84      * Returns a list of top-level components, i.e. element declarations,
85      * attribute declarations, etc.
86      * @param objectType The type of the declaration, i.e.
87      * <code>ELEMENT_DECLARATION</code>. Note that
88      * <code>XSTypeDefinition.SIMPLE_TYPE</code> and
89      * <code>XSTypeDefinition.COMPLEX_TYPE</code> can also be used as the
90      * <code>objectType</code> to retrieve only complex types or simple
91      * types, instead of all types.
92      * @return A list of top-level definitions of the specified type in
93      * <code>objectType</code> or <code>null</code>.
94      */

95     public XSNamedMap getComponents(short objectType);
96
97     /**
98      * Convenience method. Returns a list of top-level component declarations
99      * that are defined within the specified namespace, i.e. element
100      * declarations, attribute declarations, etc.
101      * @param objectType The type of the declaration, i.e.
102      * <code>ELEMENT_DECLARATION</code>.
103      * @param namespace The namespace to which declaration belong or
104      * <code>null</code> (for components with no target namespace).
105      * @return A list of top-level definitions of the specified type in
106      * <code>objectType</code> and defined in the specified
107      * <code>namespace</code> or <code>null</code>.
108      */

109     public XSNamedMap getComponentsByNamespace(short objectType,
110                                                String JavaDoc namespace);
111
112     /**
113      * [annotations]: a set of annotations.
114      */

115     public XSObjectList getAnnotations();
116
117     /**
118      * Convenience method. Returns a top-level element declaration.
119      * @param name The name of the declaration.
120      * @param namespace The namespace of the declaration, otherwise null.
121      * @return A top-level element declaration or null if such declaration
122      * does not exist.
123      */

124     public XSElementDeclaration getElementDeclaration(String JavaDoc name,
125                                                       String JavaDoc namespace);
126
127     /**
128      * Convenience method. Returns a top-level attribute declaration.
129      * @param name The name of the declaration.
130      * @param namespace The namespace of the declaration, otherwise null.
131      * @return A top-level attribute declaration or null if such declaration
132      * does not exist.
133      */

134     public XSAttributeDeclaration getAttributeDeclaration(String JavaDoc name,
135                                                           String JavaDoc namespace);
136
137     /**
138      * Convenience method. Returns a top-level simple or complex type
139      * definition.
140      * @param name The name of the definition.
141      * @param namespace The namespace of the declaration, otherwise null.
142      * @return An <code>XSTypeDefinition</code> or null if such definition
143      * does not exist.
144      */

145     public XSTypeDefinition getTypeDefinition(String JavaDoc name,
146                                               String JavaDoc namespace);
147
148     /**
149      * Convenience method. Returns a top-level attribute group definition.
150      * @param name The name of the definition.
151      * @param namespace The namespace of the definition, otherwise null.
152      * @return A top-level attribute group definition or null if such
153      * definition does not exist.
154      */

155     public XSAttributeGroupDefinition getAttributeGroup(String JavaDoc name,
156                                                         String JavaDoc namespace);
157
158     /**
159      * Convenience method. Returns a top-level model group definition.
160      * @param name The name of the definition.
161      * @param namespace The namespace of the definition, otherwise null.
162      * @return A top-level model group definition definition or null if such
163      * definition does not exist.
164      */

165     public XSModelGroupDefinition getModelGroupDefinition(String JavaDoc name,
166                                                           String JavaDoc namespace);
167
168     /**
169      * Convenience method. Returns a top-level notation declaration.
170      * @param name The name of the declaration.
171      * @param namespace The namespace of the declaration, otherwise null.
172      * @return A top-level notation declaration or null if such declaration
173      * does not exist.
174      */

175     public XSNotationDeclaration getNotationDeclaration(String JavaDoc name,
176                                                         String JavaDoc namespace);
177
178 }
179
Popular Tags