Package.CreateRelationship Metodo

Definizione

Crea una relazione a livello di pacchetto con una parte specificata.

Overload

CreateRelationship(Uri, TargetMode, String)

Crea una relazione a livello di pacchetto con una parte con un URI specificato, un modalità di destinazione e un tipo di relazione.

CreateRelationship(Uri, TargetMode, String, String)

Crea una relazione a livello di pacchetto a una parte con un determinato URI, modalità di destinazione, tipo di relazione e identificatore (ID).

Esempio

Nell'esempio seguente viene illustrata la creazione di un oggetto tra una PackageRelationship Package e una parte radice del documento. Per l'esempio completo, vedere Scrittura di un esempio di pacchetto.

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

Commenti

Una relazione a livello di pacchetto definisce un'associazione tra il pacchetto e una parte o una risorsa di destinazione associata. Una relazione a livello di pacchetto può essere una di due forme.

  • Tra un Package oggetto e una destinazione PackagePart all'interno del pacchetto.

  • Tra un Package oggetto e una risorsa di destinazione all'esterno del pacchetto.

In una relazione di pacchetto il pacchetto viene considerato il "proprietario" della relazione. Quando il pacchetto viene eliminato, vengono eliminate anche tutte le relazioni di proprietà del pacchetto. Il processo di creazione o eliminazione della relazione non modifica fisicamente la parte o la risorsa di destinazione in alcun modo.

Per altre informazioni, vedere la specifica OPC (Open Packaging Conventions) disponibile per il download all'indirizzo https://www.ecma-international.org/publications-and-standards/standards/ecma-376/.

CreateRelationship(Uri, TargetMode, String)

Crea una relazione a livello di pacchetto con una parte con un URI specificato, un modalità di destinazione e un tipo di relazione.

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

Parametri

targetUri
Uri

URI (Uniform Resource Identifier) della parte di destinazione.

targetMode
TargetMode

Indica se la parte di destinazione è Internal o External al pacchetto.

relationshipType
String

Un URI che definisce in modo univoco il ruolo della relazione.

Restituisce

PackageRelationship

La relazione a livello di pacchetto con la parte specificata.

Eccezioni

targetUri o relationshipType è null.

La parte targetUri è PackageRelationship, o targetMode è Internal e targetUri è un URI assoluto.

Il valore di targetMode non è valido.

Il pacchetto non è aperto (Dispose(Boolean) o Close() è stato chiamato).

Il pacchetto è di sola lettura.

Esempio

Nell'esempio seguente viene illustrato come usare CreateRelationship per creare un PackageRelationship oggetto tra una Package e una parte del documento radice. Per l'esempio completo, vedere Scrittura di un esempio di pacchetto.

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

Commenti

Una relazione a livello di pacchetto definisce un'associazione tra il pacchetto e una parte o una risorsa di destinazione associata. Una relazione a livello di pacchetto può essere una di due forme.

  • Tra un Package oggetto e una parte di destinazione nel pacchetto.

  • Tra un Package oggetto e una risorsa di destinazione all'esterno del pacchetto.

In una relazione di pacchetto il pacchetto viene considerato il "proprietario" della relazione. Quando il pacchetto viene eliminato, vengono eliminate anche tutte le relazioni di proprietà del pacchetto.

CreateRelationship non modifica fisicamente la parte o la risorsa di destinazione in alcun modo.

La destinazione di una relazione non può essere un'altra relazione.

Se targetMode viene specificato come Internal, targetUri deve essere un URI relativo formato in base alla specifica Sintassi generica RFC 3986 Uniform Resource Identifier (URI). L'URI relativo interno può essere un percorso assoluto che inizia con una barra ("/") come "/page1.xaml" o "/images/picture4.jpg" o un percorso relativo, ad esempio ".. /imagespicture1.jpg" che viene risolto nella radice del pacchetto ("/") come URI di base.

Se targetMode viene specificato come External, targetUri può essere un URI assoluto o relativo formato in base alla specifica della sintassi generica RFC 3986 Uniform Resource Identifier (URI). http://www.microsoft.com/page2.xml è un esempio di URI assoluto che fa riferimento a una risorsa di destinazione esterna "page2.xml". "images/picture1.jpg" è un esempio di URI relativo che fa riferimento anche a una risorsa di destinazione esterna "1.jpg", ma che viene risolta con l'URI del pacchetto stesso.

relationshipType deve essere un URI formato in base alla specifica della sintassi generica RFC 3986 Uniform Resource Identifier (URI). La tabella seguente illustra gli URI a livello relationshipType di pacchetto definiti dalla specifica OPC (Open Packaging Conventions).

Relazione a livello di pacchetto URI del tipo di relazione
Proprietà di base http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties
Firma digitale http://schemas.openxmlformats.org/package/2006/relationships/digital-signature/signature
Certificato di firma digitale http://schemas.openxmlformats.org/package/2006/relationships/digital-signature/certificate
Origine firma digitale http://schemas.openxmlformats.org/package/2006/relationships/digital-signature/origin
Anteprima http://schemas.openxmlformats.org/package/2006/relationships/metadata/thumbnail

