<html><body><p><font size="+1"><strong>Package org.eclipse.wst.xml.xpath2.processor</strong></font></p><hr><h2><font size="-1"><strong>org.eclipse.wst.xml.xpath2.processor</strong></font><br>
               Class CollationProvider</h2><br><hr><pre>public class <strong>CollationProvider</strong>
extends </pre>Service provider interface for looking up collations from within the dynamic context.<p></p><hr><table width="100%" border="1"><tr cols="2" bgcolor="#CCCCFF"><td colspan="2" width="100%"><h2>Method Summary</h2></td></tr><tr valign="top"><td width="20%" align="right"><code>public java.util.Comparator</code></td><td width="" align="left"><code><a href="#method_get_collation">get_collation</a>(java.lang.String name)</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               Gets the named collator. W3C does not define collation names (yet?) so we are constrained to using an
 implementation-defined naming scheme.</td></tr></table><hr><table cols="2" width="100%" border="1"><tr colspan="2" width="100%" bgcolor="#CCCCFF" align="left"><td><h2>
                  Methods Detail
               </h2></td></tr></table><h2><a name="method_get_collation">get_collation</a></h2><p><code>public java.util.Comparator <strong>get_collation</strong>(java.lang.String name)</code></p><p>Gets the named collator. W3C does not define collation names (yet?) so we are constrained to using an
 implementation-defined naming scheme.</p><h3>Parameters</h3><p><code>name</code> - A URI designating the collation to use</p><h3>Returns</h3><p><code>java.util.Comparator</code> - The collation to use, or null if no such collation exists by this provider</p><hr></body></html>