次の方法で共有


外部アプリケーションの XML マークアップを作成する

最終更新日: 2010年10月25日

適用対象: SharePoint Foundation 2010

この記事では、Silverlight アプリケーションのデータ アクセスの管理と、アプリケーションをホストする Web パーツのレンダリングができるように、外部アプリケーション XML を使用して Silverlight アプリケーションを SharePoint Foundation に記述する方法について説明します。

概要

外部アプリケーション XML は、Web パーツ内でホストされる Silverlight アプリケーションに関する情報を SharePoint Foundation に提供するマークアップです。このマークアップは、Silverlight アプリケーションが別のドメインでホストされ、SharePoint Web サイトのデータにアクセスする場合にのみ必要です。また、SharePoint 外部アプリケーション プロバイダー (EAP) を使用する場合に使用できます (ただし、必須ではありません)。マークアップには次の 3 つの情報のカテゴリがあります。

  • Silverlight アプリケーションに関する情報を特定し、SharePoint Web サイトからデータを取得するために使用するユーザー名を特定する情報。

  • 外部アプリケーションをホストする Web パーツに関する情報。

  • アプリケーションに登録するためにカスタム EAP によって使用されるユーザー設定情報。

マークアップを Web パーツに割り当てる方法は複数あります。

  • マークアップは、Web パーツをページに追加するときに、SharePoint Foundation UI で Web パーツに割り当てることができます。この方法を Silverlight Web パーツ ソリューションで使用する場合、マークアップをファイルとしてユーザーに提供する必要があり、そのファイルに、UI を使用してマークアップを挿入する方法 (ローカルでの修正で使用する場合がある) を含める必要があります。

  • マークアップは、機能定義 (elements.xml) またはサイト定義 (onet.xml) のモジュールの Web パーツ マークアップ内で、Application XML プロパティとして指定することもできます。

  • ApplicationXml プロパティは、たとえば、FeatureInstalled(SPFeatureReceiverProperties) イベントや FeatureActivated(SPFeatureReceiverProperties) イベントで、プログラムを使用して設定することもできます。

外部アプリケーション XML の例

次に、外部アプリケーション XML マークアップの例を示します。要素と属性の詳細については、「外部アプリケーション XML」を参照してください。この例ではエンコードに UTF-16 を使用していますが、任意の種類のエンコードを使用できます。<customProperties> 要素の子を、XML マークアップにすることができます。カスタム プロパティを使用する場合、カスタム EAP を作成して、そのカスタム プロパティの読み取りと処理を行う必要があります。

<?xml version='1.0' encoding='utf-16'?>
<applicationParts xmlns='https://schemas.microsoft.com/sharepoint/2009/fluidapp'>
  <applicationPart>
    <metaData>
      <applicationId>00000000-0000-0000-0000-000000000000</applicationId>
      <applicationUrl>https://www.contoso.com/someapplication.xap</applicationUrl>
      <principal>domain\username</principal>
      <sharepointRequestHandlerUrl>/sp.ashx</sharepointRequestHandlerUrl>
    </metaData>
    <data>
      <webPartProperties>
        <property name='Title'>Title</property>
        <property name='Description'>Description</property>
        <property name='WindowlessMode'>TRUE</property>
        <property name='Height'>200px</property>
        <property name='Width'>100px</property>
        <property name='HelpUrl'>https://www.contoso.com/someapplication/help.aspx</property>
        <property name='HelpMode'>Modal</property>
        <property name='Direction'>NotSet</property>
        <property name='MinRuntimeVersion'>3.0</property>
      </webPartProperties>
      <customProperties>
        <property name='CustomPropertyName'>CustomPropertyInfo </property>
      </customProperties>
    </data>
  </applicationPart>
</applicationParts>

次に、elements.xml ファイルまたは onet.xml ファイルの <AllUsersWebPart> 要素内にある外部アプリケーション XML の例を示します。

<AllUsersWebPart WebPartZoneID="Top_Right" WebPartOrder="2">
<![CDATA[
<webParts>
  <webPart xmlns="https://schemas.microsoft.com/WebPart/v3">
    <metaData>
      <type name="Microsoft.SharePoint.WebPartPages.SilverlightWebPart, Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" />
      <importErrorMessage>Cannot import this Web Part.</importErrorMessage>
    </metaData>
    <data>
      <properties>
        <property name="ChromeType" type="chrometype">Default</property>
        <property name="Height" type="unit">600px</property>
        <property name="Url" type="string" />
        <property name="HelpMode" type="helpmode">Navigate</property>
        <property name="ApplicationXml" type="string">&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;applicationParts xmlns="https://schemas.microsoft.com/sharepoint/2009/fluidapp"&gt;
  &lt;applicationPart&gt;
    &lt;metaData&gt;
      &lt;applicationId&gt;00000000-0000-0000-0000-000000000000&lt;/applicationId&gt;
      &lt;applicationUrl&gt;https://server/ClientBin/SomeApplication.xap&lt;/applicationUrl&gt;
      &lt;principal&gt;domain\ContosoApp&lt;/principal&gt;
      &lt;sharepointRequestHandlerUrl&gt;/ReqForwarder.ashx&lt;/sharepointRequestHandlerUrl&gt;
    &lt;/metaData&gt;
  &lt;/applicationPart&gt;
&lt;/applicationParts&gt;</property>
        <property name="Hidden" type="bool">False</property>
        <property name="Title" type="string" />
      </properties>
    </data>
  </webPart>
</webParts>
]]>
</AllUsersWebPart>