Hub Nexus
Aggiornato

AutoreAncora senza autorePrendila in carico

Vedi qualcosa da migliorare? Proponi una modifica.

Sostegno

In XForms · pagina 14 di 137

Motivation

This program demonstrates several different ways to call a web service from a sample XForms application. The example uses both HTTP POST and HTTP GET methods and shows how the results are returned into an instance in the model and how the page can be replaced with the results. The web service it calls is a simple web service that adds two numbers together.

Screen Image

XForms Adder Example After Execution

XForms Adder Example After Execution (Image: The original uploader was Dmccreary at English Wikibooks ., CC BY-SA 3.0)

For the results to be put in the model using FireFox, make sure to add www.sa.kw.ua.sa and xforms-examples.google.com to your XForms white list using the Tools/Options/Security/Allowed Sites menu of FireFox. This is required since our web forms are hosted at one domain but the web services are hosted on another domain.

Load XForms Application

Sample Program

<html
xmlns="http://www.w3.org/1999/xhtml"
xmlns:xf="http://www.w3.org/2002/xforms"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:ev="http://www.w3.org/2001/xml-events" >
<head>
<title>XQuery Tester</title>
<style type="text/css">
@namespace xf url("http://www.w3.org/2002/xforms");
body {font-family: Arial,sans-serif;}

xf|input, xf|output {
display: table-row;
line-height: 2em;
}

xf|label {
display: table-cell;
text-align: right;
font-family: Arial, Helvetica, sans-serif;
font-weight: bold;
font-size: small;
padding-right: 5px;
width: 150px;
}
</style>
<xf:model>
<xf:instance xmlns="" id="input-parameters">
<data>
<arg1>123</arg1>
<arg2>456</arg2>
</data>
</xf:instance>
<xf:instance xmlns="" id="submit-results">
<results>
<sum/>
</results>
</xf:instance>

<xf:submission id="get-instance" method="get" replace="instance" instance="submit-results"
action="http://www.cems.uwe.ac.uk/xmldb/rest/db/Wiki/adder.xq"
separator="&">
<xf:toggle case="case-busy" ev:event="xforms-submit"/>
<xf:toggle case="case-submit-error" ev:event="xforms-submit-error"/>
<xf:toggle case="case-submit-done" ev:event="xforms-submit-done"/>
</xf:submission>

<xf:submission id="get-replace" method="get" replace="all" instance="submit-results"
action="http://www.cems.uwe.ac.uk/xmldb/rest/db/Wiki/adder.xq"
separator="&">
<xf:toggle case="case-busy" ev:event="xforms-submit"/>
<xf:toggle case="case-submit-error" ev:event="xforms-submit-error"/>
<xf:toggle case="case-submit-done" ev:event="xforms-submit-done"/>
</xf:submission>

<xf:submission id="post-instance" method="post"
replace="instance" instance="submit-results"
action="http://www.cems.uwe.ac.uk/xmldb/rest/db/Wiki/adder-post.xq">;
<xf:toggle case="case-busy" ev:event="xforms-submit"/>
<xf:toggle case="case-submit-error" ev:event="xforms-submit-error"/>
<xf:toggle case="case-submit-done" ev:event="xforms-submit-done"/>
</xf:submission>

<xf:submission id="post-replace" method="post"
action="http://www.cems.uwe.ac.uk/xmldb/rest/db/Wiki/adder-post.xq">;
<xf:toggle case="case-busy" ev:event="xforms-submit"/>
<xf:toggle case="case-submit-error" ev:event="xforms-submit-error"/>
<xf:toggle case="case-submit-done" ev:event="xforms-submit-done"/>
</xf:submission>

<xf:submission id="get-test" method="get" replace="all"
separator="&"
action="http://xformstest.org/cgi-bin/showinstance.sh"/>;

<xf:submission id="post-test" method="post" replace="all"
action="http://xformstest.org/cgi-bin/showinstance.sh"/>;
</xf:model>
</head>
<body>
<h1>Using XForms to test XQuery</h1>
<p>Note, you must have xforms-examples.googlecode.com and www.cems.uwe.ac.uk in your whitelist for this demo to work.</p>

<xf:input ref="arg1" incremental="true">
<xf:label>Arg1:</xf:label>
</xf:input>
<xf:input ref="arg2" incremental="true">
<xf:label>Arg2:</xf:label>
</xf:input>

<xf:output ref="instance('submit-results')/sum">
<xf:label>Sum:</xf:label>
</xf:output>

<xf:submit submission="get-instance">
<xf:label>HTTP GET -> instance</xf:label>
</xf:submit>
<br/>

<xf:submit submission="post-instance">
<xf:label>HTTP POST -> instance</xf:label>
</xf:submit>
<br/>

<xf:submit submission="get-replace">
<xf:label>HTTP GET -> replace</xf:label>
</xf:submit>
<br/>

<xf:submit submission="post-replace">
<xf:label>HTTP POST -> replace</xf:label>
</xf:submit>
<br/>

<xf:submit submission="get-test">
<xf:label>HTTP Get Test</xf:label>
</xf:submit>
<br/>
<xf:submit submission="post-test">
<xf:label>HTTP Post Test</xf:label>
</xf:submit>
<br/>

<xf:switch>
<xf:case id="ready"/>
<xf:case id="case-busy">
<p>Waiting for results from server...</p>
</xf:case>
<xf:case id="case-submit-error">
<p>Submit error</p>
</xf:case>
<xf:case id="case-submit-done">
<p>Submit done</p>
</xf:case>
</xf:switch>
</body>
</html>

Where this page came from

This page was imported from Wikibooks. From “XForms” on Wikibooks, by its contributors, under CC BY-SA 4.0. Changed here: set as a page; navigation and edit links left out; each image under its own licence, credited in its caption.

Nobody has written it yet — it is the source material at a new address, which is why search engines are asked to skip it and why no one earns from it. It is up for grabs: take it on, and it is yours to rewrite and to earn from.

In queste pubblicazioniXForms

LingueEnglish

Licenza: CC BY-SA 4.0 · Tratto da en.wikibooks.org

1

0

0

0

Spinner Logo

Commenti

Spinner Logo
Versione: 2CC0 1.0 — public domain
The runaway star that left the Tarantula Nebula
Versione: 2CC0 1.0 — public domain
The Blackwell School, where segregation had no law behind it
Versione: 2CC0 1.0 — public domain
The Eagle Nebula, seen in the infrared
Versione: 2CC0 1.0 — public domain
The house where the Equal Rights Amendment was written
Versione: 2CC0 1.0 — public domain
The Aleutians, the forgotten front of the Second World War
Versione: 2CC0 1.0 — public domain
The Cosmic Cliffs are not cliffs