Package.CreateRelationship Método

Definición

Crea una relación de nivel de paquete en un elemento especificado.

Sobrecargas

CreateRelationship(Uri, TargetMode, String)

Crea una relación de nivel de paquete en un elemento con un URI, modo de destino y tipo de relación especificados.

CreateRelationship(Uri, TargetMode, String, String)

Crea una relación de nivel de paquete con un elemento con un URI determinado, el modo de destino, el tipo de relación y el identificador (ID).

Ejemplos

En el ejemplo siguiente se muestra cómo crear un PackageRelationship elemento entre y Package un elemento de documento raíz.

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

Comentarios

Una relación de nivel de paquete define una asociación entre el paquete y una parte o recurso de destino asociado. Una relación de nivel de paquete puede ser una de las dos formas.

  • Entre un objeto Package a un destino PackagePart dentro del paquete.
  • Entre un recurso Package de destino fuera del paquete.

En una relación de paquete, el paquete se considera el "propietario" de la relación. Cuando se elimina el paquete, también se eliminan todas las relaciones que pertenecen al paquete. El proceso de creación o eliminación de la relación no modifica físicamente la parte o el recurso de destino de ninguna manera.

Para obtener más información, consulte la especificación de convenciones de empaquetado abierto (OPC) disponible para su descarga en https://www.ecma-international.org/publications-and-standards/standards/ecma-376/.

CreateRelationship(Uri, TargetMode, String)

Source:
Package.cs
Source:
Package.cs
Source:
Package.cs
Source:
Package.cs

Crea una relación de nivel de paquete en un elemento con un URI, modo de destino y tipo de relación especificados.

public System.IO.Packaging.PackageRelationship CreateRelationship (Uri targetUri, System.IO.Packaging.TargetMode targetMode, string relationshipType);

Parámetros

targetUri
Uri

Identificador uniforme de recursos (URI) del elemento de destino.

targetMode
TargetMode

Indica si el elemento de destino es Internal o External en el paquete.

relationshipType
String

URI que define exclusivamente el rol de la relación.

Devoluciones

Relación de nivel de paquete en el elemento especificado.

Excepciones

targetUri o relationshipType es null.

El elemento del targetUri es una clase PackageRelationship o targetMode es Internal y targetUri es un URI absoluto.

El valor de targetMode no es válido.

El paquete no está abierto (se ha llamado a Dispose(Boolean) o Close()).

El paquete es de sólo lectura.

Ejemplos

En el ejemplo siguiente se muestra cómo usar CreateRelationship para crear un elemento PackageRelationship entre y Package un elemento de documento raíz.

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

Comentarios

Una relación de nivel de paquete define una asociación entre el paquete y una parte o recurso de destino asociado. Una relación de nivel de paquete puede ser una de las dos formas.

  • Entre un elemento Package de destino en el paquete.
  • Entre un recurso Package de destino fuera del paquete.

En una relación de paquete, el paquete se considera el "propietario" de la relación. Cuando se elimina el paquete, también se eliminan todas las relaciones que pertenecen al paquete.

CreateRelationship no cambia físicamente la parte de destino ni el recurso de ninguna manera.

El destino de una relación no puede ser otra relación.

Si targetMode se especifica como Internal, targetUri debe ser un URI relativo formado según la especificación de sintaxis genérica del identificador uniforme de recursos (URI) RFC 3986 . El URI relativo interno puede ser una ruta de acceso absoluta que comienza con un carácter de barra diagonal ("/"), como "/page1.xaml" o "/images/picture4.jpg", o una ruta de acceso relativa, como ".. /imagespicture1.jpg" que se resuelve en la raíz del paquete ("/") como URI base.

Si targetMode se especifica como External, targetUri puede ser un URI absoluto o relativo formado según la especificación de sintaxis genérica del identificador uniforme de recursos (URI) RFC 3986 . http://www.microsoft.com/page2.xml es un ejemplo de un URI absoluto que hace referencia a un recurso de destino externo "page2.xml". "images/picture1.jpg" es un ejemplo de un URI relativo que también hace referencia a un recurso de destino externo "1.jpg", pero que se resuelve en el URI del propio paquete.

relationshipType debe ser un URI formado según la especificación de sintaxis genérica del identificador uniforme de recursos (URI) rfC 3986 . En la tabla siguiente se muestran los URI de nivel relationshipType de paquete definidos por la especificación de convenciones de empaquetado abierto (OPC).

Relación de nivel de paquete URI de tipo de relación
Propiedades principales http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties
Firma digital http://schemas.openxmlformats.org/package/2006/relationships/digital-signature/signature
Certificado de firma digital http://schemas.openxmlformats.org/package/2006/relationships/digital-signature/certificate
Origen de firma digital http://schemas.openxmlformats.org/package/2006/relationships/digital-signature/origin
Thumbnail http://schemas.openxmlformats.org/package/2006/relationships/metadata/thumbnail

