FileDocCategorySizeDatePackage
XmlNames.javaAPI DocJava SE 5 API7803Fri Aug 26 14:54:42 BST 2005com.sun.imageio.metadata

XmlNames

public class XmlNames extends Object
This class contains static methods used to determine whether identifiers may appear in certain roles in XML documents. Such methods are used both to parse and to create such documents.
version
1.4
author
David Brownell

Fields Summary
public static final String
SPEC_XML_URI
Useful strings from the DOM Level 2 Spec
public static final String
SPEC_XMLNS_URI
Constructors Summary
private XmlNames()


        
Methods Summary
public static java.lang.StringgetLocalPart(java.lang.String qualifiedName)
Return the LocalPart of qualifiedName. Does not check that Prefix is a valid NCName.

param
qualifiedName name to find the LocalPart of
return
LocalPart or null if it has none

        // [6] QName ::= (Prefix ':')? LocalPart
        // [8] LocalPart ::= NCName
	int index = qualifiedName.indexOf(':");
	if (index < 0) {
	    return qualifiedName;
        }

        // ':' at end of qualifiedName
        if (index == qualifiedName.length() - 1) {
            return null;
        }

	return qualifiedName.substring(index + 1);
    
public static java.lang.StringgetPrefix(java.lang.String qualifiedName)
Return the Prefix of qualifiedName. Does not check that Prefix is a valid NCName.

param
qualifiedName name to find the Prefix of
return
prefix or null if it has none

        // [6] QName ::= (Prefix ':')? LocalPart
        // [7] Prefix ::= NCName
        int index = qualifiedName.indexOf(':");
        return index <= 0 ? null : qualifiedName.substring(0, index);
    
public static booleanisNCNmtoken(java.lang.String token)
This method returns true if the identifier is a "name token" as defined by the XML Namespaces proposed recommendation. These are like XML "name tokens" but they may not contain the "colon" character.

see
#isNmtoken
param
token the string being tested

	return isNmtoken (token) && token.indexOf (':") < 0;
    
public static booleanisName(java.lang.String value)
Returns true if the value is a legal XML name.

param
value the string being tested

	if (value == null || "".equals(value))
	    return false;

	char c = value.charAt (0);
	if (!XmlChars.isLetter (c) && c != '_" && c != ':")
	    return false;
	for (int i = 1; i < value.length (); i++)
	    if (!XmlChars.isNameChar (value.charAt (i)))
		return false;
	return true;
    
public static booleanisNmtoken(java.lang.String token)
This method returns true if the identifier is a "name token" as defined in the XML specification. Like names, these may only contain "name characters"; however, they do not need to have letters as their initial characters. Attribute values defined to be of type NMTOKEN(S) must satisfy this predicate.

param
token the string being tested

	int	length = token.length ();

	for (int i = 0; i < length; i++)
	    if (!XmlChars.isNameChar (token.charAt (i)))
		return false;
	return true;
    
public static booleanisQualifiedName(java.lang.String value)
Returns true if the value is a legal "qualified" XML name, as defined in the XML Namespaces proposed recommendation. Qualified names are composed of an optional prefix (an unqualified name), followed by a colon, and a required "local part" (an unqualified name). Prefixes are declared, and correspond to particular URIs which scope the "local part" of the name. (This method cannot check whether the prefix of a name has been declared.)

param
value the string being tested

	if (value == null)
	    return false;

        // [6] QName ::= (Prefix ':')? LocalPart
        // [7] Prefix ::= NCName
        // [8] LocalPart ::= NCName

	int	first = value.indexOf (':");

        // no Prefix, only check LocalPart
        if (first <= 0)
            return isUnqualifiedName (value);

        // Prefix exists, check everything

	int	last = value.lastIndexOf (':");
	if (last != first)
	    return false;
	
	return isUnqualifiedName (value.substring (0, first))
		&& isUnqualifiedName (value.substring (first + 1));
    
public static booleanisUnqualifiedName(java.lang.String value)
Returns true if the value is a legal "unqualified" XML name, as defined in the XML Namespaces proposed recommendation. These are normal XML names, except that they may not contain a "colon" character.

param
value the string being tested

	if (value == null || value.length() == 0)
	    return false;

	char c = value.charAt (0);
	if (!XmlChars.isLetter (c) && c != '_")
	    return false;
	for (int i = 1; i < value.length (); i++)
	    if (!XmlChars.isNCNameChar (value.charAt (i)))
		return false;
	return true;