View Javadoc
1   /*
2    * reserved comment block
3    * DO NOT REMOVE OR ALTER!
4    */
5   /*
6    * Copyright 2003,2004 The Apache Software Foundation.
7    *
8    * Licensed under the Apache License, Version 2.0 (the "License");
9    * you may not use this file except in compliance with the License.
10   * You may obtain a copy of the License at
11   *
12   *      http://www.apache.org/licenses/LICENSE-2.0
13   *
14   * Unless required by applicable law or agreed to in writing, software
15   * distributed under the License is distributed on an "AS IS" BASIS,
16   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17   * See the License for the specific language governing permissions and
18   * limitations under the License.
19   */
20  
21  package com.sun.org.apache.xerces.internal.xs;
22  
23  /**
24   * This interface represents the Complex Type Definition schema component.
25   */
26  public interface XSComplexTypeDefinition extends XSTypeDefinition {
27      // Content Model Types
28      /**
29       * Represents an empty content type. A content type with the distinguished
30       * value empty validates elements with no character or element
31       * information item children.
32       */
33      public static final short CONTENTTYPE_EMPTY         = 0;
34      /**
35       * Represents a simple content type. A content type which is simple
36       * validates elements with character-only children.
37       */
38      public static final short CONTENTTYPE_SIMPLE        = 1;
39      /**
40       * Represents an element-only content type. An element-only content type
41       * validates elements with children that conform to the supplied content
42       * model.
43       */
44      public static final short CONTENTTYPE_ELEMENT       = 2;
45      /**
46       * Represents a mixed content type.
47       */
48      public static final short CONTENTTYPE_MIXED         = 3;
49  
50      /**
51       * [derivation method]: either <code>DERIVATION_EXTENSION</code>,
52       * <code>DERIVATION_RESTRICTION</code>, or <code>DERIVATION_NONE</code>
53       * (see <code>XSConstants</code>).
54       */
55      public short getDerivationMethod();
56  
57      /**
58       * [abstract]: a boolean. Complex types for which <code>abstract</code> is
59       * true must not be used as the type definition for the validation of
60       * element information items.
61       */
62      public boolean getAbstract();
63  
64      /**
65       *  A set of attribute uses if it exists, otherwise an empty
66       * <code>XSObjectList</code>.
67       */
68      public XSObjectList getAttributeUses();
69  
70      /**
71       * An attribute wildcard if it exists, otherwise <code>null</code>.
72       */
73      public XSWildcard getAttributeWildcard();
74  
75      /**
76       * [content type]: one of empty (<code>CONTENTTYPE_EMPTY</code>), a simple
77       * type definition (<code>CONTENTTYPE_SIMPLE</code>), mixed (
78       * <code>CONTENTTYPE_MIXED</code>), or element-only (
79       * <code>CONTENTTYPE_ELEMENT</code>).
80       */
81      public short getContentType();
82  
83      /**
84       * A simple type definition corresponding to a simple content model,
85       * otherwise <code>null</code>.
86       */
87      public XSSimpleTypeDefinition getSimpleType();
88  
89      /**
90       * A particle for a mixed or element-only content model, otherwise
91       * <code>null</code>.
92       */
93      public XSParticle getParticle();
94  
95      /**
96       * [prohibited substitutions]: a subset of {extension, restriction}
97       * @param restriction  Extension or restriction constants (see
98       *   <code>XSConstants</code>).
99       * @return True if <code>restriction</code> is a prohibited substitution,
100      *   otherwise false.
101      */
102     public boolean isProhibitedSubstitution(short restriction);
103 
104     /**
105      *  [prohibited substitutions]: A subset of {extension, restriction} or
106      * <code>DERIVATION_NONE</code> represented as a bit flag (see
107      * <code>XSConstants</code>).
108      */
109     public short getProhibitedSubstitutions();
110 
111     /**
112      * A sequence of [annotations] or an empty <code>XSObjectList</code>.
113      */
114     public XSObjectList getAnnotations();
115 
116 }