Condividi tramite


Schemi URI

Esistono diversi schemi URI (Uniform Resource Identifier) che puoi usare per fare riferimento ai file forniti dal pacchetto dell'app, dalle cartelle di dati dell'app o dal cloud. Puoi inoltre usare uno schema URI per fare riferimento a stringhe caricate dai file di risorse (con estensione resw) dell'app. Puoi usare questi schemi URI nel codice, nel markup XAML, nel manifesto del pacchetto dell'app o nei modelli di notifica di tipo riquadro e avviso popup.

Funzionalità comuni degli schemi URI

Tutti gli schemi descritti in questo argomento seguono le regole tipiche dello schema URI per la normalizzazione e il recupero delle risorse. Vedere RFC 3986 per la sintassi generica di un URI.

Tutti gli schemi URI definiscono la parte gerarchica per RFC 3986 come componenti autorità e percorso dell'URI.

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

Ciò significa che esistono essenzialmente tre componenti per un URI. Subito dopo le due barre dello schema URI è un componente (che può essere vuoto) denominato autorità. E subito dopo che è il percorso. Prendendo l'URI http://www.contoso.com/welcome.png come esempio, lo schema è "http://", l'autorità è "www.contoso.com" e il percorso è "/welcome.png". Un altro esempio è l'URI ms-appx:///logo.png, dove i componenti dell'autorità sono vuoti e accettano un valore predefinito.

Il componente frammento viene ignorato dall'elaborazione specifica dello schema degli URI menzionati in questo argomento. Durante il recupero e il confronto delle risorse, il componente frammento non ha alcun effetto. Tuttavia, i livelli sopra l'implementazione specifica possono interpretare il frammento per recuperare una risorsa secondaria.

Il confronto avviene in byte per byte dopo la normalizzazione di tutti i componenti IRI.

Distinzione tra maiuscole e minuscole e normalizzazione

Tutti gli schemi URI descritti in questo argomento seguono le regole URI tipiche (RFC 3986) per la normalizzazione e il recupero delle risorse per gli schemi. La forma normalizzata di questi URI mantiene maiuscole e minuscole e decodifica in percentuale I caratteri RFC 3986 senza riserva.

Per tutti gli schemi URI descritti in questo argomento, schema, autorità e percorso non fanno distinzione tra maiuscole e minuscole per standard oppure vengono elaborati dal sistema in modo senza distinzione tra maiuscole e minuscole. Nota L'unica eccezione a tale regola è l'autorità di ms-resource, che fa distinzione tra maiuscole e minuscole.

ms-appx e ms-appx-web

Usa lo ms-appx schema URI o ms-appx-web per fare riferimento a un file proveniente dal pacchetto dell'app (vedi Creazione di pacchetti di app). I file nel pacchetto dell'app sono in genere immagini statiche, dati, codice e file di layout. Lo ms-appx-web schema accede agli stessi file di ms-appx, ma nel raggruppamento Web. Per esempi e altre info, vedi Fare riferimento a un'immagine o a un altro asset dal markup e dal codice XAML.

Nome schema (ms-appx e ms-appx-web)

Il nome dello schema URI è la stringa "ms-appx" o "ms-appx-web".

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

Autorità (ms-appx e ms-appx-web)

L'autorità è il nome dell'identità del pacchetto definito nel manifesto del pacchetto. È pertanto limitato sia nel formato URI che IRI (Internationalized Resource Identifier) al set di caratteri consentiti in un nome di identità del pacchetto. Il nome del pacchetto deve essere il nome di uno dei pacchetti nel grafico delle dipendenze del pacchetto dell'app in esecuzione corrente.

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

Se nell'autorità viene visualizzato un altro carattere, il recupero e il confronto hanno esito negativo. Il valore predefinito per l'autorità è il pacchetto dell'app attualmente in esecuzione.

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

Informazioni utente e porta (ms-appx e ms-appx-web)

Lo ms-appx schema, a differenza di altri schemi popolari, non definisce un componente di porta o informazioni utente. Poiché "@" e ":" non sono consentiti come valori di autorità validi, la ricerca avrà esito negativo se sono incluse. Ognuna delle seguenti operazioni ha esito negativo.

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

Percorso (ms-appx e ms-appx-web)

Il componente path corrisponde alla sintassi RFC 3986 generica e supporta caratteri non ASCII in IRIs. Il componente path definisce il percorso logico o fisico di un file. Tale file si trova in una cartella associata al percorso installato del pacchetto dell'app, per l'app specificata dall'autorità.

