Package.CreateRelationship Метод

Определение

Создает связь с заданной частью на уровне пакета.Creates a package-level relationship to a given part.

Перегрузки

CreateRelationship(Uri, TargetMode, String)

Создает связь с частью на уровне пакета по заданным значениям URI, вида целевой части и типа связи.Creates a package-level relationship to a part with a given URI, target mode, and relationship type.

CreateRelationship(Uri, TargetMode, String, String)

Создает связь уровня пакета с частью с заданным URI, целевым режимом, типом связи и идентификатором (ID).Creates a package-level relationship to a part with a given URI, target mode, relationship type, and identifier (ID).

Примеры

В следующем примере показано создание PackageRelationship между Package и корневым элементом документа.The following example illustrates creating a PackageRelationship between a Package and a root document part. Полный пример см. в разделе запись примера пакета.For the complete sample, see Writing a Package Sample.

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

Комментарии

Связь уровня пакета определяет связь между пакетом и связанным целевым элементом или ресурсом.A package-level relationship defines an association between the package and an associated target part or resource. Отношение уровня пакета может быть одной из двух форм.A package-level relationship can be one of two forms.

  • Между объектом Package и целевым объектом PackagePart внутри пакета.Between a Package to a target PackagePart inside the package.

  • Между объектом и Package целевым ресурсом за пределами пакета.Between a Package to a target resource outside the package.

В связи с пакетом пакет считается "владельцем" связи.In a package-relationship the package is considered the "owner" of the relationship. При удалении пакета также удаляются все связи, принадлежащие пакету.When the package is deleted, all the relationships owned by the package are also deleted. Процесс создания или удаления связи физически не изменяет целевую часть или ресурс каким бы то ни было.The process of creating or deleting the relationship does not physically alter the target part or resource in any way.

Дополнительные сведения см. в спецификации Open Packaging Conventions (OPC), доступной для загрузки по адресу https://go.microsoft.com/fwlink/?LinkID=71255 .For additional information, see the Open Packaging Conventions (OPC) specification available for download at https://go.microsoft.com/fwlink/?LinkID=71255.

CreateRelationship(Uri, TargetMode, String)

Создает связь с частью на уровне пакета по заданным значениям URI, вида целевой части и типа связи.Creates a package-level relationship to a part with a given URI, target mode, and relationship type.

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) целевой части.The uniform resource identifier (URI) of the target part.

targetMode
TargetMode

Показывает, является ли целевая часть внутренней (Internal) или внешней (External) по отношению к пакету.Indicates if the target part is Internal or External to the package.

relationshipType
String

Код URI, однозначно определяющий роль связи.A URI that uniquely defines the role of the relationship.

Возвращаемое значение

PackageRelationship

Связь с указанной частью на уровне пакета.The package-level relationship to the specified part.

Исключения

Параметр targetUri или relationshipType имеет значение null.targetUri or relationshipType is null.

Часть targetUri представляет собой PackageRelationship, или в качестве targetMode задано Internal и targetUri является абсолютным URI.The targetUri part is a PackageRelationship, or targetMode is Internal and targetUri is an absolute URI.

Значение параметра targetMode является недопустимым.The value for targetMode is not valid.

Пакет не открыт (вызван метод Dispose(Boolean) или Close()).The package is not open (Dispose(Boolean) or Close() has been called).

Пакет доступен только для чтения.The package is read-only.

Примеры

В следующем примере показано, как использовать CreateRelationship для создания PackageRelationship между Package и корневым элементом документа.The following example illustrates how to use CreateRelationship to create a PackageRelationship between a Package and a root document part. Полный пример см. в разделе запись примера пакета.For the complete sample, see Writing a Package Sample.

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

Комментарии

Связь уровня пакета определяет связь между пакетом и связанным целевым элементом или ресурсом.A package-level relationship defines an association between the package and an associated target part or resource. Отношение уровня пакета может быть одной из двух форм.A package-level relationship can be one of two forms.

  • Между объектом и Package целевым элементом в пакете.Between a Package to a target part in the package.

  • Между объектом и Package целевым ресурсом за пределами пакета.Between a Package to a target resource outside the package.

В связи с пакетом пакет считается "владельцем" связи.In a package-relationship the package is considered the "owner" of the relationship. При удалении пакета также удаляются все связи, принадлежащие пакету.When the package is deleted, all the relationships owned by the package are also deleted.

CreateRelationship не изменяет физически целевую часть или ресурс каким бы то ни было.CreateRelationship does not physically change the target part or resource in any way.

Целевой объект связи не может быть другой связью.The target of a relationship cannot be another relationship.

