View Javadoc
1   /**
2    * Redistribution and use of this software and associated documentation
3    * ("Software"), with or without modification, are permitted provided
4    * that the following conditions are met:
5    *
6    * 1. Redistributions of source code must retain copyright
7    *    statements and notices.  Redistributions must also contain a
8    *    copy of this document.
9    *
10   * 2. Redistributions in binary form must reproduce the
11   *    above copyright notice, this list of conditions and the
12   *    following disclaimer in the documentation and/or other
13   *    materials provided with the distribution.
14   *
15   * 3. The name "Exolab" must not be used to endorse or promote
16   *    products derived from this Software without prior written
17   *    permission of Intalio, Inc.  For written permission,
18   *    please contact info@exolab.org.
19   *
20   * 4. Products derived from this Software may not be called "Exolab"
21   *    nor may "Exolab" appear in their names without prior written
22   *    permission of Intalio, Inc. Exolab is a registered
23   *    trademark of Intalio, Inc.
24   *
25   * 5. Due credit should be given to the Exolab Project
26   *    (http://www.exolab.org/).
27   *
28   * THIS SOFTWARE IS PROVIDED BY INTALIO, INC. AND CONTRIBUTORS
29   * ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT
30   * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
31   * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL
32   * INTALIO, INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
33   * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
34   * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
35   * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
36   * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
37   * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
38   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
39   * OF THE POSSIBILITY OF SUCH DAMAGE.
40   *
41   * Copyright 1999-2001 (C) Intalio, Inc. All Rights Reserved.
42   *
43   * $Id$
44   */
45  
46  package org.exolab.castor.xml.schema;
47  
48  //-- we should change this to SchemaValidationException
49  //-- and localize the package
50  import org.exolab.castor.xml.ValidationException;
51  
52  /**
53   * The base class for all XML Schema stuctures.
54   *
55   * @author <a href="mailto:kvisco@intalio.com">Keith Visco</a>
56   * @version $Revision$ $Date: 2003-03-03 00:05:44 -0700 (Mon, 03 Mar 2003) $
57  **/
58  public abstract class Structure implements java.io.Serializable {
59  
60      public static final short ANYTYPE             =  0;
61      public static final short ANNOTATION          =  1;
62      public static final short APPINFO             =  2;
63      public static final short ATTRIBUTE           =  3;
64      public static final short ATTRIBUTE_GROUP     =  4;
65      public static final short COMPLEX_CONTENT     =  5;
66      public static final short COMPLEX_TYPE        =  6;
67      public static final short DOCUMENTATION       =  7;
68      public static final short ELEMENT             =  8;
69      public static final short FACET               =  9;
70      public static final short GROUP               = 10;
71      public static final short IDENTITY_FIELD      = 11;
72      public static final short IDENTITY_SELECTOR   = 12;
73      public static final short KEY                 = 13;
74      public static final short KEYREF              = 14;
75      public static final short LIST                = 15;
76      public static final short MODELGROUP          = 16;
77      public static final short MODELGROUP_REF      = 17;
78      public static final short REDEFINE            = 18;
79      public static final short SCHEMA              = 19;
80      public static final short SIMPLE_CONTENT      = 20;
81      public static final short SIMPLE_TYPE         = 21;
82      public static final short UNION               = 22;
83      public static final short UNIQUE              = 23;
84      public static final short WILDCARD            = 24;
85  
86      //-- should be removed eventually
87      public static final short UNKNOWN         = -1;
88  
89  
90      /**
91       * Creates a new XML Schema Structure
92      **/
93      protected Structure() {
94          super();
95      } //-- Structure
96  
97      /**
98       * Calls validate() to determine if this Schema Definition
99       * is valid.
100      *
101      * @return true if this Schema definition is valid, otherwise false.
102     **/
103     public boolean isValid() {
104         try {
105             validate();
106         }
107         catch(ValidationException ex) {
108             return false;
109         }
110         return true;
111     } //-- isValid
112 
113     /**
114      * Returns the type of this Schema Structure.
115      *
116      * @return the type of this Schema Structure.
117     **/
118     public abstract short getStructureType();
119 
120     /**
121      * Checks the validity of this Schema defintion.
122      *
123      * @exception ValidationException when this Schema definition
124      * is invalid.
125     **/
126     public abstract void validate()
127         throws ValidationException;
128 
129 } //-- Structure