Se il percorso fa riferimento a un percorso fisico e a un nome di file, tale asset di file fisico viene recuperato. Ma se non viene trovato alcun file fisico di questo tipo, la risorsa effettiva restituita durante il recupero viene determinata usando la negoziazione del contenuto in fase di esecuzione. Questa determinazione si basa su impostazioni dell'app, del sistema operativo e dell'utente, ad esempio lingua, fattore di scala di visualizzazione, tema, contrasto elevato e altri contesti di runtime. Ad esempio, una combinazione delle lingue dell'app, le impostazioni di visualizzazione del sistema e le impostazioni a contrasto elevato dell'utente possono essere prese in considerazione quando si determina il valore effettivo della risorsa da recuperare.

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

L'URI precedente può effettivamente recuperare un file all'interno del pacchetto dell'app corrente con il nome file fisico seguente.

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

Naturalmente è anche possibile recuperare lo stesso file fisico facendo riferimento direttamente al nome completo.

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

Il componente del percorso di ms-appx(-web) è, ad esempio URI generici, con distinzione tra maiuscole e minuscole. Tuttavia, quando il file system sottostante con cui si accede alla risorsa non fa distinzione tra maiuscole e minuscole, ad esempio per NTFS, il recupero della risorsa viene eseguito senza distinzione tra maiuscole e minuscole.

La forma normalizzata dell'URI mantiene la distinzione tra maiuscole e minuscole e decodifica percentuale (un simbolo "%" seguito dalla rappresentazione esadecimale a due cifre) RFC 3986 caratteri non necessari. I caratteri "?", "#", "/", "*" e "" (carattere virgolette doppie) devono essere codificati in percentuale in un percorso per rappresentare dati come i nomi di file o cartelle. Tutti i caratteri con codifica percentuale vengono decodificati prima del recupero. Pertanto, per recuperare un file denominato Hello#World.html, usare questo URI.

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

Query (ms-appx e ms-appx-web)

I parametri di query vengono ignorati durante il recupero delle risorse. La forma normalizzata di parametri di query mantiene la distinzione tra maiuscole e minuscole. I parametri di query non vengono ignorati durante il confronto.

ms-appdata

Usa lo ms-appdata schema URI per fare riferimento ai file provenienti dalle cartelle dati locali, mobili e temporanee dell'app. Per altre info sulle cartelle di dati dell'applicazione, vedi Archiviare e recuperare le impostazioni e altri dati dell'app.

Lo ms-appdata schema URI non esegue la negoziazione del contenuto di runtime eseguita da ms-appx e ms-appx-web . Tuttavia, puoi rispondere al contenuto di ResourceContext.QualifierValues e caricare gli asset appropriati dai dati dell'app usando il nome completo del file fisico nell'URI.

Nome schema (ms-appdata)

Il nome dello schema URI è la stringa "ms-appdata".

ms-appdata://

Autorità (ms-appdata)

L'autorità è il nome dell'identità del pacchetto definito nel manifesto del pacchetto. È pertanto limitato sia nel formato URI che IRI (Internationalized Resource Identifier) al set di caratteri consentiti in un nome di identità del pacchetto. Il nome del pacchetto deve essere il nome del pacchetto dell'app in esecuzione corrente.

ms-appdata://Contoso.MyApp/

Se nell'autorità viene visualizzato un altro carattere, il recupero e il confronto hanno esito negativo. Il valore predefinito per l'autorità è il pacchetto dell'app attualmente in esecuzione.

ms-appdata:///

Informazioni utente e porta (ms-appdata)

Lo ms-appdata schema, a differenza di altri schemi popolari, non definisce un componente di porta o informazioni utente. Poiché "@" e ":" non sono consentiti come valori di autorità validi, la ricerca avrà esito negativo se sono incluse. Ognuna delle seguenti operazioni ha esito negativo.

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

Percorso (ms-appdata)

Il componente path corrisponde alla sintassi RFC 3986 generica e supporta caratteri non ASCII in IRIs. All'interno di Windows.Archiviazione. ApplicationData location are three reserved folders for local, roaming, and temporary state storage. Lo ms-appdata schema consente l'accesso a file e cartelle in tali posizioni. Il primo segmento del componente di percorso deve specificare la cartella specifica nel modo seguente. Pertanto la forma "path-empty" di "gerarchia" non è legale.

Local folder.

ms-appdata:///local/

Cartella temporanea.

ms-appdata:///temp/

Cartella mobile.

ms-appdata:///roaming/

Il componente del percorso di ms-appdata è, ad esempio URI generici, con distinzione tra maiuscole e minuscole. Tuttavia, quando il file system sottostante con cui si accede alla risorsa non fa distinzione tra maiuscole e minuscole, ad esempio per NTFS, il recupero della risorsa viene eseguito senza distinzione tra maiuscole e minuscole.

