
w3c.css.util.xml.XMLCatalog Maven / Gradle / Ivy
/*
* Copyright (c) 2001 World Wide Web Consortium,
* (Massachusetts Institute of Technology, Institut National de
* Recherche en Informatique et en Automatique, Keio University). All
* Rights Reserved. This program is distributed under the W3C's Software
* Intellectual Property License. This program is distributed in the
* hope that it will be useful, but WITHOUT ANY WARRANTY; without even
* the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE.
* See W3C License http://www.w3.org/Consortium/Legal/ for more details.
*
* $Id$
*/
package org.w3c.css.util.xml;
import org.w3c.css.util.Utf8Properties;
import org.xml.sax.Attributes;
import org.xml.sax.ContentHandler;
import org.xml.sax.InputSource;
import org.xml.sax.Locator;
import org.xml.sax.SAXException;
import java.net.URL;
/**
* @author Philippe Le Hegaret
* @version $Revision$
*/
public class XMLCatalog extends Utf8Properties implements ContentHandler {
URL baseURI;
/**
* Creates a new XMLCatalog
*/
public XMLCatalog() {
try {
baseURI = XMLCatalog.class.getResource("catalog.xml");
parse(baseURI.toString());
} catch (Exception e) {
System.err.println("org.w3c.css.css.XMLStyleSheetHandler: "
+ "couldn't load catalog.xml");
System.err.println(" " + e.getMessage());
}
}
public void setDocumentLocator(Locator locator) {
}
public void startDocument() throws SAXException {
}
public void endDocument() throws SAXException {
}
public void startPrefixMapping(String prefix, String uri)
throws SAXException {
}
public void endPrefixMapping(String prefix) throws SAXException {
}
public void startElement(String namespaceURI, String localName,
String qName, Attributes atts) throws SAXException {
if ("system".equals(qName)) {
String systemId = atts.getValue("systemId");
String uri = atts.getValue("uri");
if ((systemId != null) && (uri != null)) {
try {
setProperty(systemId, (new URL(baseURI, uri)).toString());
} catch (Exception e) {
e.printStackTrace();
}
}
} else if ("public".equals(qName)) {
String publicId = atts.getValue("publicId");
String uri = atts.getValue("uri");
if ((publicId != null) && (uri != null)) {
try {
setProperty(publicId, (new URL(baseURI, uri)).toString());
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
public void endElement(String namespaceURI, String localName, String qName)
throws SAXException {
}
public void characters(char ch[], int start, int length)
throws SAXException {
}
public void ignorableWhitespace(char ch[], int start, int length)
throws SAXException {
}
public void processingInstruction(String target, String data)
throws SAXException {
}
public void skippedEntity(String name) throws SAXException {
}
void parse(String urlString) throws Exception {
org.xml.sax.XMLReader xmlParser = new org.apache.xerces.parsers.SAXParser();
try {
xmlParser.setFeature(
"http://xml.org/sax/features/namespace-prefixes", true);
xmlParser.setFeature("http://xml.org/sax/features/validation",
false);
} catch (Exception ex) {
ex.printStackTrace();
}
xmlParser.setContentHandler(this);
InputSource source = new InputSource();
source.setSystemId(urlString);
xmlParser.parse(source);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy