URI-Schemas

Es gibt mehrere URI (Uniform Resource Identifier)-Schemen, die Sie verwenden können, um auf Dateien aus Ihrem App Paket, dem App-Ordner oder der Cloud zu verweisen. Sie können auch ein URI-Schema verwenden, um auf Zeichenfolgen zu verweisen, die von den App-Ressourcendateien (.resw) geladen wurden. Sie können diese URI-Schemas in Ihrem Code, in Ihrem XAML-Markup, in Ihrem App-Paketmanifest oder in Ihren Kachel- und Popupbenachrichtigungsvorlagen verwenden.

Allgemeine Features der URI-Schemas

Alle in diesem Thema beschriebenen Schemas folgen typischen URI-Schemaregeln für Normalisierung und Ressourcenabruf. Die generische Syntax eines URI finden Sie unter RFC 3986 .

Alle URI-Schemas definieren den hierarchischen Teil pro RFC 3986 als Autoritäts- und Pfadkomponenten des URI.

URI         = scheme ":" hier-part [ "?" query ] [ "#" fragment ]
hier-part   = "//" authority path-abempty
            / path-absolute
            / path-rootless
            / path-empty

Dies bedeutet, dass ein URI im Wesentlichen drei Komponenten enthält. Unmittelbar nach den beiden Schrägstrichen des URI-Schemas befindet sich eine Komponente (die leer sein kann), die als Autorität bezeichnet wird. Und unmittelbar darauf folgt der Pfad. Wenn Sie den URI http://www.contoso.com/welcome.png als Beispiel verwenden, ist das Schema "http://", die Autorität ist "www.contoso.com" und der Pfad ist "/welcome.png". Ein weiteres Beispiel ist der URI ms-appx:///logo.png, bei dem die Autoritätskomponenten leer sind und einen Standardwert verwenden.

Die Fragmentkomponente wird von der schemaspezifischen Verarbeitung der in diesem Thema erwähnten URIs ignoriert. Während des Ressourcenabrufs und -vergleichs hat die Fragmentkomponente keinen Einfluss. Ebenen über einer bestimmten Implementierung können das Fragment jedoch interpretieren, um eine sekundäre Ressource abzurufen.

Der Vergleich erfolgt nach der Normalisierung aller IRI-Komponenten per Byte.

Unterscheidung nach Groß-/Kleinschreibung und Normalisierung

Alle in diesem Thema beschriebenen URI-Schemas folgen typischen URI-Regeln (RFC 3986) für Normalisierung und Ressourcenabruf für Schemas. Die normalisierte Form dieser URIs behält die Case- und Percent-Decodes von RFC 3986 unreserved characters bei.

Bei allen in diesem Thema beschriebenen URI-Schemas wird die Groß-/Kleinschreibung von Schema, Autorität und Pfad entweder standardmäßig nicht beachtet, oder sie werden vom System auf eine Weise verarbeitet, bei der die Groß-/Kleinschreibung nicht beachtet wird. Hinweis Die einzige Ausnahme von dieser Regel ist die Autorität von, bei der die Schreibung beachtet wird.

ms-appx und ms-appx-web

Verwenden Sie das ms-appx -Schema oder das ms-appx-web URI-Schema, um auf eine Datei zu verweisen, die aus dem Paket Ihrer App stammt (siehe ms-appx). Dateien in Ihrem App-Paket sind in der Regel statische Bilder, Daten, Code und Layoutdateien. Das ms-appx-web Schema greifen auf die gleichen Dateien wie zu ms-appx, jedoch im Webdepartment. Beispiele und weitere Informationen finden Sie unter Verweisen auf ein Bild oder ein anderes Objekt aus XAML-Markup und Code.

Schemaname (ms-appx und ms-appx-web)

Der Name des URI-Schemas ist die Zeichenfolge "ms-appx" oder "ms-appx-web".

ms-appx://
ms-appx-web://

Autorität (ms-appx und ms-appx-web)

Die Autorität ist der Paketidentitätsname, der im Paketmanifest definiert ist. Sie ist daher sowohl im URI- als auch im IRI-Formular (Internationalized Resource Identifier) auf die Zeichen beschränkt, die in einem Paketidentitätsnamen zulässig sind. Der Paketname muss der Name eines der Pakete im Paketabhängigkeitsdiagramm der aktuell ausgeführten App sein.

ms-appx://Contoso.MyApp/
ms-appx-web://Contoso.MyApp/

Wenn ein anderes Zeichen in der Autorität angezeigt wird, tritt beim Abrufen und Vergleichen ein Fehler auf. Der Standardwert für die Autorität ist das Paket der aktuell ausgeführten App.

ms-appx:///
ms-appx-web:///

Benutzerinformationen und Port (ms-appx und ms-appx-web)

Im ms-appx Gegensatz zu anderen gängigen Schemas definiert das Schema keine Benutzerinformationen oder Portkomponenten. Da "@" und ":" nicht als gültige Autoritätswerte zulässig sind, ist die Suche nicht möglich, wenn sie eingeschlossen werden. Bei jedem der folgenden Fehler ist ein Fehler zu sehen.

ms-appx://john@contoso.myapp/default.html
ms-appx://john:password@contoso.myapp/default.html
ms-appx://contoso.myapp:8080/default.html
ms-appx://john:password@contoso.myapp:8080/default.html

Path (ms-appx und ms-appx-web)

Die Path-Komponente entspricht der generischen RFC 3986-Syntax und unterstützt Nicht-ASCII-Zeichen in IRIs. Die Pfadkomponente definiert den logischen oder physischen Dateipfad einer Datei. Diese Datei befindet sich in einem Ordner, der dem installierten Speicherort des App-Pakets für die von der Autorität angegebene App zugeordnet ist.

Wenn der Pfad auf einen physischen Pfad und dateinamen verweist, wird dieses physische Datei asset abgerufen. Wenn jedoch keine solche physische Datei gefunden wird, wird die tatsächliche Ressource, die während des Abrufs zurückgegeben wird, mithilfe der Inhaltsaushandlung zur Laufzeit bestimmt. Diese Bestimmung basiert auf App-, Betriebssystem- und Benutzereinstellungen wie Sprache, Anzeigeskalierenfaktor, Design, hohem Kontrast und anderen Laufzeitkontexten. Beispielsweise kann eine Kombination der Sprachen der App, die Anzeigeeinstellungen des Systems und die Einstellungen für hohen Kontrast des Benutzers beim Bestimmen des tatsächlich abzurufenden Ressourcenwerts berücksichtigt werden.

ms-appx:///images/logo.png

Der obige URI ruft möglicherweise eine Datei im Paket der aktuellen App mit dem folgenden physischen Dateinamen ab.

\Images\fr-FR\logo.scale-100_contrast-white.png

Sie können diese physische Datei natürlich auch abrufen, indem Sie direkt über ihren vollständigen Namen darauf verweisen.

<Image Source="ms-appx:///images/fr-FR/logo.scale-100_contrast-white.png"/>

Bei der Pfadkomponente von wird ms-appx(-web) wie bei generischen URIs die Kleinschreibung beachtet. Wenn jedoch beim zugrunde liegenden Dateisystem, über das auf die Ressource zugegriffen wird, die Groß-/Kleinschreibung nicht beachtet wird, z. B. bei NTFS, wird beim Abrufen der Ressource die Groß-/Kleinschreibung nicht beachtet.

