class Tag implements Iterable<Tag> {

	public boolean compareTag(final Tag t) {
		if (this == t) {
			return true;
		}
		if (t == null) {
			return false;
		}
		Tag other = t;
		if (ns == null) {
			if (other.ns != null) {
				return false;
			}
		} else if (!ns.equals(other.ns)) {
			return false;
		}
		if (tag == null) {
			if (other.tag != null) {
				return false;
			}
		} else if (!tag.equals(other.tag)) {
			return false;
		}
		return true;
	}

	public  Tag(final String tag, final Map<String, String> attr);
	public  Tag(final String tag);
	public  Tag(final String tag, final Map<String, String> attr, final Map<String, String> css, final String ns );
	public  Tag(final String tag, final Map<String, String> attr, final String ns);
	public  Tag(final String tag, final String ns);

}