<?xml version='1.0' encoding='UTF-8'?>
<!-- Schema file written by PDE -->
<schema targetNamespace="org.eclipse.jst.jsf.core">
<annotation>
      <appInfo>
         <meta.schema plugin="org.eclipse.jst.jsf.core" id="AttributeValueRuntimeTypes" name="AttributeValueRuntimeTypes"/>
      </appInfo>
      <documentation>
         Defines a mapping between an implementing class and an AttributeValue Runtime type.   By categorizing attribute values types in an CMAnnotation file, we can assign types and therefore processing of those types using the CMAnnotation file metadata and context information.

&lt;p&gt;&lt;b&gt;This extension point is provisional and subject to change&lt;/b&gt;&lt;/p&gt;
      </documentation>
   </annotation>

   <element name="extension">
      <complexType>
         <sequence>
            <element ref="attributeValueRuntimeType" minOccurs="1" maxOccurs="unbounded"/>
         </sequence>
         <attribute name="point" type="string" use="required">
            <annotation>
               <documentation>
                  
               </documentation>
            </annotation>
         </attribute>
         <attribute name="id" type="string">
            <annotation>
               <documentation>
                  
               </documentation>
            </annotation>
         </attribute>
         <attribute name="name" type="string">
            <annotation>
               <documentation>
                  
               </documentation>
               <appInfo>
                  <meta.attribute translatable="true"/>
               </appInfo>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <element name="attributeValueRuntimeType">
      <annotation>
         <documentation>
            The MetaDataEnabledRuntimeTypeProcessing framework will use the value found on the attribute-value-runtime-value property of a cm-attribute annoation to bind to a class that implements the type.   That type may be able to provide processing for ContentAssist, Validation, Quick Fix/Quick Assist, or other context sensitive operations.
         </documentation>
      </annotation>
      <complexType>
         <attribute name="id" type="string" use="required">
            <annotation>
               <documentation>
                  unique id for the type within the extending plugin
               </documentation>
            </annotation>
         </attribute>
         <attribute name="class" type="string">
            <annotation>
               <documentation>
                  Class that will be used to implement the type.  It must implement &lt;code&gt;org.eclipse.jst.jsf.metadataprocessors.IMetaDataEnabledFeature&lt;/code&gt; and it is recommended that the user extend the &lt;code&gt;org.eclipse.jst.jsf.metadataprocessors.AbstractRootTypeDescriptor&lt;/code&gt; or one of its subclasses.
               </documentation>
               <appInfo>
                  <meta.attribute kind="java" basedOn="org.eclipse.jst.jsf.metadataprocessors.AbstractRootTypeDescriptor:org.eclipse.jst.jsf.metadataprocessors.IMetaDataEnabledFeature"/>
               </appInfo>
            </annotation>
         </attribute>
      </complexType>
   </element>

   <annotation>
      <appInfo>
         <meta.section type="since"/>
      </appInfo>
      <documentation>
         1.5
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="examples"/>
      </appInfo>
      <documentation>
         see org.eclipse.jst.jsf.taglibprocessing plugin for examples of usage
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="apiInfo"/>
      </appInfo>
      <documentation>
         cm-attribute annotation elements can have an &quot;attribute-value-runtime-type&quot; property that maps to the id of this ext-pt.  The property must be fully qualified with the extender&apos;s plugin id.   i.e.  if type is FooType, the property value must be com.foo.bar.FooType.
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="implementation"/>
      </appInfo>
      <documentation>
         
      </documentation>
   </annotation>

   <annotation>
      <appInfo>
         <meta.section type="copyright"/>
      </appInfo>
      <documentation>
         Copyright (c) 2006 Oracle Corporation.
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:
    Gerry Kessler/Oracle - initial API and implementation
      </documentation>
   </annotation>

</schema>
