Package.CreateRelationship Метод

Определение

Создает связь с заданной частью на уровне пакета.

Перегрузки

CreateRelationship(Uri, TargetMode, String)

Создает связь с частью на уровне пакета по заданным значениям URI, вида целевой части и типа связи.

CreateRelationship(Uri, TargetMode, String, String)

Создает связь на уровне пакета с частью с заданным универсальным кодом ресурса (URI), целевым режимом, типом связи и идентификатором (id).

Примеры

В следующем примере показано создание PackageRelationship между Package и корневой частью документа. Полный пример см. в разделе Написание примера пакета.

// 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 и целевым ресурсом за пределами пакета.

В связи "пакет-пакет" считается "владельцем" связи. При удалении пакета также удаляются все связи, принадлежащие пакету. Процесс создания или удаления связи не приводит к физическому изменению целевой части или ресурса.

Дополнительные сведения см. в спецификации Open Packaging Conventions (OPC), доступной для скачивания по адресу https://www.ecma-international.org/publications-and-standards/standards/ecma-376/.

CreateRelationship(Uri, TargetMode, String)

Исходный код:
Package.cs
Исходный код:
Package.cs
Исходный код:
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

Показывает, является ли целевая часть внутренней (Internal) или внешней (External) по отношению к пакету.

relationshipType
String

Код URI, однозначно определяющий роль связи.

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

Связь с указанной частью на уровне пакета.

Исключения

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

Часть targetUri представляет собой PackageRelationship, или в качестве targetMode задано Internal и targetUri является абсолютным URI.

Значение параметра targetMode является недопустимым.

Пакет не открыт (вызван метод Dispose(Boolean) или Close()).

Пакет доступен только для чтения.

Примеры

В следующем примере показано, как использовать CreateRelationship для создания PackageRelationship между Package и корневой частью документа. Полный пример см. в разделе Написание примера пакета.

// 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 физически не изменяет целевую часть или ресурс каким-либо образом.

Целью связи не может быть другое отношение.

Если targetMode задано значение Internal, targetUri должен быть относительным URI, сформированным в соответствии со спецификацией универсального синтаксиса RFC 3986 . Внутренний относительный URI может быть либо абсолютным путем, начинающимся с символа косой черты ("/"), например "/page1.xaml" или "/images/picture4.jpg", либо относительным путем, таким как ". /imagespicture1.jpg", который разрешается в корневой каталог пакета ("/") в качестве базового URI.

Если targetMode задано значение External, targetUri может быть абсолютным или относительным URI, сформированным в соответствии со спецификацией универсального синтаксиса RFC 3986 . http://www.microsoft.com/page2.xml — это пример абсолютного URI, который ссылается на внешний целевой ресурс "page2.xml". "images/picture1.jpg" — это пример относительного URI, который также ссылается на внешний целевой ресурс "1.jpg", но который разрешается в URI самого пакета.

relationshipType должен быть универсальным кодом ресурса (URI), сформированным в соответствии со спецификацией универсального синтаксиса RFC 3986 . В следующей таблице показаны URI уровня relationshipType пакета, определенные спецификацией Open Packaging Conventions (OPC).

Отношение на уровне пакета 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
Thumbnail http://schemas.openxmlformats.org/package/2006/relationships/metadata/thumbnail

Дополнительные сведения об упаковке и связях пакетов см. в разделе 1.3 спецификации Open Packaging Conventions (OPC), доступной для скачивания по адресу https://www.ecma-international.org/publications-and-standards/standards/ecma-376/.

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

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

CreateRelationship(Uri, TargetMode, String, String)

Исходный код:
Package.cs
Исходный код:
Package.cs
Исходный код:
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

Показывает, является ли целевая часть внутренней (Internal) или внешней (External) по отношению к пакету.

relationshipType
String

Код URI, однозначно определяющий роль связи.

id
String

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

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

Связь с указанной частью на уровне пакета.

Исключения

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

Часть targetUri представляет собой PackageRelationship, или в качестве targetMode задано Internal и targetUri является абсолютным URI.

Значение параметра targetMode является недопустимым.

Пакет не открыт (вызван метод Dispose(Boolean) или Close()).

Пакет доступен только для чтения.

id не является допустимым идентификатором XML; или часть с указанным id уже имеется в пакете.

Примеры

В следующем примере показано, как использовать CreateRelationship для создания PackageRelationship между Package и корневой частью документа. Полный пример см. в разделе Написание примера пакета.

// 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 Schema Part 2: Datatypes (см https://www.w3.org/TR/xmlschema-2/#ID. ).

Если id параметр указан в качестве null уникального идентификатора, будет создан автоматически. Объект , id заданный пустой строкой, недопустим.

Если targetMode задано значение Internal, targetUri должен быть относительным URI, сформированным в соответствии со спецификацией универсального синтаксиса RFC 3986 . Внутренний относительный URI может быть либо абсолютным путем, начинающимся с символа косой черты ("/"), например "/page1.xaml" или "/images/picture4.jpg", либо относительным путем, таким как ". /imagespicture1.jpg", который разрешается в корневой каталог пакета ("/") в качестве базового URI.

Если targetMode задано значение External, targetUri может быть абсолютным или относительным URI, сформированным в соответствии со спецификацией универсального синтаксиса RFC 3986 . http://www.microsoft.com/page2.xml — это пример абсолютного URI, который ссылается на внешний целевой ресурс "page2.xml". "images/picture1.jpg" — это пример относительного URI, который также ссылается на внешний целевой ресурс "1.jpg", но который разрешается в URI самого пакета.

relationshipType должен быть универсальным кодом ресурса (URI), сформированным в соответствии со спецификацией универсального синтаксиса RFC 3986 . В следующей таблице показаны URI уровня relationshipType пакета, определенные спецификацией Open Packaging Conventions (OPC).

Отношение на уровне пакета 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
Thumbnail http://schemas.openxmlformats.org/package/2006/relationships/metadata/thumbnail

Дополнительные сведения об упаковке и связях пакетов см. в разделе 1.3 спецификации Open Packaging Conventions (OPC), доступной для скачивания по адресу https://www.ecma-international.org/publications-and-standards/standards/ecma-376/.

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

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