KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > hivemind > schema > Schema


1 // Copyright 2004, 2005 The Apache Software Foundation
2
//
3
// Licensed under the Apache License, Version 2.0 (the "License");
4
// you may not use this file except in compliance with the License.
5
// You may obtain a copy of the License at
6
//
7
// http://www.apache.org/licenses/LICENSE-2.0
8
//
9
// Unless required by applicable law or agreed to in writing, software
10
// distributed under the License is distributed on an "AS IS" BASIS,
11
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
// See the License for the specific language governing permissions and
13
// limitations under the License.
14

15 package org.apache.hivemind.schema;
16
17 import java.util.List JavaDoc;
18
19 import org.apache.hivemind.Locatable;
20 import org.apache.hivemind.parse.AnnotationHolder;
21
22 /**
23  * An object which may contain a model, used to identify the form of XML content allowed within some
24  * other, containing element.
25  * <p>
26  * This is very much provisional; in the future will be more control for validation (i.e,
27  * controlling the number of occurances), and support for analogs of W3C SChema sequence and choice.
28  * The excess flexibility here forces some validation into element objects (the objects created from
29  * the {@link org.apache.hivemind.schema.Rule}s within the
30  * {@link org.apache.hivemind.schema.ElementModel}s).
31  *
32  * @author Howard Lewis Ship
33  */

34 public interface Schema extends AnnotationHolder, Locatable
35 {
36     /**
37      * Returns the (unqualified) id of this schema.
38      *
39      * @since 1.1
40      */

41     public String JavaDoc getId();
42
43     /**
44      * Returns a List of {@link ElementModel}, identifing the elements which may be enclosed by the
45      * modeled element.
46      * <p>
47      * The returned list is unmodifiabled and may be empty, but won't be null.
48      */

49     public List JavaDoc getElementModel();
50
51     /**
52      * Returns true if Elements conforming to this Schema can be indexed using a key. For this to be
53      * true one {@link #getElementModel() top-level ElementModel} must define a non-null
54      * {@link ElementModel#getKeyAttribute() key attribute} or a unique attribute.
55      *
56      * @since 1.1
57      */

58     public boolean canInstancesBeKeyed();
59
60     /**
61      * Returns true if the schema is visible to the specified module, false otherwise.
62      *
63      * @since 1.1
64      */

65     public boolean visibleToModule(String JavaDoc moduleId);
66     
67     /**
68      *
69      * Return the Module in which the Schema was defined.
70      *
71      * @since 1.1
72      *
73      */

74     
75     public String JavaDoc getDefiningModuleId();
76     
77     public String JavaDoc getRootElementClassName();
78     
79     public String JavaDoc getFullyQualifiedId();
80     
81 }
Popular Tags