/**
 * Copyright (c) 2002-2006 IBM Corporation and others.
 * All rights reserved.   This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 * 
 * Contributors: 
 *   IBM - Initial API and implementation
 */
package org.eclipse.xsd;




/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>Scope</b></em>'.
 * This is used to represent the types of object returned by
 * {@link org.eclipse.xsd.XSDFeature#getScope}, i.e.,
 * '{@link org.eclipse.xsd.XSDSchema <em>Schema</em>}' and
 * '{@link org.eclipse.xsd.XSDComplexTypeDefinition <em>Complex Type Definition</em>}'.
 * <!-- end-user-doc -->
 *
 *
 * @see org.eclipse.xsd.XSDPackage#getXSDScope()
 * @model abstract="true"
 * @generated
 */
public interface XSDScope extends XSDComponent
{
  // No additional methods.
} 
