receiver.startPrefixMapping(nsQName.getLocalName(), nsQName.getNamespaceURI());
if ("xmlns".equals(nsQName.getLocalName())) receiver.startPrefixMapping("", nsQName.getNamespaceURI()); else receiver.startPrefixMapping(nsQName.getLocalName(), nsQName.getNamespaceURI());
    private void startNode(Serializer serializer, NodeImpl node, Receiver receiver)    throws SAXException {    	int nr = node.nodeNumber;    	switch (node.getNodeType()) {    	case Node.ELEMENT_NODE:    		QName nodeName = (QName) document.namePool.get(document.nodeName[nr]);    	    		// output required namespace declarations	    	int ns = document.alphaLen[nr];	        if (-1 < ns) {	        	while (ns < document.nextNamespace	        			&& document.namespaceParent[ns] == nr) {	        		QName nsQName = (QName) document.namePool	                	.get(document.namespaceCode[ns]);	        		receiver.startPrefixMapping(nsQName.getLocalName(), nsQName.getNamespaceURI());	        		++ns;	        	}	        }	        // create the attribute list	    	AttrList attribs = null;	    	int attr = document.alpha[nr];	    	if (-1 < attr) {	    		attribs = new AttrList();	    		while (attr < document.nextAttr	    				&& document.attrParent[attr] == nr) {	    			QName attrQName = (QName) document.namePool					.get(document.attrName[attr]);	    			attribs.addAttribute(attrQName, attrValue[attr]);	    			++attr;	    		}	    	}	    	receiver.startElement(nodeName, attribs);	    	break;    	case Node.TEXT_NODE:    		receiver.characters(new String(document.characters, document.alpha[nr],    				document.alphaLen[nr]));    	break;    	case Node.ATTRIBUTE_NODE:    		QName attrQName = (QName) document.namePool.get(document.attrName[nr]);    	receiver.attribute(attrQName, attrValue[nr]);    	break;    	case Node.COMMENT_NODE:    		receiver.comment(document.characters, document.alpha[nr],    				document.alphaLen[nr]);    		break;    	case Node.PROCESSING_INSTRUCTION_NODE:    		QName qn = (QName) document.namePool.get(document.nodeName[nr]);        	String data = new String(document.characters,        			document.alpha[nr], document.alphaLen[nr]);        	receiver.processingInstruction(qn.getLocalName(), data);        	break;        case Node.CDATA_SECTION_NODE:            receiver.cdataSection(document.characters, document.alpha[nr],                    document.alphaLen[nr]);            break;    	case NodeImpl.REFERENCE_NODE:    		serializer.toReceiver(document.references[document.alpha[nr]]);    	break;    	}    }