Pergunta

Atualmente estou modificando um serviço SOAP literal documento para um aplicativo de negócios que transfere dados sobre clientes trás e para frente.

Um novo requisito de imagens de documentos de transferência digitalizado acaba de ser identificada. O problema que tenho é que o uso de propriedade língua que eu não suporta anexos SOAP.

As imagens que estão sendo transferidos pode ser qualquer coisa até 32KB.

A única solução que eu posso pensar é base64 codificar a imagem, e passá-lo através de um elemento do documento XML.

Isto parece uma péssima idéia, mas eu não consigo pensar em melhor nada.

Todas as idéias?

EDIT: eu esqueci de mencionar que a imagem não é realizada remotamente em um sistema de arquivos, ele é armazenado em um banco de dados Oracle, que eu não tenho a capacidade de ligar directamente para,

Foi útil?

Solução

Se você estiver usando XML como um mecanismo de transferência de dados, você tem que codificar a imagem de alguma forma. A razão é que XML é um formato de texto, e um processador XML irá tentar decodificar dados binários como se de texto (mais especificamente, como se de UTF-8, a menos que você especificar uma codificação diferente). Além disso, XML proíbe explicitamente vários personagens (a maioria dos não-printables ASCII para XML 1.0, \ u0000 para XML 1.1), então você vai corromper seus dados se você simplesmente despejar os dados de imagem em (digamos) uma seção CDATA.

Edit: XML Schema define uma "base64Binary" tipo , para que deve ser capaz de definir o seu WSDL adequadamente (assumindo que você está usando um marshaller automatizado). No mínimo, você deve usar um "xsi: tipo" atributo na elemento que contém o seu conteúdo codificado.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top