in source/com.microsoft.tfs.util/src/com/microsoft/tfs/util/htmlfilter/AllowedHTMLTags.java [159:545]
private static void init() {
if (m_hashAllowed == null) {
m_hashAllowed = new TreeMap<String, TagInfo>(String.CASE_INSENSITIVE_ORDER);
m_hashSpecial = new TreeMap<String, Integer>(String.CASE_INSENSITIVE_ORDER);
m_hashAttributes = new TreeMap<String, Integer>(String.CASE_INSENSITIVE_ORDER);
// add special tags (to ignore entire body)
addSpecialTags(new String[] {
"script", //$NON-NLS-1$
"style", //$NON-NLS-1$
"option", //$NON-NLS-1$
"select", //$NON-NLS-1$
"textarea" //$NON-NLS-1$
});
// add tags with specific attributes
addTag(
"a", //$NON-NLS-1$
new String[] {
"charset", //$NON-NLS-1$
"href", //$NON-NLS-1$
"hreflang", //$NON-NLS-1$
"name", //$NON-NLS-1$
"rel", //$NON-NLS-1$
"rev", //$NON-NLS-1$
"shape", //$NON-NLS-1$
"tabindex", //$NON-NLS-1$
"type" //$NON-NLS-1$
});
addTag(
"blockquote", //$NON-NLS-1$
1,
1,
new String[] {
"cite" //$NON-NLS-1$
});
addTag(
"br", //$NON-NLS-1$
0,
0,
new String[] {
"clear" //$NON-NLS-1$
});
addTag(
"caption", //$NON-NLS-1$
1,
1,
new String[] {
"align" //$NON-NLS-1$
});
addTag(
"col", //$NON-NLS-1$
1,
1,
new String[] {
"align", //$NON-NLS-1$
"char", //$NON-NLS-1$
"charoff", //$NON-NLS-1$
"span", //$NON-NLS-1$
"valign", //$NON-NLS-1$
"width" //$NON-NLS-1$
});
addTag(
"colgroup", //$NON-NLS-1$
1,
1,
new String[] {
"align", //$NON-NLS-1$
"char", //$NON-NLS-1$
"charoff", //$NON-NLS-1$
"span", //$NON-NLS-1$
"valign", //$NON-NLS-1$
"width" //$NON-NLS-1$
});
addTag(
"del", //$NON-NLS-1$
0,
0,
new String[] {
"cite", //$NON-NLS-1$
"datetime" //$NON-NLS-1$
});
addTag(
"dir", //$NON-NLS-1$
2,
2,
new String[] {
"compact" //$NON-NLS-1$
});
addTag(
"div", //$NON-NLS-1$
1,
1,
new String[] {
"align" //$NON-NLS-1$
});
addTag(
"dl", //$NON-NLS-1$
2,
2,
new String[] {
"compact" //$NON-NLS-1$
});
addTag(
"font", //$NON-NLS-1$
0,
0,
new String[] {
"color", //$NON-NLS-1$
"face", //$NON-NLS-1$
"size" //$NON-NLS-1$
});
addTag(
"h1", //$NON-NLS-1$
2,
2,
new String[] {
"align" //$NON-NLS-1$
});
addTag(
"h2", //$NON-NLS-1$
2,
2,
new String[] {
"align" //$NON-NLS-1$
});
addTag(
"h3", //$NON-NLS-1$
2,
2,
new String[] {
"align" //$NON-NLS-1$
});
addTag(
"h4", //$NON-NLS-1$
2,
2,
new String[] {
"align" //$NON-NLS-1$
});
addTag(
"h5", //$NON-NLS-1$
2,
2,
new String[] {
"align" //$NON-NLS-1$
});
addTag(
"h6", //$NON-NLS-1$
2,
2,
new String[] {
"align" //$NON-NLS-1$
});
addTag(
"hr", //$NON-NLS-1$
2,
2,
new String[] {
"align", //$NON-NLS-1$
"size", //$NON-NLS-1$
"width" //$NON-NLS-1$
});
addTag(
"img", //$NON-NLS-1$
0,
0,
new String[] {
"align", //$NON-NLS-1$
"alt", //$NON-NLS-1$
"border", //$NON-NLS-1$
"height", //$NON-NLS-1$
"hspace", //$NON-NLS-1$
"ismap", //$NON-NLS-1$
"longdesc", //$NON-NLS-1$
"name", //$NON-NLS-1$
"src", //$NON-NLS-1$
"usemap", //$NON-NLS-1$
"vspace", //$NON-NLS-1$
"width", //$NON-NLS-1$
"alt2", //$NON-NLS-1$
"src2" //$NON-NLS-1$
});
addTag(
"ins", //$NON-NLS-1$
0,
0,
new String[] {
"cite", //$NON-NLS-1$
"datetime" //$NON-NLS-1$
});
addTag(
"li", //$NON-NLS-1$
1,
1,
new String[] {
"type", //$NON-NLS-1$
"value" //$NON-NLS-1$
});
addTag(
"map", //$NON-NLS-1$
0,
0,
new String[] {
"name" //$NON-NLS-1$
});
addTag(
"menu", //$NON-NLS-1$
2,
2,
new String[] {
"compact" //$NON-NLS-1$
});
addTag(
"ol", //$NON-NLS-1$
2,
2,
new String[] {
"compact", //$NON-NLS-1$
"start", //$NON-NLS-1$
"type" //$NON-NLS-1$
});
addTag(
"p", //$NON-NLS-1$
1,
1,
new String[] {
"align" //$NON-NLS-1$
});
addTag(
"pre", //$NON-NLS-1$
1,
1,
new String[] {
"width" //$NON-NLS-1$
});
addTag(
"q", //$NON-NLS-1$
0,
0,
new String[] {
"cite" //$NON-NLS-1$
});
addTag(
"table", //$NON-NLS-1$
2,
2,
new String[] {
"align", //$NON-NLS-1$
"border", //$NON-NLS-1$
"cellpadding", //$NON-NLS-1$
"cellspacing", //$NON-NLS-1$
"frame", //$NON-NLS-1$
"rules", //$NON-NLS-1$
"summary", //$NON-NLS-1$
"width", //$NON-NLS-1$
"caption" //$NON-NLS-1$
});
addTag(
"tbody", //$NON-NLS-1$
0,
0,
new String[] {
"align", //$NON-NLS-1$
"char", //$NON-NLS-1$
"charoff", //$NON-NLS-1$
"valign" //$NON-NLS-1$
});
addTag(
"td", //$NON-NLS-1$
2,
2,
new String[] {
"abbr", //$NON-NLS-1$
"align", //$NON-NLS-1$
"axis", //$NON-NLS-1$
"char", //$NON-NLS-1$
"charoff", //$NON-NLS-1$
"colspan", //$NON-NLS-1$
"headers", //$NON-NLS-1$
"height", //$NON-NLS-1$
"nowrap", //$NON-NLS-1$
"rowspan", //$NON-NLS-1$
"scope", //$NON-NLS-1$
"valign", //$NON-NLS-1$
"width" //$NON-NLS-1$
});
addTag(
"tfoot", //$NON-NLS-1$
2,
2,
new String[] {
"align", //$NON-NLS-1$
"char", //$NON-NLS-1$
"charoff", //$NON-NLS-1$
"valign" //$NON-NLS-1$
});
addTag(
"th", //$NON-NLS-1$
2,
2,
new String[] {
"abbr", //$NON-NLS-1$
"align", //$NON-NLS-1$
"axis", //$NON-NLS-1$
"char", //$NON-NLS-1$
"charoff", //$NON-NLS-1$
"colspan", //$NON-NLS-1$
"headers", //$NON-NLS-1$
"height", //$NON-NLS-1$
"nowrap", //$NON-NLS-1$
"rowspan", //$NON-NLS-1$
"scope", //$NON-NLS-1$
"valign", //$NON-NLS-1$
"width" //$NON-NLS-1$
});
addTag(
"thead", //$NON-NLS-1$
2,
2,
new String[] {
"align", //$NON-NLS-1$
"char", //$NON-NLS-1$
"charoff", //$NON-NLS-1$
"valign" //$NON-NLS-1$
});
addTag(
"tr", //$NON-NLS-1$
2,
2,
new String[] {
"align", //$NON-NLS-1$
"char", //$NON-NLS-1$
"charoff", //$NON-NLS-1$
"valign" //$NON-NLS-1$
});
addTag(
"ul", //$NON-NLS-1$
2,
2,
new String[] {
"compact", //$NON-NLS-1$
"type" //$NON-NLS-1$
});
addTag("dd", 1, 2, new String[] {}); //$NON-NLS-1$
addTag("dt", 2, 1, new String[] {}); //$NON-NLS-1$
// add tags without attributes
addTags(new String[] {
"abbr", //$NON-NLS-1$
"acronym", //$NON-NLS-1$
"address", //$NON-NLS-1$
"b", //$NON-NLS-1$
"bdo", //$NON-NLS-1$
"big", //$NON-NLS-1$
"center", //$NON-NLS-1$
"cite", //$NON-NLS-1$
"code", //$NON-NLS-1$
"dfn", //$NON-NLS-1$
"em", //$NON-NLS-1$
"i", //$NON-NLS-1$
"kbd", //$NON-NLS-1$
"s", //$NON-NLS-1$
"samp", //$NON-NLS-1$
"small", //$NON-NLS-1$
"span", //$NON-NLS-1$
"strike", //$NON-NLS-1$
"strong", //$NON-NLS-1$
"sub", //$NON-NLS-1$
"sup", //$NON-NLS-1$
"tt", //$NON-NLS-1$
"u", //$NON-NLS-1$
"var" //$NON-NLS-1$
});
// add attributes for all tags
addCommonAttributes(new String[] {
"dir", //$NON-NLS-1$
"lang", //$NON-NLS-1$
"title", //$NON-NLS-1$
"style", //$NON-NLS-1$
"id", //$NON-NLS-1$
"class", //$NON-NLS-1$
"contenteditable" //$NON-NLS-1$
});
}
}