Package.CreateRelationship Método

Definição

Cria uma relação de nível de pacote para uma determinada parte.

Sobrecargas

CreateRelationship(Uri, TargetMode, String)

Cria uma relação de nível de pacote para uma parte com um determinado URI, modo de destino e tipo de relacionamento.

CreateRelationship(Uri, TargetMode, String, String)

Cria uma relação de nível de pacote com uma parte com um determinado URI, modo de destino, tipo de relação e identificador (ID).

Exemplos

O exemplo a seguir ilustra a criação de um PackageRelationship entre um Package e uma parte raiz do documento. Para obter o exemplo completo, consulte Escrevendo um exemplo de pacote.

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

Comentários

Uma relação no nível do pacote define uma associação entre o pacote e uma parte ou recurso de destino associado. Uma relação no nível do pacote pode ser uma das duas formas.

Em uma relação de pacote, o pacote é considerado o "proprietário" da relação. Quando o pacote é excluído, todas as relações pertencentes ao pacote também são excluídas. O processo de criação ou exclusão da relação não altera fisicamente a parte ou o recurso de destino de forma alguma.

Para obter informações adicionais, consulte a especificação OPC (Open Packaging Conventions) disponível para download em https://www.ecma-international.org/publications-and-standards/standards/ecma-376/.

CreateRelationship(Uri, TargetMode, String)

Origem:
Package.cs
Origem:
Package.cs
Origem:
Package.cs

Cria uma relação de nível de pacote para uma parte com um determinado URI, modo de destino e tipo de relacionamento.

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

Parâmetros

targetUri
Uri

O URI (Uniform Resource Identifier) da parte de destino.

targetMode
TargetMode

Indica se a parte de destino é Internal ou External para o pacote.

relationshipType
String

Um URI que define exclusivamente a função da relação.

Retornos

A relação de nível de pacote para a parte especificada.

Exceções

targetUri ou relationshipType é null.

A parte targetUri é um PackageRelationship ou targetMode é Internal e targetUri é um URI absoluto.

O valor para targetMode não é válido.

O pacote não está aberto (Dispose(Boolean) ou Close() foi chamado).

O pacote é somente leitura.

Exemplos

O exemplo a seguir ilustra como usar CreateRelationship para criar um PackageRelationship entre um Package e uma parte de documento raiz. Para obter o exemplo completo, consulte Escrevendo um exemplo de pacote.

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

Comentários

Uma relação no nível do pacote define uma associação entre o pacote e uma parte ou recurso de destino associado. Uma relação no nível do pacote pode ser uma das duas formas.

  • Entre um Package para uma parte de destino no pacote.

  • Entre um Package para um recurso de destino fora do pacote.

Em uma relação de pacote, o pacote é considerado o "proprietário" da relação. Quando o pacote é excluído, todas as relações pertencentes ao pacote também são excluídas.

CreateRelationship não altera fisicamente a parte ou o recurso de destino de forma alguma.

O destino de uma relação não pode ser outra relação.

Se targetMode for especificado como Internal, targetUri deverá ser um URI relativo formado de acordo com a especificação de sintaxe genérica do URI (Uniform Resource Identifier) rfc 3986 . O URI relativo interno pode ser um caminho absoluto que começa com um caractere de barra ("/") como "/page1.xaml" ou "/images/picture4.jpg" ou um caminho relativo como ".. /imagespicture1.jpg" que resolve na raiz do pacote ("/") como o URI base.

Se targetMode for especificado como External, targetUri poderá ser um URI absoluto ou relativo formado de acordo com a especificação de sintaxe genérica do URI (Uniform Resource Identifier) RFC 3986 . http://www.microsoft.com/page2.xml é um exemplo de um URI absoluto que faz referência a um recurso de destino externo "page2.xml". "images/picture1.jpg" é um exemplo de um URI relativo que também faz referência a um recurso de destino externo "1.jpg", mas que é resolvido em relação ao URI do próprio pacote.

relationshipType deve ser um URI formado de acordo com a especificação de sintaxe genérica do URI (Uniform Resource Identifier) RFC 3986 . A tabela a seguir mostra os URIs no nível relationshipType do pacote definidos pela especificação OPC (Open Packaging Conventions).

Relação no nível do pacote URI do Tipo de Relação
Propriedades principais http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties
Assinatura digital http://schemas.openxmlformats.org/package/2006/relationships/digital-signature/signature
Certificado de Assinatura Digital http://schemas.openxmlformats.org/package/2006/relationships/digital-signature/certificate
Origem da assinatura digital http://schemas.openxmlformats.org/package/2006/relationships/digital-signature/origin
Thumbnail http://schemas.openxmlformats.org/package/2006/relationships/metadata/thumbnail