Per altre informazioni sulla creazione di pacchetti e sulle relazioni tra pacchetti, vedere la sezione 1.3 della specifica OPC (Open Packaging Conventions) disponibile per il download all'indirizzo https://www.ecma-international.org/publications-and-standards/standards/ecma-376/.

Vedi anche

Si applica a

CreateRelationship(Uri, TargetMode, String, String)

Crea una relazione a livello di pacchetto a una parte con un determinato URI, modalità di destinazione, tipo di relazione e identificatore (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

Parametri

targetUri
Uri

URI (Uniform Resource Identifier) della parte di destinazione.

targetMode
TargetMode

Indica se la parte di destinazione è Internal o External al pacchetto.

relationshipType
String

Un URI che definisce in modo univoco il ruolo della relazione.

id
String

Identificatore XML univoco.

Restituisce

PackageRelationship

La relazione a livello di pacchetto con la parte specificata.

Eccezioni

targetUri o relationshipType è null.

La parte targetUri è PackageRelationship, o targetMode è Internal e targetUri è un URI assoluto.

Il valore di targetMode non è valido.

Il pacchetto non è aperto (Dispose(Boolean) o Close() è stato chiamato).

Il pacchetto è di sola lettura.

id non è un identificatore XML valido; o è gia presente nel pacchetto una parte con id specificato.

Esempio

Nell'esempio seguente viene illustrato come usare CreateRelationship per creare un PackageRelationship oggetto tra una Package e una parte del documento radice. Per l'esempio completo, vedere Scrittura di un esempio di pacchetto.

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

Commenti

Una relazione a livello di pacchetto definisce un'associazione tra il pacchetto e una parte o una risorsa di destinazione associata. Una relazione a livello di pacchetto può essere una di due forme.

  • Tra un Package oggetto e una parte di destinazione nel pacchetto.

  • Tra un Package oggetto e una risorsa di destinazione all'esterno del pacchetto.

In una relazione di pacchetto il pacchetto viene considerato il "proprietario" della relazione. Quando il pacchetto viene eliminato, vengono eliminate anche tutte le relazioni di proprietà del pacchetto.

CreateRelationship non modifica fisicamente la parte o la risorsa di destinazione in alcun modo.

La destinazione di una relazione non può essere un'altra relazione.

id deve essere un identificatore XML valido. Il id tipo è xsd:ID e deve seguire le convenzioni di denominazione previste nella specifica XML Schema Part 2: Datatypes (vedere https://www.w3.org/TR/xmlschema-2/#ID).

Se id viene specificato come null ID univoco, verrà generato automaticamente. Un id oggetto specificato da una stringa vuota non è valido.

Se targetMode viene specificato come Internal, targetUri deve essere un URI relativo formato in base alla specifica Sintassi generica RFC 3986 Uniform Resource Identifier (URI). L'URI relativo interno può essere un percorso assoluto che inizia con una barra ("/") come "/page1.xaml" o "/images/picture4.jpg" o un percorso relativo, ad esempio ".. /imagespicture1.jpg" che viene risolto nella radice del pacchetto ("/") come URI di base.

Se targetMode viene specificato come External, targetUri può essere un URI assoluto o relativo formato in base alla specifica della sintassi generica RFC 3986 Uniform Resource Identifier (URI). http://www.microsoft.com/page2.xml è un esempio di URI assoluto che fa riferimento a una risorsa di destinazione esterna "page2.xml". "images/picture1.jpg" è un esempio di URI relativo che fa riferimento anche a una risorsa di destinazione esterna "1.jpg", ma che viene risolta con l'URI del pacchetto stesso.

relationshipType deve essere un URI formato in base alla specifica della sintassi generica RFC 3986 Uniform Resource Identifier (URI). La tabella seguente illustra gli URI a livello relationshipType di pacchetto definiti dalla specifica OPC (Open Packaging Conventions).

Relazione a livello di pacchetto URI del tipo di relazione
Proprietà di base http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties
Firma digitale http://schemas.openxmlformats.org/package/2006/relationships/digital-signature/signature
Certificato di firma digitale http://schemas.openxmlformats.org/package/2006/relationships/digital-signature/certificate
Origine firma digitale http://schemas.openxmlformats.org/package/2006/relationships/digital-signature/origin
Anteprima http://schemas.openxmlformats.org/package/2006/relationships/metadata/thumbnail

Per altre informazioni sulla creazione di pacchetti e sulle relazioni tra pacchetti, vedere la sezione 1.3 della specifica OPC (Open Packaging Conventions) disponibile per il download all'indirizzo https://www.ecma-international.org/publications-and-standards/standards/ecma-376/.

Vedi anche

Si applica a