xml val con xsd java
Publicado por albertopower (1 intervención) el 15/09/2008 17:10:55
Buenas tardes, soy muy novato en esto del java, dicho esto, tengo un script java que deberia ser capaz de validar un xml mediante un xs, los dos ficheros los recibiría y ejecutaria el java. bien, me sale un error de compilación, y necesitaria saber como poner los dos ficheros por parametros, el Script es el siguiente:
import java.io.FileReader;
import java.io.IOException;
import javax.xml.parsers.SAXParserFactory;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.*;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
import org.xml.sax.InputSource;
import org.xml.sax.SAXParseException;
import org.jdom.*;
public class validarxmlconxsd {
public static boolean main(String sFichXml, String sFichXsd){
boolean bIsXmlOk = false;
String YES = "yes";
String NO = "no";
String CHAR_ENCODING = "UTF8";
boolean NAME_SPACE_AWARE = true;
boolean VALIDATING = true;
String SCHEMA_LANGUAGE ="http://java.sun.com/xml/jaxp/properties/schemaLanguage";
String SCHEMA_LANGUAGE_VAL = "C:/Documents and Settings/jtorreci.JTORRECIHPXP/Escritorio/OCSUM/pruebas.xsd";
String SCHEMA_SOURCE ="C:/Documents and Settings/jtorreci.JTORRECIHPXP/Escritorio/OCSUM/Prueba Desarrollo.xml";
try {
FileReader xmlReader;
FileReader xsdReader;
xmlReader = new FileReader(sFichXml);
xsdReader = new FileReader(sFichXsd);
SAXParserFactory factory = SAXParserFactory.newInstance();
// Configure SAXParserFactory to provide parsers that are namespace aware.
factory.setNamespaceAware(NAME_SPACE_AWARE);
// Configure SAXParserFactory to provide parsers that are validating. This
// property
// must have the value true for any of the property strings defined below to
// take
// effect.
factory.setValidating(VALIDATING);
SAXParser parser = factory.newSAXParser();
// Setting the schema language for xml schema validation
parser.setProperty(SCHEMA_LANGUAGE , SCHEMA_LANGUAGE_VAL);
// Setting the schema source for xml schema validation
parser.setProperty(SCHEMA_SOURCE, new InputSource(xsdReader));
DefaultHandler handler = new XmlDefaultHandler();
parser.parse(new InputSource(xmlReader), handler);
// si procesa todo el metodo sin producir excepcion, el fichero xml
// es correcto.
bIsXmlOk = true;
}
catch (FactoryConfigurationError e) {
System.out.println(e.toString());
}
catch (ParserConfigurationException e) {
System.out.println(e.toString());
}
catch (SAXException e) {
System.out.println(e.toString());
}
catch (IOException e) {
System.out.println(e.toString());
}
return bIsXmlOk;
}// Fin de validarXMLvsXSD
public static class XmlDefaultHandler extends DefaultHandler {
/**
* @see org.xml.sax.ErrorHandler#error(SAXParseException)
*/
public void error(SAXParseException spe) throws SAXException {
throw spe;
}
/**
* @see org.xml.sax.ErrorHandler#fatalError(SAXParseException)
*/
public void fatalError(SAXParseException spe) throws SAXException {
throw spe;
}
}// Fin de XmlDefaultHandler
}// Fin de ValidarXML
Mi error es java.lang.NoSuchMethodError: main
Exception in thread "main"
como podeis ver el main está declarado, necesito ayuda con caracter urgente por favor
Muchas gracias de antemano y saludos
Alberto.
[email protected]
import java.io.FileReader;
import java.io.IOException;
import javax.xml.parsers.SAXParserFactory;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.*;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;
import org.xml.sax.InputSource;
import org.xml.sax.SAXParseException;
import org.jdom.*;
public class validarxmlconxsd {
public static boolean main(String sFichXml, String sFichXsd){
boolean bIsXmlOk = false;
String YES = "yes";
String NO = "no";
String CHAR_ENCODING = "UTF8";
boolean NAME_SPACE_AWARE = true;
boolean VALIDATING = true;
String SCHEMA_LANGUAGE ="http://java.sun.com/xml/jaxp/properties/schemaLanguage";
String SCHEMA_LANGUAGE_VAL = "C:/Documents and Settings/jtorreci.JTORRECIHPXP/Escritorio/OCSUM/pruebas.xsd";
String SCHEMA_SOURCE ="C:/Documents and Settings/jtorreci.JTORRECIHPXP/Escritorio/OCSUM/Prueba Desarrollo.xml";
try {
FileReader xmlReader;
FileReader xsdReader;
xmlReader = new FileReader(sFichXml);
xsdReader = new FileReader(sFichXsd);
SAXParserFactory factory = SAXParserFactory.newInstance();
// Configure SAXParserFactory to provide parsers that are namespace aware.
factory.setNamespaceAware(NAME_SPACE_AWARE);
// Configure SAXParserFactory to provide parsers that are validating. This
// property
// must have the value true for any of the property strings defined below to
// take
// effect.
factory.setValidating(VALIDATING);
SAXParser parser = factory.newSAXParser();
// Setting the schema language for xml schema validation
parser.setProperty(SCHEMA_LANGUAGE , SCHEMA_LANGUAGE_VAL);
// Setting the schema source for xml schema validation
parser.setProperty(SCHEMA_SOURCE, new InputSource(xsdReader));
DefaultHandler handler = new XmlDefaultHandler();
parser.parse(new InputSource(xmlReader), handler);
// si procesa todo el metodo sin producir excepcion, el fichero xml
// es correcto.
bIsXmlOk = true;
}
catch (FactoryConfigurationError e) {
System.out.println(e.toString());
}
catch (ParserConfigurationException e) {
System.out.println(e.toString());
}
catch (SAXException e) {
System.out.println(e.toString());
}
catch (IOException e) {
System.out.println(e.toString());
}
return bIsXmlOk;
}// Fin de validarXMLvsXSD
public static class XmlDefaultHandler extends DefaultHandler {
/**
* @see org.xml.sax.ErrorHandler#error(SAXParseException)
*/
public void error(SAXParseException spe) throws SAXException {
throw spe;
}
/**
* @see org.xml.sax.ErrorHandler#fatalError(SAXParseException)
*/
public void fatalError(SAXParseException spe) throws SAXException {
throw spe;
}
}// Fin de XmlDefaultHandler
}// Fin de ValidarXML
Mi error es java.lang.NoSuchMethodError: main
Exception in thread "main"
como podeis ver el main está declarado, necesito ayuda con caracter urgente por favor
Muchas gracias de antemano y saludos
Alberto.
[email protected]
Valora esta pregunta


0