Page History
SETコマンドは、操作パラメータとフラグメントのコンテキストおよびデータを設定します。
構文:
コマンド | キーワード | 値 | 開発者用メモ |
|---|---|---|---|
SET | OPERATION | 値 | 任意。操作名 |
PARAMETER | 値 | 任意。パラメータ名 | |
LIST | 値 | 任意。リスト名 | |
FRAGMENT | 値 | 任意。フラグメント名 | |
SUBSET |
任意。詳細は、「SUBSET」を参照してください。 | ||
VALIDATE | *ALL | 任意。XMLスキーマを使用して、SOAP要求メッセージと応答メッセージを検証します。 |
*OPTIONAL | サービス・プロパティが使用可能かどうかのみを検証します。 | |
*NONE | 検証なし | |
*REQUEST | SOAP要求メッセージを検証します。 | |
*RESPONSE | SOAP応答メッセージを検証します。 |
例
SET OPERATION(KEYWORDSEARCHREQUEST)
SET PARAMETER(KEYWORDSEARCHREQUEST)
SET LIST(AUTHORS) #WRKLST
SET FRAGMENT(REQUEST) SERVICE_EXCHANGE(*FIELD)
サービスが開くと、プログラムはSET OPERATIONコマンドを呼び出して、使用される操作を指定する必要があります。オプションのVALIDATEキーワードは、SOAP XML要求メッセージと応答メッセージに対してXMLスキーマ検証を行うかどうかを制御します。SOAPメッセージの検証に使用される外部のXMLスキーマ・ファイルは、サービス・プロパティ・ファイルで指定します。サービス名と操作名は、各エントリーを特定するサービス・プロパティで使用されます。
例
# service.validate.request.service.operation=soap-agent-schemas/soap-envelope.xsd
# service.validate.response.service.operation=soap-agent-schemas/soap-envelope.xsd
操作を設定すると、プログラムはパラメータとその値を設定する必要があります。パラメータが簡単なもので、フラグメントやリストが不要な場合、SET PARAMETERコマンドはプログラム・フィールドの値でパラメータ値を設定します。
パラメータが複雑なオブジェクトの場合、SET PARAMETERコマンドを呼び出して、今後の呼び出しのコンテキストがこのパラメータに対して機能するように設定する必要があります。パラメータ・オブジェクトを完全に入力するには、いくつかのSET FRAGMENTコマンドとSET LISTコマンドを呼び出す必要があります。
...
SOAP/1.1エンベロープのXMLSchemaの例
<?xml
...
version="1.0"
...
encoding="utf-8"?><!--
...
Schema
...
for
...
the
...
SOAP/1.1
...
envelope
...
Portions
...
©
...
2001
...
DevelopMentor,
...
©
...
2001
...
W3C
...
(Massachusetts
...
Institute
...
of
...
Technology,
...
Institut
...
National
...
de
...
Recherche
...
en
...
Informatique
...
et
...
en
...
Automatique,
...
Keio
...
University).
...
All
...
Rights
...
Reserved.
...
This
...
document
...
is
...
governed
...
by
...
the
...
W3C
...
Software
...
License
...
[1]
...
as
...
described
...
in
...
the
...
FAQ
...
[2].
...
[1]
...
http://www.w3.org/Consortium/Legal/copyright-software-19980720
...
[2]
...
http://www.w3.org/Consortium/Legal/IPR-FAQ-20000620.html#DTD
...
By
...
obtaining,
...
using
...
and/or
...
copying
...
this
...
work,
...
you
...
(the
...
licensee)
...
agree
...
that
...
you
...
have
...
read,
...
understood,
...
and
...
will
...
comply
...
with
...
the
...
following
...
terms
...
and
...
conditions:
...
Permission
...
to
...
use,
...
copy,
...
modify,
...
and
...
distribute
...
this
...
software
...
and
...
its
...
documentation,
...
with
...
or
...
without
...
modification,
...
for
...
any
...
purpose
...
and
...
without
...
fee
...
or
...
royalty
...
is
...
hereby
...
granted,
...
provided
...
that
...
you
...
include
...
the
...
following
...
on
...
ALL
...
copies
...
of
...
the
...
software
...
and
...
documentation
...
or
...
portions
...
thereof,
...
including
...
modifications,
...
that
...
you
...
make:
...
1.
...
The
...
full
...
text
...
of
...
this
...
NOTICE
...
in
...
a
...
location
...
viewable
...
to
...
users
...
of
...
the
...
redistributed
...
or
...
derivative
...
work.
...
2.
...
Any
...
pre-existing
...
intellectual
...
property
...
disclaimers,
...
notices,
...
or
...
terms
...
and
...
conditions.
...
If
...
none
...
exist,
...
a
...
short
...
notice
...
of
...
the
...
following
...
form
...
(hypertext
...
is
...
preferred,
...
text
...
is
...
permitted)
...
should
...
be
...
used
...
within
...
the
...
body
...
of
...
any
...
redistributed
...
or
...
derivative
...
code:
...
"Copyright
...
©
...
2001
...
World
...
Wide
...
Web
...
Consortium,
...
(Massachusetts
...
Institute
...
of
...
Technology,
...
Institut
...
National
...
de
...
Recherche
...
en
...
Informatique
...
et
...
en
...
Automatique,
...
Keio
...
University).
...
All
...
Rights
...
Reserved.
...
http://www.w3.org/Consortium/Legal/"
...
3.
...
Notice
...
of
...
any
...
changes
...
or
...
modifications
...
to
...
the
...
W3C
...
files,
...
including
...
the
...
date
...
changes
...
were
...
made.
...
(We
...
recommend
...
you
...
provide
...
URIs
...
to
...
the
...
location
...
from
...
which
...
the
...
code
...
is
...
derived.)
...
Original
...
W3C
...
files;
...
http://www.w3.org/2001/06/soap-envelope
...
Changes
...
made:
...
-
...
reverted
...
namespace
...
to
...
http://schemas.xmlsoap.org/soap/envelope/
...
...
-
...
reverted
...
mustUnderstand
...
to
...
only
...
allow
...
0
...
and
...
1
...
as
...
lexical
...
values
...
-
...
made
...
encodingStyle
...
a
...
global
...
attribute
...
20020825
...
-
...
removed
...
default
...
value
...
from
...
mustUnderstand
...
attribute
...
declaration
...
THIS
...
SOFTWARE
...
AND
...
DOCUMENTATION
...
IS
...
PROVIDED
...
"AS
...
IS,"
...
AND
...
COPYRIGHT
...
HOLDERS
...
MAKE
...
NO
...
REPRESENTATIONS
...
OR
...
WARRANTIES,
...
EXPRESS
...
OR
...
IMPLIED,
...
INCLUDING
...
BUT
...
NOT
...
LIMITED
...
TO,
...
WARRANTIES
...
OF
...
MERCHANTABILITY
...
OR
...
FITNESS
...
FOR
...
ANY
...
PARTICULAR
...
PURPOSE
...
OR
...
THAT
...
THE
...
USE
...
OF
...
THE
...
SOFTWARE
...
OR
...
DOCUMENTATION
...
WILL
...
NOT
...
INFRINGE
...
ANY
...
THIRD
...
PARTY
...
PATENTS,
...
COPYRIGHTS,
...
TRADEMARKS
...
OR
...
OTHER
...
RIGHTS.
...
COPYRIGHT
...
HOLDERS
...
WILL
...
NOT
...
BE
...
LIABLE
...
FOR
...
ANY
...
DIRECT,
...
INDIRECT,
...
SPECIAL
...
OR
...
CONSEQUENTIAL
...
DAMAGES
...
ARISING
...
OUT
...
OF
...
ANY
...
USE
...
OF
...
THE
...
SOFTWARE
...
OR
...
DOCUMENTATION.
...
The
...
name
...
and
...
trademarks
...
of
...
copyright
...
holders
...
may
...
NOT
...
be
...
used
...
in
...
advertising
...
or
...
publicity
...
pertaining
...
to
...
the
...
software
...
without
...
specific,
...
written
...
prior
...
permission.
...
Title
...
to
...
copyright
...
in
...
this
...
software
...
and
...
any
...
associated
...
documentation
...
will
...
at
...
all
...
times
...
remain
...
with
...
copyright
...
holders.--><xs:schema
...
xmlns:xs="http://www.w3.org/2001/XMLSchema"
...
xmlns:tns="http://schemas.xmlsoap.org/soap/envelope/"
...
targetNamespace="http://schemas.xmlsoap.org/soap/envelope/"
...
xmlns:import1="http://soap.service.acme.com">
...
<!--
...
Import
...
SOAP
...
Service
...
XMLSchema
...
EveryNumber
...
-->
...
<xs:import
...
namespace="http://soap.service.acme.com"
...
schemaLocation="everyNumber.xsd"/>
...
<!--
...
Envelope
...
-->
...
<xs:element
...
name="Envelope"
...
type="tns:Envelope"/>
...
<xs:complexType
...
name="Envelope">
...
<xs:sequence>
...
<xs:element
...
ref="tns:Header"
...
minOccurs="0"/>
...
<xs:element
...
ref="tns:Body"
...
minOccurs="1"/>
...
<xs:any
...
namespace="##other"
...
minOccurs="0"
...
maxOccurs="unbounded"
...
processContents="lax"/>
...
</xs:sequence>
...
<xs:anyAttribute
...
namespace="##other"
...
processContents="lax"/>
...
</xs:complexType>
...
<!--
...
Header
...
-->
...
<xs:element
...
name="Header"
...
type="tns:Header"/>
...
<xs:complexType
...
name="Header">
...
<xs:sequence>
...
<xs:any
...
namespace="##other"
...
minOccurs="0"
...
maxOccurs="unbounded"
...
processContents="lax"/>
...
</xs:sequence>
...
<xs:anyAttribute
...
namespace="##other"
...
processContents="lax"/>
...
</xs:complexType>
...
<!--
...
Body
...
-->
...
<xs:element
...
name="Body"
...
type="tns:Body"/>
...
<xs:complexType
...
name="Body">
...
<xs:sequence><!--
...
Accept
...
any
...
request,
...
response
...
or
...
fault
...
element
...
<xs:any
...
namespace="##any"
...
minOccurs="0"
...
maxOccurs="unbounded"
...
processContents="lax"/>-->
...
<xs:element
...
ref="import1:getNumber"
...
minOccurs="0"/>
...
<xs:element
...
ref="import1:getNumberResponse"
...
minOccurs="0"/>
...
<xs:element
...
ref="tns:Fault"
...
minOccurs="0"/>
...
</xs:sequence>
...
<xs:anyAttribute
...
namespace="##any"
...
processContents="lax"/>
...
</xs:complexType>
...
<!--
...
Global
...
Attributes
...
-->
...
<xs:attribute
...
name="mustUnderstand">
...
<xs:simpleType>
...
<xs:restriction
...
base="xs:boolean">
...
<xs:pattern
...
value="0|1"/>
...
</xs:restriction>
...
</xs:simpleType>
...
</xs:attribute>
...
<xs:attribute
...
name="actor"
...
type="xs:anyURI"/>
...
<xs:simpleType
...
name="encodingStyle">
...
<xs:list
...
itemType="xs:anyURI"/>
...
</xs:simpleType>
...
<xs:attribute
...
name="encodingStyle"
...
type="tns:encodingStyle"/>
...
<xs:attributeGroup
...
name="encodingStyle">
...
<xs:attribute
...
ref="tns:encodingStyle"/>
...
</xs:attributeGroup>
...
<!--
...
Fault
...
-->
...
<xs:element
...
name="Fault"
...
type="tns:Fault"/>
...
<xs:complexType
...
name="Fault"
...
final="extension">
...
<xs:sequence>
...
<xs:element
...
name="faultcode"
...
type="xs:QName"/>
...
<xs:element
...
name="faultstring"
...
type="xs:string"/>
...
<xs:element
...
name="faultactor"
...
type="xs:anyURI"
...
minOccurs="0"/>
...
<xs:element
...
name="detail"
...
type="tns:detail"
...
minOccurs="0"/>
...
</xs:sequence>
...
</xs:complexType>
...
<!--
...
Fault
...
detail
...
-->
...
<xs:complexType
...
name="detail">
...
<xs:sequence>
...
<xs:any
...
namespace="##any"
...
minOccurs="0"
...
maxOccurs="unbounded"
...
processContents="lax"/>
...
</xs:sequence>
...
<xs:anyAttribute
...
namespace="##any"
...
processContents="lax"/>
...
</xs:complexType></xs:schema>
Example
...
SOAP
...
Service
...
XMLSchema
<?xml
...
version="1.0"
...
encoding="utf-8"?>
<xs:schema
...
xmlns:xs="http://www.w3.org/2001/XMLSchema"
...
xmlns:tns="http://soap.service.acme.com"
...
targetNamespace="http://soap.service.acme.com">
...
<xs:element
...
name="getNumber">
...
<xs:complexType>
...
<xs:sequence>
...
<xs:element
...
name="param1"
...
type="tns:EveryNumber"/>
...
</xs:sequence>
...
</xs:complexType>
...
</xs:element>
...
<xs:element
...
name="getNumberResponse">
...
<xs:complexType>
...
<xs:sequence>
...
<xs:element
...
name="getNumberReturn"
...
type="tns:EveryNumber"/>
...
</xs:sequence>
...
</xs:complexType>
...
</xs:element>
...
...
<xs:complexType
...
name="EveryNumber">
...
<xs:sequence>
...
<xs:element
...
name="n_double"
...
type="xs:double"/>
...
<xs:element
...
name="n_float"
...
type="xs:float"/>
...
<xs:element
...
name="n_int"
...
type="xs:int"/>
...
<xs:element
...
name="n_long"
...
type="xs:long"/>
...
</xs:sequence>
...
</xs:complexType>
</xs:schema>
Example
...
XMLSchema
...
SimpleTypes
<xs:simpleType
...
name="type-pattern">
...
<xs:restriction
...
base="xs:string">
...
<xs:pattern
...
value="[2-5][0-9]"/>
...
</xs:restriction></xs:simpleType>
<xs:simpleType
...
name="type-enumeration">
...
<xs:restriction
...
base="xs:string">
...
<xs:enumeration
...
value="A"/>
...
<xs:enumeration
...
value="B"/>
...
<xs:enumeration
...
value="C"/>
...
</xs:restriction></xs:simpleType>
<xs:simpleType
...
name="type-enumeration2">
...
<xs:restriction
...
base="xs:int">
...
<xs:enumeration
...
value="12"/>
...
<xs:enumeration
...
value="22"/>
...
<xs:enumeration
...
value="32"/>
...
</xs:restriction></xs:simpleType>
<xs:simpleType
...
name="one-hundred-or-more">
...
<xs:restriction
...
base="xs:int">
...
<xs:minInclusive
...
value="100"/>
...
</xs:restriction></xs:simpleType>
<xs:simpleType
...
name="one-hundred-or-less">
...
<xs:restriction
...
base="xs:int">
...
<xs:maxInclusive
...
value="100"/>
...
</xs:restriction></xs:simpleType>
<xs:simpleType
...
name="amount">
...
<xs:restriction
...
base="xs:decimal">
...
<xs:totalDigits
...
value="4"/>
...
<xs:fractionDigits
...
value="1"/>
...
<xs:minInclusive
...
value="22.0"/>
...
<xs:maxInclusive
...
value="80.5"/>
...
</xs:restriction></xs:simpleType>
<xs:simpleType
...
name="TimePeriod">
...
<xs:restriction
...
base="xs:string">
...
<xs:pattern
...
value="Days|Weeks|Months|Years"/>
...
</xs:restriction></xs:simpleType>