/* * XPontusCatalogResolver.java * * Created on February 14, 2007, 3:32 AM * * To change this template, choose Tools | Template Manager * and open the template in the editor. */ package net.sf.xpontus.cache; import java.io.File; import java.io.FileReader; import java.net.URL; import java.util.Vector; import net.sf.xpontus.constants.XPontusConstants; import org.apache.xerces.impl.dtd.DTDGrammar; import org.apache.xerces.impl.dtd.XMLDTDLoader; import org.apache.xerces.util.XMLResourceIdentifierImpl; import org.apache.xerces.xni.XMLResourceIdentifier; import org.apache.xerces.xni.parser.XMLInputSource; import org.apache.xml.resolver.Catalog; import org.apache.xml.resolver.CatalogEntry; import org.apache.xml.resolver.CatalogManager; import org.xml.sax.InputSource; /** * * @author Owner */ public class XPontusCatalogResolver { private CatalogManager catalogManager; private Catalog catalog; public static void main(String[] argv) throws Exception{ System.setProperty("xml.catalog.staticCatalog", "true"); System.setProperty("xml.catalog.files", "C:\\tests\\docbook-xml-4.4\\docbook.cat"); CatalogManager manager = new CatalogManager(); Vector catalogs = manager.catalogFiles(); System.out.println("number of catalogs:" + catalogs.size()); Catalog catalog = manager.getCatalog(); System.out.println("entry:" + catalogs.get(0).toString()); String s = manager.getCatalog().resolvePublic("-//OASIS//DTD DocBook XML V4.4//EN", "http://www.oasis-open.org/docbook/xml/4.4/docbookx.dtd"); InputSource is = new InputSource(new FileReader(s.substring(5, s.length()))); XMLResourceIdentifier identifier = new XMLResourceIdentifierImpl(); identifier.setPublicId("-//OASIS//DTD DocBook XML V4.4//EN"); identifier.setBaseSystemId(s); XMLInputSource src = new XMLInputSource(identifier); DTDGrammar grammar = (DTDGrammar) new XMLDTDLoader().loadGrammar(src); } }