Package.CreateRelationship Método
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Crea una relación de nivel de paquete en un elemento especificado.
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). |
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);
' 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)
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/.
- 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, 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
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);
' 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)
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
- DeleteRelationship(String)
- GetRelationship(String)
- GetRelationships()
- GetRelationshipsByType(String)
- RelationshipExists(String)
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 |
- 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, 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
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);
' 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)
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
- CreateRelationship(Uri, TargetMode, String)
- DeleteRelationship(String)
- GetRelationship(String)
- GetRelationships()
- GetRelationshipsByType(String)
- RelationshipExists(String)
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 |
Comentarios de .NET
.NET es un proyecto de código abierto. Seleccione un vínculo para proporcionar comentarios: