[Gvsig_desarrolladores] Problemas exportación a GML

Fernando González fergonco en gmail.com
Mar Ago 16 14:05:15 CEST 2011


En lugar de añadir un nuevo ticket he completado el que ya habías abierto.

Y yo utilizo habitualmente los editores de la Web Tools Platform (WTP)
de eclipse:

Help >Install new software > Add > WTP -
http://download.eclipse.org/webtools/repository/indigo/ -> Eclipse XML
editors and tools
(OJO, el repositorio es de indigo, si usas Helios tendrás que buscarte
el repositorio de WTP de Helios o de la que sea).

Con eso ya puedes abrir XML y XSD. Yo solo uso la vista "Source" del
editor, nunca "Design". En ella si pones el ratón sobre las marcas
rojas de la derecha sale la descripción del error.



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