[Gvsig_desarrolladores] Problemas exportación a GML

Jorge Piera Llodrá jpiera en gvsig.com
Mar Ago 16 12:02:26 CEST 2011


Hol de nuevo.

On 08/16/2011 11:33 AM, Fernando González wrote:
> Sí, no había pensado que poniendo como raíz gml:FeatureCollection se
> soluciona el problema. Pero no he caído en eso porque el XML
> resultante no lo pone[1]. Pone un elemento cit:lineas que no se define
> en el esquema generado. Bien se define en dicho esquema el tipo de
> "lineas.shp", bien se define la raíz del XML como un
> gml:FeatureCollection.
>
> Resumiendo: se define un tipo que no se usa (se usa gml:Feature en
> lugar de cit:output dentro de gml:featureMember) y se usa un elemento
> raíz sin tipo (lineas.shp en mi caso). ¿abro ticket?
>    
Abre, abre...
> Por cierto, me acabo de dar cuenta de que "output" es el nombre del
> fichero que exporto. Es decir, me define output en el schema porque he
> exportado a /tmp/output.xml. Eso podría darse por bueno según mi punto
> de vista.
>    
En cualquier caso no debería llamarse output. Si no hay UI para 
editarlo, debería tener el nombre del fichero a exportar o el nombre de 
la capa origen.

Cambiando de tercio, ¿alguien conoce algún entorno multiplataforma y 
gratuito que permita validar XML's? Yo he probado versiones de prueba 
del XMLSpy o el Oxygen de Galdos, pero no conozco ninguno gratuito. 
Ayudaría mucho para poder validar los GML's generados...

