# URI Resolver Extensions Point

###### Identifier:

org.eclipse.wst.common.uriresolver.resolverExtensions

###### Since:

This extension point is part of an interim API that is still under development and expected to change significantly before reaching stability. It is being made available at this early stage to solicit feedback from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken (repeatedly) as the API evolves.

###### Description:

The URI Resolver Extensions point allows clients to register custom URI resolvers that will be used in the resolution of resources by tools such as editors, generators, validators, and wizards.

###### Configuration Markup:

<!ELEMENT extension (resolverExtension+)>

<!ATTLIST extension

point CDATA #REQUIRED

id CDATA #IMPLIED

name CDATA #IMPLIED>

- point - a fully qualified identifier of the target extension point
- id - an optional identifier of the extension instance
- name - an optional name of the extension instance

<!ELEMENT resolverExtension (projectNature*)>

<!ATTLIST resolverExtension

stage CDATA #IMPLIED

class CDATA #REQUIRED

priority CDATA #IMPLIED>

- stage - The stage in which to run this extension resolver: prenormalization, postnormalization, or physical. Defaults to postnormalization.
  prenormalization: run before normalization of the input
  postnormalization: run after normalization of the input
  physical: run after all pre and postnormalization resolvers
- class - The class that implements `org.eclipse.wst.common.uriresolver.internal.provisional.URIResolver`.
- priority - The priority of this resolver: high, medium, or low. Defaults to medium. The priority allows you to specify when this resolver should run with respect to other resolvers defined for the same stage.

<!ELEMENT projectNature EMPTY>

<!ATTLIST projectNature

value CDATA #REQUIRED>

If a project nature is specified the URI resolver will only be used for projects that contain one of the specified project natures. If no project natures are specified the URI resolver will be used for all projects.

- value - A project nature ID for which the URI resolver should be used.

###### Examples:

The following is an example of an URI resolver contribution:

       <extension
             point="org.eclipse.wst.common.uriresolver.resolverExtensions">
          <resolverExtension
                stage="physical"
                priority="low"
                class="org.eclipse.wst.common.uriresolver.SampleResolver">
          </resolverExtension>
       </extension>

###### Supplied Implementation:

`org.eclipse.wst.common.componentcore.internal.util.ComponentResolver` provides an URI resolver that resolves references in a project with multiple components `org.eclipse.wst.internet.cache.internal.CacheURIResolverExtension` provides an URI resolver that resolves references in a cache `org.eclipse.wst.xml.core.internal.catalog.XMLCatalogURIResolverExtension` provides an URI resolver that resolves references from an XML catalog

Copyright (c) 2000, 2008 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