ContentType
Establecer esta propiedad en un elemento indica que el contenido del elemento se trata como una codificación base64 del tipo MIME o tipo de contenido especificado y se indexa mediante el controlador para ese tipo de contenido.
<element
sc:ContentType= "application/hta" | "application/mac-binhex40" | "application/vnd.ms-xpsdocument"
| "application/windows-appcontent+xml" | "application/x-compress" | "application/x-compressed"
| "application/x-gzip" | "application/x-jtx+xps" | "application/x-latex"
| "application/x-mplayer2" | "application/x-ms-wmz" | "application/x-stuffit"
| "application/x-tar" | "application/x-wmplayer" | "application/x-zip-compressed"
| "application/xml" | "audio/aiff" | "audio/basic" | "audio/mid" | "audio/midi"
| "audio/mp3" | "audio/mpeg" | "audio/mpegurl" | "audio/mpg" | "audio/wav"
| "audio/x-aiff" | "audio/x-mid" | "audio/x-midi" | "audio/x-mp3"
| "audio/x-mpeg" | "audio/x-mpegurl" | "audio/x-mpg" | "audio/x-ms-wax"
| "audio/x-ms-wma" | "audio/x-wav" | "image/bmp" | image/gif"
| "image/jpeg" | "image/pjpeg" | "image/png" | "image/vnd.ms-photo"
| "image/x-emf" | "image/x-icon" | "image/x-png" | "image/x-wmf"
| "midi/mid" | "model/vnd.dwfx+xps" | "model/vnd.easmx+xps"
| "model/vnd.edrwx+xps" | "model/vnd.eprtx+xps" | "pkcs7-mime"
| "text/css" | "text/html" | "text/plain" | "text/xml"
| "video/avi" | "video/mpeg" | "video/mpg" | "video/msvideo"
| "video/quicktime" | "video/x-mpeg" | "video/x-mpeg2a"
| "video/x-ms-asf" | "video/x-ms-asf-plugin" | "video/x-ms-wm"
| "video/x-ms-wmv" | "video/x-ms-wmx" | "video/x-ms-wvx"
| "video/x-msvideo"
xmlns:sc="http://schemas.microsoft.com/Search/2013/ApplicationContent">
</element>
Tipo de datos
Este atributo acepta uno de los siguientes valores:
application/hta
application/mac-binhex40
application/vnd.ms-xpsdocument
application/windows-appcontent+xml
application/x-compress
application/x-compressed
application/x-gzip
application/x-jtx+xps
application/x-latex
application/x-mplayer2
application/x-ms-wmz
application/x-stuffit
application/x-tar
application/x-wmplayer
application/x-zip-compressed
application/xml
audio/aiff
audio/basic
audio/mid
audio/midi
audio/mp3
audio/mpeg
audio/mpegurl
audio/mpg
audio/wav
audio/x-aiff
audio/x-mid
audio/x-midi
audio/x-mp3
audio/x-mpeg
audio/x-mpegurl
audio/x-mpg
audio/x-ms-wax
audio/x-ms-wma
audio/x-wav
image/bmp
image/gif
image/jpeg
image/pjpeg
image/png
image/vnd.ms-photo
image/x-emf
image/x-icon
image/x-png
image/x-wmf
midi/mid
model/vnd.dwfx+xps
model/vnd.easmx+xps
model/vnd.edrwx+xps
model/vnd.eprtx+xps
pkcs7-mime
text/css
text/html
text/plain
text/xml
video/avi
video/mpeg
video/mpg
video/msvideo
video/quicktime
video/x-mpeg
video/x-mpeg2a
video/x-ms-asf
video/x-ms-asf-plugin
video/x-ms-wm
video/x-ms-wmv
video/x-ms-wmx
video/x-ms-wvx
video/x-msvideo
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 desee.
<?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 Windows Search para indexar el contenido de elementos arbitrarios. Solo tiene que usar el atributo IndexableContent para decir a Search que 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.
Requisitos
Cliente mínimo compatible |
Windows 8.1 [solo aplicaciones de escritorio] |
Servidor mínimo compatible |
Windows Server 2012 R2 [solo aplicaciones de escritorio] |
Consulte también