Package.CreateRelationship メソッド

定義

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

オーバーロード

名前 説明
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)

注釈

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

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

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

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

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

ターゲット パーツがパッケージに Internal または External されているかどうかを示します。

relationshipType
String

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

返品

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

例外

targetUri または relationshipTypenull

targetUri部分がPackageRelationshipであるか、targetModeInternalされ、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)

注釈

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

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

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

CreateRelationship では、ターゲット部分またはリソースが物理的に変更されることはありません。

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

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

targetModeExternalとして指定されている場合、targetUriRFC 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

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

こちらもご覧ください

適用対象

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

ターゲット パーツがパッケージに Internal または External されているかどうかを示します。

relationshipType
String

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

id
String

一意の XML 識別子。

返品

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

例外

targetUri または relationshipTypenull

targetUri部分がPackageRelationshipであるか、targetModeInternalされ、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)

注釈

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

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

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

CreateRelationship では、ターゲット部分またはリソースが物理的に変更されることはありません。

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

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

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

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

targetModeExternalとして指定されている場合、targetUriRFC 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

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

こちらもご覧ください

適用対象