FileDocCategorySizeDatePackage
XSMessageFormatter.javaAPI DocApache Xerces 3.0.13635Fri Sep 14 20:33:56 BST 2007org.apache.xerces.impl.xs

XSMessageFormatter

public class XSMessageFormatter extends Object implements org.apache.xerces.util.MessageFormatter
SchemaMessageProvider implements an XMLMessageProvider that provides localizable error messages for the W3C XML Schema Language
xerces.internal
author
Elena Litani, IBM
version
$Id: XSMessageFormatter.java 446734 2006-09-15 20:51:23Z mrglavas $

Fields Summary
public static final String
SCHEMA_DOMAIN
The domain of messages concerning the XML Schema: Structures specification.
private Locale
fLocale
private ResourceBundle
fResourceBundle
Constructors Summary
Methods Summary
public java.lang.StringformatMessage(java.util.Locale locale, java.lang.String key, java.lang.Object[] arguments)
Formats a message with the specified arguments using the given locale information.

param
locale The locale of the message.
param
key The message key.
param
arguments The message replacement text arguments. The order of the arguments must match that of the placeholders in the actual message.
return
Returns the formatted message.
throws
MissingResourceException Thrown if the message with the specified key cannot be found.


                                                                                                                                                       
            
          
        
        if (fResourceBundle == null || locale != fLocale) {
            if (locale != null) {
                fResourceBundle = PropertyResourceBundle.getBundle("org.apache.xerces.impl.msg.XMLSchemaMessages", locale);
                // memorize the most-recent locale
                fLocale = locale;
            }
            if (fResourceBundle == null)
                fResourceBundle = PropertyResourceBundle.getBundle("org.apache.xerces.impl.msg.XMLSchemaMessages");
        }
        
        String msg = fResourceBundle.getString(key);
        if (arguments != null) {
            try {
                msg = java.text.MessageFormat.format(msg, arguments);
            } catch (Exception e) {
                msg = fResourceBundle.getString("FormatFailed");
                msg += " " + fResourceBundle.getString(key);
            }
        } 

        if (msg == null) {
            msg = fResourceBundle.getString("BadMessageKey");
            throw new MissingResourceException(msg, "org.apache.xerces.impl.msg.SchemaMessages", key);
        }

        return msg;