JAX WS xsd: любой тип является элементом XMLSchema - PullRequest
1 голос
/ 22 января 2012

Обработка xsd: любой тип является элементом XMLSchema. JAX WS

<types>
<schema targetNamespace="http://www.iona.com/artix/wsdl"
xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
<complexType name="unmappedType">
<sequence>
<xsd:any namespace="##other"
processContents="skip"/>
</sequence>
</complexType>
<element name="request" type="tns:requestType"/>
</schema>
</types>

XML-файл представлен в виде строки как его объект в виде документа, а затем передает его содержимое в экземпляр SOAPElement

Требуется руководство по реализации и клиентскому коду.

Преобразование строки XML в элемент.а также чтение его обратно после получения ответа.

1 Ответ

2 голосов
/ 24 января 2012

Я вижу, что кто-то недооценил ваш вопрос ... Если вы не возражаете, я вначале укажу на проблемы, которые, по-видимому, имеют ваш вопрос: фрагмент, скорее всего, исходит от WSDL, но схема скорее недействительна. Первое, что вы должны сделать, это сделать это правильно. Может быть, что-то вроде этого:

<?xml version="1.0" encoding="utf-8"?>
<!--W3C Schema generated by QTAssistant/W3C Schema Refactoring Module (http://www.paschidev.com)-->
<schema targetNamespace="http://www.iona.com/artix/wsdl" xmlns:tns="http://www.iona.com/artix/wsdl" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
    <complexType name="unmappedType">
        <sequence>
            <any namespace="##other" processContents="skip"/>
        </sequence>
    </complexType>
    <element name="request" type="tns:unmappedType"/>
</schema>

Как только вы это сделаете, я предлагаю создать XML, который выглядит так, как вы хотите; убедитесь, что вы подтвердите это. Отправьте это вместе со своим вопросом ...

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<!-- Sample XML generated by QTAssistant (http://www.paschidev.com) -->
<request xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://www.iona.com/artix/wsdl">
    <any_element xmlns="otherNS">anyType</any_element>
</request>

Я бы тогда использовал бесплатный и простой в использовании инструмент, когда дело доходит до JAXB (я рекомендую NetBeans , у него простой интерфейс). Затем напишите небольшое консольное приложение Java, которое использует ваш код; выполните отладку и посмотрите, что вы получите, когда удалите XML. Может быть, прочитайте немного документации, а затем в конечном итоге опубликовать, чтобы попросить помощи с более конкретным вопросом.

XSD: any и JAXB довольно хорошо документированы: попробуйте это о JAXB ...

...