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
- Исходный код:
- 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/.
См. также раздел
- DeleteRelationship(String)
- GetRelationship(String)
- GetRelationships()
- GetRelationshipsByType(String)
- RelationshipExists(String)
Применяется к
CreateRelationship(Uri, TargetMode, String, String)
- Исходный код:
- Package.cs
- Исходный код:
- 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/.
См. также раздел
- CreateRelationship(Uri, TargetMode, String)
- DeleteRelationship(String)
- GetRelationship(String)
- GetRelationships()
- GetRelationshipsByType(String)
- RelationshipExists(String)