@@ -97,73 +97,136 @@ public DefaultEntityResolver() {
97
97
*/
98
98
public DefaultEntityResolver (boolean enableWhitelist ) {
99
99
super ();
100
- systemIdToFilename .put ("https://www.w3.org/TR/html5/entities.dtd" , "w3c/xhtml5.ent" );
101
- systemIdToFilename .put ("http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" , "w3c/xhtml1-strict.dtd" );
100
+ systemIdToFilename .put ("https://www.w3.org/TR/html5/entities.dtd" ,
101
+ "/io/sf/carte/doc/xml/dtd/w3c/xhtml5.ent" );
102
+ systemIdToFilename .put ("http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" ,
103
+ "/io/sf/carte/doc/xml/dtd/w3c/xhtml1-strict.dtd" );
102
104
systemIdToFilename .put ("http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" ,
103
- "w3c/xhtml1-transitional.dtd" );
104
- systemIdToFilename .put ("http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" , "w3c/xhtml11.dtd" );
105
- systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml11.dtd" , "w3c/xhtml11.dtd" );
106
- systemIdToFilename .put ("http://www.w3.org/TR/xhtml11/DTD/xhtml-lat1.ent" , "w3c/xhtml-lat1.ent" );
107
- systemIdToFilename .put ("http://www.w3.org/TR/xhtml11/DTD/xhtml-symbol.ent" , "w3c/xhtml-symbol.ent" );
108
- systemIdToFilename .put ("http://www.w3.org/TR/xhtml11/DTD/xhtml-special.ent" , "w3c/xhtml-special.ent" );
105
+ "/io/sf/carte/doc/xml/dtd/w3c/xhtml1-transitional.dtd" );
106
+ systemIdToFilename .put ("http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" ,
107
+ "/io/sf/carte/doc/xml/dtd/w3c/xhtml11.dtd" );
108
+ systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml11.dtd" ,
109
+ "/io/sf/carte/doc/xml/dtd/w3c/xhtml11.dtd" );
110
+ systemIdToFilename .put ("http://www.w3.org/TR/xhtml11/DTD/xhtml-lat1.ent" ,
111
+ "/io/sf/carte/doc/xml/dtd/w3c/xhtml-lat1.ent" );
112
+ systemIdToFilename .put ("http://www.w3.org/TR/xhtml11/DTD/xhtml-symbol.ent" ,
113
+ "/io/sf/carte/doc/xml/dtd/w3c/xhtml-symbol.ent" );
114
+ systemIdToFilename .put ("http://www.w3.org/TR/xhtml11/DTD/xhtml-special.ent" ,
115
+ "/io/sf/carte/doc/xml/dtd/w3c/xhtml-special.ent" );
109
116
// XHTML 1.1 modules
110
- systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-inlstyle-1.mod" , "w3c/xhtml-inlstyle-1.mod" );
111
- systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml11-model-1.mod" , "w3c/xhtml-11-model-1.mod" );
112
- systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-datatypes-1.mod" , "w3c/xhtml-datatypes-1.mod" );
113
- systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-framework-1.mod" , "w3c/xhtml-framework-1.mod" );
114
- systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-text-1.mod" , "w3c/xhtml-text-1.mod" );
115
- systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-hypertext-1.mod" , "w3c/xhtml-hypertext-1.mod" );
116
- systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-list-1.mod" , "w3c/xhtml-list-1.mod" );
117
- systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-edit-1.mod" , "w3c/xhtml-edit-1.mod" );
118
- systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-bdo-1.mod" , "w3c/xhtml-bdo-1.mod" );
119
- systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-ruby-1.mod" , "w3c/xhtml-ruby-1.mod" );
120
- systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-pres-1.mod" , "w3c/xhtml-pres-1.mod" );
121
- systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-link-1.mod" , "w3c/xhtml-link-1.mod" );
122
- systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-meta-1.mod" , "w3c/xhtml-meta-1.mod" );
123
- systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-base-1.mod" , "w3c/xhtml-base-1.mod" );
124
- systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-script-1.mod" , "w3c/xhtml-script-1.mod" );
125
- systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-style-1.mod" , "w3c/xhtml-style-1.mod" );
126
- systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-image-1.mod" , "w3c/xhtml-image-1.mod" );
127
- systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-csismap-1.mod" , "w3c/xhtml-csismap-1.mod" );
128
- systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-ssismap-1.mod" , "w3c/xhtml-ssismap-1.mod" );
129
- systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-param-1.mod" , "w3c/xhtml-param-1.mod" );
130
- systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-object-1.mod" , "w3c/xhtml-object-1.mod" );
131
- systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-table-1.mod" , "w3c/xhtml-table-1.mod" );
132
- systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-form-1.mod" , "w3c/xhtml-form-1.mod" );
133
- systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-legacy-1.mod" , "w3c/xhtml-legacy-1.mod" );
134
- systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-struct-1.mod" , "w3c/xhtml-struct-1.mod" );
117
+ systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-inlstyle-1.mod" ,
118
+ "/io/sf/carte/doc/xml/dtd/w3c/xhtml-inlstyle-1.mod" );
119
+ systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml11-model-1.mod" ,
120
+ "/io/sf/carte/doc/xml/dtd/w3c/xhtml-11-model-1.mod" );
121
+ systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-datatypes-1.mod" ,
122
+ "/io/sf/carte/doc/xml/dtd/w3c/xhtml-datatypes-1.mod" );
123
+ systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-framework-1.mod" ,
124
+ "/io/sf/carte/doc/xml/dtd/w3c/xhtml-framework-1.mod" );
125
+ systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-text-1.mod" ,
126
+ "/io/sf/carte/doc/xml/dtd/w3c/xhtml-text-1.mod" );
127
+ systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-hypertext-1.mod" ,
128
+ "/io/sf/carte/doc/xml/dtd/w3c/xhtml-hypertext-1.mod" );
129
+ systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-list-1.mod" ,
130
+ "/io/sf/carte/doc/xml/dtd/w3c/xhtml-list-1.mod" );
131
+ systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-edit-1.mod" ,
132
+ "/io/sf/carte/doc/xml/dtd/w3c/xhtml-edit-1.mod" );
133
+ systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-bdo-1.mod" ,
134
+ "/io/sf/carte/doc/xml/dtd/w3c/xhtml-bdo-1.mod" );
135
+ systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-ruby-1.mod" ,
136
+ "/io/sf/carte/doc/xml/dtd/w3c/xhtml-ruby-1.mod" );
137
+ systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-pres-1.mod" ,
138
+ "/io/sf/carte/doc/xml/dtd/w3c/xhtml-pres-1.mod" );
139
+ systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-link-1.mod" ,
140
+ "/io/sf/carte/doc/xml/dtd/w3c/xhtml-link-1.mod" );
141
+ systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-meta-1.mod" ,
142
+ "/io/sf/carte/doc/xml/dtd/w3c/xhtml-meta-1.mod" );
143
+ systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-base-1.mod" ,
144
+ "/io/sf/carte/doc/xml/dtd/w3c/xhtml-base-1.mod" );
145
+ systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-script-1.mod" ,
146
+ "/io/sf/carte/doc/xml/dtd/w3c/xhtml-script-1.mod" );
147
+ systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-style-1.mod" ,
148
+ "/io/sf/carte/doc/xml/dtd/w3c/xhtml-style-1.mod" );
149
+ systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-image-1.mod" ,
150
+ "/io/sf/carte/doc/xml/dtd/w3c/xhtml-image-1.mod" );
151
+ systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-csismap-1.mod" ,
152
+ "/io/sf/carte/doc/xml/dtd/w3c/xhtml-csismap-1.mod" );
153
+ systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-ssismap-1.mod" ,
154
+ "/io/sf/carte/doc/xml/dtd/w3c/xhtml-ssismap-1.mod" );
155
+ systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-param-1.mod" ,
156
+ "/io/sf/carte/doc/xml/dtd/w3c/xhtml-param-1.mod" );
157
+ systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-object-1.mod" ,
158
+ "/io/sf/carte/doc/xml/dtd/w3c/xhtml-object-1.mod" );
159
+ systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-table-1.mod" ,
160
+ "/io/sf/carte/doc/xml/dtd/w3c/xhtml-table-1.mod" );
161
+ systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-form-1.mod" ,
162
+ "/io/sf/carte/doc/xml/dtd/w3c/xhtml-form-1.mod" );
163
+ systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-legacy-1.mod" ,
164
+ "/io/sf/carte/doc/xml/dtd/w3c/xhtml-legacy-1.mod" );
165
+ systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-struct-1.mod" ,
166
+ "/io/sf/carte/doc/xml/dtd/w3c/xhtml-struct-1.mod" );
135
167
// Other common DTDs
136
- systemIdToFilename .put ("http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd" , "w3c/xhtml1-frameset.dtd" );
137
- systemIdToFilename .put ("http://www.w3.org/TR/xhtml-basic/xhtml-basic11.dtd" , "w3c/xhtml-basic11.dtd" );
138
- systemIdToFilename .put ("http://www.w3.org/TR/html4/strict.dtd" , "w3c/html4-strict.dtd" );
139
- systemIdToFilename .put ("http://www.w3.org/TR/html4/loose.dtd" , "w3c/html4-loose.dtd" );
140
- systemIdToFilename .put ("http://www.w3.org/TR/html4/frameset.dtd" , "w3c/html4-frameset.dtd" );
141
- systemIdToFilename .put ("http://www.w3.org/Math/DTD/mathml2/mathml2.dtd" , "w3c/mathml2.dtd" );
142
- systemIdToFilename .put ("http://www.w3.org/Math/DTD/mathml1/mathml.dtd" , "w3c/mathml.dtd" );
143
- systemIdToFilename .put ("http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd" , "w3c/xhtml-math-svg.dtd" );
144
- systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-inlstruct-1.mod" , "w3c/xhtml-inlstruct-1.dtd" );
145
- systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-inlphras-1.mod" , "w3c/xhtml-inlphras-1.dtd" );
146
- systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-blkstruct-1.mod" , "w3c/xhtml-blkstruct-1.mod" );
147
- systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-blkphras-1.mod" , "w3c/xhtml-blkphras-1.mod" );
148
- systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-applet-1.mod" , "w3c/xhtml-applet-1.dtd" );
149
- systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-blkpres-1.mod" , "w3c/xhtml-blkpres-1.mod" );
150
- systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-basic-form-1.mod" , "w3c/xhtml-basic-form-1.mod" );
151
- systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-basic-table-1.mod" , "w3c/xhtml-basic-table-1.mod" );
152
- systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-frames-1.mod" , "w3c/xhtml-frames-1.mod" );
153
- systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-target-1.mod" , "w3c/xhtml-target-1.mod" );
154
- systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-iframe-1.mod" , "w3c/xhtml-iframe-1.mod" );
155
- systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-events-1.mod" , "w3c/xhtml-events-1.mod" );
156
- systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-nameident-1.mod" , "w3c/xhtml-nameident-1.mod" );
157
- systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-legacy-redecl-1.mod" , "w3c/xhtml-legacy-redecl-1.mod" );
158
- systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-inlpres-1.mod" , "w3c/xhtml-inlpres-1.mod" );
159
- systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-arch-1.mod" , "w3c/xhtml-arch-1.mod" );
160
- systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-notations-1.mod" , "w3c/xhtml-notations-1.mod" );
161
- systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-qname-1.mod" , "w3c/xhtml-qname-1.mod" );
162
- systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-attribs-1.mod" , "w3c/xhtml-attribs-1.mod" );
163
- systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-charent-1.mod" , "w3c/xhtml-charent-1.mod" );
164
- systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-basic11-model-1.mod" , "w3c/xhtml-basic11-model-1.mod" );
165
- systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-inputmode-1.mod" , "w3c/xhtml-inputmode-1.mod" );
166
- systemIdToFilename .put ("http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" , "w3c/svg11.dtd" );
168
+ systemIdToFilename .put ("http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd" ,
169
+ "/io/sf/carte/doc/xml/dtd/w3c/xhtml1-frameset.dtd" );
170
+ systemIdToFilename .put ("http://www.w3.org/TR/xhtml-basic/xhtml-basic11.dtd" ,
171
+ "/io/sf/carte/doc/xml/dtd/w3c/xhtml-basic11.dtd" );
172
+ systemIdToFilename .put ("http://www.w3.org/TR/html4/strict.dtd" ,
173
+ "/io/sf/carte/doc/xml/dtd/w3c/html4-strict.dtd" );
174
+ systemIdToFilename .put ("http://www.w3.org/TR/html4/loose.dtd" ,
175
+ "/io/sf/carte/doc/xml/dtd/w3c/html4-loose.dtd" );
176
+ systemIdToFilename .put ("http://www.w3.org/TR/html4/frameset.dtd" ,
177
+ "/io/sf/carte/doc/xml/dtd/w3c/html4-frameset.dtd" );
178
+ systemIdToFilename .put ("http://www.w3.org/Math/DTD/mathml2/mathml2.dtd" ,
179
+ "/io/sf/carte/doc/xml/dtd/w3c/mathml2.dtd" );
180
+ systemIdToFilename .put ("http://www.w3.org/Math/DTD/mathml1/mathml.dtd" ,
181
+ "/io/sf/carte/doc/xml/dtd/w3c/mathml.dtd" );
182
+ systemIdToFilename .put ("http://www.w3.org/2002/04/xhtml-math-svg/xhtml-math-svg.dtd" ,
183
+ "/io/sf/carte/doc/xml/dtd/w3c/xhtml-math-svg.dtd" );
184
+ systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-inlstruct-1.mod" ,
185
+ "/io/sf/carte/doc/xml/dtd/w3c/xhtml-inlstruct-1.dtd" );
186
+ systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-inlphras-1.mod" ,
187
+ "/io/sf/carte/doc/xml/dtd/w3c/xhtml-inlphras-1.dtd" );
188
+ systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-blkstruct-1.mod" ,
189
+ "/io/sf/carte/doc/xml/dtd/w3c/xhtml-blkstruct-1.mod" );
190
+ systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-blkphras-1.mod" ,
191
+ "/io/sf/carte/doc/xml/dtd/w3c/xhtml-blkphras-1.mod" );
192
+ systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-applet-1.mod" ,
193
+ "/io/sf/carte/doc/xml/dtd/w3c/xhtml-applet-1.dtd" );
194
+ systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-blkpres-1.mod" ,
195
+ "/io/sf/carte/doc/xml/dtd/w3c/xhtml-blkpres-1.mod" );
196
+ systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-basic-form-1.mod" ,
197
+ "/io/sf/carte/doc/xml/dtd/w3c/xhtml-basic-form-1.mod" );
198
+ systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-basic-table-1.mod" ,
199
+ "/io/sf/carte/doc/xml/dtd/w3c/xhtml-basic-table-1.mod" );
200
+ systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-frames-1.mod" ,
201
+ "/io/sf/carte/doc/xml/dtd/w3c/xhtml-frames-1.mod" );
202
+ systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-target-1.mod" ,
203
+ "/io/sf/carte/doc/xml/dtd/w3c/xhtml-target-1.mod" );
204
+ systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-iframe-1.mod" ,
205
+ "/io/sf/carte/doc/xml/dtd/w3c/xhtml-iframe-1.mod" );
206
+ systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-events-1.mod" ,
207
+ "/io/sf/carte/doc/xml/dtd/w3c/xhtml-events-1.mod" );
208
+ systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-nameident-1.mod" ,
209
+ "/io/sf/carte/doc/xml/dtd/w3c/xhtml-nameident-1.mod" );
210
+ systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-legacy-redecl-1.mod" ,
211
+ "/io/sf/carte/doc/xml/dtd/w3c/xhtml-legacy-redecl-1.mod" );
212
+ systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-inlpres-1.mod" ,
213
+ "/io/sf/carte/doc/xml/dtd/w3c/xhtml-inlpres-1.mod" );
214
+ systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-arch-1.mod" ,
215
+ "/io/sf/carte/doc/xml/dtd/w3c/xhtml-arch-1.mod" );
216
+ systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-notations-1.mod" ,
217
+ "/io/sf/carte/doc/xml/dtd/w3c/xhtml-notations-1.mod" );
218
+ systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-qname-1.mod" ,
219
+ "/io/sf/carte/doc/xml/dtd/w3c/xhtml-qname-1.mod" );
220
+ systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-attribs-1.mod" ,
221
+ "/io/sf/carte/doc/xml/dtd/w3c/xhtml-attribs-1.mod" );
222
+ systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-charent-1.mod" ,
223
+ "/io/sf/carte/doc/xml/dtd/w3c/xhtml-charent-1.mod" );
224
+ systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-basic11-model-1.mod" ,
225
+ "/io/sf/carte/doc/xml/dtd/w3c/xhtml-basic11-model-1.mod" );
226
+ systemIdToFilename .put ("http://www.w3.org/MarkUp/DTD/xhtml-inputmode-1.mod" ,
227
+ "/io/sf/carte/doc/xml/dtd/w3c/xhtml-inputmode-1.mod" );
228
+ systemIdToFilename .put ("http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" ,
229
+ "/io/sf/carte/doc/xml/dtd/w3c/svg11.dtd" );
167
230
//
168
231
systemIdToPublicId .put ("http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" , "-//W3C//DTD XHTML 1.0 Strict//EN" );
169
232
systemIdToPublicId .put ("http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" ,
@@ -221,18 +284,18 @@ public InputSource getExternalSubset(String name, String baseURI) throws SAXExce
221
284
* Register an internal classpath filename to retrieve a DTD {@code SystemId}.
222
285
*
223
286
* @param systemId the {@code SystemId}.
224
- * @param filename the internal filename.
287
+ * @param filename the internal filename. Must point to a resource with
288
+ * {@code UTF-8} encoding.
225
289
* @return {@code true} if the new {@code SystemId} was successfully registered,
226
290
* {@code false} if it was already registered.
227
291
* @throws IllegalArgumentException if the {@code filename} is considered
228
- * invalid by
229
- * {@link #isInvalidInternalPath(String)}.
292
+ * invalid by {@link #isInvalidPath(String)}.
230
293
*/
231
294
protected boolean registerSystemIdFilename (String systemId , String filename ) {
232
295
if (filename == null || systemId == null ) {
233
296
throw new NullPointerException ("Null SystemId or filename." );
234
297
}
235
- if (isInvalidInternalPath (filename )) {
298
+ if (isInvalidPath (filename )) {
236
299
throw new IllegalArgumentException ("Bad DTD filename." );
237
300
}
238
301
String ret ;
@@ -242,21 +305,6 @@ protected boolean registerSystemIdFilename(String systemId, String filename) {
242
305
return ret == null ;
243
306
}
244
307
245
- /**
246
- * Determine if the given pathname is an invalid internal path.
247
- * <p>
248
- * The pathname must contain {@code /dtd/} and be a valid path according to
249
- * {@link #isInvalidPath(String)}.
250
- * </p>
251
- *
252
- * @param pathname the classpath pathname to check. It is assumed to be
253
- * non-{@code null}.
254
- * @return {@code true} if the pathname is invalid.
255
- */
256
- protected boolean isInvalidInternalPath (String pathname ) {
257
- return isInvalidPath (pathname ) || !pathname .contains ("/dtd/" );
258
- }
259
-
260
308
@ Override
261
309
public final InputSource resolveEntity (String name , String publicId , String baseURI , String systemId )
262
310
throws SAXException , IOException {
@@ -456,24 +504,19 @@ public void setClassLoader(ClassLoader loader) {
456
504
}
457
505
458
506
private Reader loadDTDfromClasspath (final String dtdFilename ) {
459
- final String resPath ;
460
- if (dtdFilename .charAt (0 ) != '/' ) {
461
- // relative
462
- String pkgPath = DefaultEntityResolver .class .getPackage ().getName ().replace ('.' , '/' );
463
- StringBuilder buf = new StringBuilder (pkgPath .length () + dtdFilename .length () + 2 );
464
- buf .append ('/' ).append (pkgPath ).append ('/' ).append (dtdFilename );
465
- resPath = buf .toString ();
466
- } else {
467
- resPath = dtdFilename ;
468
- }
469
507
InputStream is = java .security .AccessController .doPrivileged (new java .security .PrivilegedAction <InputStream >() {
470
508
@ Override
471
509
public InputStream run () {
510
+ InputStream is ;
472
511
if (loader != null ) {
473
- return loader .getResourceAsStream (resPath );
512
+ is = loader .getResourceAsStream (dtdFilename );
474
513
} else {
475
- return this .getClass ().getResourceAsStream (resPath );
514
+ is = DefaultEntityResolver .class .getResourceAsStream (dtdFilename );
515
+ }
516
+ if (is == null ) {
517
+ is = ClassLoader .getSystemResourceAsStream (dtdFilename );
476
518
}
519
+ return is ;
477
520
}
478
521
});
479
522
Reader re = null ;
0 commit comments