Comment annuler une réponse SOAP à l'aide de JAXB si la déclaration d'espace de noms est sur l'enveloppe SOAP?

JAXB ne peut unmarshall XML si l'enveloppe soap a déjà été supprimé. Cependant, la réponse SOAP je suis en train de unmarshall a sa déclaration d'espace de noms sur l'enveloppe soap. Si je retire l'enveloppe soap, la déclaration d'espace de noms sera également supprimé. En tant que tel le préfixe de les étiquettes, se référant à aucun. Cela provoque JAXB lever une erreur. Comment puis-je unmarshall un SAVON réponse à l'aide de JAXB si l'espace de noms est déclaré sur l'enveloppe SOAP?

Un semblable exemple de XML que j'ai besoin de unmarshall est ci-dessous:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns="http://example.com/">
    <soapenv:Body>
        <ns:getNumberResponse>
            <number>123456789</number>
        </ns:getNumberResponse>
    </soapenv:Body>
</soapenv:Envelope>

C'est ce qui arrive si je retire l'enveloppe soap:

<ns:getNumberResponse>
    <number>123456789</number>
</ns:getNumberResponse>

Si j'ai enlevé l'enveloppe soap, la déclaration d'espace de noms sera également disparu. JAXB ne sera pas en mesure de unmarshall ci-dessus xml, car la définition d'espace de noms pour le préfixe "ns" est manquant. En tant que tel, il sera de retour d'une "The prefix "ns" for element "ns:getNumberResponse" is not bound." message d'erreur. Comment puis-je résoudre ce problème?

Veuillez noter que je suis à l'aide du JDK 1.5. Je ne sais pas si il existe un moyen de résoudre ce JDK 1.6. J'ai été en mesure d'utiliser JAXB, car j'ai téléchargé le nécessaire les pots à l'aide de JAXB.

source d'informationauteur Arci