Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: org/apache/hivemind/schema/Schema.java


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;
18  
19  import org.apache.hivemind.Locatable;
20  import org.apache.hivemind.internal.Module;
21  import org.apache.hivemind.parse.AnnotationHolder;
22  
23  /**
24   * An object which may contain a model, used to identify the form of XML content allowed within some
25   * other, containing element.
26   * <p>
27   * This is very much provisional; in the future will be more control for validation (i.e,
28   * controlling the number of occurances), and support for analogs of W3C SChema sequence and choice.
29   * The excess flexibility here forces some validation into element objects (the objects created from
30   * the {@link org.apache.hivemind.schema.Rule}s within the
31   * {@link org.apache.hivemind.schema.ElementModel}s).
32   * 
33   * @author Howard Lewis Ship
34   */
35  public interface Schema extends AnnotationHolder, Locatable
36  {
37      /**
38       * Returns the (unqualified) id of this schema.
39       * 
40       * @since 1.1
41       */
42      public String getId();
43  
44      /**
45       * Returns a List of {@link ElementModel}, identifing the elements which may be enclosed by the
46       * modeled element.
47       * <p>
48       * The returned list is unmodifiabled and may be empty, but won't be null.
49       */
50      public List getElementModel();
51  
52      /**
53       * Returns true if Elements conforming to this Schema can be indexed using a key. For this to be
54       * true every {@link #getElementModel() top-level ElementModel} must define a non-null
55       * {@link ElementModel#getKeyAttribute() key attribute}.
56       * 
57       * @since 1.1
58       */
59      public boolean canInstancesBeKeyed();
60  
61      /**
62       * Returns true if the schema is visible to the specified module, false otherwise.
63       * 
64       * @since 1.1
65       */
66      public boolean visibleToModule(String moduleId);
67      
68      /**
69       * 
70       * Return the Module in which the Schema was defined.
71       * 
72       * @since 1.1
73       * 
74       */
75      
76      public Module getDefiningModule();
77  }