Package.CreateRelationship 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
创建与给定的部件的包级别关系。
重载
CreateRelationship(Uri, TargetMode, String) |
使用给定的 URI、目标模式和关系类型创建与部件的包级别关系。 |
CreateRelationship(Uri, TargetMode, String, String) |
创建与具有给定 URI、目标模式、关系类型和标识符的部件的包级关系, (ID) 。 |
示例
下面的示例演示如何在 和根文档部件之间Package创建 PackageRelationship 。
// Add the Document part to the Package
PackagePart packagePartDocument =
package.CreatePart(partUriDocument,
System.Net.Mime.MediaTypeNames.Text.Xml);
// Copy the data to the Document Part
using (FileStream fileStream = new FileStream(
documentPath, FileMode.Open, FileAccess.Read))
{
CopyStream(fileStream, packagePartDocument.GetStream());
}// end:using(fileStream) - Close and dispose fileStream.
// Add a Package Relationship to the Document Part
package.CreateRelationship(packagePartDocument.Uri,
TargetMode.Internal,
PackageRelationshipType);
' Add the Document part to the Package
Dim packagePartDocument As PackagePart = package.CreatePart(partUriDocument, System.Net.Mime.MediaTypeNames.Text.Xml)
' Copy the data to the Document Part
Using fileStream As New FileStream(documentPath, FileMode.Open, FileAccess.Read)
CopyStream(fileStream, packagePartDocument.GetStream())
End Using ' end:using(fileStream) - Close and dispose fileStream.
' Add a Package Relationship to the Document Part
package.CreateRelationship(packagePartDocument.Uri, TargetMode.Internal, PackageRelationshipType)
注解
包级关系定义包与关联的目标部件或资源之间的关联。 包级关系可以是两种形式之一。
- Package在 包中的 和目标PackagePart之间。
- Package在 到包外部的目标资源之间。
在包关系中,包被视为关系的“所有者”。 删除包时,包拥有的所有关系也会被删除。 创建或删除关系的过程不会以任何方式以物理方式改变目标部件或资源。
有关其他信息,请参阅开放打包约定 (OPC) 规范,可从 https://www.ecma-international.org/publications-and-standards/standards/ecma-376/下载。
CreateRelationship(Uri, TargetMode, String)
- Source:
- Package.cs
- Source:
- Package.cs
- Source:
- Package.cs
- Source:
- Package.cs
使用给定的 URI、目标模式和关系类型创建与部件的包级别关系。
public:
System::IO::Packaging::PackageRelationship ^ CreateRelationship(Uri ^ targetUri, System::IO::Packaging::TargetMode targetMode, System::String ^ relationshipType);
public System.IO.Packaging.PackageRelationship CreateRelationship (Uri targetUri, System.IO.Packaging.TargetMode targetMode, string relationshipType);
member this.CreateRelationship : Uri * System.IO.Packaging.TargetMode * string -> System.IO.Packaging.PackageRelationship
Public Function CreateRelationship (targetUri As Uri, targetMode As TargetMode, relationshipType As String) As PackageRelationship
参数
- targetUri
- Uri
目标部件的统一资源标识符 (URI)。
- targetMode
- TargetMode
- relationshipType
- String
唯一定义关系的角色的 URI。
返回
与指定部件的包级别关系。
例外
targetUri
或 relationshipType
为 null
。
targetUri
部件为 PackageRelationship,或 targetMode
为 Internal,而 targetUri
为绝对 URI。
targetMode
的值无效。
包未打开(已调用了 Dispose(Boolean) 或 Close())。
包为只读。
示例
下面的示例演示如何使用 CreateRelationship 在 和根文档部件之间Package创建 PackageRelationship 。
// Add the Document part to the Package
PackagePart packagePartDocument =
package.CreatePart(partUriDocument,
System.Net.Mime.MediaTypeNames.Text.Xml);
// Copy the data to the Document Part
using (FileStream fileStream = new FileStream(
documentPath, FileMode.Open, FileAccess.Read))
{
CopyStream(fileStream, packagePartDocument.GetStream());
}// end:using(fileStream) - Close and dispose fileStream.
// Add a Package Relationship to the Document Part
package.CreateRelationship(packagePartDocument.Uri,
TargetMode.Internal,
PackageRelationshipType);
' Add the Document part to the Package
Dim packagePartDocument As PackagePart = package.CreatePart(partUriDocument, System.Net.Mime.MediaTypeNames.Text.Xml)
' Copy the data to the Document Part
Using fileStream As New FileStream(documentPath, FileMode.Open, FileAccess.Read)
CopyStream(fileStream, packagePartDocument.GetStream())
End Using ' end:using(fileStream) - Close and dispose fileStream.
' Add a Package Relationship to the Document Part
package.CreateRelationship(packagePartDocument.Uri, TargetMode.Internal, PackageRelationshipType)
注解
包级关系定义包与关联的目标部件或资源之间的关联。 包级关系可以是两种形式之一。
在包关系中,包被视为关系的“所有者”。 删除包时,包拥有的所有关系也会被删除。
CreateRelationship 不会以任何方式以物理方式更改目标部件或资源。
关系的目标不能是另一个关系。
如果 targetMode
指定为 Internal, targetUri
则必须是根据 RFC 3986 统一资源标识符 (URI) 泛型语法规范构成的相对 URI。 内部相对 URI 可以是以正斜杠 (“/”) 字符(如“/page1.xaml”或“/images/picture4.jpg”)开头的绝对路径,也可以是相对路径,如“.”。/imagespicture1.jpg“,针对包根 (”/“) 作为基 URI 进行解析。
如果 targetMode
指定为 External, targetUri
可以是根据 RFC 3986 统一资源标识符 (URI) 泛型语法规范形成的绝对 URI 或相对 URI。
http://www.microsoft.com/page2.xml
是引用外部目标资源“page2.xml”的绝对 URI 的示例。 “images/picture1.jpg”是相对 URI 的一个示例,该 URI 也引用外部目标资源“1.jpg”,但它根据包本身的 URI 进行解析。
relationshipType
必须是根据 RFC 3986 统一资源标识符 (URI) 泛型语法规范构成的 URI。 下表显示了开放打包约定 (OPC) 规范定义的包级 relationshipType
URI。
包级关系 | 关系类型 URI |
---|---|
核心属性 | http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties |
数字签名 | http://schemas.openxmlformats.org/package/2006/relationships/digital-signature/signature |
数字签名证书 | http://schemas.openxmlformats.org/package/2006/relationships/digital-signature/certificate |
数字签名源 | http://schemas.openxmlformats.org/package/2006/relationships/digital-signature/origin |
缩略图 | http://schemas.openxmlformats.org/package/2006/relationships/metadata/thumbnail |
有关打包和包关系的详细信息,请参阅开放打包约定 (OPC) 规范的第 1.3 部分,可在 下载 https://www.ecma-international.org/publications-and-standards/standards/ecma-376/。
另请参阅
- DeleteRelationship(String)
- GetRelationship(String)
- GetRelationships()
- GetRelationshipsByType(String)
- RelationshipExists(String)
适用于
CreateRelationship(Uri, TargetMode, String, String)
- Source:
- Package.cs
- Source:
- Package.cs
- Source:
- Package.cs
- Source:
- Package.cs
创建与具有给定 URI、目标模式、关系类型和标识符的部件的包级关系, (ID) 。
public:
System::IO::Packaging::PackageRelationship ^ CreateRelationship(Uri ^ targetUri, System::IO::Packaging::TargetMode targetMode, System::String ^ relationshipType, System::String ^ id);
public System.IO.Packaging.PackageRelationship CreateRelationship (Uri targetUri, System.IO.Packaging.TargetMode targetMode, string relationshipType, string? id);
public System.IO.Packaging.PackageRelationship CreateRelationship (Uri targetUri, System.IO.Packaging.TargetMode targetMode, string relationshipType, string id);
member this.CreateRelationship : Uri * System.IO.Packaging.TargetMode * string * string -> System.IO.Packaging.PackageRelationship
Public Function CreateRelationship (targetUri As Uri, targetMode As TargetMode, relationshipType As String, id As String) As PackageRelationship
参数
- targetUri
- Uri
目标部件的统一资源标识符 (URI)。
- targetMode
- TargetMode
- relationshipType
- String
唯一定义关系的角色的 URI。
- id
- String
唯一 XML 标识符。
返回
与指定部件的包级别关系。
例外
targetUri
或 relationshipType
为 null
。
targetUri
部件为 PackageRelationship,或 targetMode
为 Internal,而 targetUri
为绝对 URI。
targetMode
的值无效。
包未打开(已调用了 Dispose(Boolean) 或 Close())。
包为只读。
id
不是有效的 XML 标识符;或者包中已存在具有指定的 id
的部件。
示例
下面的示例演示如何使用 CreateRelationship 在 和根文档部件之间Package创建 PackageRelationship 。
// Add the Document part to the Package
PackagePart packagePartDocument =
package.CreatePart(partUriDocument,
System.Net.Mime.MediaTypeNames.Text.Xml);
// Copy the data to the Document Part
using (FileStream fileStream = new FileStream(
documentPath, FileMode.Open, FileAccess.Read))
{
CopyStream(fileStream, packagePartDocument.GetStream());
}// end:using(fileStream) - Close and dispose fileStream.
// Add a Package Relationship to the Document Part
package.CreateRelationship(packagePartDocument.Uri,
TargetMode.Internal,
PackageRelationshipType);
' Add the Document part to the Package
Dim packagePartDocument As PackagePart = package.CreatePart(partUriDocument, System.Net.Mime.MediaTypeNames.Text.Xml)
' Copy the data to the Document Part
Using fileStream As New FileStream(documentPath, FileMode.Open, FileAccess.Read)
CopyStream(fileStream, packagePartDocument.GetStream())
End Using ' end:using(fileStream) - Close and dispose fileStream.
' Add a Package Relationship to the Document Part
package.CreateRelationship(packagePartDocument.Uri, TargetMode.Internal, PackageRelationshipType)
注解
包级关系定义包与关联的目标部件或资源之间的关联。 包级关系可以是两种形式之一。
在包关系中,包被视为关系的“所有者”。 删除包时,包拥有的所有关系也会被删除。
CreateRelationship 不会以任何方式以物理方式更改目标部件或资源。
关系的目标不能是另一个关系。
id
必须是有效的 XML 标识符。 类型 id
为 xsd:ID,必须遵循 XML 架构第 2 部分:数据类型规范中指定的命名约定, (请参阅 https://www.w3.org/TR/xmlschema-2/#ID) 。
如果 id
指定为 null
,将自动生成唯一 ID。
id
由空字符串指定的 无效。
如果 targetMode
指定为 Internal, targetUri
则必须是根据 RFC 3986 统一资源标识符 (URI) 泛型语法规范构成的相对 URI。 内部相对 URI 可以是以正斜杠 (“/”) 字符(如“/page1.xaml”或“/images/picture4.jpg”)开头的绝对路径,也可以是相对路径,如“.”。/imagespicture1.jpg“,针对包根 (”/“) 作为基 URI 进行解析。
如果 targetMode
指定为 External, targetUri
可以是根据 RFC 3986 统一资源标识符 (URI) 泛型语法规范形成的绝对 URI 或相对 URI。
http://www.microsoft.com/page2.xml
是引用外部目标资源“page2.xml”的绝对 URI 的示例。 “images/picture1.jpg”是相对 URI 的一个示例,该 URI 也引用外部目标资源“1.jpg”,但它根据包本身的 URI 进行解析。
relationshipType
必须是根据 RFC 3986 统一资源标识符 (URI) 泛型语法规范构成的 URI。 下表显示了开放打包约定 (OPC) 规范定义的包级 relationshipType
URI。
包级关系 | 关系类型 URI |
---|---|
核心属性 | http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties |
数字签名 | http://schemas.openxmlformats.org/package/2006/relationships/digital-signature/signature |
数字签名证书 | http://schemas.openxmlformats.org/package/2006/relationships/digital-signature/certificate |
数字签名源 | http://schemas.openxmlformats.org/package/2006/relationships/digital-signature/origin |
缩略图 | http://schemas.openxmlformats.org/package/2006/relationships/metadata/thumbnail |
有关打包和包关系的其他信息,请参阅开放打包约定 (OPC) 规范的第 1.3 部分,可在 下载 https://www.ecma-international.org/publications-and-standards/standards/ecma-376/。
另请参阅
- CreateRelationship(Uri, TargetMode, String)
- DeleteRelationship(String)
- GetRelationship(String)
- GetRelationships()
- GetRelationshipsByType(String)
- RelationshipExists(String)