Merci de penser à copier vos corpus (archive zip ou tar.gz portant votre nom) sur la clef USB à disposition
Une solution pratique : un script ANT.
À la racine du projet, on crée un fichier nommé build.xml avec le contenu suivant (à personnaliser) :
<project name="html4txm" default="makejar">
<!-- Construit un jar pour le projet avec tout ce qui est nécessaire --> <target name="makejar"> <!-- Chemin du jar à générer --> <jar destfile="dist/html4txm.jar"> <!-- les classes compilées du projet --> <fileset dir="build" includes="**/*.class" /> <!-- Les différentes bibliothèques nécessaires (une ligne par fichier jar) --> <zipfileset src="lib/jing.jar" /> <!-- Les ressources à inclure --> <fileset dir="rsc" includes="xhtml1-transitional.rnc" /> </jar> </target>
</project>
Ce script peut ensuite être lancé à l'intérieur d'Eclipse avec un clic droit -> Run as Ant Build
http://stackoverflow.com/questions/155101/make-documentbuilder-parse-ignore-dtd-references
// Pour lire les fichiers XML en choisissant de ne pas les valider // contre la DTD en ligne DocumentBuilderFactory dbfactory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder; try { builder = dbfactory.newDocumentBuilder(); } catch (ParserConfigurationException pce) { log(NORMAL, "Erreur de configuration : "+pce.getMessage()); return; } builder.setEntityResolver(new EntityResolver() { @Override public InputSource resolveEntity(String publicId, String systemId) throws SAXException, IOException { if (systemId.contains("xhtml1-transitional.dtd")) { return new InputSource(new StringReader("")); } else { return null; } } });
Pour créer un document XML à passer à la transformation XSL :
Document xmlDocument = builder.parse(srcFile); DOMSource source = new DOMSource(xmlDocument);
« Keep the bar green to keep the code clean! »
Quelques cas de tests pour démarrer :
// Passer null doit renvoyer null @Test public void testNull() { assertNull(Fr.monoton(null)); } // Chaîne vide @Test public void testVide() { assertEquals("", Fr.monoton("")); } // Test identité @Test public void testIdentite() { assertEquals("parfait", Fr.monoton("parfait")); }
Un test plus exhaustif (en rajoutant le fichier "french" dans le dossier rsc)
// Test ultime @Test public void testDictionnaire() throws Exception { BufferedReader reader = new BufferedReader( new InputStreamReader(new FileInputStream(new File("rsc/french")), Charset.forName("UTF-8"))); Pattern p = Pattern.compile("^[a-zA-Z-' .]+$"); for (;;) { String line = reader.readLine(); if (line == null) { break; } String mline = Fr.monoton(line); if (!p.matcher(mline).matches()) { System.err.println(mline); Assert.fail(); } } reader.close(); }
Anonymous