/**
 * 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>Attribute Group Content</b></em>'.
 * It is used to represent the types of object returned by 
 * {@link XSDAttributeGroupDefinition#getContents()} and 
 * {@link XSDComplexTypeDefinition#getAttributeContents()}.
 * <!-- end-user-doc -->
 *
 *
 * @see org.eclipse.xsd.XSDPackage#getXSDAttributeGroupContent()
 * @model abstract="true"
 * @generated
 */
public interface XSDAttributeGroupContent extends XSDConcreteComponent
{
  // No additional methods
} 
