private void render(final Element el) throws Exception {

        Renderer renderer = RendererFactory.createRenderer(el, ctx);

        boolean abreAspas = el.attributeValue("abreAspas") != null;
        boolean fechaAspas = el.attributeValue("fechaAspas") != null;
        String notaAlteracao = el.attributeValue("notaAlteracao");

        final String id = el.attributeValue("id");
        
        if(id != null) {
        	ctx.pushId(id);
        }
        
        if (abreAspas) {
            ctx.addToNextContainer(new Chunk("“"));
        }

        if (renderer == null) {
            renderSubElements(el);
        }
        else if (renderer.render(el) == Renderer.NAO_ACABOU) {
            if (renderer.isMixed()) {
                renderAllChildNodes(el);
            }
            else {
                renderSubElements(el);
            }
            renderer.close();
        }

        StringBuilder lastTail = new StringBuilder(12);
        if (fechaAspas) {
            lastTail.append("” ");
        }
        if (!StringUtils.isEmpty(notaAlteracao)) {
            lastTail.append('(');
            lastTail.append(notaAlteracao);
            lastTail.append(')');
        }
        if (lastTail.length() > 0) {
            ctx.addToLastAddedContainer(new Chunk(lastTail.toString()));
        }
        if(id != null) {
        	ctx.popId();
        }

    }