001    /**
002     * Copyright (c) 2000-present Liferay, Inc. All rights reserved.
003     *
004     * This library is free software; you can redistribute it and/or modify it under
005     * the terms of the GNU Lesser General Public License as published by the Free
006     * Software Foundation; either version 2.1 of the License, or (at your option)
007     * any later version.
008     *
009     * This library is distributed in the hope that it will be useful, but WITHOUT
010     * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
011     * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
012     * details.
013     */
014    
015    package com.liferay.portal.util;
016    
017    import com.liferay.portal.kernel.log.Log;
018    import com.liferay.portal.kernel.log.LogFactoryUtil;
019    import com.liferay.portal.kernel.util.Http;
020    import com.liferay.portal.kernel.util.KeyValuePair;
021    
022    import java.io.InputStream;
023    
024    import org.apache.xerces.xni.XNIException;
025    
026    import org.xml.sax.InputSource;
027    
028    /**
029     * @author Brian Wing Shun Chan
030     */
031    public class EntityResolver implements org.xml.sax.EntityResolver {
032    
033            @Override
034            public InputSource resolveEntity(String publicId, String systemId) {
035                    Class<?> clazz = getClass();
036    
037                    ClassLoader classLoader = clazz.getClassLoader();
038    
039                    if (_log.isDebugEnabled()) {
040                            _log.debug("Resolving entity " + publicId + " " + systemId);
041                    }
042    
043                    if (publicId != null) {
044                            for (int i = 0; i < _PUBLIC_IDS.length; i++) {
045                                    KeyValuePair kvp = _PUBLIC_IDS[i];
046    
047                                    if (publicId.equals(kvp.getKey())) {
048                                            InputStream is = classLoader.getResourceAsStream(
049                                                    _DEFINITIONS_PATH + kvp.getValue());
050    
051                                            if (is == null) {
052                                                    is = classLoader.getResourceAsStream(kvp.getValue());
053                                            }
054    
055                                            if (_log.isDebugEnabled()) {
056                                                    _log.debug("Entity found for public id " + publicId);
057                                            }
058    
059                                            return new InputSource(is);
060                                    }
061                            }
062                    }
063                    else if (systemId != null) {
064                            for (int i = 0; i < _SYSTEM_IDS.length; i++) {
065                                    KeyValuePair kvp = _SYSTEM_IDS[i];
066    
067                                    if (systemId.equals(kvp.getKey())) {
068                                            InputStream is = classLoader.getResourceAsStream(
069                                                    _DEFINITIONS_PATH + kvp.getValue());
070    
071                                            if (is == null) {
072                                                    is = classLoader.getResourceAsStream(kvp.getValue());
073                                            }
074    
075                                            if (_log.isDebugEnabled()) {
076                                                    _log.debug("Entity found for system id " + systemId);
077                                            }
078    
079                                            InputSource inputSource = new InputSource(is);
080    
081                                            inputSource.setSystemId(kvp.getKey());
082    
083                                            return inputSource;
084                                    }
085                            }
086    
087                            if (!systemId.endsWith(".dtd") && !systemId.endsWith(".xsd")) {
088                                    throw new XNIException("Invalid system id " + systemId);
089                            }
090    
091                            if (!systemId.startsWith(Http.HTTP_WITH_SLASH) &&
092                                    !systemId.startsWith(Http.HTTPS_WITH_SLASH)) {
093    
094                                    InputStream inputStream = classLoader.getResourceAsStream(
095                                            systemId);
096    
097                                    if (inputStream != null) {
098                                            InputSource inputSource = new InputSource(inputStream);
099    
100                                            inputSource.setSystemId(systemId);
101    
102                                            return inputSource;
103                                    }
104                                    else {
105                                            throw new XNIException("Invalid system id " + systemId);
106                                    }
107                            }
108                    }
109    
110                    if (_log.isDebugEnabled()) {
111                            _log.debug("No entity found for " + publicId + " " + systemId);
112                    }
113    
114                    return null;
115            }
116    
117            private static final String _DEFINITIONS_PATH =
118                    "com/liferay/portal/definitions/";
119    
120            private static final KeyValuePair[] _PUBLIC_IDS = {
121                    new KeyValuePair("datatypes", "datatypes.dtd"),
122                    new KeyValuePair(
123                            "-//Sun Microsystems, Inc.//DTD Facelet Taglib 1.0//EN",
124                            "facelet-taglib_1_0.dtd"),
125                    new KeyValuePair(
126                            "-//Hibernate/Hibernate Mapping DTD 3.0//EN",
127                            "hibernate-mapping-3.0.dtd"),
128                    new KeyValuePair(
129                            "-//Liferay//DTD Display 2.0.0//EN", "liferay-display_2_0_0.dtd"),
130                    new KeyValuePair(
131                            "-//Liferay//DTD Display 3.5.0//EN", "liferay-display_3_5_0.dtd"),
132                    new KeyValuePair(
133                            "-//Liferay//DTD Display 4.0.0//EN", "liferay-display_4_0_0.dtd"),
134                    new KeyValuePair(
135                            "-//Liferay//DTD Display 5.0.0//EN", "liferay-display_5_0_0.dtd"),
136                    new KeyValuePair(
137                            "-//Liferay//DTD Display 5.1.0//EN", "liferay-display_5_1_0.dtd"),
138                    new KeyValuePair(
139                            "-//Liferay//DTD Display 5.2.0//EN", "liferay-display_5_2_0.dtd"),
140                    new KeyValuePair(
141                            "-//Liferay//DTD Display 6.0.0//EN", "liferay-display_6_0_0.dtd"),
142                    new KeyValuePair(
143                            "-//Liferay//DTD Display 6.1.0//EN", "liferay-display_6_1_0.dtd"),
144                    new KeyValuePair(
145                            "-//Liferay//DTD Display 6.2.0//EN", "liferay-display_6_2_0.dtd"),
146                    new KeyValuePair(
147                            "-//Liferay//DTD Display 7.0.0//EN", "liferay-display_7_0_0.dtd"),
148                    new KeyValuePair(
149                            "-//Liferay//DTD Friendly URL Routes 6.0.0//EN",
150                            "liferay-friendly-url-routes_6_0_0.dtd"),
151                    new KeyValuePair(
152                            "-//Liferay//DTD Friendly URL Routes 6.1.0//EN",
153                            "liferay-friendly-url-routes_6_1_0.dtd"),
154                    new KeyValuePair(
155                            "-//Liferay//DTD Friendly URL Routes 6.2.0//EN",
156                            "liferay-friendly-url-routes_6_2_0.dtd"),
157                    new KeyValuePair(
158                            "-//Liferay//DTD Friendly URL Routes 7.0.0//EN",
159                            "liferay-friendly-url-routes_7_0_0.dtd"),
160                    new KeyValuePair(
161                            "-//Liferay//DTD Hook 5.1.0//EN", "liferay-hook_5_1_0.dtd"),
162                    new KeyValuePair(
163                            "-//Liferay//DTD Hook 5.2.0//EN", "liferay-hook_5_2_0.dtd"),
164                    new KeyValuePair(
165                            "-//Liferay//DTD Hook 6.0.0//EN", "liferay-hook_6_0_0.dtd"),
166                    new KeyValuePair(
167                            "-//Liferay//DTD Hook 6.1.0//EN", "liferay-hook_6_1_0.dtd"),
168                    new KeyValuePair(
169                            "-//Liferay//DTD Hook 6.2.0//EN", "liferay-hook_6_2_0.dtd"),
170                    new KeyValuePair(
171                            "-//Liferay//DTD Hook 7.0.0//EN", "liferay-hook_7_0_0.dtd"),
172                    new KeyValuePair(
173                            "-//Liferay//DTD Layout Templates 3.6.0//EN",
174                            "liferay-layout-templates_3_6_0.dtd"),
175                    new KeyValuePair(
176                            "-//Liferay//DTD Layout Templates 4.0.0//EN",
177                            "liferay-layout-templates_4_0_0.dtd"),
178                    new KeyValuePair(
179                            "-//Liferay//DTD Layout Templates 4.3.0//EN",
180                            "liferay-layout-templates_4_3_0.dtd"),
181                    new KeyValuePair(
182                            "-//Liferay//DTD Layout Templates 5.0.0//EN",
183                            "liferay-layout-templates_5_0_0.dtd"),
184                    new KeyValuePair(
185                            "-//Liferay//DTD Layout Templates 5.1.0//EN",
186                            "liferay-layout-templates_5_1_0.dtd"),
187                    new KeyValuePair(
188                            "-//Liferay//DTD Layout Templates 5.2.0//EN",
189                            "liferay-layout-templates_5_2_0.dtd"),
190                    new KeyValuePair(
191                            "-//Liferay//DTD Layout Templates 6.0.0//EN",
192                            "liferay-layout-templates_6_0_0.dtd"),
193                    new KeyValuePair(
194                            "-//Liferay//DTD Layout Templates 6.1.0//EN",
195                            "liferay-layout-templates_6_1_0.dtd"),
196                    new KeyValuePair(
197                            "-//Liferay//DTD Layout Templates 6.2.0//EN",
198                            "liferay-layout-templates_6_2_0.dtd"),
199                    new KeyValuePair(
200                            "-//Liferay//DTD Layout Templates 7.0.0//EN",
201                            "liferay-layout-templates_7_0_0.dtd"),
202                    new KeyValuePair(
203                            "-//Liferay//DTD Look and Feel 3.5.0//EN",
204                            "liferay-look-and-feel_3_5_0.dtd"),
205                    new KeyValuePair(
206                            "-//Liferay//DTD Look and Feel 4.0.0//EN",
207                            "liferay-look-and-feel_4_0_0.dtd"),
208                    new KeyValuePair(
209                            "-//Liferay//DTD Look and Feel 4.3.0//EN",
210                            "liferay-look-and-feel_4_3_0.dtd"),
211                    new KeyValuePair(
212                            "-//Liferay//DTD Look and Feel 5.0.0//EN",
213                            "liferay-look-and-feel_5_0_0.dtd"),
214                    new KeyValuePair(
215                            "-//Liferay//DTD Look and Feel 5.1.0//EN",
216                            "liferay-look-and-feel_5_1_0.dtd"),
217                    new KeyValuePair(
218                            "-//Liferay//DTD Look and Feel 5.2.0//EN",
219                            "liferay-look-and-feel_5_2_0.dtd"),
220                    new KeyValuePair(
221                            "-//Liferay//DTD Look and Feel 6.0.0//EN",
222                            "liferay-look-and-feel_6_0_0.dtd"),
223                    new KeyValuePair(
224                            "-//Liferay//DTD Look and Feel 6.1.0//EN",
225                            "liferay-look-and-feel_6_1_0.dtd"),
226                    new KeyValuePair(
227                            "-//Liferay//DTD Look and Feel 6.2.0//EN",
228                            "liferay-look-and-feel_6_2_0.dtd"),
229                    new KeyValuePair(
230                            "-//Liferay//DTD Look and Feel 7.0.0//EN",
231                            "liferay-look-and-feel_7_0_0.dtd"),
232                    new KeyValuePair(
233                            "-//Liferay//DTD Plugin Package 4.3.0//EN",
234                            "liferay-plugin-package_4_3_0.dtd"),
235    
236                    new KeyValuePair(
237                            "-//Liferay//DTD Plugin Package 5.0.0//EN",
238                            "liferay-plugin-package_5_0_0.dtd"),
239                    new KeyValuePair(
240                            "-//Liferay//DTD Plugin Package 5.1.0//EN",
241                            "liferay-plugin-package_5_1_0.dtd"),
242                    new KeyValuePair(
243                            "-//Liferay//DTD Plugin Package 5.2.0//EN",
244                            "liferay-plugin-package_5_2_0.dtd"),
245                    new KeyValuePair(
246                            "-//Liferay//DTD Plugin Package 6.0.0//EN",
247                            "liferay-plugin-package_6_0_0.dtd"),
248                    new KeyValuePair(
249                            "-//Liferay//DTD Plugin Package 6.1.0//EN",
250                            "liferay-plugin-package_6_1_0.dtd"),
251                    new KeyValuePair(
252                            "-//Liferay//DTD Plugin Package 6.2.0//EN",
253                            "liferay-plugin-package_6_2_0.dtd"),
254                    new KeyValuePair(
255                            "-//Liferay//DTD Plugin Package 7.0.0//EN",
256                            "liferay-plugin-package_7_0_0.dtd"),
257                    new KeyValuePair(
258                            "-//Liferay//DTD Plugin Repository 4.3.0//EN",
259                            "liferay-plugin-repository_4_3_0.dtd"),
260                    new KeyValuePair(
261                            "-//Liferay//DTD Plugin Repository 5.0.0//EN",
262                            "liferay-plugin-repository_5_0_0.dtd"),
263                    new KeyValuePair(
264                            "-//Liferay//DTD Plugin Repository 5.1.0//EN",
265                            "liferay-plugin-repository_5_1_0.dtd"),
266                    new KeyValuePair(
267                            "-//Liferay//DTD Plugin Repository 5.2.0//EN",
268                            "liferay-plugin-repository_5_2_0.dtd"),
269                    new KeyValuePair(
270                            "-//Liferay//DTD Plugin Repository 6.0.0//EN",
271                            "liferay-plugin-repository_6_0_0.dtd"),
272                    new KeyValuePair(
273                            "-//Liferay//DTD Plugin Repository 6.1.0//EN",
274                            "liferay-plugin-repository_6_1_0.dtd"),
275                    new KeyValuePair(
276                            "-//Liferay//DTD Plugin Repository 6.2.0//EN",
277                            "liferay-plugin-repository_6_2_0.dtd"),
278                    new KeyValuePair(
279                            "-//Liferay//DTD Plugin Repository 7.0.0//EN",
280                            "liferay-plugin-repository_7_0_0.dtd"),
281                    new KeyValuePair(
282                            "-//Liferay//DTD Portlet Application 3.5.0//EN",
283                            "liferay-portlet-app_3_5_0.dtd"),
284                    new KeyValuePair(
285                            "-//Liferay//DTD Portlet Application 4.0.0//EN",
286                            "liferay-portlet-app_4_0_0.dtd"),
287                    new KeyValuePair(
288                            "-//Liferay//DTD Portlet Application 4.1.0//EN",
289                            "liferay-portlet-app_4_1_0.dtd"),
290    
291                    new KeyValuePair(
292                            "-//Liferay//DTD Portlet Application 4.2.0//EN",
293                            "liferay-portlet-app_4_2_0.dtd"),
294                    new KeyValuePair(
295                            "-//Liferay//DTD Portlet Application 4.3.0//EN",
296                            "liferay-portlet-app_4_3_0.dtd"),
297                    new KeyValuePair(
298                            "-//Liferay//DTD Portlet Application 4.3.1//EN",
299                            "liferay-portlet-app_4_3_1.dtd"),
300                    new KeyValuePair(
301                            "-//Liferay//DTD Portlet Application 4.3.2//EN",
302                            "liferay-portlet-app_4_3_2.dtd"),
303                    new KeyValuePair(
304                            "-//Liferay//DTD Portlet Application 4.3.3//EN",
305                            "liferay-portlet-app_4_3_3.dtd"),
306                    new KeyValuePair(
307                            "-//Liferay//DTD Portlet Application 4.3.6//EN",
308                            "liferay-portlet-app_4_3_6.dtd"),
309                    new KeyValuePair(
310                            "-//Liferay//DTD Portlet Application 4.4.0//EN",
311                            "liferay-portlet-app_4_4_0.dtd"),
312                    new KeyValuePair(
313                            "-//Liferay//DTD Portlet Application 5.0.0//EN",
314                            "liferay-portlet-app_5_0_0.dtd"),
315                    new KeyValuePair(
316                            "-//Liferay//DTD Portlet Application 5.1.0//EN",
317                            "liferay-portlet-app_5_1_0.dtd"),
318                    new KeyValuePair(
319                            "-//Liferay//DTD Portlet Application 5.2.0//EN",
320                            "liferay-portlet-app_5_2_0.dtd"),
321                    new KeyValuePair(
322                            "-//Liferay//DTD Portlet Application 6.0.0//EN",
323                            "liferay-portlet-app_6_0_0.dtd"),
324                    new KeyValuePair(
325                            "-//Liferay//DTD Portlet Application 6.1.0//EN",
326                            "liferay-portlet-app_6_1_0.dtd"),
327                    new KeyValuePair(
328                            "-//Liferay//DTD Portlet Application 6.2.0//EN",
329                            "liferay-portlet-app_6_2_0.dtd"),
330                    new KeyValuePair(
331                            "-//Liferay//DTD Portlet Application 7.0.0//EN",
332                            "liferay-portlet-app_7_0_0.dtd"),
333                    new KeyValuePair(
334                            "-//Liferay//DTD Resource Action Mapping 6.0.0//EN",
335                            "liferay-resource-action-mapping_6_0_0.dtd"),
336                    new KeyValuePair(
337                            "-//Liferay//DTD Resource Action Mapping 6.1.0//EN",
338                            "liferay-resource-action-mapping_6_1_0.dtd"),
339                    new KeyValuePair(
340                            "-//Liferay//DTD Resource Action Mapping 6.2.0//EN",
341                            "liferay-resource-action-mapping_6_2_0.dtd"),
342                    new KeyValuePair(
343                            "-//Liferay//DTD Resource Action Mapping 7.0.0//EN",
344                            "liferay-resource-action-mapping_7_0_0.dtd"),
345                    new KeyValuePair(
346                            "-//Liferay//DTD Service Builder 3.5.0//EN",
347                            "liferay-service-builder_3_5_0.dtd"),
348                    new KeyValuePair(
349                            "-//Liferay//DTD Service Builder 3.6.1//EN",
350                            "liferay-service-builder_3_6_1.dtd"),
351                    new KeyValuePair(
352                            "-//Liferay//DTD Service Builder 4.0.0//EN",
353                            "liferay-service-builder_4_0_0.dtd"),
354                    new KeyValuePair(
355                            "-//Liferay//DTD Service Builder 4.2.0//EN",
356                            "liferay-service-builder_4_2_0.dtd"),
357                    new KeyValuePair(
358                            "-//Liferay//DTD Service Builder 4.3.0//EN",
359                            "liferay-service-builder_4_3_0.dtd"),
360                    new KeyValuePair(
361                            "-//Liferay//DTD Service Builder 4.3.3//EN",
362                            "liferay-service-builder_4_3_3.dtd"),
363                    new KeyValuePair(
364                            "-//Liferay//DTD Service Builder 4.4.0//EN",
365                            "liferay-service-builder_4_4_0.dtd"),
366                    new KeyValuePair(
367                            "-//Liferay//DTD Service Builder 5.0.0//EN",
368                            "liferay-service-builder_5_0_0.dtd"),
369                    new KeyValuePair(
370                            "-//Liferay//DTD Service Builder 5.1.0//EN",
371                            "liferay-service-builder_5_1_0.dtd"),
372                    new KeyValuePair(
373                            "-//Liferay//DTD Service Builder 5.2.0//EN",
374                            "liferay-service-builder_5_2_0.dtd"),
375                    new KeyValuePair(
376                            "-//Liferay//DTD Service Builder 6.0.0//EN",
377                            "liferay-service-builder_6_0_0.dtd"),
378                    new KeyValuePair(
379                            "-//Liferay//DTD Service Builder 6.1.0//EN",
380                            "liferay-service-builder_6_1_0.dtd"),
381                    new KeyValuePair(
382                            "-//Liferay//DTD Service Builder 6.2.0//EN",
383                            "liferay-service-builder_6_2_0.dtd"),
384                    new KeyValuePair(
385                            "-//Liferay//DTD Service Builder 7.0.0//EN",
386                            "liferay-service-builder_7_0_0.dtd"),
387                    new KeyValuePair(
388                            "-//Liferay//DTD Social 6.1.0//EN", "liferay-social_6_1_0.dtd"),
389                    new KeyValuePair(
390                            "-//Liferay//DTD Social 6.2.0//EN", "liferay-social_6_2_0.dtd"),
391                    new KeyValuePair(
392                            "-//Liferay//DTD Social 7.0.0//EN", "liferay-social_7_0_0.dtd"),
393                    new KeyValuePair(
394                            "-//Liferay//DTD Theme Loader 4.3.0//EN",
395                            "liferay-theme-loader_4_3_0.dtd"),
396                    new KeyValuePair(
397                            "-//Liferay//DTD Theme Loader 5.0.0//EN",
398                            "liferay-theme-loader_5_0_0.dtd"),
399                    new KeyValuePair(
400                            "-//Liferay//DTD Theme Loader 5.1.0//EN",
401                            "liferay-theme-loader_5_1_0.dtd"),
402                    new KeyValuePair(
403                            "-//Liferay//DTD Theme Loader 5.2.0//EN",
404                            "liferay-theme-loader_5_2_0.dtd"),
405                    new KeyValuePair(
406                            "-//Liferay//DTD Theme Loader 6.0.0//EN",
407                            "liferay-theme-loader_6_0_0.dtd"),
408                    new KeyValuePair(
409                            "-//Liferay//DTD Theme Loader 6.1.0//EN",
410                            "liferay-theme-loader_6_1_0.dtd"),
411                    new KeyValuePair(
412                            "-//Liferay//DTD Theme Loader 6.2.0//EN",
413                            "liferay-theme-loader_6_2_0.dtd"),
414                    new KeyValuePair(
415                            "-//Liferay//DTD Theme Loader 7.0.0//EN",
416                            "liferay-theme-loader_7_0_0.dtd"),
417                    new KeyValuePair(
418                            "-//Liferay//DTD User Notification Definition 6.2.0//EN",
419                            "liferay-user-notification-definitions_6_2_0.dtd"),
420                    new KeyValuePair(
421                            "-//Liferay//DTD User Notification Definition 7.0.0//EN",
422                            "liferay-user-notification-definitions_7_0_0.dtd"),
423                    new KeyValuePair(
424                            "-//MuleSource //DTD mule-configuration XML V1.0//EN",
425                            "mule-configuration.dtd"),
426                    new KeyValuePair("-//SPRING//DTD BEAN//EN", "spring-beans.dtd"),
427                    new KeyValuePair(
428                            "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN",
429                            "struts-config_1_2.dtd"),
430                    new KeyValuePair(
431                            "-//Apache Software Foundation//DTD Tiles Configuration 1.1//EN",
432                            "tiles-config_1_1.dtd"),
433                    new KeyValuePair(
434                            "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN",
435                            "web-app_2_3.dtd"),
436                    new KeyValuePair(
437                            "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN",
438                            "web-facesconfig_1_0.dtd"),
439                    new KeyValuePair(
440                            "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN",
441                            "web-facesconfig_1_1.dtd"),
442                    new KeyValuePair(
443                            "-//W3C//DTD XMLSCHEMA 200102//EN", "XMLSchema.dtd")
444            };
445    
446            private static final KeyValuePair[] _SYSTEM_IDS = {
447                    new KeyValuePair(
448                            "http://java.sun.com/xml/ns/j2ee/j2ee_1_4.xsd", "j2ee_1_4.xsd"),
449                    new KeyValuePair(
450                            "http://www.ibm.com/webservices/xsd/" +
451                                    "j2ee_web_services_client_1_1.xsd",
452                            "j2ee_web_services_client_1_1.xsd"),
453                    new KeyValuePair(
454                            "http://java.sun.com/xml/ns/javaee/javaee_5.xsd", "javaee_5.xsd"),
455                    new KeyValuePair(
456                            "http://java.sun.com/xml/ns/javaee/javaee_6.xsd", "javaee_6.xsd"),
457                    new KeyValuePair(
458                            "http://java.sun.com/xml/ns/javaee/" +
459                                    "javaee_web_services_client_1_2.xsd",
460                            "javaee_web_services_client_1_2.xsd"),
461                    new KeyValuePair(
462                            "http://java.sun.com/xml/ns/javaee/" +
463                                    "javaee_web_services_client_1_3.xsd",
464                            "javaee_web_services_client_1_3.xsd"),
465                    new KeyValuePair(
466                            "http://java.sun.com/xml/ns/j2ee/jsp_2_0.xsd", "jsp_2_0.xsd"),
467                    new KeyValuePair(
468                            "http://java.sun.com/xml/ns/javaee/jsp_2_1.xsd", "jsp_2_1.xsd"),
469                    new KeyValuePair(
470                            "http://java.sun.com/xml/ns/javaee/jsp_2_2.xsd", "jsp_2_2.xsd"),
471                    new KeyValuePair(
472                            "http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd",
473                            "portlet-app_1_0.xsd"),
474                    new KeyValuePair(
475                            "http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd",
476                            "portlet-app_2_0.xsd"),
477                    new KeyValuePair(
478                            "http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd",
479                            "web-app_2_4.xsd"),
480                    new KeyValuePair(
481                            "http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd",
482                            "web-app_2_5.xsd"),
483                    new KeyValuePair(
484                            "http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd",
485                            "web-app_3_0.xsd"),
486                    new KeyValuePair(
487                            "http://java.sun.com/xml/ns/javaee/web-common_3_0.xsd",
488                            "web-common_3_0.xsd"),
489                    new KeyValuePair(
490                            "http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd",
491                            "web-facesconfig_1_2.xsd"),
492                    new KeyValuePair(
493                            "http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd",
494                            "web-facesconfig_2_0.xsd"),
495                    new KeyValuePair(
496                            "http://java.sun.com/xml/ns/javaee/web-facesconfig_2_1.xsd",
497                            "web-facesconfig_2_1.xsd"),
498                    new KeyValuePair(
499                            "http://www.liferay.com/dtd/liferay-ddm-structure_6_2_0.xsd",
500                            "liferay-ddm-structure_6_2_0.xsd"),
501                    new KeyValuePair(
502                            "http://www.liferay.com/dtd/liferay-ddm-structure_7_0_0.xsd",
503                            "liferay-ddm-structure_7_0_0.xsd"),
504                    new KeyValuePair(
505                            "http://www.liferay.com/dtd/liferay-workflow-definition_6_0_0.xsd",
506                            "liferay-workflow-definition_6_0_0.xsd"),
507                    new KeyValuePair(
508                            "http://www.liferay.com/dtd/liferay-workflow-definition_6_1_0.xsd",
509                            "liferay-workflow-definition_6_1_0.xsd"),
510                    new KeyValuePair(
511                            "http://www.liferay.com/dtd/liferay-workflow-definition_6_2_0.xsd",
512                            "liferay-workflow-definition_6_2_0.xsd"),
513                    new KeyValuePair(
514                            "http://www.liferay.com/dtd/liferay-workflow-definition_7_0_0.xsd",
515                            "liferay-workflow-definition_7_0_0.xsd"),
516                    new KeyValuePair(
517                            "http://www.w3.org/2001/xml.xsd", "xml.xsd")
518            };
519    
520            private static final Log _log = LogFactoryUtil.getLog(EntityResolver.class);
521    
522    }