package org.basex.query.item; import static org.basex.query.QueryText.*; import static org.basex.util.Token.*; import java.io.IOException; import org.basex.io.serial.Serializer; import org.basex.util.Token; import org.basex.util.TokenBuilder; /** * Namespace node. * * @author BaseX Team 2005-12, BSD License * @author Christian Gruen */ public final class FNames extends FNode { /** Namespace name. */ private final byte[] name; /** * Default constructor. * @param n name * @param v value */ public FNames(final byte[] n, final byte[] v) { super(NodeType.NSP); name = n; val = v; } @Override public QNm qname() { return new QNm(name); } @Override public byte[] name() { return name; } @Override public FNode copy() { return new FNames(name, val); } @Override public void serialize(final Serializer ser) throws IOException { ser.namespace(name, val); } @Override public void plan(final Serializer ser) throws IOException { ser.emptyElement(this, NAM, name, VAL, val); } @Override public String toString() { final TokenBuilder tb = new TokenBuilder().add(' ').add(XMLNS); if(name.length != 0) tb.add(':').add(name); return tb.add("=\"").add(Token.string(val).replaceAll("\"", "\"\"")). add('"').toString(); } }