Делая запросы к Web-сервисам из приложений IBM Workplace Forms, вы можете легко воспользоваться преимуществами Web-сервисов и добавить в ваши приложения Workplace Forms мощные возможности.
Web-сервисы позволяют разнородным приложениям из разных источников взаимодействовать друг с другом без дополнительного кодирования. Всё общение между Workplace Forms и Web-сервисами реализуется посредством XML, что обеспечивает их прозрачную интеграцию друг с другом.
Если сравнивать данный подход с расширением возможностей Workplace Forms с помощью технологии Function Call Interface (FCI) (см. статью "Расширение возможностей IBM Workplace Forms с помощью Function Call Interface" на сайте developerWorks), то можно отметить, что использование Web-сервисов позволяет не тратить дополнительное время на проектирование и разработку расширений FCI. Web-сервисы независимы от Workplace Forms, а значит могут использоваться и другими приложениями. Более того, Web-сервисы проще в обслуживании чем расширения FCI т.к. вы можете менять Web-сервисы не затрагивая приложения Workplace Forms.
В данной статье приведены инструкции по следующим вопросам:
- Как скачать файл WSDL (Web Services Description Language)
- Как встроить файл WSDL в форму XFDL
- Как добавить в форму информацию о системных требованиях
- Как получить информацию о Web-сервисе из файла WSDL
- Как использовать функции XFDL для вызова Web-сервисов
- Как использовать отправку форм XForms для вызова Web-сервисов
Читатель должен обладать хорошим пониманием спецификации XFDL, XForms и Web-сервисов.
Web Services Description Language (WSDL) это основанный на XML язык для описания и доступа к Web-сервисам. Для получения более подроб7ной информации ознакомьтесь со спецификацией Web Services Description Language (WSDL) 1.1.
В данной статье для примеров мы будем использовать Google SOAP Search API. Вы можете скачать соответствующий файл WSDL для этого сервиса. Для более подробного ознакомления с Google SOAP Search API воспользуйтесь справочным руководством Google SOAP Search API Reference.
После скачивания файла WSDL его нужно встроить в форму.
Для этого:
- Откройте тестовую форму в IBM Workplace Forms Designer V2.7.
- В виде Enclosures откройте узел WSDL и щёлкните правой кнопкой по узлу Web services.
- Из меню выберите WSDL File.
- В диалоге Choose File найдите GoogleSearch.wsdl и щёлкните OK. Файл GoogleSearch.wsdl будет встроен в форму, как показано на рисунке 1.
Рисунок 1. Вид Enclosures со встроенным файлом WSDL
После встраивания файла WSDL в форму его содержимое станет доступным в Workplace Forms Designer. Если вы откроете форму в виде Source, то в разделе формы globalpage увидите код XML описывающий Web-сервис. См. листинг 1.
Листинг 1. Добавление Web-сервиса в форму
<webservices> <wsdl name="WebServicesName.wsdl"> <!-- WSDL definitions removed.--> </wsdl> </webservices> |
Добавление требований Web-сервиса (необязательно)
Часто Web-сервисам для нормальной работы требуется наличие на компьютере пользователя конкретного ПО. Например, многие Web-сервисы требуют определённую версию Java Runtime Environment (JRE).
Для указания подобных требований необходимо добавить их описание в свойства формы. Вы можете использовать описание требований для проверки наличия определённых классов, созданных экземпляров классов, функций, локали или виртуальной машины Java. При невыполнении требований вы можете показать сообщение пользователю и выбрать продолжать или прервать работу Web-сервиса.
В нашем примере требования включают минимальную версию JRE и экземпляр определённого класса. Для получения более подробной информации по другим требованиям Web-сервисов обратитесь к спецификации XFDL.
Для создания требования проверки минимальной версии JRE на компьютере пользователя:
- В виде Outline откройте узел globalpage и выберите Form Global.
- В виде Properties откройте узел requirements, затем узел Requirements и затем узел requirement, как на рисунке 2.
Рисунок 2. Ветвь requirements в виде Properties
- Откройте узел component.
- Поместите курсор в колонку Value около свойства Element и укажите тип требования, которое вы хотите создать. Для нашего примера выберите Java VM.
- Откройте ветку javavm, как показано на рисунке 3.
Рисунок 3. Ветка javavm в виде Properties
- В полях Value узлов minversion и maxversion укажите номера версии Java VM. Вы можете затребовать как минимальную, так и максимальную версию. Для нашего примера укажите минимальную версию 1.4.2.
- Теперь откройте ветку actions, как показано на рисунке 4.
Рисунок 4. Ветка actions в виде Properties
- В поле узла Type укажите, какое действие вы хотите исполнить при несоответствии требованию. Для нашего примера укажите Message, чтобы проинформировать пользователя Web-сервиса о несоответствии требованию.
- В поле узла ID введите имя, например JavaReq, для идентификации требования. Указание ID обязательно, если вы используете требования в XForms.
- В поле узла Message введите сообщение, которое будет показано пользователю при непрохождении проверки. Например "Ваш компьютер не имеет установленной необходимой версии Java Virtual Machine. В связи с этим Web-сервис не может функционировать. Для исправления необходимо установить Sun Java VM версии 1.4.2 или выше."
- Теперь добавьте требование наличия экземпляра класса. Для этого выделите поле Value в строке Requirements и щёлкните по значку с плюсом, как показано на рисунке 5.
Рисунок 5. Добавление нового требования в виде Properties
- Откройте ветки requirement и component.
- Установите курсор в поле Value напротив свойства Element и выберите тип требования. Для нашего примера выберите Class Instance.
- Откройте ветку classinstance и напечатайте имя экземпляра класса в поле Value. Для нашего примера напечатайте com.PureEdge.wsdl.factory.WSDLFactory.
- Добавьте требование minversion. Введите 1.0.0, как показано на рисунке 6.
Рисунок 6. Добавление компонента class instance в виде Properties
- Откройте ветку actions.
- В поле Type выберите действие, которое должно запускаться если, требование не выполняется. Для нашего примера выберите Message, чтобы форма проинформировала пользователя, если требование не выполняется.
- В поле ID введите имя для идентификации требования, например ClassInstanceReq. Указание ID обязательно, если вы используете требования в XForms.
- В поле Message введите сообщение которое должно показываться пользователю, если требование не выполняется. Например "На вашем компьютере не установлен требуемый класс. В связи с этим Web-сервис не может правильно работать. Для устранения проблемы обратитесь к системному администратору." См. рисунок 7.
Рисунок 7. Добавления действия для требования с типом class instance в виде Properties
Код в листинге 2 показывает, как выглядят требования при просмотре в виде Source после добавления требований к версии Java VM и экземпляра класса:
Листинг 2. Добавление требований Web-сервисов в форму
<requirements>
<requirement>
<component>
<javavm>
<minversion>1.4.2</minversion>
</javavm>
</component>
<actions>
<message stringid="JavaReq">Ваш компьютер не имеет установленной необходимой
версии Java Virtual Machine. В связи с этим Web-сервис не может функционировать.
Для исправления реобходимо установить Sun Java VM версии 1.4.2 или выше.</message>
</actions>
</requirement>
<requirement>
<component>
<classinstance>
<name>com.PureEdge.wsdl.factory.WSDLFactory</name>
<minversion>1.0.0</minversion>
</classinstance>
</component>
<actions>
<message stringid=" ClassInstanceReq">На вашем компьютере не установлен
требуемый класс. В связи с этим Web-сервис не может правильно работать.
Для устранения проблемы обратитесь к системному администратору. </message>
</actions>
</requirement>
</requirements>
|
Получение из файла WSDL информации о функциях
Прежде чем использовать описанные в файле WSDL функции, необходимо распознать его содержимое. Обычно в файле WSDL можно увидеть следующие элементы:
- Имя сервиса. Имя Web-сервиса.
- Имя порта. Имя порта Web-сервиса.
- Имена операций. Функции, предоставляемые Web-сервисом.
- Параметры сообщений. Параметры, используемые функциями Web-сервиса.
После добавления файла WSDL функции, предоставляемые Web-сервисами помещаются в пакет. Этот пакет автоматически добавляется в форму приложения при этом имя пакета строится из имени сервиса, знака подчёркивания (_) и имени порта. Обратите внимание, что по правилам именования имена сервиса и порта в WSDL не должны содержать знак подчёркивания (_).
Код в листинге 3 показывает информацию о сервисе и порте в файле GoogleSearch.wsdl. В этом примере вы видите, что имя пакета для этого WSDL будет GoogleSearchService_GoogleSearchPort.
Листинг 3. Идентификация имён сервиса и порта Web-сервиса
<!-- Endpoint for Google Web APIs -->
<service name="GoogleSearchService">
<port name="GoogleSearchPort" binding="typens:GoogleSearchBinding">
<soap:address location="http://api.google.com/search/beta2"/>
</port>
</service>
|
Операции - это функции предоставляемые Web-сервисом. Операции состоят из двух частей - запрос операции (input) и отклик операции (output).
Код в листинге 4 определяет три операции: doGetCachedPage, doSpellingSuggestion и doGoogleSearch.
Листинг 4. Определение операций doGetCachedPage, doSpellingSuggestion и doGoogleSearch
<!-- Port for Google Web APIs, "GoogleSearch" -->
<portType name="GoogleSearchPort">
<operation name="doGetCachedPage">
<input message="typens:doGetCachedPage"/>
<output message="typens:doGetCachedPageResponse"/>
</operation>
<operation name="doSpellingSuggestion">
<input message="typens:doSpellingSuggestion"/>
<output message="typens:doSpellingSuggestionResponse"/>
</operation>
<operation name="doGoogleSearch">
<input message="typens:doGoogleSearch"/>
<output message="typens:doGoogleSearchResponse"/>
</operation>
</portType>
|
Сообщения и параметры сообщений
Перед вызовом любой операции или функции из Web-сервиса встроенного в форму, необходимо знать, какие параметры эти функции принимают и какие типы данных возвращают. Раздел message файла WSDL описывает эту информацию как для запросов так и для откликов операций.
В коде из листинга 5 операция doGetCachedPage имеет два параметра: key и url. Оба они имеют тип string. Операция doGetCachedPage возвращает результат, имеющий тип base64Binary. Следующая функция, doSpellingSuggestion, имеет два параметра: key и phrase с типом string. Как вы видите, обе эти функции используют простые типы данных, которые позволяют вам применять эти операции таким же образом, как и функции XFDL.
С другой стороны, doGoogleSearch принимает несколько разных параметров с разными типами данных. Более того, возвращаемое значение имеет составной тип GoogleSearchResult. Операции, использующие составные типы данных, могут вызываться только с использованием передачи XForms.
Листинг 5. Определение сообщений операций и параметров сообщений
<message name="doGetCachedPage"> <part name="key" type="xsd:string"/> <part name="url" type="xsd:string"/> </message> <message name="doGetCachedPageResponse"> <part name="return" type="xsd:base64Binary"/> </message> <message name="doSpellingSuggestion"> <part name="key" type="xsd:string"/> <part name="phrase" type="xsd:string"/> </message> <message name="doSpellingSuggestionResponse"> <part name="return" type="xsd:string"/> </message> <message name="doGoogleSearch"> <part name="key" type="xsd:string"/> <part name="q" type="xsd:string"/> <part name="start" type="xsd:int"/> <part name="maxResults" type="xsd:int"/> <part name="filter" type="xsd:boolean"/> <part name="restrict" type="xsd:string"/> <part name="safeSearch" type="xsd:boolean"/> <part name="lr" type="xsd:string"/> <part name="ie" type="xsd:string"/> <part name="oe" type="xsd:string"/> </message> <message name="doGoogleSearchResponse"> <part name="return" type="typens:GoogleSearchResult"/> </message> |
Есть два типовых варианта вызова Web-сервисов из Workplace Forms:
- Используя функции XFDL
- Используя передачу XForms
Выбор метода вызова Web-сервиса зависит от сложности Web-сервиса, к которому предполагается доступ. Если Web-сервис очень простой (т.е. параметры запросов и возвращаемых значений имеют простые типы) - вы можете обращаться к Web-сервисам используя функции XFDL. Выглядеть это будет так же, как и вызов обычных функций XFDL. С другой стороны, если параметры и возвращаемые значения имеют составные типы данных, необходимо использовать передачи XForms. Это значит, что вам придётся добавить поддержку XForms в ваши формы, что усложнит приложение.
С помощью функций XFDL можно вызывать только операции, использующие простые типы данных. Это значит, что из трёх операций в примере файла WSDL могут быть вызваны только doGetCachedPage и doSpellingSuggestion т.к. они используют простые типы (string и base64Binary) в параметрах и возвращают значения с типом string. Операции, использующие составные типы данных (как doGoogleSearch) будут рассматриваться в следующем разделе.
Операции и функции Web-сервисов, использующие простые типы данных вы можете вызывать из элементов compute точно так же, как и любые функции XFDL. Синтаксис вызова: <packageName>.<operationName>(parameter1, parameter2).
Примечание: Операции, которые могут быть вызваны как функции XFDL, также могут вызываться как передачи XForms.
Код в листинге 6 использует функцию XFDL для обращения к Web-сервису.
Листинг 6. Использование функции XFDL для обращения к Web-сервису
<custom:invokeWebServices xfdl:compute="toggle(activated, 'off', 'on') == '1'
? set('Result.value', GoogleSearchService_GoogleSearchPort.doSpelling
Suggestion(PAGE1.Key.value, PAGE1.Expression.value))
: ''"></custom:invokeWebServices>
|
Для использования этого кода:
- Создайте кнопку XFDL, которую пользователь может нажать для обращения к Web-сервису.
- Вставьте код из листинга 6 в кнопку.
- Создайте элемент label в котором будет содержаться информация, полученная от Web-сервиса и укажите его sid как "RESULT".
В качестве примера см. листинг 7.
Листинг 7. Размещение вызова Web-сервиса внутри кнопки
<button sid="INVOKE">
<itemlocation>
<x>83</x>
<y>318</y>
</itemlocation>
<value>Invoke</value>
<custom:invokeWebServices xfdl:compute="toggle(activated, 'off', 'on') ==
'1'
? set('RESULT.value', GoogleSearchService_GoogleSearchPort.do
SpellingSuggestion(PAGE1.Key.value, PAGE1.Expression.value))
: ''"></custom:invokeWebServices>
</button>
|
Функции XFDL нельзя тспользовать, если операции Web-сервиса используют составные типы данных в параметрах запроса или возвращают в отклике значения составного типа. Однако вы можете вызывать операции, использующие составные типы данных с помощью передач XForms.
Для создания передачи XForms необходимо создать набор правил передачи. Эти правила помогут определить, какие данные отправляются, как они отправляются и откуда они отправляются. В дополнение к правилам отправки необходимо создать кнопку, связанную с этими правилами.
Для обращения к Web-сервисам ваша форма должна содержать по крайней мере одну модель.
Добавление модели данных XForms
Если вы используете Workplace Forms Designer для редактирования форм, то можете добавить простую модель данных в один шаг. В виде XForms щёлкните правой кнопкой по надписи No Model Exists и выберите Add XForms Support.
Примечание: Вы можете пропустить этот шаг, если в вашей форме уже есть модель данных.
Создание данных XForms из сообщений WSDL
Теперь создайте источник данных XForms, который будет содержать элементы запроса и отклика функций WSDL.
Для этого:
- В виде Instance нажмите кнопку WSDL.
- Потом выберите сообщение WSDL, которое вы хотите использовать. Для нашего примера выберите doGoogleSearch и doGoogleSearchResponse, как показано на рисунке 8 для создания элементов request и response функции doGoogleSearch.
Рисунок 8. Выбор сообщения WSDL
- Нажмите ОК. Будут созданы новые экземпляры XForms. Первый экземпляр (INSTANCE) содержит элементы запроса к doGoogleSearch, а второй (INSTANCE1) - элементы отклика doGoogleSearch. См. рисунок 9.
Рисунок 9. Экземпляры, сгенерированные из выбранных сообщений WSDL
- После создания экземпляров дайте им удобочитаемые имена. Для нашего примера переименуйте INSTANCE в doGoogleSearchRequest, а INSTANCE1 в doGoogleSearchResponse. Это деоается в виде Source редактора Workplace Forms Designer или в другом текстовом редакторе, как показано на рисунке 10.
Рисунок 10. Переименованные экземпляры
Удаление обработанного файла WSDL (необязательно)
После создания экземпляров для функций Web-сервисов, файл WSDL можно удалить из формы. Удаление файла WSDL сделает форму меньше по размеру. Для удаления перейдите в вид Enclosures, щёлкните правой кнопкой по встроенному файлу WSDL и выберите Delete из контекстного меню.
Создание базовой передачи XForms
Передачи (submissions) XForms - это набор правил определяющих, какие данные передаются, как данные передаются, куда они направляются куда необходимо поместить данные отклика. При использовании передачи XForms для обращения к Web-сервисам в передаче XForms определяется, какая из функций будет вызвана и куда должны передаваться данные отклика.
Для создания правил передачи для Web-сервиса:
- В виде XForms редактора Workplace Forms Designer щёлкните правой кнопкой источник doGoogleSearchResponse и выберите Create Submission for Instance.
Будет создана передача XForms, как показано на рисунке 11.
Рисунок 11. Вид XForms со генерированной передачей
После создания базовой передачи необходимо добавить правила регулирующие общение с Web-сервисом. Правила задаются как атрибуты передачи и описаны в таблице 1.
Таблица 1. Атрибуты передачи
| Атрибут | Назначение |
|---|---|
| action | Описывает URL Web-сервиса, например action=http://api.google.com/search/beta2. |
| id | Имя передачи XForms. Имя связывает правило передачи с кнопкой, например id="doGoogleSearch". |
| instance | Указывает экземпляр, куда возвращается отклик, например instance="doGoogleSearchResponse". |
| mediatype | Имеет две части. Первая часть атрибута mediatype указывает тип заголовка запроса к Web-сервису. Заголовок всегда
будет application/soap+xml. Вторая часть указывает действие Web-сервиса. Это имя функции, которую должен вызывать
Web-сервис, например doGoogleSearch. В следующим примере показан атрибут mediatype для функции doGoogleSearch: mediatype="application/soap+xml; action=doGoogleSearch" |
| method | Указывает протокол, используемый при передаче сериализованных данных, например method="post". |
| ref | Указывает экземпляр, содержащий данные запроса к Web-серверу, например ref="instance('doGoogleSearchRequest')". |
| replace | Указывает, что будет замещено при получении пакета с откликом, например replace="instance". |
Для настройки правил передачи необходимо выполнить следующие шаги:
- Переключитесь в вид Source редактора Workplace Forms Designer и найдите следующий код:
<xforms:submission id="SUBMISSION" instance="doGoogleSearchResponse"
method="post"></xforms:submission>
- Поменяйте ID передачи на имя вашей передачи. В нашем примере это doGoogleSearch.
- Добавьте атрибут action. Для нашего примера присвойте ему значение http://api.google.com/search/beta2.
- Добавьте mediatype в передачу. Атрибут всегда имеет значение application/soap+xml;. Для нашего примера присвойте элементу action значение doGoogleSearch .
- Добавьте ссылку на экземпляр, содержащий данные Web-сервиса. Для нашего примера присвойте ему значение instance('doGoogleSearchRequest')".
В листинге 8 показан код готовой передачи XForms.
Листинг 8. Готовая передача XForms для вызова Web-сервиса
<xforms:submission id="doGoogleSearch"
action="http://api.google.com/search/beta2"
instance="doGoogleSearchResponse" mediatype="application/soap+xml;
action=doGoogleSearch" method="post" ref="instance('doGoogleSearchRequest')"
replace="instance"></xforms:submission>
|
После завершения создания правил для передачи вам нужно создать кнопку и связать её с передачей XForms. Кнопка передачи может содержать либо действие submit, либо send. Для нашего примера используйте действие send.
Шаги для создания кнопки передачи:
- Создайте кнопку XFDL. См. код в листинге 9.
Листинг 9. Помещение передачи XForms в кнопку отправки
<button sid="INVOKE_BUTTON">
<value>Invoke</value>
…other button options…
</button>
|
- Добавьте элемент с триггером XForms. См. код в листинге 10.
Листинг 10. Добавление элемента с триггером
<button sid="INVOKE_BUTTON">
<value>Invoke</value>
<xforms:trigger>
</xforms:trigger>
</button>
|
- Добавьте действие XForms с событием DOMActivate. См. код в листинге 11.
Листинг 11. Добавление элемента с действием
<button sid="INVOKE_BUTTON">
<value>Invoke</value>
<xforms:trigger>
<xforms:label></xforms:label>
<xforms:action ev:event="DOMActivate">
</xforms:action>
</xforms:trigger>
</button>
|
- Добавьте элемент send. См. код в листинге 12.
Листинг 12. Добавление элемента send
<button sid="INVOKE_BUTTON">
<value>Invoke</value>
<xforms:trigger>
<xforms:label></xforms:label>
<xforms:action ev:event="DOMActivate">
<xforms:send submission="doGoogleSearch"></xforms:send>
</xforms:action>
</xforms:trigger>
</button>
|
Базовая форма с вызовом Web-сервиса
В следующих разделах описывается пример двух форм вызывающих Web-сервис. Первая форма использует для обращения к Web-сервису XFDL, вторая - XForms.
Использование функций XFDL для доступа к Web-сервисам
Этот пример формы показывает, как использовать функции XFDL для вызова сервиса Google SOAP Search API. Когда пользователь щёлкает по кнопке Invoke, форма выполняет запрос к Web-сервису. Сервис обращается к Google SOAP Search API и в отклике возвращаются данные с вариантами исправления правописания.
После нажатия кнопки отображается вариант написания, как показано на рисунке 12.
Рисунок 12. Пример формы, предлагающей вариант исправления правописания
Использование передачи XForms для обращения к Web-сервису
В листинге 13 показан пример экземпляра, который изменяется посредством передачи XForms, вызывающей Web-сервис Google SOAP Search API. Когда пользователь щёлкает по кнопке Invoke, форма направляет Web-сервису запрос. Запрос вызывает функции Google SOAP Search API и возвращает набор результатов, которые замещают экземпляр doGoogleSearchResponse.
В листинге 13 показан начальный экземпляр данных XForms.
Распечатка 13. Начальный источник данных XForms
<xforms:instance xmlns:designer1="http://www.ibm.com/xmlns/prod/
workplace/forms/designer/2.7" id="doGoogleSearchResponse"
designer1:type="wsdl" xmlns="">
<soap:Envelope>
<soap:Body xmlns:defaultns="urn:GoogleSearch"
soap:encodingStyle="http://schemas.xmlsoap.org/soap/
encoding/">
<defaultns:doGoogleSearchResponse>
<return>
<defaultns:documentFiltering></defaultns:document
Filtering>
<defaultns:searchComments></defaultns:searchComments>
<defaultns:estimatedTotalResultsCount></defaultns:
estimatedTotalResultsCount>
<defaultns:estimateIsExact></defaultns:estimateIsExact>
<defaultns:resultElements></defaultns:resultElements>
<defaultns:searchQuery></defaultns:searchQuery>
<defaultns:startIndex></defaultns:startIndex>
<defaultns:endIndex></defaultns:endIndex>
<defaultns:searchTips></defaultns:searchTips>
<defaultns:directoryCategories></defaultns:directory
Categories>
<defaultns:searchTime></defaultns:searchTime>
</return>
</defaultns:doGoogleSearchResponse>
</soap:Body>
</soap:Envelope>
</xforms:instance>
|
В листинге 14 показан код замещённого экземпляра данных XForms.
Листинг 14. Замещённый экземпляр данных XForms
<xforms:instance xmlns="" xmlns:designer1="http://www.ibm.com/
xmlns/prod/workplace/forms/designer/2.7" id="doGoogleSearchResponse"
designer1:type="wsdl">
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/
soap/envelope/" xmlns:xsd="http://www.w3.org/1999/XMLSchema"
xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance">
<SOAP-ENV:Body>
<ns1:doGoogleSearchResponse xmlns:ns1="urn:
GoogleSearch" SOAP-ENV:encodingStyle="http://schemas.
xmlsoap.org/soap/encoding/">
<return xsi:type="ns1:GoogleSearchResult">
<directoryCategories xmlns:ns2="http://schemas.xmlsoap.
org/soap/encoding/" ns2:arrayType="ns1:Directory
Category[0]" xsi:type="ns2:Array"></directoryCategories>
<documentFiltering xsi:type="xsd:
boolean">true</documentFiltering>
<endIndex xsi:type="xsd:int">10</endIndex>
<estimateIsExact xsi:type="xsd:
boolean">false</estimateIsExact>
<estimatedTotalResultsCount xsi:type="
xsd:int">73200</estimatedTotalResultsCount>
<resultElements xmlns:ns3="http://schemas.xmlsoap.
org/soap/encoding/" ns3:arrayType="ns1:Result
Element[10]" xsi:type="ns3:Array">
<item xsi:type="ns1:ResultElement">
<URL xsi:type="xsd:string">http://www.paizhe.com/
space/?592/spacelist-blog.html</URL>
<cachedSize xsi:type="xsd:string"
>31k</cachedSize>
<directoryCategory xsi:type="ns1:
DirectoryCategory">
<fullViewableName xsi:type="xsd:
string"></fullViewableName>
<specialEncoding xsi:type="xsd:string"
></specialEncoding>
</directoryCategory>
<directoryTitle xsi:type="xsd:string"
></directoryTitle>
<hostName xsi:type="xsd:string"></hostName>
<relatedInformationPresent xsi:type="xsd:
boolean">false</relatedInformationPresent>
<snippet xsi:type="xsd:string">一场突如其来的大
火. 2007-02-06 17:03:58. 正在下载中,请稍等...
查看(23) 评论(2) <br> 收藏 分享 圈子 管
理. 281/212>. <b>rookie<
/b>. <b>rookie</b>. 用户菜单.
给我留言 · 加入好友 ·
<br> 发短消息 · 我的介绍
· 论坛资料 · 空间管理. 我
的栏目. 那就来跳水吧. 标题搜索 lt;b>...
</b></snippet>
...additional elements removed for brevity...
<summary xsi:type="xsd:string"></summary>
<title xsi:type="xsd:string">菜鸟霹雳胆The
<b>Rookie</b> 剧情简介-剧情介绍及演
员表及影评imdb中文网</title>
</item>
</resultElements>
<searchComments xsi:type="xsd:string"></search
Comments>
<searchQuery xsi:type="xsd:string">rookie</search
Query>
<searchTime xsi:type="xsd:double">0.116003</search
Time>
<searchTips xsi:type="xsd:string"></searchTips>
<startIndex xsi:type="xsd:int">1</startIndex>
</return>
</ns1:doGoogleSearchResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
</xforms:instance>
|
Пакет продуктов Workplace Forms позволяет вам создавать динамичные и удобные в использовании формы. Благодаря использованию XML формы могут быть легко интегрированы с Web-сервисами. Следуя пошаговым инструкциям из данной статьи, дизайнер форм средней квалификации может встраивать Web-сервисы в свои формы и добавлять дополнительную функциональность, предоставляемую этими сервисами.
| Имя | Размер | Метод загрузки |
|---|---|---|
| CallWSinWPForms_XFDLFunction.xfdl | 14 КБ | HTTP |
| CallWSinWPForms_XFormsSubmssion.xfdl | 6 КБ | HTTP |
| GoogleSearch.wsdl | 7 КБ | HTTP |
Научиться
-
Оригинал статьи: "
Extending the functionality of IBM Workplace Forms with Web services (EN)."
-
Прочитайте статью для developerWorks "Расширение
модели данных XML в формах XFDL с применением IBM Workplace Forms V2.6 (EN)."
-
Прочитайте статью для developerWorks "Интеграция
IBM Workplace Forms V2.6 с IBM DB2 V9."
-
Прочитайте статью для developerWorks "Интеграция IBM
Workplace Forms с WebSphere Portal для создания формоориетированных приложений (EN)."
-
Прочитайте статью для developerWorks "Расширение
функциональности IBM Workplace Forms с помощью интерфейса Function Call ."
-
Прочитайте статью для developerWorks "Создание
форм в IBM Workplace Forms Designer (EN)."
-
Прочитайте документацию по
Workplace Forms на сайте developerWorks (EN).
-
Перейдите в раздел developerWorks по Workplace Forms (EN).
Получить продукты и технологии
Обсудить
- Примите участие в обсуждении материала на форуме.
-
Ознакомьтесь с блогом Джона Бойера Workplace Forms and the Next
Generation Web Applications (EN).