/**
 * <copyright>
 * </copyright>
 *
 * $Id: DisplayName.java,v 1.1 2010/03/18 06:24:36 cbateman Exp $
 */
package org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib;


/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>Display Name</b></em>'.
 * <!-- end-user-doc -->
 *
 * <!-- begin-model-doc -->
 * 
 *     <![CDATA[
 * 
 *       The display-name type contains a short name that is intended
 *       to be displayed by tools. It is used by display-name
 *       elements.  The display name need not be unique.
 * 
 *       Example:
 * 
 *       ...
 *          <display-name xml:lang="en">
 *            Employee Self Service
 *          </display-name>
 * 
 *       The value of the xml:lang attribute is "en" (English) by default.
 * 
 *       ]]>
 *       
 * <!-- end-model-doc -->
 *
 *
 * @see org.eclipse.jst.jsf.facelet.core.internal.registry.taglib.faceletTaglib.FaceletTaglibPackage#getDisplayName()
 * @model extendedMetaData="name='display-nameType' kind='simple'"
 * @generated
 */
public interface DisplayName extends IdentifiableLangStringValue
{
 // DisplayName
} 
