00001
00027 package org.objectweb.jonas_lib.deployment.api;
00028
00029
00030 import java.net.URL;
00031 import java.util.ArrayList;
00032 import java.util.List;
00033
00034
00039 public abstract class CommonsSchemas implements Schemas {
00040
00041
00045 private static final String[] DEFAULT_SCHEMAS = new String[] {
00046 "j2ee_1_4.xsd",
00047 "j2ee_web_services_client_1_1.xsd",
00048 "xml.xsd",
00049 "jonas_j2ee_4_0.xsd",
00050 "jonas_j2ee_4_1.xsd",
00051 "jonas_j2ee_4_1_2.xsd",
00052 "jonas_j2ee_4_1_4.xsd",
00053 "jonas_j2ee_4_2.xsd"
00054 };
00055
00056
00060 private static ArrayList localSchemas = null;
00061
00062
00066 public CommonsSchemas() {
00067 localSchemas = new ArrayList();
00068 addSchemas(DEFAULT_SCHEMAS);
00069 }
00070
00075 public List getlocalSchemas() {
00076 return localSchemas;
00077 }
00078
00079
00085 protected static void addSchemas(String[] schemas) throws IllegalStateException {
00086 URL url = null;
00087 for (int i = 0; i < schemas.length; i++) {
00088 url = CommonsSchemas.class.getResource("/" + schemas[i]);
00089 if (url == null) {
00090 throw new IllegalStateException("'" + schemas[i] + "' was not found in the current classloader !");
00091 }
00092 localSchemas.add(url.toString());
00093 }
00094 }
00095
00101 public static String getHeaderForElement(String element, String[] schemas) {
00102 StringBuffer header = new StringBuffer();
00103 header.append("<");
00104 header.append(element);
00105 header.append(" xmlns=\"http://www.objectweb.org/jonas/ns\"\n");
00106 header.append(" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n");
00107 header.append(" xsi:schemaLocation=\"http://www.objectweb.org/jonas/ns\n");
00108 header.append(" http://www.objectweb.org/jonas/ns/");
00109
00110
00111 header.append(schemas[schemas.length - 1]);
00112 header.append("\" >\n");
00113
00114 return header.toString();
00115 }
00116
00117 }