/*******************************************************************************
 * Copyright (c) 2001, 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 Corporation - initial API and implementation
 *******************************************************************************/
package org.eclipse.wst.wsdl.ui.internal.filter;

import org.w3c.dom.Element;

public class XSDExtensiblityElementFilter implements ExtensiblityElementFilter
{   
  public XSDExtensiblityElementFilter()
  {
  }  	
	
  public boolean isValidContext(Element parentElement, String localName)
  {
  	boolean result = false;
    String parentElementName = parentElement.getLocalName();
	if (parentElementName.equals("types")) //$NON-NLS-1$
	{
	  result = localName.equals("schema"); 	   //$NON-NLS-1$
	}	  	
    return result;
  }     
}
