/* * reserved comment block * DO NOT REMOVE OR ALTER! */ /* * Copyright 2003,2004 The Apache Software Foundation. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.sun.org.apache.xerces.internal.xs; /** * This interface represents the Complex Type Definition schema component. */ public interface XSComplexTypeDefinition extends XSTypeDefinition { // Content Model Types /** * Represents an empty content type. A content type with the distinguished * value empty validates elements with no character or element * information item children. */ public static final short CONTENTTYPE_EMPTY = 0; /** * Represents a simple content type. A content type which is simple * validates elements with character-only children. */ public static final short CONTENTTYPE_SIMPLE = 1; /** * Represents an element-only content type. An element-only content type * validates elements with children that conform to the supplied content * model. */ public static final short CONTENTTYPE_ELEMENT = 2; /** * Represents a mixed content type. */ public static final short CONTENTTYPE_MIXED = 3; /** * [derivation method]: either <code>DERIVATION_EXTENSION</code>, * <code>DERIVATION_RESTRICTION</code>, or <code>DERIVATION_NONE</code> * (see <code>XSConstants</code>). */ public short getDerivationMethod(); /** * [abstract]: a boolean. Complex types for which <code>abstract</code> is * true must not be used as the type definition for the validation of * element information items. */ public boolean getAbstract(); /** * A set of attribute uses if it exists, otherwise an empty * <code>XSObjectList</code>. */ public XSObjectList getAttributeUses(); /** * An attribute wildcard if it exists, otherwise <code>null</code>. */ public XSWildcard getAttributeWildcard(); /** * [content type]: one of empty (<code>CONTENTTYPE_EMPTY</code>), a simple * type definition (<code>CONTENTTYPE_SIMPLE</code>), mixed ( * <code>CONTENTTYPE_MIXED</code>), or element-only ( * <code>CONTENTTYPE_ELEMENT</code>). */ public short getContentType(); /** * A simple type definition corresponding to a simple content model, * otherwise <code>null</code>. */ public XSSimpleTypeDefinition getSimpleType(); /** * A particle for a mixed or element-only content model, otherwise * <code>null</code>. */ public XSParticle getParticle(); /** * [prohibited substitutions]: a subset of {extension, restriction} * @param restriction Extension or restriction constants (see * <code>XSConstants</code>). * @return True if <code>restriction</code> is a prohibited substitution, * otherwise false. */ public boolean isProhibitedSubstitution(short restriction); /** * [prohibited substitutions]: A subset of {extension, restriction} or * <code>DERIVATION_NONE</code> represented as a bit flag (see * <code>XSConstants</code>). */ public short getProhibitedSubstitutions(); /** * A set of [annotations] if it exists, otherwise an empty * <code>XSObjectList</code>. */ public XSObjectList getAnnotations(); }