Olá Pessoal,
Boa noite…
Eu estou trabalhando num projeto de Trabalho de Graduação onde eu devo implementar um Cliente para Web Services Geográficos, mais especificamente WFS (Web Feature Service).
Estes tipos de serviço geográficos fazem parte das especificações do Open Geospatial Consortium (OGC).
Existe um projeto que possuí a compilação da maioria dos XMLSchemas da OGC para Jax-B. Este projeto é http://confluence.highsource.org/display/OGCS/Home
e aqui estão disponibilizados os Jars http://download.java.net/maven/2/org/jvnet/ogc/ .
Ae assim eu comecei a fazer testes com essa API e realmente funciona como qualquer bind feito na mão, só que existe um grande problema. Na especificação do WFS, quem desenvolve o servidor pode criar novos tipos que herdam as características das Tags especificadas nos XSDs do GML, por exemplo é possível se criar o tipo que herda do tipo <_Feature> (uma Feature pode possuir atributos geométricos) e essa tag pode ter atributos adicionais que a Feature não possui como por exemplo <nome_do_rio>(String). Quando isso ocorre eu só tenho acesso ao XMLSchema que especifica esse novo tipo em tempo de execução, logo não posso gerar a classe Rio. E a API ao recuperar um objeto que herda da Feature até o reconhece, poís o array de feições da classe FeatureCollection tem o size de acordo com o número de feições recuperadas, o problema é que quando você tenta obter o valor dessas feições eles estão nulos, pois a API não sabe exatamente o que tem nele.
Tendo este cenário, eu gostaria de saber se é possível com o Jax-B ler esses novos tipos que só são descobertos em tempo de execução de alguma forma. Senão, se existe algum jeito em Java de realizar esse tipo de leitura dinamicamente.
Desde Já Agradeço,
Emerson Leite de Moraes