Main Page | Packages | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | Related Pages

org.objectweb.cjdbc.common.xml.XmlTools Class Reference

List of all members.

Static Public Member Functions

String prettyXml (String xml) throws Exception
String applyXsl (String xml, String xsl)
File internationalizeXsl (File xsl) throws Exception

Static Package Attributes

Trace logger

Detailed Description

This class defines a XmlTools

Author:
Nicolas Modrzyk
Version:
1.0

Definition at line 52 of file XmlTools.java.


Member Function Documentation

String org.objectweb.cjdbc.common.xml.XmlTools.applyXsl String  xml,
String  xsl
[static]
 

Apply xslt to xml

Parameters:
xml to transform
xsl transformation to apply
Returns:
xml formatted string or error message

Definition at line 82 of file XmlTools.java.

00083   {
00084     try
00085     {
00086       StringWriter result = new StringWriter();
00087       if (tFactory == null)
00088         tFactory = TransformerFactory.newInstance();
00089       File infoXsl = internationalizeXsl(new File(URLDecoder
00090           .decode(XmlTools.class.getResource("/" + xsl).getFile())));
00091       if (logger.isDebugEnabled())
00092         logger.debug(Translate.get("controller.xml.use.xsl", infoXsl));
00093       //if(infoTransformer==null)
00094       infoTransformer = tFactory.newTransformer(new StreamSource(infoXsl));
00095       infoTransformer.transform(new StreamSource(new StringReader(xml)),
00096           new StreamResult(result));
00097       return result.toString();
00098     }
00099     catch (Exception e)
00100     {
00101       String msg = Translate.get("controller.xml.transformation.failed", e);
00102 
00103       if (logger.isDebugEnabled())
00104         logger.debug(msg, e);
00105       logger.error(msg);
00106       return msg;
00107     }
00108   }

File org.objectweb.cjdbc.common.xml.XmlTools.internationalizeXsl File  xsl  )  throws Exception [static]
 

Transform the xsl file so that it is internationalized.

Parameters:
xsl xsl file
Returns:
internationalized file
Exceptions:
Exception if an error occurs

Definition at line 117 of file XmlTools.java.

00118   {
00119     int point = xsl.getAbsolutePath().lastIndexOf('.');
00120     String xslPath = xsl.getAbsolutePath();
00121     xslPath = xslPath.substring(0, point) + "_" + Locale.getDefault()
00122         + xslPath.substring(point);
00123     File i18nXsl = new File(xslPath);
00124     if (i18nXsl.exists() == false)
00125     {
00126       ResourceBundle rb = ResourceBundle.getBundle("c-jdbc-xsl");
00127       BufferedReader br = new BufferedReader(new FileReader(xsl));
00128       String xml = "";
00129       String oi18n = "<i18n>";
00130       String ci18n = "</i18n>";
00131       int oi18nl = oi18n.length();
00132       int ci18nl = oi18nl + 1;
00133       StringBuffer buffer = new StringBuffer();
00134       String i18n = "";
00135       while ((xml = br.readLine()) != null)
00136       {
00137         int indexOpen = 0, indexClose = 0;
00138         while ((indexOpen = xml.indexOf(oi18n)) != -1)
00139         {
00140           indexClose = xml.indexOf(ci18n);
00141           i18n = xml.substring(indexOpen + oi18nl, indexClose).trim();
00142           try
00143           {
00144             i18n = rb.getString(i18n);
00145           }
00146           catch (Exception ignore)
00147           // if the key has no match return the key itself
00148           {
00149           }
00150           xml = xml.substring(0, indexOpen) + i18n
00151               + xml.substring(indexClose + ci18nl);
00152         }
00153         buffer.append(xml + System.getProperty("line.separator"));
00154       }
00155       BufferedWriter bw = new BufferedWriter(new FileWriter(i18nXsl));
00156       bw.write(buffer.toString());
00157       bw.flush();
00158       bw.close();
00159     }
00160     return i18nXsl;
00161   }

String org.objectweb.cjdbc.common.xml.XmlTools.prettyXml String  xml  )  throws Exception [static]
 

Indent xml with xslt

Parameters:
xml to indent
Returns:
indented xml
Exceptions:
Exception if an error occurs

Definition at line 70 of file XmlTools.java.

00071   {
00072     return applyXsl(xml, "c-jdbc-pretty.xsl");
00073   }


Member Data Documentation

Trace org.objectweb.cjdbc.common.xml.XmlTools.logger [static, package]
 

Initial value:

 Trace.getLogger(XmlTools.class
                                               .getName())
Logger instance.

Definition at line 56 of file XmlTools.java.


The documentation for this class was generated from the following file:
Generated on Mon Apr 11 22:02:14 2005 for C-JDBC by  doxygen 1.3.9.1