[Castore-commits] XMLUtils.java NONE 1.1
Céline BENOIT
cbenoit at adullact1.hosting.cri74.org
Mer 22 Mar 15:14:01 CET 2006
Update of /cvsroot/castore/castore-core/src/java/fr/emn/castor/documents/metier/textes/retro/tools
In directory adullact1:/tmp/cvs-serv8126/src/java/fr/emn/castor/documents/metier/textes/retro/tools
Added Files:
XMLUtils.java
Log Message:
déplacement du fichier
--- NEW FILE: XMLUtils.java ---
/*
* $Id: XMLUtils.java,v 1.1 2006/03/22 14:13:58 cbenoit Exp $
*
* Plateforme CASTORE
* CeCILL Copyright (C) 2005-2006 by EMN
* Made by Stéphane Bouchet, Xerox
* Web site = http://www.emn.fr/castore
* Contact = Cédric Dumas, e-mail = Cedric.Dumas at emn.fr
*
* Version 1.0 (1er mars 2005)
*
* Ce logiciel est un programme informatique servant à créer une plateforme
* open-source de bibliothèque numérique XML pour Conserver, Valoriser et
* Diffuser le patrimoine documentaire de votre institut.
*
* Ce logiciel est régi par la licence CeCILL soumise au droit français et
* respectant les principes de diffusion des logiciels libres. Vous pouvez
* utiliser, modifier et/ou redistribuer ce programme sous les conditions de la
* licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIA sur le site
* "http://www.cecill.info". En contrepartie de l'accessibilité au code source
* et des droits de copie, de modification et de redistribution accordés par
* cette licence, il n'est offert aux utilisateurs qu'une garantie limitée. Pour
* les mêmes raisons, seule une responsabilité restreinte pèse sur l'auteur du
* programme, le titulaire des droits patrimoniaux et les concédants successifs.
* A cet égard l'attention de l'utilisateur est attirée sur les risques associés
* au chargement, à l'utilisation, à la modification et/ou au développement et à
* la reproduction du logiciel par l'utilisateur étant donné sa spécificité de
* logiciel libre, qui peut le rendre complexe à manipuler et qui le réserve
* donc à des développeurs et des professionnels avertis possédant des
* connaissances informatiques approfondies. Les utilisateurs sont donc invités
* à charger et tester l'adéquation du logiciel à leurs besoins dans des
* conditions permettant d'assurer la sécurité de leurs systèmes et ou de leurs
* données et, plus généralement, à l'utiliser et l'exploiter dans les mêmes
* conditions de sécurité. Le fait que vous puissiez accéder à cet en-tête
* signifie que vous avez pris connaissance de la licence CeCILL, et que vous en
* avez accepté les termes.
*
*/
package fr.emn.castor.documents.metier.textes.retro.tools;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import org.jdom.Document;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
import org.jdom.output.XMLOutputter;
import fr.emn.castor.common.Constants;
/**
* @author rdelambe XML Utilities
*
*/
public class XMLUtils {
// Validation feature id (http://xml.org/sax/features/validation).
protected static final String VALIDATION_FEATURE_ID = "http://xml.org/sax/features/validation";
// Schema validation feature id (http://apache.org/xml/features/validation/schema).
protected static final String SCHEMA_VALIDATION_FEATURE_ID = "http://apache.org/xml/features/validation/schema";
// Entity resolver feature id (http://apache.org/xml/properties/internal/entity-resolver).
protected static final String ENTITY_RESOLVER_FEATURE_ID = "http://apache.org/xml/properties/internal/entity-resolver";
// Include ignorable whitespace feature id (http://apache.org/xml/features/dom/include-ignorable-whitespace).
// Works Only with DOMParser and DTD
protected static final String INCLUDE_IGNORABLE_WHITESPACE_FEATURE_ID = "http://apache.org/xml/features/dom/include-ignorable-whitespace";
protected static SAXBuilder builder;
protected static XMLOutputter serializer;
protected static boolean init = false;
// This method init the parser used later to load XML file into JDom Document
// and the serializer used later to write a JDOM Document into a XML File
/**
* Init the parser and serializer
*
* @param catalog
* the OASIS XML Catalog
* @return void
*/
public static void init(String catalog) {
if (init == false) {
// Create builder to build JDOM document from XML File
builder = new SAXBuilder(Constants.XML_SAX_PARSER);
// Validate the XML Document against its grammar
builder.setValidation(false);
// Support Schema grammar
builder.setFeature(SCHEMA_VALIDATION_FEATURE_ID, false);
// Support OASIS catalog
/*
CatalogManager catalogManager = new CatalogManager();
catalogManager.setCatalogFiles(catalog);
CatalogResolver catalogResolver = new CatalogResolver(catalogManager);
builder.setProperty(ENTITY_RESOLVER_FEATURE_ID, catalogResolver); */
// Create the serializer to create XML file from JDOM Document
serializer = new XMLOutputter();
}
init = true;
}
// This method writes a XML document to a file
/**
* Writes a XML document to a file
*
* @param document the XML ADocument
* @param outputFilePath the output XML file path
* @return void
*/
public static void getXMLFileFromDocument(
Document document, String outputFilePath) {
FileOutputStream outStream = null;
try {
// Create a XML File from a JDOM tree
outStream = new FileOutputStream(outputFilePath);
serializer.output(document, outStream);
outStream.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
// This method load a XML file into a XML document
/**
* Laod a XML document
*
* @param inputFilePath
* the input XML file path
* @return the output XML ADocument
*/
public static Document getDocumentFromXMLFile(String inputFilePath) {
Document doc = null;
try {
doc = builder.build(inputFilePath);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (JDOMException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return doc;
}
/* private static final String ERROR_IO = "Erreur d'entrée/sortie lors de l'appel à construteur.parse(xml)";
private static final String ERROR_UNKNOWN = "Unknown error";
private static final String ERROR_TRANSFORMER_FACTORY = "Transformer Factory error";
private static final String ERROR_TRANSFORMATION = "Transformation error";*/
}
Plus d'informations sur la liste de diffusion Castore-commits