XSL - Parsear XML con un XSL en AIX

 
Vista:

Parsear XML con un XSL en AIX

Publicado por Vale (1 intervención) el 07/03/2006 15:45:34
Si alguien ha tenido la necesidad de parsear un documento XML con un schema en entorno UNIX seguro que lo sabe.

Me he bajado xalana, xerces y xmlbeans y no consigo nada de nada (miento, consigo hacer una transformacion con una hoja de estilos utilizando XALAN) pero no consigo algo tan simple como validar un documento con un schema.....

Alguien me puede ayudar?????

Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Validar un documento XML con un esquema utilizando Xerces en entorno UNIX

Publicado por Alejandro (227 intervenciones) el 05/07/2023 20:24:28
Para validar un documento XML con un esquema utilizando Xerces en un entorno UNIX, puedes seguir los siguientes pasos:

1. Asegúrate de tener Xerces instalado en tu entorno UNIX. Puedes descargarlo desde el sitio oficial de Apache Xerces (https://xerces.apache.org/xerces-j/).

2. Crea un archivo Java para realizar la validación. Aquí tienes un ejemplo básico de cómo puedes hacerlo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import org.apache.xerces.parsers.DOMParser;
import org.xml.sax.ErrorHandler;
import org.xml.sax.SAXException;
import org.xml.sax.SAXParseException;
 
public class XMLValidator {
    public static void main(String[] args) {
        try {
            String xmlFile = "ruta/al/archivo.xml";
            String schemaFile = "ruta/al/esquema.xsd";
 
            DOMParser parser = new DOMParser();
            parser.setFeature("http://apache.org/xml/features/validation/schema", true);
            parser.setProperty("http://apache.org/xml/properties/schema/external-schemaLocation",
                    "esquema-namespace " + schemaFile);
 
            CustomErrorHandler errorHandler = new CustomErrorHandler();
            parser.setErrorHandler(errorHandler);
 
            parser.parse(xmlFile);
 
            if (errorHandler.hasErrors()) {
                System.out.println("El documento XML no es válido. Se encontraron los siguientes errores:");
                System.out.println(errorHandler.getErrors());
            } else {
                System.out.println("El documento XML es válido.");
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
 
    private static class CustomErrorHandler implements ErrorHandler {
        private StringBuilder errors = new StringBuilder();
 
        public void warning(SAXParseException e) throws SAXException {
            errors.append("Advertencia: ").append(e.getMessage()).append("\n");
        }
 
        public void error(SAXParseException e) throws SAXException {
            errors.append("Error: ").append(e.getMessage()).append("\n");
        }
 
        public void fatalError(SAXParseException e) throws SAXException {
            errors.append("Error fatal: ").append(e.getMessage()).append("\n");
        }
 
        public boolean hasErrors() {
            return errors.length() > 0;
        }
 
        public String getErrors() {
            return errors.toString();
        }
    }
}

En este ejemplo, debes proporcionar la ruta al archivo XML que deseas validar y la ruta al archivo XSD del esquema. Puedes ajustar el código según tus necesidades y la ubicación de tus archivos.

3. Compila y ejecuta el archivo Java utilizando el comando adecuado en tu entorno UNIX.

Si hay errores en el documento XML en relación con el esquema, se mostrarán los mensajes de error correspondientes. Si el documento XML es válido, se imprimirá un mensaje indicando que es válido.

Ten en cuenta que este ejemplo utiliza Xerces para realizar la validación. Puedes ajustar el código según tus preferencias y los detalles de tu entorno específico.

Espero que esta solución te ayude a validar un documento XML con un esquema utilizando Xerces en un entorno UNIX. ¡Buena suerte!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar