如何:创建外部应用程序 XML 标记

上次修改时间: 2010年10月25日

适用范围: SharePoint Foundation 2010

本文介绍如何使用外部应用程序 XML 向 SharePoint Foundation 描述您的 Silverlight 应用程序,以便它能够管理该应用程序的数据访问,并呈现承载该应用程序的 Web 部件。

概述

外部应用程序 XML 是一个标记,可为 SharePoint Foundation 提供有关 Web 部件中承载的 Silverlight 应用程序的信息。仅当 Silverlight 应用程序承载在其他域中且访问 SharePoint 网站数据时,才需要此标记。还可在使用 SharePoint 外部应用程序提供程序 (EAP) 时使用此标记(尽管并不需要它)。此标记提供三个类别的信息:

  • 有关 Silverlight 应用程序以及它用于从 SharePoint 网站获取数据的用户名称的标识信息。

  • 有关承载外部应用程序的 Web 部件的信息。

  • 自定义 EAP 可用于注册应用程序的自定义信息。

可采用以下多种方式向 Web 部件分配标记:

  • 在向页面中添加 Web 部件时,可以在 SharePoint Foundation UI 中向该 Web 部件分配标记。如果您的 Silverlight Web 部件解决方案使用此方法,则需要使用此 UI 以文件形式为用户提供此标记,该文件中需附加有关如何插入标记的说明,可能还需要附加本地修改内容。

  • 还可以在功能定义 (elements.xml) 或网站定义 (onet.xml) 中,将标记指定为模块的 Web 部件标记中的应用程序 XML 属性。

  • 最后,您可以在 FeatureInstalled(SPFeatureReceiverProperties)FeatureActivated(SPFeatureReceiverProperties) 等事件中以编程方式设置 ApplicationXml 属性。

外部应用程序 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>

下面是一个外部应用程序 XML 示例,该外部应用程序 XML 位于 elements.xml 或 onet.xml 文件中的 <AllUsersWebPart> 元素内。

<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>