Package.CreateRelationship Metoda

Definicja

Tworzy relację na poziomie pakietu z daną częścią.

Przeciążenia

CreateRelationship(Uri, TargetMode, String)

Tworzy relację na poziomie pakietu z częścią o danym identyfikatorze URI, trybie docelowym i typie relacji.

CreateRelationship(Uri, TargetMode, String, String)

Tworzy relację na poziomie pakietu z częścią z danym identyfikatorem URI, trybem docelowym, typem relacji i identyfikatorem (ID).

Przykłady

Poniższy przykład ilustruje tworzenie PackageRelationship między częścią dokumentu głównego i między Package elementem głównym. Aby uzyskać kompletny przykład, zobacz Pisanie przykładu pakietu.

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

Uwagi

Relacja na poziomie pakietu definiuje skojarzenie między pakietem a skojarzona część docelowa lub zasób. Relacja na poziomie pakietu może być jedną z dwóch form.

W relacji pakietu pakiet jest traktowany jako "właściciel" relacji. Po usunięciu pakietu wszystkie relacje należące do pakietu również zostaną usunięte. Proces tworzenia lub usuwania relacji nie zmienia fizycznie części docelowej ani zasobu w żaden sposób.

Aby uzyskać dodatkowe informacje, zobacz specyfikację Open Packaging Conventions (OPC) dostępną do pobrania na stronie https://www.ecma-international.org/publications-and-standards/standards/ecma-376/.

CreateRelationship(Uri, TargetMode, String)

Źródło:
Package.cs
Źródło:
Package.cs
Źródło:
Package.cs

Tworzy relację na poziomie pakietu z częścią o danym identyfikatorze URI, trybie docelowym i typie relacji.

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

Parametry

targetUri
Uri

Jednolity identyfikator zasobu (URI) części docelowej.

targetMode
TargetMode

Wskazuje, czy część docelowa jest Internal lub External do pakietu.

relationshipType
String

Identyfikator URI, który jednoznacznie definiuje rolę relacji.

Zwraca

Relacja na poziomie pakietu z określoną częścią.

Wyjątki

targetUri lub relationshipType ma wartość null.

Część targetUri to PackageRelationship, lub targetMode , a InternaltargetUri jest bezwzględnym identyfikatorem URI.

Wartość parametru targetMode jest nieprawidłowa.

Pakiet nie jest otwarty (Dispose(Boolean) lub Close() został wywołany).

Pakiet jest tylko do odczytu.

Przykłady

W poniższym przykładzie pokazano, jak utworzyć CreateRelationshipPackageRelationship element między elementem a Package częścią dokumentu głównego. Aby uzyskać kompletny przykład, zobacz Pisanie przykładu pakietu.

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

Uwagi

Relacja na poziomie pakietu definiuje skojarzenie między pakietem a skojarzona część docelowa lub zasób. Relacja na poziomie pakietu może być jedną z dwóch form.

  • Między elementem a Package do części docelowej w pakiecie.

  • Między zasobem docelowym Package a poza pakietem.

W relacji pakietu pakiet jest traktowany jako "właściciel" relacji. Po usunięciu pakietu wszystkie relacje należące do pakietu również zostaną usunięte.

CreateRelationship nie zmienia fizycznie części docelowej ani zasobu w żaden sposób.

Celem relacji nie może być inna relacja.

Jeśli targetMode parametr jest określony jako Internal, targetUri musi być względnym identyfikatorem URI, który jest tworzony zgodnie ze specyfikacją składni ogólnej RFC 3986 Uniform Resource Identifier (URI). Wewnętrzny względny identyfikator URI może być ścieżką bezwzględną rozpoczynającą się od znaku ukośnika ("//"), takiego jak "/page1.xaml" lub "/images/picture4.jpg", albo ścieżki względnej, takiej jak ".. /imagespicture1.jpg", który jest rozpoznawany względem katalogu głównego pakietu ("/") jako identyfikatora URI podstawowego.

Jeśli targetMode parametr jest określony jako External, targetUri może być bezwzględnym lub względnym identyfikatorem URI utworzonym zgodnie ze specyfikacją składni ogólnej identyfikatora URI (RFC 3986 Uniform Resource Identifier). http://www.microsoft.com/page2.xml to przykład bezwzględnego identyfikatora URI, który odwołuje się do zewnętrznego zasobu docelowego "page2.xml". "images/picture1.jpg" to przykład względnego identyfikatora URI, który odwołuje się również do zewnętrznego zasobu docelowego "1.jpg", ale który jest rozpoznawany względem identyfikatora URI samego pakietu.

relationshipType musi być identyfikatorem URI, który jest tworzony zgodnie ze specyfikacją składni ogólnej identyfikatora URI (Uniform Resource Identifier) RFC 3986 . W poniższej tabeli przedstawiono identyfikatory URI na poziomie relationshipType pakietu zdefiniowane przez specyfikację Open Packaging Conventions (OPC).

Relacja na poziomie pakietu Identyfikator URI typu relacji
Właściwości podstawowe http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties
Podpis cyfrowy http://schemas.openxmlformats.org/package/2006/relationships/digital-signature/signature
Certyfikat podpisu cyfrowego http://schemas.openxmlformats.org/package/2006/relationships/digital-signature/certificate
Źródło podpisu cyfrowego http://schemas.openxmlformats.org/package/2006/relationships/digital-signature/origin
Miniaturę http://schemas.openxmlformats.org/package/2006/relationships/metadata/thumbnail

