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)identifier (ID).Creates a package-level relationship to a part with a given URI, target mode, relationship type, and идентификатор (ID)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.
Возвращаемое значение
Связь с указанной частью на уровне пакета.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.
См. также раздел
- DeleteRelationship(String)
- GetRelationship(String)
- GetRelationships()
- GetRelationshipsByType(String)
- RelationshipExists(String)
Применяется к
CreateRelationship(Uri, TargetMode, String, String)
Создает связь с частью на уровне пакета по заданным значениям URI, вида целевой части, типа связи и идентификатор (ID)identifier (ID).Creates a package-level relationship to a part with a given URI, target mode, relationship type, and идентификатор (ID)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.
Возвращаемое значение
Связь с указанной частью на уровне пакета.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.
См. также раздел
- CreateRelationship(Uri, TargetMode, String)
- DeleteRelationship(String)
- GetRelationship(String)
- GetRelationships()
- GetRelationshipsByType(String)
- RelationshipExists(String)