/* * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. * * Copyright 2008 jOpenDocument, by ILM Informatique. All rights reserved. * * The contents of this file are subject to the terms of the GNU * General Public License Version 3 only ("GPL"). * You may not use this file except in compliance with the License. * You can obtain a copy of the License at http://www.gnu.org/licenses/gpl-3.0.html * See the License for the specific language governing permissions and limitations under the License. * * When distributing the software, include this License Header Notice in each file. * */ package org.jopendocument.sample; import java.io.File; import javax.xml.XMLConstants; import javax.xml.validation.Schema; import javax.xml.validation.SchemaFactory; import org.jopendocument.dom.ODSingleXMLDocument; import org.jopendocument.dom.OOUtils; import org.jopendocument.dom.OOXML; import org.xml.sax.SAXException; import com.thaiopensource.relaxng.jaxp.XMLSyntaxSchemaFactory; public class TextCat { public static void main(String[] args) { try { // Load 2 text documents File file1 = new File(TextCat.class.getResource("template/ooo2flyer_p1.odt").toURI()); ODSingleXMLDocument p1 = ODSingleXMLDocument.createFromFile(file1); File file2 = new File(TextCat.class.getResource("template/ooo2flyer_p2.odt").toURI()); ODSingleXMLDocument p2 = ODSingleXMLDocument.createFromFile(file2); // Concatenate them p1.add(p2); // Save to file and Open the document with OpenOffice.org ! OOUtils.open(p1.saveAs(new File("target/template/cat.odt"))); } catch (Exception e) { e.printStackTrace(); } try { // Specify you want a factory for RELAX NG // System.setProperty(SchemaFactory.class.getName() + ":" + XMLConstants.RELAXNG_NS_URI, "com.thaiopensource.relaxng.jaxp.XMLSyntaxSchemaFactory"); SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.RELAXNG_NS_URI, XMLSyntaxSchemaFactory.class.getName(), null); final Schema schema = factory.newSchema(OOXML.class.getResource("oofficeDTDs/OpenDocument-strict-schema-v1.1.rng")); } catch (SAXException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }