w3c.css.util.xml.XMLCatalog Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of cssvalidator Show documentation
Show all versions of cssvalidator Show documentation
Backend for the W3C CSS Validation Service
/*
* 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