public class LangFunction extends java.lang.Object implements Function
4.3 boolean lang(string)
The lang function returns true or false depending on whether the language of the context node as specified by
xml:langattributes is the same as or is a sublanguage of the language specified by the argument string. The language of the context node is determined by the value of thexml:langattribute on the context node, or, if the context node has noxml:langattribute, by the value of thexml:langattribute on the nearest ancestor of the context node that has anxml:langattribute. If there is no such attribute, then lang returns false. If there is such an attribute, then lang returns true if the attribute value is equal to the argument ignoring case, or if there is some suffix starting with-such that the attribute value is equal to the argument ignoring that suffix of the attribute value and ignoring case. For example,lang("en")would return true if the context node is any of these five elements:<para xml:lang="en"/> <div xml:lang="en"><para/></div> <para xml:lang="EN"/> <para xml:lang="en-us"/>
| Modifier and Type | Field and Description |
|---|---|
private static java.lang.String |
LANG_LOCALNAME |
private static java.lang.String |
XMLNS_URI |
| Constructor and Description |
|---|
LangFunction()
Create a new
LangFunction object. |
| Modifier and Type | Method and Description |
|---|---|
java.lang.Object |
call(Context context,
java.util.List args)
Determines whether or not the context node is written in the language specified
by the XPath string-value of
args.get(0),
as determined by the nearest xml:lang attribute in scope. |
private static java.lang.Boolean |
evaluate(java.util.List contextNodes,
java.lang.Object lang,
Navigator nav) |
private static boolean |
evaluate(java.lang.Object node,
java.lang.String lang,
Navigator nav) |
private static boolean |
isSublang(java.lang.String sublang,
java.lang.String lang) |
private static final java.lang.String LANG_LOCALNAME
private static final java.lang.String XMLNS_URI
public java.lang.Object call(Context context, java.util.List args) throws FunctionCallException
Determines whether or not the context node is written in the language specified
by the XPath string-value of args.get(0),
as determined by the nearest xml:lang attribute in scope.
call in interface Functioncontext - the context in which to evaluate the lang() functionargs - the arguments to the lang functionBoolean indicating whether the context node is written in
the specified languageFunctionCallException - if args does not have length oneprivate static java.lang.Boolean evaluate(java.util.List contextNodes,
java.lang.Object lang,
Navigator nav)
throws UnsupportedAxisException
UnsupportedAxisExceptionprivate static boolean evaluate(java.lang.Object node,
java.lang.String lang,
Navigator nav)
throws UnsupportedAxisException
UnsupportedAxisExceptionprivate static boolean isSublang(java.lang.String sublang,
java.lang.String lang)