CommonsSchemas.java

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         // Get the last XSD
00111         header.append(schemas[schemas.length - 1]);
00112         header.append("\" >\n");
00113 
00114         return header.toString();
00115     }
00116 
00117 }

Generated on Tue Feb 15 15:05:50 2005 for JOnAS by  doxygen 1.3.9.1