|
What this is
Other links
The source code
/*
* Sun Public License Notice
*
* The contents of this file are subject to the Sun Public License
* Version 1.0 (the "License"). You may not use this file except in
* compliance with the License. A copy of the License is available at
* http://www.sun.com/
*
* The Original Code is NetBeans. The Initial Developer of the Original
* Code is Sun Microsystems, Inc. Portions Copyright 1997-2004 Sun
* Microsystems, Inc. All Rights Reserved.
*/
import java.io.File;
import java.util.Arrays;
import java.util.StringTokenizer;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.xml.sax.SAXException;
import org.xml.sax.SAXParseException;
import org.xml.sax.helpers.DefaultHandler;
/**
* Tries to validate all the example XML metadata files
* according to available XML schemas.
* @author Jesse Glick
*/
public class ValidateAllBySchema {
/**
* args[0] = comma-separated list of files to validate
* args[1] = comma-separated list of available XML Schema files
*/
public static void main(String[] args) throws Exception {
File[] xmls = split(args[0]);
File[] schemas = split(args[1]);
String[] schemaUris = new String[schemas.length];
for (int i = 0; i < schemas.length; i++) {
schemaUris[i] = schemas[i].toURI().toString();
}
System.err.println("Validating against " + Arrays.asList(schemas));
SAXParserFactory f = (SAXParserFactory)Class.forName("org.apache.xerces.jaxp.SAXParserFactoryImpl").newInstance();
f.setNamespaceAware(true);
f.setValidating(true);
SAXParser p = f.newSAXParser();
p.setProperty("http://java.sun.com/xml/jaxp/properties/schemaLanguage",
"http://www.w3.org/2001/XMLSchema");
p.setProperty("http://java.sun.com/xml/jaxp/properties/schemaSource",
schemaUris);
int exit = 0;
for (int i = 0; i < xmls.length; i++) {
System.err.println("Parsing " + xmls[i] + "...");
try {
p.parse(xmls[i].toURI().toString(), new Handler());
} catch (SAXParseException e) {
System.err.println(e.getSystemId() + ":" + e.getLineNumber() + ": " + e.getLocalizedMessage());
exit = 1;
}
}
System.err.println("All files validated.");
System.exit(exit);
}
private static final class Handler extends DefaultHandler {
public void warning(SAXParseException e) throws SAXException {
throw e;
}
public void error(SAXParseException e) throws SAXException {
throw e;
}
public void fatalError(SAXParseException e) throws SAXException {
throw e;
}
}
private static File[] split(String s) {
StringTokenizer tok = new StringTokenizer(s, ",");
File[] files = new File[tok.countTokens()];
for (int i = 0; i < files.length; i++) {
files[i] = new File(tok.nextToken());
}
return files;
}
}
|
| ... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.