1 package mir.util.xml.html;
5 public class HTMLSchemaInformation {
8 public HTMLSchemaInformation() {
13 addInlineTag("acronym");
14 addInlineTag("address");
15 addInlineTag("applet");
19 addInlineTag("basefont");
22 addInlineTag("blockquote");
23 addBlockTag("body", new String[] {"head"});
25 addBodylessTag("button");
26 addInlineTag("caption");
27 addInlineTag("center");
31 addInlineTag("colgroup");
40 addInlineTag("fieldset");
43 addBodylessTag("frame");
44 addInlineTag("frameset");
55 addBlockTag("iframe");
56 addBodylessTag("img");
57 addBodylessTag("input");
59 addInlineTag("isindex");
61 addInlineTag("label");
62 addInlineTag("legend");
67 addBodylessTag("meta");
68 addBlockTag("noframes");
69 addInlineTag("noscript");
70 addBodylessTag("object");
72 addInlineTag("optgroup");
73 addInlineTag("option");
74 addBlockTag("p", new String[] {"p"});
75 addInlineTag("param");
80 addInlineTag("script");
81 addInlineTag("select");
82 addInlineTag("small");
84 addInlineTag("strike");
85 addInlineTag("strong");
86 addInlineTag("style");
91 addBlockTag("td", new String[] {"td", "th"});
92 addInlineTag("textarea");
93 addInlineTag("tfoot");
94 addBlockTag("th", new String[] {"td", "th"});
95 addInlineTag("thead");
96 addInlineTag("title");
97 addBlockTag("tr", new String[] {"td", "th", "tr"});
104 public HTMLTagInformation lookupTag(String aTag) {
105 return (HTMLTagInformation) tags.get(aTag);
108 public void addInlineTag(String aTagName) {
109 addTag(aTagName, false, true, null);
112 public void addBodylessTag(String aTagName) {
113 addTag(aTagName, false, false, null);
116 public void addBlockTag(String aTagName) {
117 addTag(aTagName, true, true, null);
120 public void addBlockTag(String aTagName, String[] anAutoCloseList) {
121 addTag(aTagName, true, true, anAutoCloseList);
124 public void addTag(String aTagName, boolean anIsBlock, boolean aHasBody, String[] anAutoCloseList) {
125 HTMLTagInformation tagInformation = new HTMLTagInformation(aTagName, anIsBlock, aHasBody);
127 if (anAutoCloseList!=null) {
128 for (int i = 0; i < anAutoCloseList.length; i++) {
129 tagInformation.addAutoClosedTag(anAutoCloseList[i]);
133 tags.put(aTagName, tagInformation);
136 public class HTMLTagInformation {
137 private boolean isBlock;
138 private boolean hasBody;
139 private String tagName;
140 private List autoCloseList;
142 public HTMLTagInformation(String aTagName, boolean anIsBlock, boolean aHasBody) {
146 autoCloseList = new ArrayList();
149 void addAutoClosedTag(String aTag) {
150 autoCloseList.add(aTag);
153 public boolean autoClose(String aTag) {
154 return autoCloseList.contains(aTag);
157 public boolean getIsBlock() {
161 public boolean getHasBody() {
165 public String getTagName() {