Если targetMode параметр имеет значение Internal , то параметр targetUri должен быть относительным URI, сформированным в соответствии с универсальной спецификацией синтаксиса в стандарте URI RFC 3986 .If targetMode is specified as Internal, targetUri must be a relative URI that is formed according to the RFC 3986 Uniform Resource Identifier (URI) Generic Syntax specification. Внутренний относительный URI может быть либо абсолютным путем, который начинается с косой черты ("/"), например "/Page1.XAML", либо "/Images/picture4.jpg", либо относительным путем, таким как ".. /imagespicture1.jpg ", который разрешается в корневую папку пакета ("/") как базовый URI.The internal relative URI can be either an absolute path that starts with a forward slash ("/") character such as "/page1.xaml" or "/images/picture4.jpg", or a relative path such as "../imagespicture1.jpg" that resolves against the package root ("/") as the base URI.

Если targetMode параметр имеет значение External , то параметр targetUri может быть абсолютным или относительным URI, сформированным в соответствии со спецификацией общего синтаксиса универсального кода ресурса (URI) RFC 3986 .If targetMode is specified as External, targetUri can be either an absolute or relative URI formed according to the RFC 3986 Uniform Resource Identifier (URI) Generic Syntax specification. http://www.microsoft.com/page2.xml пример абсолютного URI, который ссылается на внешний целевой ресурс "page2.xml".http://www.microsoft.com/page2.xml is an example of an absolute URI that references an external target resource "page2.xml". "Images/picture1.jpg" — это пример относительного URI, который также ссылается на внешний целевой ресурс "1.jpg", но он разрешается в URI самого пакета."images/picture1.jpg" is an example of a relative URI that also references an external target resource "1.jpg" but which resolves against the URI of the package itself.

relationshipType должен быть URI, сформированным согласно спецификации универсального синтаксиса URI RFC 3986 .relationshipType must be a URI that is formed according to the RFC 3986 Uniform Resource Identifier (URI) Generic Syntax specification. В следующей таблице показаны URI уровня пакета, relationshipType определенные в спецификации Open Packaging Conventions (OPC).The following table shows the package-level relationshipType URIs defined by the Open Packaging Conventions (OPC) specification.

Отношение уровня пакетаPackage-level Relationship URI типа отношенияRelationship Type URI
Основные свойстваCore Properties http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties
Цифровая подписьDigital Signature http://schemas.openxmlformats.org/package/2006/relationships/digital-signature/signature
Сертификат цифровой подписиDigital Signature Certificate http://schemas.openxmlformats.org/package/2006/relationships/digital-signature/certificate
Источник цифровой подписиDigital Signature Origin http://schemas.openxmlformats.org/package/2006/relationships/digital-signature/origin
ThumbnailThumbnail http://schemas.openxmlformats.org/package/2006/relationships/metadata/thumbnail

Дополнительные сведения о взаимосвязи пакетов и пакетов см. в разделе 1,3 спецификации Open Packaging Conventions (OPC), доступной для загрузки по адресу https://go.microsoft.com/fwlink/?LinkID=71255 .For more information about packaging and package relationships, see section 1.3 of the Open Packaging Conventions (OPC) specification available for download at https://go.microsoft.com/fwlink/?LinkID=71255.

См. также раздел

Применяется к

CreateRelationship(Uri, TargetMode, String, String)

Создает связь уровня пакета с частью с заданным URI, целевым режимом, типом связи и идентификатором (ID).Creates a package-level relationship to a part with a given URI, target mode, relationship type, and identifier (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) целевой части.The uniform resource identifier (URI) of the target part.

targetMode
TargetMode

Показывает, является ли целевая часть внутренней (Internal) или внешней (External) по отношению к пакету.Indicates if the target part is Internal or External to the package.

relationshipType
String

Код URI, однозначно определяющий роль связи.A URI that uniquely defines the role of the relationship.

id
String

Уникальный идентификатор XML.A unique XML identifier.

Возвращаемое значение

PackageRelationship

Связь с указанной частью на уровне пакета.The package-level relationship to the specified part.

Исключения

Параметр targetUri или relationshipType имеет значение null.targetUri or relationshipType is null.

Часть targetUri представляет собой PackageRelationship, или в качестве targetMode задано Internal и targetUri является абсолютным URI.The targetUri part is a PackageRelationship, or targetMode is Internal and targetUri is an absolute URI.

Значение параметра targetMode является недопустимым.The value for targetMode is not valid.

Пакет не открыт (вызван метод Dispose(Boolean) или Close()).The package is not open (Dispose(Boolean) or Close() has been called).

Пакет доступен только для чтения.The package is read-only.

id не является допустимым идентификатором XML; или часть с указанным id уже имеется в пакете.id is not a valid XML identifier; or a part with the specified id already occurs in the package.

Примеры

В следующем примере показано, как использовать CreateRelationship для создания PackageRelationship между Package и корневым элементом документа.The following example illustrates how to use CreateRelationship to create a PackageRelationship between a Package and a root document part. Полный пример см. в разделе запись примера пакета.For the complete sample, see Writing a Package Sample.

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

Комментарии

Связь уровня пакета определяет связь между пакетом и связанным целевым элементом или ресурсом.A package-level relationship defines an association between the package and an associated target part or resource. Отношение уровня пакета может быть одной из двух форм.A package-level relationship can be one of two forms.

  • Между объектом и Package целевым элементом в пакете.Between a Package to a target part in the package.

  • Между объектом и Package целевым ресурсом за пределами пакета.Between a Package to a target resource outside the package.

В связи с пакетом пакет считается "владельцем" связи.In a package-relationship the package is considered the "owner" of the relationship. При удалении пакета также удаляются все связи, принадлежащие пакету.When the package is deleted, all the relationships owned by the package are also deleted.

CreateRelationship не изменяет физически целевую часть или ресурс каким бы то ни было.CreateRelationship does not physically change the target part or resource in any way.

Целевой объект связи не может быть другой связью.The target of a relationship cannot be another relationship.

id должен быть допустимым идентификатором XML.id must be a valid XML identifier. idТип — XSD: ID. он должен соответствовать соглашениям об именовании, указанным в спецификации XML-схемы часть 2: типы типов (см https://www.w3.org/TR/xmlschema-2/#ID .).The id type is xsd:ID and must follow the naming conventions prescribed in the XML Schema Part 2: Datatypes specification (see https://www.w3.org/TR/xmlschema-2/#ID).

Если id задано значение, то null автоматически создается уникальный идентификатор.If id is specified as null a unique ID will be automatically generated. idПараметр, заданный пустой строкой, является недопустимым.An id specified by an empty string is not valid.

Если targetMode параметр имеет значение Internal , то параметр targetUri должен быть относительным URI, сформированным в соответствии с универсальной спецификацией синтаксиса в стандарте URI RFC 3986 .If targetMode is specified as Internal, targetUri must be a relative URI that is formed according to the RFC 3986 Uniform Resource Identifier (URI) Generic Syntax specification. Внутренний относительный URI может быть либо абсолютным путем, который начинается с косой черты ("/"), например "/Page1.XAML", либо "/Images/picture4.jpg", либо относительным путем, таким как ".. /imagespicture1.jpg ", который разрешается в корневую папку пакета ("/") как базовый URI.The internal relative URI can be either an absolute path that starts with a forward slash ("/") character such as "/page1.xaml" or "/images/picture4.jpg", or a relative path such as "../imagespicture1.jpg" that resolves against the package root ("/") as the base URI.

Если targetMode параметр имеет значение External , то параметр targetUri может быть абсолютным или относительным URI, сформированным в соответствии со спецификацией общего синтаксиса универсального кода ресурса (URI) RFC 3986 .If targetMode is specified as External, targetUri can be either an absolute or relative URI formed according to the RFC 3986 Uniform Resource Identifier (URI) Generic Syntax specification. http://www.microsoft.com/page2.xml пример абсолютного URI, который ссылается на внешний целевой ресурс "page2.xml".http://www.microsoft.com/page2.xml is an example of an absolute URI that references an external target resource "page2.xml". "Images/picture1.jpg" — это пример относительного URI, который также ссылается на внешний целевой ресурс "1.jpg", но он разрешается в URI самого пакета."images/picture1.jpg" is an example of a relative URI that also references an external target resource "1.jpg" but which resolves against the URI of the package itself.

relationshipType должен быть URI, сформированным согласно спецификации универсального синтаксиса URI RFC 3986 .relationshipType must be a URI that is formed according to the RFC 3986 Uniform Resource Identifier (URI) Generic Syntax specification. В следующей таблице показаны URI уровня пакета, relationshipType определенные в спецификации Open Packaging Conventions (OPC).The following table shows the package-level relationshipType URIs defined by the Open Packaging Conventions (OPC) specification.

Отношение уровня пакетаPackage-level Relationship URI типа отношенияRelationship Type URI
Основные свойстваCore Properties http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties
Цифровая подписьDigital Signature http://schemas.openxmlformats.org/package/2006/relationships/digital-signature/signature
Сертификат цифровой подписиDigital Signature Certificate http://schemas.openxmlformats.org/package/2006/relationships/digital-signature/certificate
Источник цифровой подписиDigital Signature Origin http://schemas.openxmlformats.org/package/2006/relationships/digital-signature/origin
ThumbnailThumbnail http://schemas.openxmlformats.org/package/2006/relationships/metadata/thumbnail

Дополнительные сведения о взаимосвязи пакетов и пакетов см. в разделе 1,3 спецификации Open Packaging Conventions (OPC), доступной для загрузки по адресу https://go.microsoft.com/fwlink/?LinkID=71255 .For additional information about packaging and package relationships, see section 1.3 of the Open Packaging Conventions (OPC) specification available for download at https://go.microsoft.com/fwlink/?LinkID=71255.

См. также раздел

Применяется к