Un saludo,
Jorge
> [1]
> <cit:lineas.shp xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xmlns:xlink="http://www.w3.org/1999/xlink"
> xmlns:gml="http://www.opengis.net/gml"
> xmlns:cit="http://www.gvsig.org/cit"
> xsi:schemaLocation="http://www.gvsig.org/cit cit.xsd">
> <gml:name>lineas.shp</gml:name>
> <gml:boundedBy>
> ...
> </gml:boundedBy>
> <gml:featureMember>
> <cit:Feature gml:fid="0">
> ...
>
> 2011/8/16 Jorge Piera Llodrá<jpiera en gvsig.com>:
>    
>> Eso ya no lo tengo tan claro.
>>
>> Entiendo que el elemento raíz del GML resultante tiene algo como
>> gml:FeatureCollection en el elemento raíz, que en el espacio de nombres
>> http://www.opengis.net/gml es una colección de Feature's. Ese tipo no es
>> necesario definirlo en el esquema, ya que está definida en otra parte.
>> Supongo que habría que probar con un validador de esquemas a ver qué dice...
>>
>> Lo que sí que tienes razón es al comentar lo del "output". El fichero
>> resultante debería ser algo como esto:
>>
>> <gml:featureMember>
>> <cit:output>
>>      .....
>> </cit:output>
>> </gml:featureMember>
>>
>> Que desafortunado lo del output. Aunque se ponga a piñón, sería mejor
>> casi cualquier otro nombre...
>>
>> Un saludo,
>> Jorge
>>
>> On 08/16/2011 10:38 AM, Fernando González wrote:
>>      
>>> Otra cosa. Para un shape de líneas, al exportar me produce el este
>>> schema[1], en el que se define un tipo que extiende
>>> gml:AbstractFeatureType y un elemento con substitution group
>>> gml:_Feature. El caso es que eso sólo nos permite definir una Feature
>>> en el XML ¿o estoy equivocado? ¿No debería crearse un tipo que
>>> extendiera AbstractFeatureCollection para el elemento raíz?
>>>
>>> Si estás de acuerdo abro un ticket con eso también.
>>>
>>>
>>> [1]
>>> <xs:schema xmlns:cit="http://www.gvsig.com/cit"
>>> xmlns:gml="http://www.opengis.net/gml"
>>> xmlns:xs="http://www.w3.org/2001/XMLSchema"
>>> targetNamespace="http://www.gvsig.com/cit"
>>> elementFormDefault="qualified" attributeFormDefault="unqualified"
>>> version="2.1.2">
>>> <xs:import namespace="http://www.opengis.net/gml" schemaLocation="feature.xsd"/>
>>> <xs:complexType xmlns:xs="http://www.w3.org/2001/XMLSchema" name="output_Type">
>>> <xs:complexContent>
>>> <xs:extension base="gml:AbstractFeatureType">
>>> <xs:sequence>
>>> <xs:element name="the_geom" minOccurs="0" nillable="true"
>>> type="gml:MultiLineStringPropertyType"/>
>>> <xs:element name="ID" minOccurs="0" nillable="true" type="xs:double"/>
>>> </xs:sequence>
>>> </xs:extension>
>>> </xs:complexContent>
>>> </xs:complexType>
>>> <xs:element name="output" type="cit:output_Type"
>>> substitutionGroup="gml:_Feature"/>
>>> </xs:schema>
>>>
>>>
>>>
>>>
>>> 2011/8/16 Jorge Piera Llodrá<jpiera en gvsig.com>:
>>>
>>>        
>>>> Creo que empieza a estar claro....
>>>>
>>>> On 08/16/2011 10:04 AM, Fernando González wrote:
>>>>
>>>>          
>>>>>> ¿No se está creando el esquema en el mismo directorio que el gml? En
>>>>>> teoría, se tiene que crear un esquema con la estructura del GML en el
>>>>>> mismo directorio de exportación del GML. Si no se hace así es un bug.
>>>>>>
>>>>>>
>>>>>>              
>>>>> El usuario selecciona el path del XSD en la interfaz gráfica, pero
>>>>> luego el schemaLocation pone siempre "cit.xsd". Para mí el bug es que
>>>>> el schemaLocation no refleja el path introducido por el usuario.
>>>>>
>>>>>
>>>>>            
>>>> Sí, tiene toda la pinta de ser eso.
>>>>
>>>>          
>>>>>>> 2) El elemento exportado no está definido en el esquema. En el esquema
>>>>>>> se define un elemento output:
>>>>>>>
>>>>>>> <xs:element name="output" type="cit:output_Type"
>>>>>>> substitutionGroup="gml:_Feature"/>
>>>>>>>
>>>>>>> pero la salida no tiene ningún elemento output. El elemento raíz tiene
>>>>>>> el mismo nombre que la capa de la cual se exportó el GML.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>                
>>>>>> ¿Pero no has dicho que no hay esquema? Me he perdido....
>>>>>>
>>>>>>
>>>>>>              
>>>>> Sí hay esquema, el problema es que con la información del atributo
>>>>> schemaLocation no hay manera de encontrarlo. Suponiendo que arreglo a
>>>>> mano el schemaLocation, se da lo que comento del elemento.
>>>>>
>>>>>
>>>>>            
>>>> Primero habría que mirar que el path del schemaLocation es correcto y
>>>> luego que el xsd sea correcto. Queda anotado.
>>>>
>>>>          
>>>>>>> 3) Cuando se genera el XML sin el schema, los nombres de los elementos
>>>>>>> siguen estando cualificados y sigue habiendo un atributo
>>>>>>> schemaLocation, como si realmente hubiera un esquema. Cuando el
>>>>>>> usuario selecciona este caso es posible que sea mejor no usar nombres
>>>>>>> cualificados, o al menos no especificar el "schemaLocation" del
>>>>>>> esquema que no se ha generado.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>                
>>>>>> En la primera versión que se hizo del exportador a GML había un
>>>>>> formulario dónde se podían especificar cosas como el esquema, el espacio
>>>>>> de nombres y el prefijo asociado al esquema (creo recordar que si no se
>>>>>> definían se generaban respectivamente un esquema con el mismo nombre que
>>>>>> el fichero exportado, el namespace "http://www.gvsig.org/cit" y el
>>>>>> prefijo "cit"). Si los nombres aparecen cualificados y el schemaLocation
>>>>>> "apunta" a un fichero inexistente entiendo que es un error de generación
>>>>>> de schema.
>>>>>>
>>>>>>
>>>>>>              
>>>>> Ahora mismo (1.11_final) se pregunta el path del XML, del XSD y hay un
>>>>> check para decir si hay que crear el XSD. Nada de prefijo ni
>>>>> namespace.
>>>>>
>>>>> Ahora que lo pienso, es posible que cuando no se desactiva el check de
>>>>> crear el xsd, gvsig asume que el path del XSD es un schema existente
>>>>> con la estructura adecuada, por eso crea un XML como si hubiera
>>>>> schema. En tal caso no sería un bug. En cualquier caso, el
>>>>> schemaLocation sigue sin apuntar a dicho schema.
>>>>>
>>>>>
>>>>>            
>>>> Lo miramos en detalle ASAP.... He abierto un ticket en OSOR [1] para que
>>>> no se nos pase, que el error es considerable.
>>>>
>>>> Muchas gracias por el detalle en tus comentarios!
>>>> Jorge
>>>>
>>>> [1]
>>>> https://forge.osor.eu/tracker/index.php?func=detail&aid=15722&group_id=89&atid=732
>>>>
>>>>          
>>>>>            
>>>>>> Me he perdido en algo...
>>>>>>
>>>>>> Un saludo,
>>>>>> Jorge
>>>>>>
>>>>>>
>>>>>>              
>>>>>>> Un saludo.
>>>>>>> _______________________________________________
>>>>>>> gvSIG_desarrolladores mailing list
>>>>>>> gvSIG_desarrolladores en listserv.gva.es
>>>>>>> http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>                
>>>>>> --
>>>>>> Jorge Piera Llodrá
>>>>>> gvSIG software architect
>>>>>> PRODEVELOP
>>>>>> e-mail: jpiera en gvsig.com
>>>>>> http://www.prodevelop.es
>>>>>> http://www.gvsig.org
>>>>>>
>>>>>> _______________________________________________
>>>>>> gvSIG_desarrolladores mailing list
>>>>>> gvSIG_desarrolladores en listserv.gva.es
>>>>>> http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
>>>>>>
>>>>>>
>>>>>>
>>>>>>              
>>>>> _______________________________________________
>>>>> gvSIG_desarrolladores mailing list
>>>>> gvSIG_desarrolladores en listserv.gva.es
>>>>> http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
>>>>>
>>>>>
>>>>>            
>>>> --
>>>> Jorge Piera Llodrá
>>>> gvSIG software architect
>>>> PRODEVELOP
>>>> e-mail: jpiera en gvsig.com
>>>> http://www.prodevelop.es
>>>> http://www.gvsig.org
>>>>
>>>> _______________________________________________
>>>> gvSIG_desarrolladores mailing list
>>>> gvSIG_desarrolladores en listserv.gva.es
>>>> http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
>>>>
>>>>
>>>>          
>>> _______________________________________________
>>> gvSIG_desarrolladores mailing list
>>> gvSIG_desarrolladores en listserv.gva.es
>>> http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
>>>
>>>        
>>
>> --
>> Jorge Piera Llodrá
>> gvSIG software architect
>> PRODEVELOP
>> e-mail: jpiera en gvsig.com
>> http://www.prodevelop.es
>> http://www.gvsig.org
>>
>> _______________________________________________
>> gvSIG_desarrolladores mailing list
>> gvSIG_desarrolladores en listserv.gva.es
>> http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
>>
>>      
> _______________________________________________
> gvSIG_desarrolladores mailing list
> gvSIG_desarrolladores en listserv.gva.es
> http://listserv.gva.es/cgi-bin/mailman/listinfo/gvsig_desarrolladores
>    


-- 
Jorge Piera Llodrá
gvSIG software architect
PRODEVELOP
e-mail: jpiera en gvsig.com
http://www.prodevelop.es
http://www.gvsig.org



Más información sobre la lista de distribución gvSIG_desarrolladores