Iván Sánchez Ortega wrote:
El Martes, 8 de Septiembre de 2009, Micho Gar escribió:
Hola a todos,

llevo unos dias probando a parsear un archivo GML. Estoy intentandolo con
herramientas que utilicen XML Schema, y de momento no estoy obteniendo nada
positivo. He probado con GeoTools, con GTXML y JAB, pero tengo problemas
con el parseado del xsd. Los archivos los creo yo con gvSIG.

¿Conoceis algún parseador, ejemplos o algo que me pueda dar una pequeña
ayuda?

Odio, odio, odio GML. El mezclar los namespaces y no estandarizar la forma de trabajar con ellos hace el parseo harto complicado.

Lo que suelo hacer, que es un hack en toda regla, es cargarme los namespaces a golpe de sed (o str_replace), y trabajar con todo ello a lo bruto, adaptando el código a cada fichero GML, que los cachondos suelen venir con una estructura distinta dependiendo de de dónde los hayas sacado.

Si quieres, échale un vistazo a http://trac.openstreetmap.org/browser/applications/utils/import/gml2osm/gml2osm.php - pero quedas avisado de que ese código está lleno de hacks por todos lados!!

Igual también puedes sacar ejemplos del código de gvSIG responsable del parseo de GML.
Yo soy aún más 'cafre' que Iván (supongo que porque es algo que suelo hacer menos). Para cosas sencillas (entidades conocidas, en un contexto que controlas) tiendo a escribirme un parser simple con algún sax (kxml es muy eficiente), ignorando de los esquemas. Si lo que necesitas es tener los datos cargados sin que te cueste mucho tiempo de desarrollo, suele ser una buena aproximación. Si lo necesitas más riguroso, podrías incorporar en tu programa la librería GPE (que es la que usa gvSIG para escribir y leer GML), que está desacoplada del modelo de objetos de gvSIG y no debería darte pegas. Creo que incluso hay algo de documentación en http://gvsig.org, pero para este último caso yo me aprovecharía de la lista de desarrollo del proyecto.

Saludos
   Luis
Un saludo,


--
 Luis W. Sevilla Muelas
 Valencia - Spain

The secret to programming is not intelligence, though of course that helps. It 
is not hard work or experience, though they help, too. The secret to 
programming is having smart friends. (Ron Avitzur)


_______________________________________________
Spanish mailing list
[email protected]
http://lists.osgeo.org/mailman/listinfo/spanish

Responder a