[Gvsig_desarrolladores] Problemas exportación a GML

Fernando González fergonco en gmail.com
Mar Ago 16 11:33:59 CEST 2011


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?

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.

[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
>


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