Propiedades (esquema de contenido de la aplicación)
Contiene propiedades que describen el elemento en el Windows search.
Jerarquía de elemento
<Propiedades>
Sintaxis
<Properties>
<!-- Child elements -->
( Name
& Keywords?
& Comment?
& AdditionalProperties?
)
</Properties>
Clave
?
opcional (cero o uno)
&
conector de intercalación (puede producirse en cualquier orden)
Atributos y elementos
Atributos
Ninguno.
Elementos secundarios
Elemento secundario | Descripción |
---|---|
AdditionalProperties | Contiene propiedades adicionales que describen el elemento. |
Comment | Contiene un objeto System.Comment que describe el elemento. |
Palabras clave | Contiene system.keywords que describen el elemento. |
Nombre | Especifica el objeto System.ItemNameSystem.ItemNameDisplay \ del elemento. |
Elementos primarios
Este elemento más externo (documento) no puede estar incluido en ningún otro elemento.
Ejemplos
En este ejemplo se muestra un archivo appcontent-ms simple que describe un elemento denominado "Sample 1".
Observe que el archivo contiene elementos no definidos por el esquema appcontent-ms: IndexerSampleInformation
y IndexerSampleSpecificElement
. El archivo appcontent-ms debe tener un nodo raíz que encapsula todos los datos que se indexen, pero puede dar nombre a ese nodo todo lo que quiera.
<?xml version="1.0" encoding="utf-8"?>
<IndexerSampleInformation>
<Properties xmlns="http://schemas.microsoft.com/Search/2013/ApplicationContent">
<Name>Sample 1</Name>
<Keywords>
<Keyword xml:lang="en-US">Sample 1 - keyword 1</Keyword>
<Keyword>Sample 1 - keyword 2</Keyword>
</Keywords>
<Comment>Sample 1 comment</Comment>
<AdditionalProperties>
<Property Key="System.Title">Sample 1 Title</Property>
<Property xml:lang="en-US" Key="System.Contact.EmailAddresses">
<Value>bryan@contoso.com</Value>
<Value>vincent@contoso.com</Value>
</Property>
</AdditionalProperties>
</Properties>
<IndexerSampleSpecificElement sc:IndexableContent="true"
xmlns:sc="http://schemas.microsoft.com/Search/2013/ApplicationContent">
The text included here will be indexed, enabling full-text search.
</IndexerSampleSpecificElement>
</IndexerSampleInformation>
Incluso puede decir a Windows Search que indexe el contenido de elementos arbitrarios. Solo tiene que usar el atributo IndexableContent para que Search indexe el contenido. En el ejemplo anterior, Windows Search indexará el contenido de IndexerSampleSpecificElement porque el atributo IndexableContent está establecido en true:
<IndexerSampleSpecificElement sc:IndexableContent="true"
xmlns:sc="http://schemas.microsoft.com/Search/2013/ApplicationContent">
The text included here will be indexed, enabling full-text search.
</IndexerSampleSpecificElement>
La búsqueda tratará el contenido como contenido de texto de forma predeterminada; si el contenido es base64, use el atributo ContentType para especificar el tipo MIME.
En el ejemplo siguiente se muestra cómo copiar un archivo appcontent-ms en la carpeta LocalFolder\Indexed de la aplicación. El código copia los archivos que encuentre en la carpeta appcontent-ms de la aplicación en la carpeta LocalFolder\Indexed. (También puede crear nuevos archivos appcontent-ms directamente en la carpeta Indexed en lugar de copiarlos desde otra ubicación).
/// <summary>
/// For the purposes of this sample, the appcontent-ms files are stored in an "appcontent-ms" folder in the
/// install directory. These are then copied into the app's "LocalState\Indexed" folder, which exposes them
/// to the indexer.
/// </summary>
public async static Task<string> AddAppContentFilesToIndexedFolder()
{
var localFolder = Windows.Storage.ApplicationData.Current.LocalFolder;
var installDirectory = Windows.ApplicationModel.Package.Current.InstalledLocation;
var outputString = "Items added to the \"Indexed\" folder:";
var appContentFolder = await installDirectory.GetFolderAsync("appcontent-ms");
var indexedFolder = await localFolder.CreateFolderAsync(
"Indexed", Windows.Storage.CreationCollisionOption.OpenIfExists);
var files = await appContentFolder.GetFilesAsync();
foreach (var file in files)
{
outputString += "\n" + file.DisplayName + file.FileType;
await file.CopyAsync(indexedFolder,
file.Name, Windows.Storage.NameCollisionOption.ReplaceExisting);
}
return outputString;
}
// For the purposes of this sample, the appcontent-ms files are stored in an "appcontent-ms" folder
// in the install directory. These are then copied into the app's "LocalState\Indexed" folder,
// which exposes them to the indexer.
function _addAppContentFilesToIndexedFolder() {
var localFolder = appData.localFolder,
appcontentFolder,
indexedFolder,
installDirectory = Windows.ApplicationModel.Package.current.installedLocation;
var output = "Items added to the \"Indexed\" folder:\n";
installDirectory.getFolderAsync("appcontent-ms").then(function (retrievedAppcontentFolder) {
appcontentFolder = retrievedAppcontentFolder;
return localFolder.createFolderAsync(
"Indexed", Windows.Storage.CreationCollisionOption.openIfExists);
}).then(function (retrievedIndexedFolder) {
indexedFolder = retrievedIndexedFolder;
return appcontentFolder.getFilesAsync(appcontentFolder);
}).then(function (files) {
var promiseArray = [];
for (var i = 0, len = files.length; i < len; i++) {
promiseArray[i] = files[i].copyAsync(indexedFolder,
files[i].name, Windows.Storage.NameCollisionOption.replaceExisting);
output += files[i].displayName + files[i].fileType;
if (i < len - 1) {
output += "\n";
}
}
return WinJS.Promise.join(promiseArray);
}).done(function () {
WinJS.log && WinJS.log(output, "sample", "status");
});
}
Para obtener el código completo, vea el ejemplo de indexador.
Consulte también
Requisitos
Value | |
---|---|
Espacio de nombres | http://schemas.microsoft.com/Search/2013/ApplicationContent |