Returns a name string for the specified QName. @param qnm QName @param attr attribute flag @param namespaces namespaces @param lexical lexical flag @param qc query context @return name @throws QueryException query exception
(final QNm qnm, final boolean attr, final boolean lexical,
final XQMap namespaces, final QueryContext qc)
| 151 | * @throws QueryException query exception |
| 152 | */ |
| 153 | private byte[] name(final QNm qnm, final boolean attr, final boolean lexical, |
| 154 | final XQMap namespaces, final QueryContext qc) throws QueryException { |
| 155 | |
| 156 | if(lexical) return qnm.string(); |
| 157 | for(final XQMap.Entry ns : namespaces.entries()) { |
| 158 | if(Token.eq(qnm.uri(), toToken(ns.value(), qc))) { |
| 159 | return new QNm(toToken(ns.key()), qnm.local(), qnm.uri()).string(); |
| 160 | } |
| 161 | } |
| 162 | return attr ? qnm.unique() : qnm.eqName(); |
| 163 | } |
| 164 | |
| 165 | @Override |
| 166 | protected Expr opt(final CompileContext cc) { |