Para obter mais informações sobre as relações de empacotamento e pacote, consulte a seção 1.3 da especificação OPC (Open Packaging Conventions) disponível para download em https://www.ecma-international.org/publications-and-standards/standards/ecma-376/.

Confira também

Aplica-se a

CreateRelationship(Uri, TargetMode, String, String)

Origem:
Package.cs
Origem:
Package.cs
Origem:
Package.cs

Cria uma relação de nível de pacote com uma parte com um determinado URI, modo de destino, tipo de relação e identificador (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

Parâmetros

targetUri
Uri

O URI (Uniform Resource Identifier) da parte de destino.

targetMode
TargetMode

Indica se a parte de destino é Internal ou External para o pacote.

relationshipType
String

Um URI que define exclusivamente a função da relação.

id
String

Um identificador XML exclusivo.

Retornos

A relação de nível de pacote para a parte especificada.

Exceções

targetUri ou relationshipType é null.

A parte targetUri é um PackageRelationship ou targetMode é Internal e targetUri é um URI absoluto.

O valor para targetMode não é válido.

O pacote não está aberto (Dispose(Boolean) ou Close() foi chamado).

O pacote é somente leitura.

id não é um identificador XML válido ou uma parte com o id especificado já ocorre no pacote.

Exemplos

O exemplo a seguir ilustra como usar CreateRelationship para criar um PackageRelationship entre um Package e uma parte de documento raiz. Para obter o exemplo completo, consulte Escrevendo um exemplo de pacote.

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

Comentários

Uma relação no nível do pacote define uma associação entre o pacote e uma parte ou recurso de destino associado. Uma relação no nível do pacote pode ser uma das duas formas.

  • Entre um Package para uma parte de destino no pacote.

  • Entre um Package para um recurso de destino fora do pacote.

Em uma relação de pacote, o pacote é considerado o "proprietário" da relação. Quando o pacote é excluído, todas as relações pertencentes ao pacote também são excluídas.

CreateRelationship não altera fisicamente a parte ou o recurso de destino de forma alguma.

O destino de uma relação não pode ser outra relação.

id deve ser um identificador XML válido. O id tipo é xsd:ID e deve seguir as convenções de nomenclatura prescritas na especificação XML Schema Part 2: Datatypes (consulte https://www.w3.org/TR/xmlschema-2/#ID).

Se id for especificado como null uma ID exclusiva, será gerado automaticamente. Um id especificado por uma cadeia de caracteres vazia não é válido.

Se targetMode for especificado como Internal, targetUri deverá ser um URI relativo formado de acordo com a especificação de sintaxe genérica do URI (Uniform Resource Identifier) rfc 3986 . O URI relativo interno pode ser um caminho absoluto que começa com um caractere de barra ("/") como "/page1.xaml" ou "/images/picture4.jpg" ou um caminho relativo como ".. /imagespicture1.jpg" que resolve na raiz do pacote ("/") como o URI base.

Se targetMode for especificado como External, targetUri poderá ser um URI absoluto ou relativo formado de acordo com a especificação de sintaxe genérica do URI (Uniform Resource Identifier) RFC 3986 . http://www.microsoft.com/page2.xml é um exemplo de um URI absoluto que faz referência a um recurso de destino externo "page2.xml". "images/picture1.jpg" é um exemplo de um URI relativo que também faz referência a um recurso de destino externo "1.jpg", mas que é resolvido em relação ao URI do próprio pacote.

relationshipType deve ser um URI formado de acordo com a especificação de sintaxe genérica do URI (Uniform Resource Identifier) RFC 3986 . A tabela a seguir mostra os URIs no nível relationshipType do pacote definidos pela especificação OPC (Open Packaging Conventions).

Relação no nível do pacote URI do Tipo de Relação
Propriedades principais http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties
Assinatura digital http://schemas.openxmlformats.org/package/2006/relationships/digital-signature/signature
Certificado de Assinatura Digital http://schemas.openxmlformats.org/package/2006/relationships/digital-signature/certificate
Origem da assinatura digital http://schemas.openxmlformats.org/package/2006/relationships/digital-signature/origin
Thumbnail http://schemas.openxmlformats.org/package/2006/relationships/metadata/thumbnail

Para obter informações adicionais sobre as relações de empacotamento e pacote, consulte a seção 1.3 da especificação OPC (Open Packaging Conventions) disponível para download em https://www.ecma-international.org/publications-and-standards/standards/ecma-376/.

Confira também

Aplica-se a