explorer escribiste:Yo no usaría XML::Simple para tratar un xml de miles de líneas. Ya lo hice una vez, y casi me quedo sin memoria...
Por mi parte, una vez hice un programa con 9 funciones recursivas en C, y se quedó sin memoria en la décima, aunque hay que considerar que era un equipo con 64MB en RAM y 400 MHz. Hoy en día, ¿qué tan común será quedarse sin memoria?. Si llegase a utilizar XML::Simple, ¿cómo podría saber cuanta memoria estoy utilizando en el proceso?
Tengo la definición del xml en un DTD, y además su Schema. El Schema, cuando lo valido con XML::LibXML, indica que tiene un error en su estructura, así que no puedo utilizarlo para ello. El DTD está
ok, y el documento XML lo valido con XML::LibXML::DTD. No encontré en XML::Twig un
validador contra DTD. Me parece poco claro utilizar XML::LibXML para una cosa, y XML::Twig (solamente si lo llegase a utilizar) para otra. Hace poco más de 6 meses que estoy programando en Perl, pero no sé qué tan común serán esas prácticas para programadores "pro".
El XML que deseo
parsear, y sacar su información es el que corresponde a
MusicXML. En ésta, están los DTD's y Schema que tengo.
El programa
Lilypond, incluye dentro de sí, unos
scripts en Python,
musicxml2ly, que
parsean la información de MusicXML y la convierten a expresiones Lilypond. Ver
Unofficial MusicXML.
Estoy modificando el
parser de musicxml2ly, para entregar cierta información relevante. He probado
Perthon para entender lo que está escrito en Python, pero es un rompecabezas aún.
He hecho unas pruebas con varios módulos, incluso para realizar gráficos,
App::Guiio (no he podido correr make), e
Imager.
También deseo resolver un problema tipo
CSP y trabajar con MIDI (que hay bastantes módulos en CPAN para trabajarlos).
Para el análisis completo que deseo hacer de este estándar
MusicXML, debo tomar una decisión con respecto a los módulos a utilizar e incluso el lenguaje.
Yo creo que es factible hacerlo todo en Perl, pero tengo mis dudas (solo por la inexperiencia de trabajar con programas tan extensos).
Espero que me puedan ayudar en cuanto a tomar la determinación. Quienes hayan trabajado con programas con tantos datos o variables distintas, alguna especie de opinión venida de la experiencia de cada uno que lleve programando más tiempo que yo en Perl.
Espero sus comentarios
¡¡Muchas gracias!!