<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Validator Delegates</title>
<style type="text/css">@import url("../../book.css");</style>
<style type="text/css">@import url("../../schema.css");</style>
</HEAD>
<BODY>
<H1 style="text-align:center">Validator Delegates</H1>
<p></p>
<h6 class="CaptionFigColumn SchemaHeader">Identifier: </h6>org.eclipse.wst.validation.validatorDelegates<p></p>
<h6 class="CaptionFigColumn SchemaHeader">Since: </h6><b>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.</b>
<p></p>

<h6 class="CaptionFigColumn SchemaHeader">Description: </h6>This extension point allows validator providers to contribute alternate implementations for a delegating validator.<p></p>
<h6 class="CaptionFigColumn SchemaHeader">Configuration Markup:</h6>
<p></p>
<p class="code SchemaDtd">&lt;!ELEMENT <a name="e.extension">extension</a> (<a href="#e.delegate">delegate</a>)&gt;</p>
<p class="code SchemaDtd">&lt;!ATTLIST extension</p>
<p class="code SchemaDtdAttlist">point&nbsp;CDATA #REQUIRED<p class="code SchemaDtdAttlist">id&nbsp;&nbsp;&nbsp;&nbsp;CDATA #IMPLIED<p class="code SchemaDtdAttlist">name&nbsp;&nbsp;CDATA #IMPLIED&gt;</p>
<p></p>
<ul class="ConfigMarkupAttlistDesc">
</ul>
<br><p class="code SchemaDtd">&lt;!ELEMENT <a name="e.delegate">delegate</a> EMPTY&gt;</p>
<p class="code SchemaDtd">&lt;!ATTLIST delegate</p>
<p class="code SchemaDtdAttlist">class&nbsp;&nbsp;CDATA #REQUIRED<p class="code SchemaDtdAttlist">target&nbsp;CDATA #REQUIRED<p class="code SchemaDtdAttlist">name&nbsp;&nbsp;&nbsp;CDATA #REQUIRED&gt;</p>
<p></p>
<p class="ConfigMarkupElementDesc">
Defines a validator delegate. Delegating validators can have one or more delegates registered, only one of which can be active (selected) at once.</p>
<br>
<ul class="ConfigMarkupAttlistDesc">
<li><b>class</b> - Specifies the class name of the delegate validator. The class must implement IValidatorJob.</li>
<li><b>target</b> - Specifies the id of the validator extension for which this delegate is being registered.</li>
<li><b>name</b> - </li>
</ul>
<br><h6 class="CaptionFigColumn SchemaHeader">Examples: </h6><extension point="org.eclipse.wst.validation.validatorDelegates">
    <delegate
          class="com.acme.fast.SuperFastValidator"
          name="Super fast validator"
          target="org.acme.core.ACMEDelegatingValidator"/>
 </extension>
<p></p>

<br>
<p class="note SchemaCopyright">
Copyright (c) 2006 IBM Corporation and others.<br>
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 <a
href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>

</p>
</BODY>
</HTML>
