Package.CreateRelationship メソッド

定義

指定したパーツへのパッケージ レベル リレーションシップを作成します。

オーバーロード

CreateRelationship(Uri, TargetMode, String)

指定した URI、ターゲット モード、およびリレーションシップ型を使用して、パーツへのパッケージ レベル リレーションシップを作成します。

CreateRelationship(Uri, TargetMode, String, String)

特定の URI、ターゲット モード、リレーションシップの種類、識別子 (ID) を持つパーツへのパッケージ レベルのリレーションシップを作成します。

次の例は、a とルートのドキュメント パーツの間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)

注釈

パッケージ レベルのリレーションシップは、パッケージと関連付けられているターゲット パーツまたはリソースとの間の関連付けを定義します。 パッケージ レベルのリレーションシップには、2 つの形式のいずれかを指定できます。

  • Packageパッケージ内のターゲットPackagePart間。

  • Packageパッケージの外部にあるターゲット リソース間。

パッケージリレーションシップでは、パッケージはリレーションシップの "所有者" と見なされます。 パッケージが削除されると、パッケージによって所有されているすべてのリレーションシップも削除されます。 リレーションシップを作成または削除するプロセスでは、ターゲットパーツまたはリソースが物理的に変更されることはありません。

詳細については、「Open Packaging Conventions (OPC) 仕様(ダウンロード https://www.ecma-international.org/publications-and-standards/standards/ecma-376/可能)」を参照してください。

CreateRelationship(Uri, TargetMode, String)

指定した 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

ターゲット パーツの Uniform Resource Identifier (URI)。

targetMode
TargetMode

ターゲット パーツが、パッケージに対して InternalExternal のいずれであるかを示します。

relationshipType
String

リレーションシップのロールを一意に定義する URI。

戻り値

PackageRelationship

指定したパーツへのパッケージ レベル リレーションシップ。

例外

targetUri または relationshipTypenull です。

targetUri パーツが PackageRelationship です。または targetModeInternal で、targetUri が絶対 URI です。

targetMode の値が有効ではありません。

パッケージが開いていません (Dispose(Boolean) または Close() が呼び出されました)。

パッケージは読み取り専用です。

次の例は、a とルート ドキュメント パーツの間PackagePackageRelationship作成に使用CreateRelationshipする方法を示しています。 完全なサンプルについては、「 パッケージ サンプルの記述」を参照してください。

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

注釈

パッケージ レベルのリレーションシップは、パッケージと関連付けられているターゲット パーツまたはリソースとの間の関連付けを定義します。 パッケージ レベルのリレーションシップには、2 つの形式のいずれかを指定できます。

  • Packageパッケージ内のターゲット パーツ間。

  • Packageパッケージの外部にあるターゲット リソース間。

パッケージリレーションシップでは、パッケージはリレーションシップの "所有者" と見なされます。 パッケージが削除されると、パッケージによって所有されているすべてのリレーションシップも削除されます。

CreateRelationship は、ターゲット部分またはリソースを物理的に変更しません。

リレーションシップのターゲットを別のリレーションシップにすることはできません。

としてInternal指定する場合targetModeは、 targetUri RFC 3986 Uniform Resource Identifier (URI) ジェネリック構文仕様に従って形成された相対 URI である必要があります。 内部相対 URI には、"/page1.xaml" や "/images/picture4.jpg" などのスラッシュ ("/") 文字で始まる絶対パス、または ".などの相対パスを指定できます。ベース URI としてパッケージ ルート ("/") に対して解決される /imagespicture1.jpg" です。

としてExternal指定されている場合targetModeは、 targetUri RFC 3986 Uniform Resource Identifier (URI) ジェネリック構文仕様に従って形成された絶対 URI または相対 URI を指定できます。 http://www.microsoft.com/page2.xml は、外部ターゲット リソース "page2.xml" を参照する絶対 URI の例です。 "images/picture1.jpg" は、外部ターゲット リソース "1.jpg" も参照するが、パッケージ自体の URI に対して解決される相対 URI の例です。

relationshipType は、 RFC 3986 Uniform Resource Identifier (URI) ジェネリック構文仕様に従って形成された URI である必要があります。 次の表は、Open Packaging Conventions (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

パッケージ化とパッケージの関係の詳細については、「Open Packaging Conventions (OPC) 仕様のセクション 1.3」を参照してください https://www.ecma-international.org/publications-and-standards/standards/ecma-376/

こちらもご覧ください

適用対象

CreateRelationship(Uri, TargetMode, String, String)

特定の 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

ターゲット パーツの Uniform Resource Identifier (URI)。

targetMode
TargetMode

ターゲット パーツが、パッケージに対して InternalExternal のいずれであるかを示します。

relationshipType
String

リレーションシップのロールを一意に定義する URI。

id
String

一意の XML 識別子。

戻り値

PackageRelationship

指定したパーツへのパッケージ レベル リレーションシップ。

例外

targetUri または relationshipTypenull です。

targetUri パーツが PackageRelationship です。または targetModeInternal で、targetUri が絶対 URI です。

targetMode の値が有効ではありません。

パッケージが開いていません (Dispose(Boolean) または Close() が呼び出されました)。

パッケージは読み取り専用です。

id が有効な XML 識別子ではないか、指定した id を持つパーツが既にパッケージ内に存在します。

次の例は、a とルート ドキュメント パーツの間PackagePackageRelationship作成に使用CreateRelationshipする方法を示しています。 完全なサンプルについては、「 パッケージ サンプルの記述」を参照してください。

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

注釈

パッケージ レベルのリレーションシップは、パッケージと関連付けられているターゲット パーツまたはリソースとの間の関連付けを定義します。 パッケージ レベルのリレーションシップには、2 つの形式のいずれかを指定できます。

  • Packageパッケージ内のターゲット パーツ間。

  • Packageパッケージの外部にあるターゲット リソース間。

パッケージリレーションシップでは、パッケージはリレーションシップの "所有者" と見なされます。 パッケージが削除されると、パッケージによって所有されているすべてのリレーションシップも削除されます。

CreateRelationship は、ターゲット部分またはリソースを物理的に変更しません。

リレーションシップのターゲットを別のリレーションシップにすることはできません。

id は有効な XML 識別子である必要があります。 型は id xsd:ID であり、「XML スキーマ パート 2: データ型の仕様」に規定されている名前付け規則に従う必要があります (参照 https://www.w3.org/TR/xmlschema-2/#ID)。

一意の ID としてnull指定した場合idは、自動的に生成されます。 空の id 文字列で指定された文字列が無効です。

としてInternal指定する場合targetModeは、 targetUri RFC 3986 Uniform Resource Identifier (URI) ジェネリック構文仕様に従って形成された相対 URI である必要があります。 内部相対 URI には、"/page1.xaml" や "/images/picture4.jpg" などのスラッシュ ("/") 文字で始まる絶対パス、または ".などの相対パスを指定できます。ベース URI としてパッケージ ルート ("/") に対して解決される /imagespicture1.jpg" です。

としてExternal指定されている場合targetModeは、 targetUri RFC 3986 Uniform Resource Identifier (URI) ジェネリック構文仕様に従って形成された絶対 URI または相対 URI を指定できます。 http://www.microsoft.com/page2.xml は、外部ターゲット リソース "page2.xml" を参照する絶対 URI の例です。 "images/picture1.jpg" は、外部ターゲット リソース "1.jpg" も参照するが、パッケージ自体の URI に対して解決される相対 URI の例です。

relationshipType は、 RFC 3986 Uniform Resource Identifier (URI) ジェネリック構文仕様に従って形成された URI である必要があります。 次の表は、Open Packaging Conventions (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

パッケージ化とパッケージの関係の詳細については、Open Packaging Conventions (OPC) 仕様のセクション 1.3 を参照 https://www.ecma-international.org/publications-and-standards/standards/ecma-376/してください。

こちらもご覧ください

適用対象