/******************************************************************************* * Copyright (c) 2010 SAP AG. * 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: * Emil Simeonov - initial API and implementation. * Dimitar Donchev - initial API and implementation. * Dimitar Tenev - initial API and implementation. * Nevena Manova - initial API and implementation. * Georgi Konstantinov - initial API and implementation. * Keshav Veerapaneni - initial API and implementation. *******************************************************************************/ package org.eclipse.wst.sse.sieditor.model.xsd.api; import java.util.Collection; import org.eclipse.core.commands.ExecutionException; import org.eclipse.xsd.XSDSchema; import org.eclipse.wst.sse.sieditor.model.api.INamespacedObject; import org.eclipse.wst.sse.sieditor.model.xsd.impl.AbstractType; /** * */ public interface ISchema extends INamespacedObject { String getLocation(); String getRawLocation(); Collection<IType> getAllContainedTypes(); Collection<ISchema> getAllReferredSchemas(); IType[] getAllTypes(String name); IType getType(boolean isElement, String name); XSDSchema getComponent(); /** * * @param schema * @return The first imported ISchema that corresponds to the given * {@link XSDSchema} */ ISchema getReferredSchema(XSDSchema schema); /** * Resolves the type from the current or if not found, from imported schemas * * @param type * @return the resolved type * @throws ExecutionException * may be thrown while the model is updated with content from * imported documents. */ IType resolveType(final AbstractType type) throws ExecutionException; }