Freigeben über


Beschreiben des WSDL PortType-Dokumentationsschemas mit dem WCF LOB Adapter SDK

Die vom WCF LOB Adapter SDK generierte WSDL enthält zusätzliche beschreibende Informationen für jeden portType. Das Schema für diese zusätzlichen Informationen wird in diesem Thema beschrieben.

Xml-Schema der Dokumentation

Die Vorgangsdokumentation wird mithilfe der Anmerkung portType implementiert, um einen Knoten hinzuzufügen, der die Adapterdokumentation für den Vorgang darstellt. Dieser Knoten enthält Unterknoten, die den Vorgang und die Parameter weiter beschreiben. Dieses Schema wird wie folgt definiert.

<?xml version="1.0" encoding="utf-8"?>  
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">  
  <xs:element name="adapterOperationDocumentation">  
    <xs:complexType>  
      <xs:sequence>  
        <xs:element name="summary" type="xs:string" />  
        <xs:element maxOccurs="unbounded" name="param">  
          <xs:complexType>  
            <xs:simpleContent>  
              <xs:extension base="xs:string">  
                <xs:attribute name="name" type="xs:string" use="required" />  
              </xs:extension>  
            </xs:simpleContent>  
          </xs:complexType>  
        </xs:element>  
        <xs:element name="returns" type="xs:string" />  
      </xs:sequence>  
    </xs:complexType>  
  </xs:element>  
</xs:schema>  

Wenn WSDL für einen bestimmten Vorgang generiert wird, wird das vorherige Schema verwendet, um zusätzliche beschreibende Informationen in lesbarem Format bereitzustellen. Beispielsweise werden die folgenden portType-Informationen für den EchoString-Vorgang des Echoadapters zurückgegeben.

<wsdl:portType name="EchoService">  
  <wsdl:operation name="EchoString">  
    <wsdl:documentation>  
      <doc:adapterOperationDocumentation>  
        <doc:summary>String EchoString( string aName)\</doc:summary>  
        <doc:param name="aName">This string will be echoed back to the user.\</doc:param>  
        <doc:returns>String value containing the value of aName \</doc:returns>  
      </doc:adapterOperationDocumentation>  
    </wsdl:documentation>  
    <wsdl:input wsaw:Action="Echo/EchoString" message="ns2:EchoService_EchoString_InputMessage" />  
    <wsdl:output wsaw:Action="Echo/EchoString/response" message="ns2:EchoService_EchoString_OutputMessage" />  
  </wsdl:operation>  
</wsdl:portType>  

Die Werte für die Dokumentationselemente werden für Microsoft.ServiceModel.Channels.Common.ParameterizedOperationMetadata den Vorgang abgerufen. Das obige Beispiel wurde als Ergebnis des folgenden Beispiels generiert.

ParameterizedOperationMetadata om = new ParameterizedOperationMetadata(operationId, operationId);  
// set this if you want this operation to belong to this interface name  
// in the generated proxy, the interface name will be EchoService  
// and the client implementation name will be EchoServiceClient.  
om.OperationGroup = "EchoService";  
// set the operation namespace to be same as service namespace  
om.OperationNamespace = EchoAdapter.SERVICENAMESPACE;              
switch (operationId)  
{  
   case "Echo/EchoString":  
       om.DisplayName = "EchoString";  
       om.OriginalName = "targetSystemEchoString";  
       om.Description = "String EchoString( string aName)";  
       OperationParameter parm1 = new OperationParameter("aName", OperationParameterDirection.In, QualifiedType.StringType, false);  
       parm1.Description = "This string will be echoed back to the user.";  
       OperationResult result = new OperationResult(new SimpleQualifiedType(XmlTypeCode.String), false);  
       result.Description = "String value containing the value of aName";  
       om.Parameters.Add(parm1);  
       om.OperationResult = result;  
       return om;   

Weitere Informationen

Bewährte Methoden für die Entwicklung mithilfe des WCF LOB Adapter SDK