La forma normalizzata dell'URI mantiene la distinzione tra maiuscole e minuscole e decodifica percentuale (un simbolo "%" seguito dalla rappresentazione esadecimale a due cifre) RFC 3986 caratteri non necessari. I caratteri "?", "#", "/", "*" e "" (carattere virgolette doppie) devono essere codificati in percentuale in un percorso per rappresentare dati come i nomi di file o cartelle. Tutti i caratteri con codifica percentuale vengono decodificati prima del recupero. Pertanto, per recuperare un file locale denominato Hello#World.html, usare questo URI.

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

Il recupero della risorsa e l'identificazione del segmento di percorso principale vengono gestiti dopo la normalizzazione dei punti (".. /./b/c"). Pertanto, gli URI non possono puntarsi da una delle cartelle riservate. Pertanto, il seguente URI non è consentito.

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

Ma questo URI è consentito (anche se ridondante).

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

Query (ms-appdata)

I parametri di query vengono ignorati durante il recupero delle risorse. La forma normalizzata di parametri di query mantiene la distinzione tra maiuscole e minuscole. I parametri di query non vengono ignorati durante il confronto.

ms-resource

Puoi inoltre usare uno ms-resource schema URI per fare riferimento a stringhe caricate dai file di risorse (con estensione resw) dell'app. Per esempi e altre info sui file di risorse, vedi Localizzare le stringhe nell'interfaccia utente e nel manifesto del pacchetto dell'app.

Nome schema (ms-resource)

Il nome dello schema URI è la stringa "ms-resource".

ms-resource://

Autorità (ms-resource)

L'autorità è la mappa delle risorse di primo livello definita nel pri (Package Resource Index), che in genere corrisponde al nome dell'identità del pacchetto definito nel manifesto del pacchetto. Vedere Creazione di pacchetti delle app. È pertanto limitato sia nel formato URI che IRI (Internationalized Resource Identifier) al set di caratteri consentiti in un nome di identità del pacchetto. Il nome del pacchetto deve essere il nome di uno dei pacchetti nel grafico delle dipendenze del pacchetto dell'app in esecuzione corrente.

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

Se nell'autorità viene visualizzato un altro carattere, il recupero e il confronto hanno esito negativo. Il valore predefinito per l'autorità è il nome del pacchetto con distinzione tra maiuscole e minuscole dell'app attualmente in esecuzione.

ms-resource:///

L'autorità fa distinzione tra maiuscole e minuscole e il formato normalizzato mantiene la relativa distinzione tra maiuscole e minuscole. La ricerca di una risorsa, tuttavia, avviene senza distinzione tra maiuscole e minuscole.

Informazioni utente e porta (ms-resource)

Lo ms-resource schema, a differenza di altri schemi popolari, non definisce un componente di porta o informazioni utente. Poiché "@" e ":" non sono consentiti come valori di autorità validi, la ricerca avrà esito negativo se sono incluse. Ognuna delle seguenti operazioni ha esito negativo.

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

Percorso (ms-resource)

Il percorso identifica la posizione gerarchica del sottoalbero ResourceMap (vedere Sistemadi gestione risorse) e namedResource al suo interno. In genere, corrisponde al nome file (escluso l'estensione) di un file di risorse (con estensione resw) e all'identificatore di una risorsa stringa al suo interno.

Per esempi e altre info, vedi Localizzare le stringhe nell'interfaccia utente e nel manifesto del pacchetto dell'app e il supporto delle notifiche di tipo riquadro e avviso popup per lingua, scalabilità e contrasto elevato.

Il componente del percorso di ms-resource è, ad esempio URI generici, con distinzione tra maiuscole e minuscole. Tuttavia, il recupero sottostante esegue compareStringOrdinal con ignoreCase impostato su true.

La forma normalizzata dell'URI mantiene la distinzione tra maiuscole e minuscole e decodifica percentuale (un simbolo "%" seguito dalla rappresentazione esadecimale a due cifre) RFC 3986 caratteri non necessari. I caratteri "?", "#", "/", "*" e "" (carattere virgolette doppie) devono essere codificati in percentuale in un percorso per rappresentare dati come i nomi di file o cartelle. Tutti i caratteri con codifica percentuale vengono decodificati prima del recupero. Per recuperare una risorsa stringa da un file di risorse denominato Hello#World.resw, usare questo URI.

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

Query (ms-resource)

I parametri di query vengono ignorati durante il recupero delle risorse. La forma normalizzata di parametri di query mantiene la distinzione tra maiuscole e minuscole. I parametri di query non vengono ignorati durante il confronto. I parametri di query vengono confrontati con distinzione tra maiuscole e minuscole.

Gli sviluppatori di componenti specifici sovrapposti a questo analisi URI possono scegliere di usare i parametri di query in base alle esigenze.