code: public String toXmlString()
  	{
  		final StringBuilder buffer = new StringBuilder();
  		buffer.append("<");
  		buffer.append(getName());
  		Optional<String> attr = TagExtensions.attributesToString(getAttributes());
  		if (attr.isPresent())
  		{
  			buffer.append(attr.get());
  		}
  		if (isEndTag())
  		{
  			buffer.append(">");
  			if (getChildren() != null && !getChildren().isEmpty())
  			{
  				String processingContent = getContent();
  				Integer lastPosition = 0;
  				for (final ChildTagPosition child : getChildren())
  				{
  					final String subContent = getContent().substring(lastPosition,
  						child.getPosition());
  					lastPosition = child.getPosition();
  					processingContent = processingContent.substring(lastPosition,
  						processingContent.length());
  					buffer.append(subContent);
  					buffer.append(child.getChild().toXmlString());
  				}
  				buffer.append(processingContent);
  			}
  			else
  			{
  				buffer.append(getContent());
  			}
  			buffer.append("</");
  			buffer.append(getName());
  			buffer.append(">");
  		}
  		else
  		{
  			buffer.append("/>");
  		}
  		return buffer.toString();
  	}
docs: Creates from this {@link Tag} object an xml string.
  
  @return the string buffer