다음을 통해 공유


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)

설명

패키지 수준 관계는 패키지와 연결된 대상 부분 또는 리소스 간의 연결을 정의합니다. 패키지 수준 관계는 두 가지 양식 중 하나일 수 있습니다.

  • Package 패키지 내의 대상 PackagePart 에 대한 입니다.
  • Package 패키지 외부의 대상 리소스에 대한 입니다.

패키지 관계에서 패키지는 관계의 "소유자"로 간주됩니다. 패키지가 삭제되면 패키지가 소유한 모든 관계도 삭제됩니다. 관계를 만들거나 삭제하는 프로세스는 어떤 방식으로든 대상 부분 또는 리소스를 물리적으로 변경하지 않습니다.

자세한 내용은 에서 https://www.ecma-international.org/publications-and-standards/standards/ecma-376/다운로드할 수 있는 OPC(Open Packaging Conventions) 사양을 참조하세요.

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(Uniform Resource Identifier)입니다.

targetMode
TargetMode

대상 파트가 패키지에 Internal인지 또는 External인지를 나타냅니다.

relationshipType
String

관계의 역할을 고유하게 정의하는 URI입니다.

반환

지정된 파트에 대한 패키지 수준 관계입니다.

예외

targetUri 또는 relationshipTypenull인 경우

targetUri 파트가 PackageRelationship이거나 targetModeInternal이고 targetUri가 절대 URI인 경우

targetMode의 값이 올바르지 않은 경우

패키지가 열려 있지 않은 경우(Dispose(Boolean) 또는 Close()가 호출된 경우)

패키지가 읽기 전용인 경우

예제

다음 예제에서는 를 사용하여 CreateRelationship 와 루트 문서 파트 간에 를 PackageRelationshipPackage 만드는 방법을 보여 줍니다.

// 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 대상 부분에 대한 입니다.
  • Package 패키지 외부의 대상 리소스에 대한 입니다.

패키지 관계에서 패키지는 관계의 "소유자"로 간주됩니다. 패키지가 삭제되면 패키지가 소유한 모든 관계도 삭제됩니다.

CreateRelationship 는 어떤 방식으로든 대상 부분 또는 리소스를 물리적으로 변경하지 않습니다.

관계의 대상은 다른 관계일 수 없습니다.

가 로 InternaltargetUri 지정된 경우 targetModeRFC 3986 URI(Uniform Resource Identifier) 제네릭 구문 사양에 따라 형성된 상대 URI여야 합니다. 내부 상대 URI는 "/page1.xaml" 또는 "/images/picture4.jpg"과 같은 슬래시("/") 문자로 시작하는 절대 경로 또는 ".와 같은 상대 경로일 수 있습니다. 패키지 루트("/")를 기본 URI로 확인하는 /imagespicture1.jpg"입니다.

가 로 ExternaltargetUri 지정된 경우 targetModeRFC 3986 URI(Uniform Resource Identifier) 제네릭 구문 사양에 따라 형성된 절대 또는 상대 URI일 수 있습니다. http://www.microsoft.com/page2.xml 는 외부 대상 리소스 "page2.xml"를 참조하는 절대 URI의 예입니다. "images/picture1.jpg"는 외부 대상 리소스 "1.jpg"를 참조하지만 패키지 자체의 URI에 대해 확인하는 상대 URI의 예입니다.

relationshipTypeRFC 3986 URI(Uniform Resource Identifier) 일반 구문 사양에 따라 형성된 URI여야 합니다. 다음 표에서는 OPC(Open Packaging Conventions) 사양에 정의된 패키지 수준 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/다운로드할 수 있는 OPC(Open Packaging Conventions) 사양의 섹션 1.3을 참조하세요.

추가 정보

적용 대상

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(Uniform Resource Identifier)입니다.

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 와 루트 문서 파트 간에 를 PackageRelationshipPackage 만드는 방법을 보여 줍니다.

// 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 대상 부분에 대한 입니다.
  • Package 패키지 외부의 대상 리소스에 대한 입니다.

패키지 관계에서 패키지는 관계의 "소유자"로 간주됩니다. 패키지가 삭제되면 패키지가 소유한 모든 관계도 삭제됩니다.

CreateRelationship 는 어떤 방식으로든 대상 부분 또는 리소스를 물리적으로 변경하지 않습니다.

관계의 대상은 다른 관계일 수 없습니다.

id 는 유효한 XML 식별자여야 합니다. 형식은 id xsd:ID이며 XML 스키마 2부: Datatypes 사양에 지정된 명명 규칙을 따라야 합니다(참조 https://www.w3.org/TR/xmlschema-2/#ID).

가 고유 ID로 null 지정된 경우 id 가 자동으로 생성됩니다. id 빈 문자열로 지정된 가 잘못되었습니다.

가 로 InternaltargetUri 지정된 경우 targetModeRFC 3986 URI(Uniform Resource Identifier) 제네릭 구문 사양에 따라 형성된 상대 URI여야 합니다. 내부 상대 URI는 "/page1.xaml" 또는 "/images/picture4.jpg"과 같은 슬래시("/") 문자로 시작하는 절대 경로 또는 ".와 같은 상대 경로일 수 있습니다. 패키지 루트("/")를 기본 URI로 확인하는 /imagespicture1.jpg"입니다.

가 로 ExternaltargetUri 지정된 경우 targetModeRFC 3986 URI(Uniform Resource Identifier) 제네릭 구문 사양에 따라 형성된 절대 또는 상대 URI일 수 있습니다. http://www.microsoft.com/page2.xml 는 외부 대상 리소스 "page2.xml"를 참조하는 절대 URI의 예입니다. "images/picture1.jpg"는 외부 대상 리소스 "1.jpg"를 참조하지만 패키지 자체의 URI에 대해 확인하는 상대 URI의 예입니다.

relationshipTypeRFC 3986 URI(Uniform Resource Identifier) 일반 구문 사양에 따라 형성된 URI여야 합니다. 다음 표에서는 OPC(Open Packaging Conventions) 사양에 정의된 패키지 수준 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/다운로드할 수 있는 OPC(Open Packaging Conventions) 사양의 섹션 1.3을 참조하세요.

추가 정보

적용 대상