-
Notifications
You must be signed in to change notification settings - Fork 79
/
Copy pathxforms.xml
119 lines (117 loc) · 4.38 KB
/
xforms.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 96c9d88bad9a7d7d44bfb7f26c226df7ee9ddf26 Maintainer: hirokawa Status: ready -->
<chapter xml:id="features.xforms" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<title>XFormsの処理</title>
<para>
<link xlink:href="&url.xforms;">XForms</link> は、従来のWebフォームから
派生したもので、広範なプラットフォームやブラウザそしてPDFドキュメントのような
従来のメディア以外のものにすら使用することができます。
</para>
<para>
xformsのまず第一の違いは、クライアントへフォームを送信する方法です。
<link xlink:href="&url.xforms.htmlauthors;"><literal>HTML作成者のためのXForms</literal></link>
には、XFormsの作成方法の詳細な解説がありますが、この手引きの趣旨に沿って、
ここでは簡単な例のみ示すことにします。
</para>
<example>
<title>簡単なXForms検索フォーム</title>
<programlisting role="html">
<![CDATA[
<h:html xmlns:h="http://www.w3.org/1999/xhtml"
xmlns="http://www.w3.org/2002/xforms">
<h:head>
<h:title>Search</h:title>
<model>
<submission action="http://example.com/search"
method="post" id="s"/>
</model>
</h:head>
<h:body>
<h:p>
<input ref="q"><label>Find</label></input>
<submit submission="s"><label>Go</label></submit>
</h:p>
</h:body>
</h:html>
]]>
</programlisting>
</example>
<para>
上のフォームは、(<parameter>q</parameter>という名前の),テキスト入力ボックス
と投稿ボタンを表示します。投稿ボタンがクリックされた時、このフォームは
<literal>action</literal>が参照するページに送信されます。
</para>
<para>
ここからが、Webアプリケーションの視点から異なって見え始めるところです。
通常のHTMLフォームでは、データは、
<literal>application/x-www-form-urlencoded</literal>
で送信されますが、XFormsでは、この情報は <acronym>XML</acronym> 形式のデータで送信されます。
</para>
<para>
XFormsで処理することを選択した場合には、おそらくデータを <acronym>XML</acronym>
形式で取得したいはずで、この場合、<varname>$HTTP_RAW_POST_DATA</varname> により、
ブラウザが生成した <acronym>XML</acronym>
ドキュメントにアクセスすることができます。このデータは、使用する <acronym>XSLT</acronym>
エンジンやドキュメントパーサに渡すことができます。
</para>
<para>
データ形式には関心がなく、データを従来の
データ形式には関心がなく、データを従来の <varname>$_POST</varname>変数に
ロードしたいだけの場合、
<parameter>method</parameter> 属性を
<emphasis>urlencoded-post</emphasis> に変更することにより、
クライアントブラウザに
<literal>application/x-www-form-urlencoded</literal>
としてデータを送信するよう指示することができます。
</para>
<example>
<title>XFormにより<varname>$_POST</varname>を送信する</title>
<programlisting role="html">
<![CDATA[
<h:html xmlns:h="http://www.w3.org/1999/xhtml"
xmlns="http://www.w3.org/2002/xforms">
<h:head>
<h:title>Search</h:title>
<model>
<submission action="http://example.com/search"
method="urlencoded-post" id="s"/>
</model>
</h:head>
<h:body>
<h:p>
<input ref="q"><label>Find</label></input>
<submit submission="s"><label>Go</label></submit>
</h:p>
</h:body>
</h:html>
]]>
</programlisting>
</example>
<note>
<simpara>
本稿執筆時点で、多くのブラウザはXFormsをサポートしていません。
上の例が失敗する場合、ブラウザのバージョンを確認してください。
</simpara>
</note>
</chapter>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->