Простая ошибка WSDL "Для детали" определено недопустимое значение "для ее элемента. Объявления элементов должны ссылаться на допустимые значения, определенные в схеме" - PullRequest
0 голосов
/ 06 июля 2018

Я пытаюсь написать простой файл wsdl со встроенным xsd. Но я получаю следующие ошибки, помеченные '*' в файле wsdl. Я ссылался на другой вопрос переполнения стека, но никто не помог в этом вопросе. Я только что отредактировал свои файлы xsd и wsdl, чтобы включить в каждый из них пространства имен для получения более подробной информации о файлах. Вы можете заметить, что это файлы, которые я создал на своем локальном компьютере. Ниже приведен мой код.

        xsd file:


         <?xml version="1.0" encoding="UTF-8"?>
    <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.example.org/bookService" xmlns:tns="http://www.example.org/bookService" elementFormDefault="qualified">
     <element name="BookServiceRequest"
     type="tns:BookServiceRequestType">
     </element>

     <complexType name="BookServiceRequestType">
     <sequence>
     <element name="limit" type="int"></element>
     </sequence>
     </complexType>

     <complexType name="BookServiceResponseType">
     <sequence>
     <element name="book" type="tns:BookType" maxOccurs="unbounded" minOccurs="0"></element>
     </sequence>
     </complexType>

     <element name="BookServiceResponse"
     type="tns:BookServiceResponseType">
     </element>

     <complexType name="BookType">
     <sequence>
     <element name="title" type="string" maxOccurs="1" minOccurs="1"></element>
     <element name="author" type="string" maxOccurs="1" minOccurs="1"></element>
     <element name="published" type="date" maxOccurs="1" minOccurs="1"></element>
     </sequence>
     </complexType>
    </schema>

          wsdl file:        
            <?xml version="1.0" encoding="UTF-8"?>
    <wsdl:definitions name="bookService"
     targetNamespace="http://www.example.org/bookService/" xmlns:tns="http://www.example.org/bookService/"
     xmlns:wsdl="http://www.example.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
     xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
     <wsdl:types>
     <xsd:schema targetNamespace="http://www.example.org/bookService/">
     <xsd:import schemaLocation="../schema/bookService.xsd"
     namespace="http://www.example.org/bookService/" />
     </xsd:schema>
     </wsdl:types>
     <wsdl:message name="BookServiceRequest">
     **<wsdl:part name="BookServiceRequest" element="tns:BookServiceRequest" />
     </wsdl:message>**
     <wsdl:message name="BookServiceResponse">
     **<wsdl:part name="BookServiceResponse" element="tns:BookServiceResponse" />**
     </wsdl:message>
     <wsdl:portType name="BookServicePortType">
     <wsdl:operation name="fetchBooks">
     <wsdl:input name="BookServiceRequest" message="tns:BookServiceRequest" />
     <wsdl:output name="BookServiceResponse" message="tns:BookServiceResponse" />
     </wsdl:operation>
     </wsdl:portType>
     <wsdl:binding name="BookServiceBinding" type="tns:BookServicePortType">
     <soap:binding style="document"
     transport="http://schemas.xmlsoap.org/soap/http" />
     <wsdl:operation name="fetchBooks">
     <soap:operation style="document"
     soapAction="http://www.example.org/bookService/fetchBooks" />
     <wsdl:input name="BookServiceRequest">
     <soap:body use="literal" />
     </wsdl:input>
     <wsdl:output name="BookServiceResponse">
     <soap:body use="literal" />
     </wsdl:output>
     </wsdl:operation>
     </wsdl:binding>
     <wsdl:service name="BookService">
     <wsdl:port name="BookServicePort" binding="tns:BookServiceBinding">
     <soap:address location="/service/bookService" />
     </wsdl:port>
     </wsdl:service>
...