throws Exception
{
out.addText("<");
out.addText(getTagName());
QName qName = getQName();
HashSet<String> prefixes = new HashSet<String>();
if (qName.getNamespaceURI() != null &&
! _parent.hasNamespace(qName)) {
prefixes.add(qName.getPrefix());
out.addText(" ");
if (qName.getPrefix() == null || qName.getPrefix().equals(""))
out.addText("xmlns=\"");
else
out.addText("xmlns:" + qName.getPrefix() + "=\"");
out.addText(qName.getNamespaceURI());
out.addText("\"");
}
for (int i = 0; i < _attrNames.size(); i++) {
QName name = _attrNames.get(i);
String value = _attrValues.get(i);
if (name.getNamespaceURI() != null &&
! prefixes.contains(name.getPrefix()) &&
! _parent.hasNamespace(name)) {
prefixes.add(name.getPrefix());
out.addText(" ");
if (name.getPrefix() == null || name.getPrefix().equals(""))
out.addText("xmlns=\"");
else
out.addText("xmlns:" + name.getPrefix() + "=\"");
out.addText(name.getNamespaceURI());
out.addText("\"");
}
out.addText(" ");
out.addText(name.getName());
if (value == null || value.equals("")) {
// XXX: possibly differ for html/text
out.addText("=\"\"");