メソッドの構文

最終更新日: 2015年3月9日

適用対象: SharePoint Foundation 2010

この記事の内容
URL にメソッドを埋め込む
CAML バッチ機能を使用して複数の要求を送信する
Microsoft FrontPage Server Extensions の POST コマンドの構文
POST コマンドの形式
POST コマンドへの応答の形式

メソッドに関する次の各トピックには、メソッドの一般的な呼び出しの形式を説明する構文セクションがあります。ポスト時のメソッドの形式については、このトピックの「POST コマンドの形式」を参照してください。

Microsoft SharePoint Foundation のリモート プロシージャ コール (RPC) プロトコルを使用してコマンドをポストする方法は 2 つあります。URL に単一のコマンドを埋め込むことでポストするか、Collaborative Application Markup Language (CAML) のバッチ機能を利用して、トランザクションごとに複数の要求を送信します。

URL にメソッドを埋め込む

URL に要求を埋め込むことで、SharePoint Foundation を実行しているサーバーに対してメソッドおよび必要なパラメーターを発行することができます。構文は次のとおりです。

http://[site_name]/_vti_bin/owssvr.dll?Cmd=Method_name[&Parameter1=Value1&Parameter2=Value2...]

詳細については、「URL プロトコル」を参照してください。

CAML バッチ機能を使用して複数の要求を送信する

1 回の POST でコマンドを 1 つずつ発行する場合、サーバーへのコストの高いラウンド トリップを数多く行う必要があります。ラウンド トリップの数を減らすには、CAML の Batch 要素を使用して、1 回の HTTP 要求で複数のコマンドを発行します。すべての要求にトップレベルの DisplayPost コマンドを含める必要があります。SharePoint Foundation に対するメソッド要求の POST URL で共通して使用される構文は次のとおりです。

POST /[Path]/[Subsite]/_vti_bin/owssvr.dll?Cmd=DisplayPost

注意

プロキシを経由せずに要求を発行する場合、リソースのサーバーの相対 URL に直接ポストする必要があります。ホスト名は、サーバーの相対 URL に含まれません。

SharePoint Foundation で複数の要求を発行するときの構文は次のとおりです。

POST /[Path/][Subweb/]_vti_bin/_vti_aut/owssvr.dll?Cmd=DisplayPost
<?xml version="1.0" encoding="UTF-8"?>
<ows:Batch OnError="Return">
  <Method ID="String">
    <SetVar Name="Cmd">Method1_name</SetVar>
    <SetVar Name="Parameter1">Value1</SetVar>
      .
      .
      .
    <SetVar Name="ParameterN">ValueN</SetVar>
  </Method>
  <Method ID="String">
    <SetVar Name="Cmd">Method2_name</SetVar>
    <SetVar Name="Parameter1">Value1</SetVar>
      .
      .
      .
    <SetVar Name="ParameterN">ValueN</SetVar>
  </Method>
      .
      .
      .
  <Method ID="String">
    <SetVar Name="Cmd">MethodN_name</SetVar>
    <SetVar Name="Parameter1">Value1</SetVar>
      .
      .
      .
    <SetVar Name="ParameterN">ValueN</SetVar>
  </Method>
</ows:Batch>

次の例では、Batch 要素を使用して Meeting Topics と Volunteers という 2 つのカスタム リストを作成しています。

POST /STSServer1/_vti_bin/_vti_aut/owssvr.dll?Cmd=DisplayPost

<?xml version="1.0" encoding="UTF-8"?>
<ows:Batch OnError="Return"> 
  <Method ID="0,NewList"> 
    <SetVar Name="Cmd">NewList</SetVar> 
    <SetVar Name="ListTemplate">100</SetVar> 
    <SetVar Name="Title">Meeting Topics</SetVar> 
  </Method>
  <Method ID="1,NewList"> 
    <SetVar Name="Cmd">NewList</SetVar> 
    <SetVar Name="ListTemplate">100</SetVar> 
    <SetVar Name="Title">Volunteers</SetVar> 
  </Method> 
</ows:Batch>

Microsoft FrontPage Server Extensions の POST コマンドの構文

各メソッドには、メソッド名の後にコロン (:) とスペースが続きます。次に、FrontPage Server Extensions のバージョンの server_extension_version、さらにメソッドのパラメーター名が続きます。各パラメーター名の先頭の文字はアンパサンド (&) とし、スペースを挟まずにパラメーター名の直後に等号 (=) を記述します。等号の直後に、パラメーターの値を記述します。以下に例を示します。

&service_name=/fodo4

パラメーター値については次の表記規則が使用されています。

フォント/コード

意味

斜体

変数

service_name

山かっこ (< >)

省略可能な内容

<platform=os>

書式なしテキスト

リテラル

メソッド

分離記号 (|)

同等の選択肢を区分します。

(true | false)

パラメーターの詳細については、特定メソッドの参照ページにある「パラメータ」セクションを参照してください。

FrontPage Server Extensions に対して使用される RPC プロトコルの POST コマンドは、ほとんどの場合次のような形式になります。

POST /directory_name/_vti_bin/_vti_aut/program_name.dll.
HTTP/1.0..Date:.Thu,.03.Dec.1998.19:09:16.GMT..

前の例では、directory_name が Web サイトのルート ディレクトリの名前で、program_name が POST コマンドの送信先の FrontPage Server Extensions 内のプログラムの名前です。

日付文字列の後には、次のような HTTP ヘッダー行が続きます。

