@Override
    protected void _serialize(TagNode tagNode, Writer writer) throws IOException {
        serializeOpenTag(tagNode, writer, false);
        
        List<? extends BaseToken> tagChildren = tagNode.getAllChildren();
        if ( !isMinimizedTagSyntax(tagNode) ) {
            Iterator<? extends BaseToken> childrenIt = tagChildren.iterator();
            while ( childrenIt.hasNext() ) {
                Object item = childrenIt.next();
                   	
                if (item != null) {
                	if (item instanceof CData) {
                		serializeCData((CData)item, tagNode, writer);
                	} else if ( item instanceof ContentNode ) {
                        serializeContentToken((ContentNode)item, tagNode, writer);
                    } else {
                        ((BaseToken)item).serialize(this, writer);
                    }
                }
            }

            serializeEndTag(tagNode, writer, false);
        }
    }