<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc (build 1.5.0_18) on Sun Apr 01 21:12:05 PDT 2012 -->
<TITLE>
Uses of Class org.apache.xpath.res.XPATHErrorResources
</TITLE>


<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">

<SCRIPT type="text/javascript">
function windowTitle()
{
    parent.document.title="Uses of Class org.apache.xpath.res.XPATHErrorResources";
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>

</HEAD>

<BODY BGCOLOR="white" onload="windowTitle();">


<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/apache/xpath/res/XPATHErrorResources.html" title="class in org.apache.xpath.res"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;PREV&nbsp;
&nbsp;NEXT</FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../../index.html?org/apache/xpath/res/class-use/XPATHErrorResources.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="XPATHErrorResources.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>


</FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->

<HR>
<CENTER>
<H2>
<B>Uses of Class<br>org.apache.xpath.res.XPATHErrorResources</B></H2>
</CENTER>

<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
Packages that use <A HREF="../../../../../org/apache/xpath/res/XPATHErrorResources.html" title="class in org.apache.xpath.res">XPATHErrorResources</A></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><A HREF="#org.apache.xpath.res"><B>org.apache.xpath.res</B></A></TD>
<TD>Contains strings for XPath support that require internationalization.&nbsp;</TD>
</TR>
</TABLE>
&nbsp;
<P>
<A NAME="org.apache.xpath.res"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
Uses of <A HREF="../../../../../org/apache/xpath/res/XPATHErrorResources.html" title="class in org.apache.xpath.res">XPATHErrorResources</A> in <A HREF="../../../../../org/apache/xpath/res/package-summary.html">org.apache.xpath.res</A></FONT></TH>
</TR>
</TABLE>
&nbsp;
<P>

<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left" COLSPAN="2">Subclasses of <A HREF="../../../../../org/apache/xpath/res/XPATHErrorResources.html" title="class in org.apache.xpath.res">XPATHErrorResources</A> in <A HREF="../../../../../org/apache/xpath/res/package-summary.html">org.apache.xpath.res</A></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;class</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/xpath/res/XPATHErrorResources_en.html" title="class in org.apache.xpath.res">XPATHErrorResources_en</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Default implementation of XPATHErrorResources.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;class</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../../../org/apache/xpath/res/XPATHErrorResources_sv.html" title="class in org.apache.xpath.res">XPATHErrorResources_sv</A></B></CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Set up error messages.</TD>
</TR>
</TABLE>
&nbsp;
<P>

<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left" COLSPAN="2">Methods in <A HREF="../../../../../org/apache/xpath/res/package-summary.html">org.apache.xpath.res</A> that return <A HREF="../../../../../org/apache/xpath/res/XPATHErrorResources.html" title="class in org.apache.xpath.res">XPATHErrorResources</A></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;<A HREF="../../../../../org/apache/xpath/res/XPATHErrorResources.html" title="class in org.apache.xpath.res">XPATHErrorResources</A></CODE></FONT></TD>
<TD><CODE><B>XPATHErrorResources_zh_TW.</B><B><A HREF="../../../../../org/apache/xpath/res/XPATHErrorResources_zh_TW.html#loadResourceBundle(java.lang.String)">loadResourceBundle</A></B>(java.lang.String&nbsp;className)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return a named ResourceBundle for a particular locale.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;<A HREF="../../../../../org/apache/xpath/res/XPATHErrorResources.html" title="class in org.apache.xpath.res">XPATHErrorResources</A></CODE></FONT></TD>
<TD><CODE><B>XPATHErrorResources_zh.</B><B><A HREF="../../../../../org/apache/xpath/res/XPATHErrorResources_zh.html#loadResourceBundle(java.lang.String)">loadResourceBundle</A></B>(java.lang.String&nbsp;className)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return a named ResourceBundle for a particular locale.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;<A HREF="../../../../../org/apache/xpath/res/XPATHErrorResources.html" title="class in org.apache.xpath.res">XPATHErrorResources</A></CODE></FONT></TD>
<TD><CODE><B>XPATHErrorResources_tr.</B><B><A HREF="../../../../../org/apache/xpath/res/XPATHErrorResources_tr.html#loadResourceBundle(java.lang.String)">loadResourceBundle</A></B>(java.lang.String&nbsp;className)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return a named ResourceBundle for a particular locale.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;<A HREF="../../../../../org/apache/xpath/res/XPATHErrorResources.html" title="class in org.apache.xpath.res">XPATHErrorResources</A></CODE></FONT></TD>
<TD><CODE><B>XPATHErrorResources_sl.</B><B><A HREF="../../../../../org/apache/xpath/res/XPATHErrorResources_sl.html#loadResourceBundle(java.lang.String)">loadResourceBundle</A></B>(java.lang.String&nbsp;className)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return a named ResourceBundle for a particular locale.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;<A HREF="../../../../../org/apache/xpath/res/XPATHErrorResources.html" title="class in org.apache.xpath.res">XPATHErrorResources</A></CODE></FONT></TD>
<TD><CODE><B>XPATHErrorResources_sk.</B><B><A HREF="../../../../../org/apache/xpath/res/XPATHErrorResources_sk.html#loadResourceBundle(java.lang.String)">loadResourceBundle</A></B>(java.lang.String&nbsp;className)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return a named ResourceBundle for a particular locale.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;<A HREF="../../../../../org/apache/xpath/res/XPATHErrorResources.html" title="class in org.apache.xpath.res">XPATHErrorResources</A></CODE></FONT></TD>
<TD><CODE><B>XPATHErrorResources_ru.</B><B><A HREF="../../../../../org/apache/xpath/res/XPATHErrorResources_ru.html#loadResourceBundle(java.lang.String)">loadResourceBundle</A></B>(java.lang.String&nbsp;className)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return a named ResourceBundle for a particular locale.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;<A HREF="../../../../../org/apache/xpath/res/XPATHErrorResources.html" title="class in org.apache.xpath.res">XPATHErrorResources</A></CODE></FONT></TD>
<TD><CODE><B>XPATHErrorResources_pt_BR.</B><B><A HREF="../../../../../org/apache/xpath/res/XPATHErrorResources_pt_BR.html#loadResourceBundle(java.lang.String)">loadResourceBundle</A></B>(java.lang.String&nbsp;className)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return a named ResourceBundle for a particular locale.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;<A HREF="../../../../../org/apache/xpath/res/XPATHErrorResources.html" title="class in org.apache.xpath.res">XPATHErrorResources</A></CODE></FONT></TD>
<TD><CODE><B>XPATHErrorResources_pl.</B><B><A HREF="../../../../../org/apache/xpath/res/XPATHErrorResources_pl.html#loadResourceBundle(java.lang.String)">loadResourceBundle</A></B>(java.lang.String&nbsp;className)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return a named ResourceBundle for a particular locale.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;<A HREF="../../../../../org/apache/xpath/res/XPATHErrorResources.html" title="class in org.apache.xpath.res">XPATHErrorResources</A></CODE></FONT></TD>
<TD><CODE><B>XPATHErrorResources_ko.</B><B><A HREF="../../../../../org/apache/xpath/res/XPATHErrorResources_ko.html#loadResourceBundle(java.lang.String)">loadResourceBundle</A></B>(java.lang.String&nbsp;className)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return a named ResourceBundle for a particular locale.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;<A HREF="../../../../../org/apache/xpath/res/XPATHErrorResources.html" title="class in org.apache.xpath.res">XPATHErrorResources</A></CODE></FONT></TD>
<TD><CODE><B>XPATHErrorResources_ja.</B><B><A HREF="../../../../../org/apache/xpath/res/XPATHErrorResources_ja.html#loadResourceBundle(java.lang.String)">loadResourceBundle</A></B>(java.lang.String&nbsp;className)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return a named ResourceBundle for a particular locale.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;<A HREF="../../../../../org/apache/xpath/res/XPATHErrorResources.html" title="class in org.apache.xpath.res">XPATHErrorResources</A></CODE></FONT></TD>
<TD><CODE><B>XPATHErrorResources_it.</B><B><A HREF="../../../../../org/apache/xpath/res/XPATHErrorResources_it.html#loadResourceBundle(java.lang.String)">loadResourceBundle</A></B>(java.lang.String&nbsp;className)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return a named ResourceBundle for a particular locale.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;<A HREF="../../../../../org/apache/xpath/res/XPATHErrorResources.html" title="class in org.apache.xpath.res">XPATHErrorResources</A></CODE></FONT></TD>
<TD><CODE><B>XPATHErrorResources_hu.</B><B><A HREF="../../../../../org/apache/xpath/res/XPATHErrorResources_hu.html#loadResourceBundle(java.lang.String)">loadResourceBundle</A></B>(java.lang.String&nbsp;className)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return a named ResourceBundle for a particular locale.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;<A HREF="../../../../../org/apache/xpath/res/XPATHErrorResources.html" title="class in org.apache.xpath.res">XPATHErrorResources</A></CODE></FONT></TD>
<TD><CODE><B>XPATHErrorResources_fr.</B><B><A HREF="../../../../../org/apache/xpath/res/XPATHErrorResources_fr.html#loadResourceBundle(java.lang.String)">loadResourceBundle</A></B>(java.lang.String&nbsp;className)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return a named ResourceBundle for a particular locale.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;<A HREF="../../../../../org/apache/xpath/res/XPATHErrorResources.html" title="class in org.apache.xpath.res">XPATHErrorResources</A></CODE></FONT></TD>
<TD><CODE><B>XPATHErrorResources_es.</B><B><A HREF="../../../../../org/apache/xpath/res/XPATHErrorResources_es.html#loadResourceBundle(java.lang.String)">loadResourceBundle</A></B>(java.lang.String&nbsp;className)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return a named ResourceBundle for a particular locale.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;<A HREF="../../../../../org/apache/xpath/res/XPATHErrorResources.html" title="class in org.apache.xpath.res">XPATHErrorResources</A></CODE></FONT></TD>
<TD><CODE><B>XPATHErrorResources_de.</B><B><A HREF="../../../../../org/apache/xpath/res/XPATHErrorResources_de.html#loadResourceBundle(java.lang.String)">loadResourceBundle</A></B>(java.lang.String&nbsp;className)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return a named ResourceBundle for a particular locale.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;<A HREF="../../../../../org/apache/xpath/res/XPATHErrorResources.html" title="class in org.apache.xpath.res">XPATHErrorResources</A></CODE></FONT></TD>
<TD><CODE><B>XPATHErrorResources_cs.</B><B><A HREF="../../../../../org/apache/xpath/res/XPATHErrorResources_cs.html#loadResourceBundle(java.lang.String)">loadResourceBundle</A></B>(java.lang.String&nbsp;className)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return a named ResourceBundle for a particular locale.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;<A HREF="../../../../../org/apache/xpath/res/XPATHErrorResources.html" title="class in org.apache.xpath.res">XPATHErrorResources</A></CODE></FONT></TD>
<TD><CODE><B>XPATHErrorResources_ca.</B><B><A HREF="../../../../../org/apache/xpath/res/XPATHErrorResources_ca.html#loadResourceBundle(java.lang.String)">loadResourceBundle</A></B>(java.lang.String&nbsp;className)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return a named ResourceBundle for a particular locale.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>static&nbsp;<A HREF="../../../../../org/apache/xpath/res/XPATHErrorResources.html" title="class in org.apache.xpath.res">XPATHErrorResources</A></CODE></FONT></TD>
<TD><CODE><B>XPATHErrorResources.</B><B><A HREF="../../../../../org/apache/xpath/res/XPATHErrorResources.html#loadResourceBundle(java.lang.String)">loadResourceBundle</A></B>(java.lang.String&nbsp;className)</CODE>

<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Return a named ResourceBundle for a particular locale.</TD>
</TR>
</TABLE>
&nbsp;
<P>
<HR>


<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
  <TR ALIGN="center" VALIGN="top">
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../org/apache/xpath/res/XPATHErrorResources.html" title="class in org.apache.xpath.res"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
  </TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
</EM>
</TD>
</TR>

<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;PREV&nbsp;
&nbsp;NEXT</FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
  <A HREF="../../../../../index.html?org/apache/xpath/res/class-use/XPATHErrorResources.html" target="_top"><B>FRAMES</B></A>  &nbsp;
&nbsp;<A HREF="XPATHErrorResources.html" target="_top"><B>NO FRAMES</B></A>  &nbsp;
&nbsp;<SCRIPT type="text/javascript">
  <!--
  if(window==top) {
    document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
  }
  //-->
</SCRIPT>
<NOSCRIPT>
  <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>


</FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->

<HR>

</BODY>
</HTML>