MIME-Version:.1.0..User-Agent:.client_name/version..
Host:.host_name..Accept:.auth/sicily..
Authorization:.Basic.cm9iZjpUS3NvKjUw.
Content-Length:.64..
Content-Type:.application/x-www-form-urlencoded
X-Vermeer-Content-Type:.application/x-www-form-urlencoded
.
.
.

この行により、POST コマンドを扱うクライアント アプリケーション、POST コマンドの長さと種類、さらにセキュリティ情報が指定されます。この例のように、X-Vermeer-Content-Type ヘッダーを指定する必要があります。サード パーティ開発者が RPC メソッドを使用して SharePoint Foundation と対話するアプリケーションを作成する際には、このヘッダーを POST に含める必要があります。このヘッダーを含めなければ、RPC 処理は失敗します。

POST コマンドの最後の部分には、メソッドと選択したパラメーター、およびその値が含まれます。以下に例を示します。

method=open+service%3a4%2e0%2e1%2e2207&service%5fname=%2fallnew.

POST コマンドの形式

POST コマンドの最初の行には、POST コマンドおよび使用する HTTP バージョンを記述します。POST コマンドの後に、HTTP ヘッダーがいくつか続きます。これには標準 HTTP ヘッダーと FrontPage Server Extensions 独自の HTTP ヘッダーが含まれます。一般的な POST コマンドの例を次に示します。

POST /allnew/_vti_bin/_vti_aut/author.dll HTTP/1.0CRLF
Date: Thu, 03 Dec 1998 19:09:16 GMTCRLF
MIME-Version: 1.0CRLF
User-Agent: MSFrontPage/4.0CRLF
Host: seattleCRLF
Accept: auth/sicilyCRLF
Authorization: Basic cm9iZjpUS3NvKjUwCRLF
Content-Length: 343CRLF
Content-Type: application/x-www-form-urlencodedCRLF
X-Vermeer-Content-Type: application/x-www-form-urlencodedCRLF
CRLF
method=list+documents%3a4%2e0%2e1%2e2207&service%5fname=%2fallnew
&listHiddenDocs=false&listExplorerDocs=false&listRecurse=false&listFiles=true
&listFolders=true&listLinkInfo=true&listIncludeParent=true&listDerived=false
&listBorders=false&listChildWebs=true&initialUrl=&platform=WinI386
&folderList=%5b%3bTW%7c09+Nov+1998+17%3a03%3a25+%2d0000%5dLF

ヘッダー行と POST コマンド行の末尾はすべて改行コード (CRLF) であることが必要です。HTTP プロトコルに従って、CRLF のバイト シーケンスは 0x0d、0x0a とします。

注意

POST コマンドと HTTP ヘッダーの詳細については、World Wide Web Consortium の Web ページで HTTP 1.0 仕様を参照してください。RPC プロトコルではこの仕様が使用されます。

ヘッダーの後に CRLF を追加し、さらにその後に FrontPage Server Extensions に送信される RPC プロトコル メソッドを記述します。メソッド内ではスペースをプラス記号 (+) で表します。メソッド内のアルファベット以外の文字は、%XX エンコードを使用して表します (たとえば、バックスラッシュは %5c と表されます)。メソッド データの末尾に改行 (LF) を追加します。

POST コマンドへの応答の形式

クライアント アプリケーションが POST コマンドを使用して FrontPage Server Extensions にメソッドを送信すると、FrontPage Server Extensions は標準の HTTP OK を返し、メソッドを受け取ったことを通知します。メソッドに応答して、FrontPage Server Extensions はクライアント アプリケーションに HTML エンコードのページを送信します。次に、一般的な応答の例を示します。

Content-type: application/x-vermeer-rpc..X-FrontPage-User-Name:
usernameCRLF
CRLF
<html><head><title>vermeer.RPC 
packet</title></head>LF<body>.
LF<p>method=list documents: 
6.0.x.xxxxLF<p>document_list=
LF<ul>
LF<ul>LF<li>document_name=Default.htm
LF<li>meta_info=
LF<ul>
LF<li>vti_author
LF<li>SR|author
LF<li>vti_title
LF<li>SW|Home Page
LF<li>vti_timecreated
LF<li>TR|10 Sep 1998 10:07:54 -0700
LF<li>vti_filesize
LF<li>IX|277
LF<li>vti_modifiedby
LF<li>SR|author
LF<li>vti_nexttolasttimemodified
LF<li>TR|10 Sep 1998 10:07:54 -0700
LF<li>vti_timelastmodified
LF<li>TR|10 Sep 1998 10:07:55 -0700
LF<li>vti_timelastwritten
LF<li>TX|10 Sep 1998 10:07:56 -0700
LF</ul>
LF</ul>
LF<ul>
LF<li>document_name=new1.htm
LF<li>meta_info=
LF<ul>
LF<li>vti_author
LF<li>SR|IUSR_author
. 
. 
.
</body>
</html>

応答には 3 つの種類があります。1 つ目は、メソッドの成功または失敗に関するメッセージだけを含む HTML ページです。2 つ目は、メソッドのオブジェクトに関するメタ情報のみを含む HTML ページです。3 つ目は、メッセージとメタ情報の両方を含む応答です。

どの種類の応答でも、先頭に Content_type ヘッダーが付きます。後に続く HTML ページでは、<p>、<li>、<ul>、</ul> の各 HTML タグの前に改行 (LF) が挿入されていることが必要です。

応答の記述方法の詳細については、「戻り値」を参照してください。