Aby uzyskać więcej informacji na temat tworzenia pakietów i relacji pakietów, zobacz sekcję 1.3 specyfikacji Open Packaging Conventions (OPC) dostępną do pobrania pod adresem https://www.ecma-international.org/publications-and-standards/standards/ecma-376/.

Zobacz też

Dotyczy

CreateRelationship(Uri, TargetMode, String, String)

Źródło:
Package.cs
Źródło:
Package.cs
Źródło:
Package.cs

Tworzy relację na poziomie pakietu z częścią z danym identyfikatorem URI, trybem docelowym, typem relacji i identyfikatorem (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

Parametry

targetUri
Uri

Jednolity identyfikator zasobu (URI) części docelowej.

targetMode
TargetMode

Wskazuje, czy część docelowa jest Internal lub External do pakietu.

relationshipType
String

Identyfikator URI, który jednoznacznie definiuje rolę relacji.

id
String

Unikatowy identyfikator XML.

Zwraca

Relacja na poziomie pakietu z określoną częścią.

Wyjątki

targetUri lub relationshipType ma wartość null.

Część targetUri to PackageRelationship, lub targetMode , a InternaltargetUri jest bezwzględnym identyfikatorem URI.

Wartość parametru targetMode jest nieprawidłowa.

Pakiet nie jest otwarty (Dispose(Boolean) lub Close() został wywołany).

Pakiet jest tylko do odczytu.

id nie jest prawidłowym identyfikatorem XML; lub część z określonymi id już występuje w pakiecie.

Przykłady

W poniższym przykładzie pokazano, jak utworzyć CreateRelationshipPackageRelationship element między elementem a Package częścią dokumentu głównego. Aby uzyskać kompletny przykład, zobacz Pisanie przykładu pakietu.

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

Uwagi

Relacja na poziomie pakietu definiuje skojarzenie między pakietem a skojarzona część docelowa lub zasób. Relacja na poziomie pakietu może być jedną z dwóch form.

  • Między elementem a Package do części docelowej w pakiecie.

  • Między zasobem docelowym Package a poza pakietem.

W relacji pakietu pakiet jest traktowany jako "właściciel" relacji. Po usunięciu pakietu wszystkie relacje należące do pakietu również zostaną usunięte.

CreateRelationship nie zmienia fizycznie części docelowej ani zasobu w żaden sposób.

Celem relacji nie może być inna relacja.

id musi być prawidłowym identyfikatorem XML. Typ id to xsd:ID i musi być zgodny z konwencjami nazewnictwa określonymi w specyfikacji Schemat XML Część 2: Specyfikacja typów danych (patrz https://www.w3.org/TR/xmlschema-2/#ID).

Jeśli id zostanie określony jako null unikatowy identyfikator, zostanie wygenerowany automatycznie. Ciąg id określony przez pusty ciąg jest nieprawidłowy.

Jeśli targetMode parametr jest określony jako Internal, targetUri musi być względnym identyfikatorem URI, który jest tworzony zgodnie ze specyfikacją składni ogólnej RFC 3986 Uniform Resource Identifier (URI). Wewnętrzny względny identyfikator URI może być ścieżką bezwzględną rozpoczynającą się od znaku ukośnika ("//"), takiego jak "/page1.xaml" lub "/images/picture4.jpg", albo ścieżki względnej, takiej jak ".. /imagespicture1.jpg", który jest rozpoznawany względem katalogu głównego pakietu ("/") jako identyfikatora URI podstawowego.

Jeśli targetMode parametr jest określony jako External, targetUri może być bezwzględnym lub względnym identyfikatorem URI utworzonym zgodnie ze specyfikacją składni ogólnej identyfikatora URI (RFC 3986 Uniform Resource Identifier). http://www.microsoft.com/page2.xml to przykład bezwzględnego identyfikatora URI, który odwołuje się do zewnętrznego zasobu docelowego "page2.xml". "images/picture1.jpg" to przykład względnego identyfikatora URI, który odwołuje się również do zewnętrznego zasobu docelowego "1.jpg", ale który jest rozpoznawany względem identyfikatora URI samego pakietu.

relationshipType musi być identyfikatorem URI, który jest tworzony zgodnie ze specyfikacją składni ogólnej identyfikatora URI (Uniform Resource Identifier) RFC 3986 . W poniższej tabeli przedstawiono identyfikatory URI na poziomie relationshipType pakietu zdefiniowane przez specyfikację Open Packaging Conventions (OPC).

Relacja na poziomie pakietu Identyfikator URI typu relacji
Właściwości podstawowe http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties
Podpis cyfrowy http://schemas.openxmlformats.org/package/2006/relationships/digital-signature/signature
Certyfikat podpisu cyfrowego http://schemas.openxmlformats.org/package/2006/relationships/digital-signature/certificate
Źródło podpisu cyfrowego http://schemas.openxmlformats.org/package/2006/relationships/digital-signature/origin
Miniaturę http://schemas.openxmlformats.org/package/2006/relationships/metadata/thumbnail

Aby uzyskać dodatkowe informacje na temat tworzenia pakietów i relacji pakietów, zobacz sekcję 1.3 specyfikacji Open Packaging Conventions (OPC) dostępną do pobrania pod adresem https://www.ecma-international.org/publications-and-standards/standards/ecma-376/.

Zobacz też

Dotyczy