如何:创建外部应用程序 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"><?xml version="1.0" encoding="utf-8"?>
<applicationParts xmlns="https://schemas.microsoft.com/sharepoint/2009/fluidapp">
<applicationPart>
<metaData>
<applicationId>00000000-0000-0000-0000-000000000000</applicationId>
<applicationUrl>https://server/ClientBin/SomeApplication.xap</applicationUrl>
<principal>domain\ContosoApp</principal>
<sharepointRequestHandlerUrl>/ReqForwarder.ashx</sharepointRequestHandlerUrl>
</metaData>
</applicationPart>
</applicationParts></property>
<property name="Hidden" type="bool">False</property>
<property name="Title" type="string" />
</properties>
</data>
</webPart>
</webParts>
]]>
</AllUsersWebPart>