• Publicidad

Validación XML con XSD, error no locate .pm

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Re: Validación XML con XSD, error no locate .pm

Notapor explorer » 2012-05-09 07:12 @341

Yo no tengo ningún Schema.pm, sí que tengo un Schema.pod, que es el manual.

A mí sí que me funciona esta línea:

perl -MXML::LibXML -E "use XML::LibXML; $x = XML::LibXML::Schema->new();"

No sale ningún mensaje, indicando que sí se ha creado el objeto $x, del tipo XML::LibXML::Schema.

Para que funcione, se tienen que dar estas circunstancias:
  • al principio del programa debe existir un use XML::LibXML;
  • el archivo XML/LibXML.pm tiene que estar dentro de alguno de los directorios indicados @INC: en U:/Perl/site/lib, o en U:/Perl/lib, o en '.' (el directorio actual). Si no es así, hay que incluir una línea use lib 'directorio'; con el directorio en donde está, y antes del 'use' anterior
  • los archivos .pm deben tener permiso de lectura (ser accesibles) por el intérprete. Eso es fácil de comprobar con el truco del -e 1
  • en algunos módulos, es necesario que sean compatibles a nivel binario. Esto es fácil de cumplir si siempre instalamos los módulos con PPM (en caso de seguir usando Windows)
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Publicidad

Re: Validación XML con XSD, error no locate .pm

Notapor Redpunkpower » 2012-05-09 07:33 @356

perl -MXML::LibXML -E "use XML::LibXML; $x = XML::LibXML::Schema->new();"
La línea esa me funciona tal y como has dicho, no me aparece nada.


use XML::LibXML;
use XML::LibXML::Schema;

Esas son las 2 primeras líneas del programa.



Esa es la ruta: "U:\Perl\site\lib\XML"
(¿puede dar fallo porque en vez de estar en \lib\ esté en \lib\XML\?)


Los permisos tengo los mismos en LibXML.pm y en Schema.pm pero el código solo me funciona con el LibXML.

Y que sean compatibles tal como dices lo son porque los dos los he instalado con PPM.
Redpunkpower
Perlero nuevo
Perlero nuevo
 
Mensajes: 35
Registrado: 2012-05-08 09:37 @442

Re: Validación XML con XSD, error no locate .pm

Notapor explorer » 2012-05-09 07:48 @367

La línea

use XML::LibXML::Schema;

sobra. O al menos, eso indica su página de manual.

Y el Schema.pm al que te refieres, no es de XML::LibXML::Schema, sino de XML::Schema, que es un módulo completamente distinto.

Cuando un módulo se llama XML::LibXML, hay que sustituir el '::' por el '/', y añadir el '.pm', con lo que queda 'XML/LibXML.pm'. Y eso es lo que se busca en las carpetas @INC:

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
U:/Perl/site/lib  => U:/Perl/site/lib/XML/LibXML.pm
U:/Perl/lib       => U:/Perl/lib/XML/LibXML.pm
.                 => ./XML/LibXML.pm
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Si no está en ninguno de esos sitios, salta el error.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Validación XML con XSD, error no locate .pm

Notapor Redpunkpower » 2012-05-10 04:55 @247

Ya está arreglado. Me falta ya poco para conseguir acabarlo. Muchas gracias por el tiempo dedicado. El error estaba en la línea LibXML::Schema que, como me dijiste, no hacía falta ponerla.
Redpunkpower
Perlero nuevo
Perlero nuevo
 
Mensajes: 35
Registrado: 2012-05-08 09:37 @442

Anterior

Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: Google [Bot] y 1 invitado