Книга: ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание

Элемент ‹types›

Элемент ‹types›

Сначала мы рассмотрим элемент ‹types›, который содержит описания всех типов данных, предлагаемых Web-сервисом. Вы, возможно, знаете, что язык XML сам определяет ряд "базовых" типов данных, и все они определены в рамках пространства имен XML http://www.w3.org/2001/XMLSchema (которое должно быть указано в контексте корневого элемента ‹definitions›). Возьмем, например, метод Subtract() нашего Web-сервиса калькулятора, имеющий два входных параметра целочисленного типа. В терминах WSDL тип System.Int32 среды CLR описывается в контексте элемента ‹complexType›.

‹s:еlement name= "Subtract"›
 <s:comlexType>
  ‹s:sequence›
   ‹s:element minOccurs="1" maxOccurs="1" name="x" type="s:int" /›
   ‹s:element minOccurs=''1" maxOccurs="1" name="y" type="s:int" /›
  ‹/s:sequence›
 ‹/s:complexType›
‹/s:element›

Целое число, возвращаемое методом Subtract(), также описывается в рамках элемента ‹types›.

‹s:element name= "SubtractResponse"›
 ‹s:complexType›
  ‹s:sequence›
   ‹s:element minOccurs="1" maxOccurs="1" name="SubtractResult" type="s:int"/›
  ‹/s:sequence›
 /s:complexType›
‹/s:element›

Если вы имеете Web-метод, возвращающий или получающий пользовательские типы данных, они также появятся в контексте элемента ‹complexType›. Детали того, как с помощью Web-метода сделать доступными пользовательские типы данных .NET, мы рассмотрим позже. Для примера предположим, что вы определили Web-мeтод, возвращающий структуру с именем Point.

public struct Point {
 public int x;
 public int y;
 public string pointName;
}

WSDL-описание для этой "сложной структуры" будет выглядеть примерно так.

‹s:complexType name="Point"›
 ‹s:sequence›
  ‹s:element minOccurs="1" maxOccurs="1" name="x" type="s:int" /›
  ‹s:element minOccurs="1'' maxOccurs="1" name="y" type= "s:int" /›
  ‹s:element minOccurs="0" maxOccurs="1" name="рointName" type="s:string" /›
 ‹/s:sequence›
‹/s:complexType›

Оглавление книги


Генерация: 1.079. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз