1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 package org.millscript.commons.xml.tokenizer;
22
23 import org.millscript.commons.xml.alerts.XmlWellFormednessAlert;
24 import org.millscript.commons.xml.api.token.AttListDeclToken;
25 import org.millscript.commons.xml.api.token.CharDataToken;
26 import org.millscript.commons.xml.api.token.CommentToken;
27 import org.millscript.commons.xml.api.token.DTDToken;
28 import org.millscript.commons.xml.api.token.ElementDeclToken;
29 import org.millscript.commons.xml.api.token.EmptyElementToken;
30 import org.millscript.commons.xml.api.token.EndTagToken;
31 import org.millscript.commons.xml.api.token.EntityDeclToken;
32 import org.millscript.commons.xml.api.token.NotationDeclToken;
33 import org.millscript.commons.xml.api.token.PIToken;
34 import org.millscript.commons.xml.api.token.StartTagToken;
35 import org.millscript.commons.xml.api.token.TokenVisitor;
36 import org.millscript.commons.xml.api.token.XmlDeclToken;
37
38 /**
39 * This token visitor handles each part of the DTD, building our representation
40 * of the DTD content model as we go.
41 */
42 public class DTDTokenVisitor implements TokenVisitor {
43
44 /**
45 * @see org.millscript.commons.xml.api.token.TokenVisitor#visit(org.millscript.commons.xml.api.token.AttListDeclToken)
46 */
47 public void visit( final AttListDeclToken token ) {
48
49
50 }
51
52 /**
53 * @see org.millscript.commons.xml.api.token.TokenVisitor#visit(org.millscript.commons.xml.api.token.CharDataToken)
54 */
55 public void visit( final CharDataToken token ) {
56 throw new XmlWellFormednessAlert(
57 "Character data must be contained within a suitable declaration in the DTD"
58 ).decorate( token ).mishap();
59 }
60
61 /**
62 * @see org.millscript.commons.xml.api.token.TokenVisitor#visit(org.millscript.commons.xml.api.token.CommentToken)
63 */
64 public void visit( final CommentToken token ) {
65
66
67 }
68
69 /**
70 * @see org.millscript.commons.xml.api.token.TokenVisitor#visit(org.millscript.commons.xml.api.token.DTDToken)
71 */
72 public void visit( final DTDToken token ) {
73 throw new XmlWellFormednessAlert(
74 "Doctype declaration not allowed within the DTD"
75 ).decorate( token ).mishap();
76 }
77
78 /**
79 * @see org.millscript.commons.xml.api.token.TokenVisitor#visit(org.millscript.commons.xml.api.token.ElementDeclToken)
80 */
81 public void visit( final ElementDeclToken token ) {
82
83
84 }
85
86 /**
87 * @see org.millscript.commons.xml.api.token.TokenVisitor#visit(org.millscript.commons.xml.api.token.EmptyElementToken)
88 */
89 public void visit( final EmptyElementToken token ) {
90 throw new XmlWellFormednessAlert(
91 "Elements must be contained within a suitable declaration in the DTD"
92 ).decorate( token ).mishap();
93 }
94
95 /**
96 * @see org.millscript.commons.xml.api.token.TokenVisitor#visit(org.millscript.commons.xml.api.token.EndTagToken)
97 */
98 public void visit( final EndTagToken token ) {
99 throw new XmlWellFormednessAlert(
100 "End tags must be contained within a suitable declaration in the DTD"
101 ).decorate( token ).mishap();
102 }
103
104 /**
105 * @see org.millscript.commons.xml.api.token.TokenVisitor#visit(org.millscript.commons.xml.api.token.EntityDeclToken)
106 */
107 public void visit( final EntityDeclToken token ) {
108
109
110 }
111
112 /**
113 * @see org.millscript.commons.xml.api.token.TokenVisitor#visit(org.millscript.commons.xml.api.token.NotationDeclToken)
114 */
115 public void visit( final NotationDeclToken token ) {
116
117
118 }
119
120 /**
121 * @see org.millscript.commons.xml.api.token.TokenVisitor#visit(org.millscript.commons.xml.api.token.PIToken)
122 */
123 public void visit( final PIToken token ) {
124
125
126 }
127
128 /**
129 * @see org.millscript.commons.xml.api.token.TokenVisitor#visit(org.millscript.commons.xml.api.token.StartTagToken)
130 */
131 public void visit( final StartTagToken token ) {
132 throw new XmlWellFormednessAlert(
133 "Start tags must be contained within a suitable declaration in the DTD"
134 ).decorate( token ).mishap();
135 }
136
137 /**
138 * @see org.millscript.commons.xml.api.token.TokenVisitor#visit(org.millscript.commons.xml.api.token.XmlDeclToken)
139 */
140 public void visit( final XmlDeclToken token ) {
141
142 }
143
144 }