summaryrefslogtreecommitdiff
path: root/gnu/xml/xpath/VariableReference.java
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/xml/xpath/VariableReference.java')
-rw-r--r--gnu/xml/xpath/VariableReference.java22
1 files changed, 17 insertions, 5 deletions
diff --git a/gnu/xml/xpath/VariableReference.java b/gnu/xml/xpath/VariableReference.java
index e53d1faa8..813a37f96 100644
--- a/gnu/xml/xpath/VariableReference.java
+++ b/gnu/xml/xpath/VariableReference.java
@@ -47,9 +47,9 @@ public class VariableReference
{
final XPathVariableResolver resolver;
- final String name;
+ final QName name;
- public VariableReference(XPathVariableResolver resolver, String name)
+ public VariableReference(XPathVariableResolver resolver, QName name)
{
this.resolver = resolver;
this.name = name;
@@ -64,8 +64,7 @@ public class VariableReference
// Needs context to operate properly
return ((Bindings) resolver).get(name, context, pos, len);
}
- QName qname = QName.valueOf(name);
- return resolver.resolveVariable(qname);
+ return resolver.resolveVariable(name);
}
throw new IllegalStateException("no variable resolver");
}
@@ -80,9 +79,22 @@ public class VariableReference
return new VariableReference(r, name);
}
+ public boolean references(QName var)
+ {
+ return name.equals(var);
+ }
+
public String toString()
{
- return "$" + name;
+ StringBuffer buf = new StringBuffer("$");
+ String prefix = name.getPrefix();
+ if (prefix != null && !"".equals(prefix))
+ {
+ buf.append(prefix);
+ buf.append(':');
+ }
+ buf.append(name.getLocalPart());
+ return buf.toString();
}
}