Para obtener más información sobre el empaquetado y las relaciones de paquetes, vea la sección 1.3 de la especificación de convenciones de empaquetado abierto (OPC) disponible para su descarga en https://www.ecma-international.org/publications-and-standards/standards/ecma-376/.

Consulte también

Se aplica a

.NET 9 y otras versiones
Producto Versiones
.NET Core 1.0, Core 1.1, 6, 7, 8, 9
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9

CreateRelationship(Uri, TargetMode, String, String)

Source:
Package.cs
Source:
Package.cs
Source:
Package.cs
Source:
Package.cs

Crea una relación de nivel de paquete con un elemento con un URI determinado, el modo de destino, el tipo de relación y el identificador (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);

Parámetros

targetUri
Uri

Identificador uniforme de recursos (URI) del elemento de destino.

targetMode
TargetMode

Indica si el elemento de destino es Internal o External en el paquete.

relationshipType
String

URI que define exclusivamente el rol de la relación.

id
String

Identificador XML único.

Devoluciones

Relación de nivel de paquete en el elemento especificado.

Excepciones

targetUri o relationshipType es null.

El elemento del targetUri es una clase PackageRelationship o targetMode es Internal y targetUri es un URI absoluto.

El valor de targetMode no es válido.

El paquete no está abierto (se ha llamado a Dispose(Boolean) o Close()).

El paquete es de sólo lectura.

id no es un identificador XML válido; o bien, ya existe un elemento con el id especificado en el paquete.

Ejemplos

En el ejemplo siguiente se muestra cómo usar CreateRelationship para crear un elemento PackageRelationship entre y Package un elemento de documento raíz.

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

Comentarios

Una relación de nivel de paquete define una asociación entre el paquete y una parte o recurso de destino asociado. Una relación de nivel de paquete puede ser una de las dos formas.

  • Entre un elemento Package de destino en el paquete.
  • Entre un recurso Package de destino fuera del paquete.

En una relación de paquete, el paquete se considera el "propietario" de la relación. Cuando se elimina el paquete, también se eliminan todas las relaciones que pertenecen al paquete.

CreateRelationship no cambia físicamente la parte de destino ni el recurso de ninguna manera.

El destino de una relación no puede ser otra relación.

id debe ser un identificador XML válido. El id tipo es xsd:ID y debe seguir las convenciones de nomenclatura indicadas en la especificación esquema XML 2: Tipos de datos (vea https://www.w3.org/TR/xmlschema-2/#ID).

Si id se especifica como null un identificador único, se generará automáticamente. Un id objeto especificado por una cadena vacía no es válido.

Si targetMode se especifica como Internal, targetUri debe ser un URI relativo formado según la especificación de sintaxis genérica del identificador uniforme de recursos (URI) RFC 3986 . El URI relativo interno puede ser una ruta de acceso absoluta que comienza con un carácter de barra diagonal ("/"), como "/page1.xaml" o "/images/picture4.jpg", o una ruta de acceso relativa, como ".. /imagespicture1.jpg" que se resuelve en la raíz del paquete ("/") como URI base.

Si targetMode se especifica como External, targetUri puede ser un URI absoluto o relativo formado según la especificación de sintaxis genérica del identificador uniforme de recursos (URI) RFC 3986 . http://www.microsoft.com/page2.xml es un ejemplo de un URI absoluto que hace referencia a un recurso de destino externo "page2.xml". "images/picture1.jpg" es un ejemplo de un URI relativo que también hace referencia a un recurso de destino externo "1.jpg", pero que se resuelve en el URI del propio paquete.

relationshipType debe ser un URI formado según la especificación de sintaxis genérica del identificador uniforme de recursos (URI) rfC 3986 . En la tabla siguiente se muestran los URI de nivel relationshipType de paquete definidos por la especificación de convenciones de empaquetado abierto (OPC).

Relación de nivel de paquete URI de tipo de relación
Propiedades principales http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties
Firma digital http://schemas.openxmlformats.org/package/2006/relationships/digital-signature/signature
Certificado de firma digital http://schemas.openxmlformats.org/package/2006/relationships/digital-signature/certificate
Origen de firma digital http://schemas.openxmlformats.org/package/2006/relationships/digital-signature/origin
Thumbnail http://schemas.openxmlformats.org/package/2006/relationships/metadata/thumbnail

Para obtener más información sobre el empaquetado y las relaciones de paquetes, consulte la sección 1.3 de la especificación de convenciones de empaquetado abierto (OPC) disponible para su descarga en https://www.ecma-international.org/publications-and-standards/standards/ecma-376/.

Consulte también

Se aplica a

.NET 9 y otras versiones
Producto Versiones
.NET Core 1.0, Core 1.1, 6, 7, 8, 9
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9