Расширение WSDL для добавления нового атрибута

Я делаю проект, связанный с WSDL, и я хочу добавить новый атрибут в мой файл WSDL. Основная структура WSDL:

<definitions>

<types>
  data type definitions........
</types>

<message>
  definition of the data being communicated....
</message>

<portType>
  set of operations......
</portType>

<binding>
  protocol and data format specification....
</binding>

</definitions>

Я хочу добавить атрибут качества обслуживания (QoS) в wsdl, чтобы новая структура стала такой:

<definitions>

<types>
  data type definitions........
</types>

<message>
  definition of the data being communicated....
</message>

<portType>
  set of operations......
</portType>

<binding>
  protocol and data format specification....
</binding>
<QoS>
Qos criteria.....
</QoS>
</definitions>

Например, этот атрибут будет добавлен в wsdl:

  <Reliability Qualification="threshold-best-effort" Offered="true">
        <TimeToFailure value= 500000000 unit="sec" source="measured"
        type=”mean” direction=”increasing />
 </Reliability>

Результат должен быть таким, <Reliability> атрибут будет вставлен в <service>:

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="http://sample" xmlns:qwsdl="http://example.com/stockquote/schemas"  xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://sample" xmlns:intf="http://sample" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<!--WSDL created by Apache Axis version: 1.4
Built on Apr 22, 2006 (06:55:48 PDT)-->
<wsdl:import namespace = "http://localhost:8080/WSDLExtention/wsdl/stockquote.xsd" location="http://localhost:8080/WSDLExtention/wsdl/stockquote.xsd"/>
 <wsdl:types>
  <schema elementFormDefault="qualified" targetNamespace="http://sample" xmlns="http://www.w3.org/2001/XMLSchema">
   <element name="myCalculation">
    <complexType>
     <sequence>
      <element name="decimal" type="xsd:string"/>
     </sequence>
    </complexType>
   </element>
   <element name="myCalculationResponse">
    <complexType>
     <sequence>
      <element name="myCalculationReturn" type="xsd:string"/>
     </sequence>
    </complexType>
   </element>

  </schema>
 </wsdl:types>

   <wsdl:message name="myCalculationResponse">

      <wsdl:part element="impl:myCalculationResponse" name="parameters">

      </wsdl:part>

   </wsdl:message>

   <wsdl:message name="myCalculationRequest">

      <wsdl:part element="impl:myCalculation" name="parameters">

      </wsdl:part>

   </wsdl:message>

   <wsdl:portType name="Calculation">

      <wsdl:operation name="myCalculation">

         <wsdl:input message="impl:myCalculationRequest" name="myCalculationRequest">

       </wsdl:input>

         <wsdl:output message="impl:myCalculationResponse" name="myCalculationResponse">

       </wsdl:output>

      </wsdl:operation>

   </wsdl:portType>

   <wsdl:binding name="CalculationSoapBinding" type="impl:Calculation">

      <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>

      <wsdl:operation name="myCalculation">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="myCalculationRequest">

            <wsdlsoap:body use="literal"/>

         </wsdl:input>

         <wsdl:output name="myCalculationResponse">

            <wsdlsoap:body use="literal"/>
         </wsdl:output>

      </wsdl:operation>

   </wsdl:binding>

   <wsdl:service name="CalculationService">

      <wsdl:port binding="impl:CalculationSoapBinding" name="Calculation">

         <wsdlsoap:address location="http://localhost:8080/Action1/services/Calculation"/>
      </wsdl:port>

   <Reliability Qualification="threshold-best-effort" Offered="true">
    <TimeToFailure value= 500000000 unit="sec" source="measured"
    type=”mean” direction=”increasing />
    </Reliability>
   </wsdl:service>

</wsdl:definitions

Я пытаюсь добавить новую схему в wsdl, но она всегда терпит неудачу. Возможно ли это сделать? Есть идеи, как добавить этот новый атрибут в файл WSDL?

1 ответ

WSDL имеет стандартное определение, вы не можете настроить его следующим образом.

Определите согласно этой схеме на основе вашей привязки.

http://www.w3.org/TR/wsdl

По-видимому, вы можете сделать это с помощью этой схемы ( Ext)

<element name="service" type="wsdl:serviceType"/>
   <complexType name="serviceType">
      <complexContent>
   <extension base="wsdl:documented">
   <sequence>
   <element ref="wsdl:port" minOccurs="0" maxOccurs="unbounded"/>
      <any namespace="##other" minOccurs="0"/>
  </sequence>
      <attribute name="name" type="NCName" use="required"/>
   </extension>
  </complexContent>
  </complexType>

Но я никогда не пробовал это, не имею образца.

Другие вопросы по тегам