Die normalisierte Form des URI behält die Fall- und Prozentdekodiert (ein "%"-Symbol gefolgt von der zweistelligen hexadezimalen Darstellung) RFC 3986 nicht reservierte Zeichen bei. Die Zeichen "?", "#", "/", "*" und """ (das doppelte Anführungszeichen) müssen in einem Pfad prozentcodiert sein, um Daten wie Datei- oder Ordnernamen darstellen zu können. Alle prozentcodierten Zeichen werden vor dem Abrufen decodiert. Verwenden Sie daher diesen URI, um eine Datei namens Hello#World.html abzurufen.

ms-appx:///Hello%23World.html

Abfrage (ms-appx und ms-appx-web)

Abfrageparameter werden beim Abrufen von Ressourcen ignoriert. Die normalisierte Form von Abfrageparametern behält die Case bei. Abfrageparameter werden während des Vergleichs nicht ignoriert.

ms-appdata

Verwenden Sie das ms-appdata URI-Schema, um auf Dateien zu verweisen, die aus den lokalen, roaming- und temporären Datenordnern der App stammen. Weitere Informationen zu diesen App-Datenordnern finden Sie unter Store und Abrufen von Einstellungen und anderen App-Daten.

Das ms-appdata URI-Schema führt keine Laufzeitinhaltsaushandlung durch, die ms-appdata ausführen. Sie können jedoch auf den Inhalt von ResourceContext.QualifierValues reagieren und die entsprechenden Objekte aus App-Daten laden, indem Sie ihren vollständigen physischen Dateinamen im URI verwenden.

Schemaname (ms-appdata)

Der Name des URI-Schemas ist die Zeichenfolge "ms-appdata".

ms-appdata://

Autorität (ms-appdata)

Die Autorität ist der Paketidentitätsname, der im Paketmanifest definiert ist. Sie ist daher sowohl im URI- als auch im IRI-Formular (Internationalized Resource Identifier) auf die Zeichen beschränkt, die in einem Paketidentitätsnamen zulässig sind. Der Paketname muss der Name des Pakets der aktuell ausgeführten App sein.

ms-appdata://Contoso.MyApp/

Wenn ein anderes Zeichen in der Autorität angezeigt wird, tritt beim Abrufen und Vergleichen ein Fehler auf. Der Standardwert für die Autorität ist das Paket der aktuell ausgeführten App.

ms-appdata:///

Benutzerinformationen und Port (ms-appdata)

Im ms-appdata Gegensatz zu anderen gängigen Schemas definiert das Schema keine Benutzerinformationen oder Portkomponenten. Da "@" und ":" nicht als gültige Autoritätswerte zulässig sind, ist die Suche nicht möglich, wenn sie eingeschlossen werden. Bei jedem der folgenden Fehler ist ein Fehler zu sehen.

ms-appdata://john@contoso.myapp/local/data.xml
ms-appdata://john:password@contoso.myapp/local/data.xml
ms-appdata://contoso.myapp:8080/local/data.xml
ms-appdata://john:password@contoso.myapp:8080/local/data.xml

Path (ms-appdata)

Die Path-Komponente entspricht der generischen RFC 3986-Syntax und unterstützt Nicht-ASCII-Zeichen in IRIs. Innerhalb der Windows.Storage. ApplicationData-Speicherort sind drei reservierte Ordner für lokalen, Roaming- und temporären Zustandsspeicher. Das ms-appdata Schema ermöglicht den Zugriff auf Dateien und Ordner an diesen Speicherorten. Das erste Segment der Pfadkomponente muss den jeweiligen Ordner wie folgt angeben. Daher ist die "pfadleere" Form von "hier-part" nicht legal.

Lokaler Ordner.

ms-appdata:///local/

Temporärer Ordner.

ms-appdata:///temp/

Roamingordner.

ms-appdata:///roaming/

Bei der Pfadkomponente von wird ms-appdata wie bei generischen URIs die Kleinschreibung beachtet. Wenn jedoch beim zugrunde liegenden Dateisystem, über das auf die Ressource zugegriffen wird, die Groß-/Kleinschreibung nicht beachtet wird, z. B. bei NTFS, wird beim Abrufen der Ressource die Groß-/Kleinschreibung nicht beachtet.

Die normalisierte Form des URI behält die Fall- und Prozentdekodiert (ein "%"-Symbol gefolgt von der zweistelligen hexadezimalen Darstellung) RFC 3986 nicht reservierte Zeichen bei. Die Zeichen "?", "#", "/", "*" und """ (das doppelte Anführungszeichen) müssen in einem Pfad prozentcodiert sein, um Daten wie Datei- oder Ordnernamen darstellen zu können. Alle prozentcodierten Zeichen werden vor dem Abrufen decodiert. Verwenden Sie daher diesen URI, um eine lokale Datei namens Hello#World.html abzurufen.

ms-appdata://local/Hello%23World.html

Der Abruf der Ressource und die Identifizierung des Pfadsegments der obersten Ebene werden nach der Normalisierung von Punkten (".. /./b/c"). Aus diesem Grund können URIs sich nicht aus einem der reservierten Ordner herauspunkten. Daher ist der folgende URI nicht zulässig.

ms-appdata:///local/../hello/logo.png

Dieser URI ist jedoch zulässig (obwohl redundant).

ms-appdata:///local/../roaming/logo.png

Abfrage (ms-appdata)

Abfrageparameter werden beim Abrufen von Ressourcen ignoriert. Die normalisierte Form von Abfrageparametern behält die Case bei. Abfrageparameter werden während des Vergleichs nicht ignoriert.

ms-resource

Verwenden Sie das ms-resource URI-Schema, um auf Zeichenfolgen zu verweisen, die aus den Ressourcendateien (RESW) Ihrer App geladen wurden. Beispiele und weitere Informationen zu Ressourcendateien finden Sie unter Lokalisieren von Zeichenfolgen auf der Benutzeroberfläche und im App-Paketmanifest.

Schemaname (ms-resource)

Der Name des URI-Schemas ist die Zeichenfolge "ms-resource".

ms-resource://

Autorität (ms-resource)

Die Autorität ist die Ressourcenzuordnung der obersten Ebene, die im Paketressourcenindex (Package Resource Index, PRI) definiert ist. Dies entspricht in der Regel dem Paketidentitätsnamen, der im Paketmanifest definiert ist. Weitere Informationen finden Sie unter Verpacken von Apps. Sie ist daher sowohl im URI- als auch im IRI-Format (Internationalized Resource Identifier) auf den Satz von Zeichen beschränkt, die in einem Paketidentitätsnamen zulässig sind. Der Paketname muss der Name eines der Pakete im Paketabhängigkeitsdiagramm der aktuell ausgeführten App sein.

ms-resource://Contoso.MyApp/
ms-resource://Microsoft.WinJS.1.0/

Wenn ein anderes Zeichen in der Autorität angezeigt wird, tritt beim Abrufen und Vergleichen ein Fehler auf. Der Standardwert für die Autorität ist der Paketname der aktuell ausgeführten App, bei dem die Groß-/Kleinschreibung beachtet wird.

ms-resource:///

Bei der Autorität wird die Groß-/Kleinschreibung beachtet, und die normalisierte Form behält die Groß-/Kleinschreibung bei. Bei der Suche nach einer Ressource wird die Groß-/Kleinschreibung jedoch nicht beachtet.

Benutzerinformationen und Port (ms-resource)

Im ms-resource Gegensatz zu anderen gängigen Schemas definiert das Schema keine Benutzerinformationen oder Portkomponenten. Da "@" und ":" nicht als gültige Autoritätswerte zulässig sind, schlägt die Suche fehl, wenn sie enthalten sind. Jeder der folgenden Fehler schlägt fehl.

ms-resource://john@contoso.myapp/Resources/String1
ms-resource://john:password@contoso.myapp/Resources/String1
ms-resource://contoso.myapp:8080/Resources/String1
ms-resource://john:password@contoso.myapp:8080/Resources/String1

Pfad (ms-resource)

Der Pfad identifiziert den hierarchischen Speicherort der ResourceMap-Unterstruktur (siehe Ressourcenverwaltungssystem) und der darin angeordneten NamedResource . In der Regel entspricht dies dem Dateinamen (ohne Erweiterung) einer Ressourcendatei (RESW) und dem Bezeichner einer darin enthaltenen Zeichenfolgenressource.

Beispiele und weitere Informationen finden Sie unter Lokalisieren von Zeichenfolgen auf der Benutzeroberfläche und im App-Paketmanifest sowie unter Unterstützung von Kachel- und Popupbenachrichtigungen für Sprache, Skalierung und hohen Kontrast.

Bei der Pfadkomponente von ms-resource wird wie bei generischen URIs die Groß-/Kleinschreibung beachtet. Beim zugrunde liegenden Abruf wird jedoch CompareStringOrdinal mit ignoreCase auf festgelegt.

Die normalisierte Form des URI behält die Fall- und Prozentdecodierung (ein "%"-Symbol gefolgt von der zweistelligen Hexadezimaldarstellung) rfc 3986 nicht bediente Zeichen bei. Die Zeichen "?", "#", "/", "*" und "" (das doppelte Anführungszeichen) müssen in einem Pfad prozentcodiert sein, um Daten wie Datei- oder Ordnernamen darzustellen. Alle prozentcodierten Zeichen werden vor dem Abrufen decodiert. Verwenden Sie daher diesen URI, um eine Zeichenfolgenressource aus einer Ressourcendatei mit dem Namen Hello#World.reswabzurufen.

ms-resource:///Hello%23World/String1

Abfrage (ms-resource)

Abfrageparameter werden beim Abrufen von Ressourcen ignoriert. Die normalisierte Form von Abfrageparametern behält die Case bei. Abfrageparameter werden während des Vergleichs nicht ignoriert. Bei Abfrageparametern wird die Groß-/Kleinschreibung beachtet.

Entwickler bestimmter Komponenten, die über dieser URI-Analyse liegen, können die Abfrageparameter nach Bedarf verwenden.