API de migration d’importation SharePoint (CreationMigrationJob)SharePoint Import Migration API (CreationMigrationJob)

Documentation de l’APIAPI Documention

La description d’API suivante est basée sur l’utilisation du modèle objet SharePoint côté client (CSOM).The following API description is based upon use of the SharePoint Client Side Object Model (CSOM). Nous recommandons l’utilisation de packs NuGet lorsque vous référencez CSOM dans votre solution.We do recommend using NuGet packages when you reference CSOM in your solution.

Vous trouverez la dernière version du package du modèle objet SharePoint côté client CSOM à partir de la galerie NuGet.You can find latest version of the SharePoint Online Client Side Object Model (CSOM) package from the NuGet gallery. Utilisez l’ID dans la propriété Microsoft.SharePointOnline.CSOM.Use the ID Microsoft.SharePointOnline.CSOM.

Important

Modification en attente : Les fichiers de taille supérieure à 15 Go doivent désormais créer la somme de contrôle obligatoire à l’aide de QuickXorHash.Pending change: Files larger than 15 GB must now create the required checksum using QuickXorHash. Nous vous fournissons un exemple ici.We have provided an example here.

La méthode antérieure MD5Hash demeure requise pour les fichiers de moins de 2 Go. Cette exigence sera toutefois supprimée à un moment donné dans le futur.The previous method of MD5Hash is still required for files smaller than 2 GB; however this requirement will be removed at some point in the future.

MéthodesMethods

CreateMigrationJobCreateMigrationJob

Cette méthode crée un nouveau travail d’importation de migration et le met en attente pour traitement ultérieur par un travail de minuteur distinct.This method creates a new migration import job and queues it up for later processing by a separate timer job. Le travail utilisera un pack d’importation bien formé (format prédéfini) situé dans le conteneur de stockage BLOB Azure spécifié dans cette méthode.The job will consume a well formed (pre-defined format) import package that is located in the Azure Blob Storage Containers specified in this method. SLA traitement de travail de migration est contrôlé via une file d’attente préconfigurée et des paramètres de limitation de chargement de travail, et il n’y a aucune SLA garantie ni temps de retour pour une tâche soumise.The SLA for migration job processing is be controlled through pre-configured queue and work load throttling settings, and there is no guaranteed SLA or return time for a submitted job.

SyntaxeSyntax

public Guid CreateMigrationJob(
    Guid gWebId,
    string azureContainerSourceUri,
    string azureContainerManifestUri,
    string azureQueueReportUri)

ParamètresParameters

gWebIDgWebID

L’identificateur unique du site web de destination ciblé pour l’importation de pack.The unique identifier of the destination web targeted for the package import. Les informations supplémentaires et identifiants pour l’importation sont spécifiés dans le pack d’importation.Additional information and identifiers for the import are specified within the import package itself. Cet identificateur est accessible par programme en interrogeant le web cible à l’aide des appels csom.This identifier can be found programmatically by querying the target web using CSOM calls.

azureContainerSourceUriazureContainerSourceUri

L’URL valide, y compris les jetons SAS pour accéder au conteneur de stockage Azure Blob qui contient les fichiers binaires de bloc de type.The valid URL including SAS token for accessing the Azure Blob Storage Container which contains the binary files of type block. Les jetons SAS doivent avoir été créée avec uniquement des permissions Lecture et Liste ou la tâche de migration échouera.The SAS token must have been created with only Read and List permissions or the migration job will fail. Les jetons SAS doivent au moins disposer d’une durée de vie qui commence au moment où la tâche a été envoyée, avec un délai raisonnable pour une importation réussie.The SAS token should at least have a lifetime that starts no later than when the job was submitted, until a reasonable time for successful import to have concluded.

Les autorisations requises sont les suivantes dans l’API de stockage Azure :The required permissions are as follows in the Azure Storage API:

(SharedAccessBlobPermissions.Read | SharedAccessBlobPermissions.List)

Remarque : la modification pour appliquer des autorisations de lecture et de liste sur le jeton SAS sera effectuée dans une future version.Note: The change to enforce Read and List permissions on the SAS token is coming in a future build. D’ici là, elle ne sera pas appliquée.Until then it will not be enforced. Toutefois, il est recommandé d’utiliser ces valeurs.However, it is a best practice to use these values.

Tous les fichiers dans le conteneur doivent avoir au moins un instantané unique qui leur est appliqué pour vous assurer qu’aucune modification d’un fichier ne peut être effectuée par le client pendant l’importation.All files in the container must have at least a single snapshot applied to them to ensure that no file modification is made by the customer during the import. Tous les fichiers qui ne disposent pas d’un instantané seront ignorés lors de l’importation et auront une erreur déclarée, bien que la tâche tentera de continuer l’importation.Any file that does not have a snapshot will be skipped during import and have an error thrown, although the job will attempt to continue the import. Le pipeline d’importation utilise le dernier instantané du fichier disponible au moment de l’importation.The import pipeline will use the latest snapshot of the file available at the time of import. Voici un exemple de code qui peut être utilisé pour créer un instantané dans un fichier une fois qu’il a été téléchargé vers un Stockage Blob Azure :The following is an example of the code that might be used to create a snapshot on a file after it is uploaded to Azure Blob Storage:

CloudBlockBlob blob = blobContainerObj.GetBlockBlobReference(file);
blob.UploadFromStream(stm);
blob.CreateSnapshot();

Notes

La modification pour demander et utiliser les derniers instantanés sur tous les fichiers arrive dans une build future et en attendant est ignorée.The change to require and use the latest SnapShots on all files is coming in a future build, and until then will be ignored.

azureContainerManifestUriazureContainerManifestUri

L’URL valide, y compris les jetons SAS pour accéder au conteneur de stockage Azure Blob qui contient les objets blob de bloc pour le manifeste et un autre pack décrivant les fichiers XML.The valid URL including SAS token for accessing the Azure Blob Storage Container which contains the block blobs for the manifest and other package describing XML files. Cet emplacement est également utilisé pour la sortie de journal.This location will also be used for the log output. Ce conteneur ne peut pas être identique à celui utilisé pour l’azureContainerSourceUri.This container cannot be the same as the one used for the azureContainerSourceUri. Les jetons SAS doivent avoir été créés avec uniquement des permissions Écriture et Liste ou la tâche de migration échouera.The SAS token must have been created with only Read, List and Write permissions or the migration job will fail. Les jetons SAS doivent au moins disposer d’une durée de vie qui commence au moment où la tâche a été envoyée, avec un délai raisonnable pour une importation réussie.The SAS token should at least have a lifetime that starts no later than when the job was submitted, until a reasonable time for successful import to have concluded.

Notes

La modification pour appliquer des autorisations de lecture, liste et écriture sur le jeton SAS sera dans une future version et jusque là n'est pas appliquée, toutefois, il est recommandé d’utiliser ces valeurs.The change to enforce Read, List and Write permissions on the SAS token is coming in a future build, and until then will be not be enforced, however it is best practice to use these values. Si un problème survient dans une version actuelle, essayez de supprimer l’autorisation de liste comme une solution de contournement temporaire, en notant qu’elle sera bientôt requise.If an issue arises using a current build, try removing the List permission as a temporary workaround, noting that it will become required soon.

Tous les fichiers dans le conteneur doivent avoir au moins un instantané unique qui leur est appliqué pour vous assurer qu’aucune modification d’un fichier ne peut être effectuée par le client pendant l’importation.All files in the container must have at least a single snapshot applied to them to ensure that no file modification is made by the customer during the import. N’importe quel fichier qui ne dispose pas d’un instantané causera des échecs pendant l’importation et déclarera des erreurs, faisant potentiellement échouer la tâche de migration entière.Any file that does not have a snapshot will cause failures during the import and have errors thrown, potentially failing the entire migration job.

Notes

La modification pour demander et utiliser les derniers instantanés sur tous les fichiers arrive dans une build future.The change to require and use the latest SnapShots on all files is coming in a future build. En attendant ils seront ignorés.Until then they will be ignored.

azureQueueReportUriazureQueueReportUri

L’URL valide, y compris les jetons SAS pour accéder à la file d’attente Azure fournie à l’utilisateur utilisée pour renvoyer les notifications de l’avancement de tâche de migration.The valid URL including SAS token for accessing the user provided Azure Queue used for returning notifications of migration job progress. Cette valeur peut être null si aucune file d’attente de notification n’est utilisée pendant l’importation.This value can be null if no notification queue will be used during the import. Si cette valeur n’est pas null et les droits d’accès sont donnés dans le jeton SAS dans cette URL, elle sera utilisée pour mettre à jour le statut en temps réel.If this value is not null and proper access is granted in the SAS token in this URI, it will be used for real time status update. Les jetons SAS doivent avoir été créés avec uniquement des permissions Ajout, Lecture et Mise à jour ou la tâche de migration ne pourra pas ajouter d’événements à la file d'attente.The SAS token must have been created with only Add, Read and Update permissions or the migration job will be unable to add events to the queue. Les autorisations requises sont les suivantes dans l’API de stockage Azure :The required permissions are as follows in the Azure Storage API:

(SharedAccessQueuePermissions.Add | SharedAccessQueuePermissions.Read | SharedAccessQueuePermissions.Update)

Une fois accepté, l’ID de travail est inscrit dans la file d’attente notification s’il a été fourni et l’accès est valide.Once accepted, the job ID will be written to the notification queue if it was provided and access is valid. La file d’attente notification peut être utilisée pour plusieurs tâches de migration en même temps, car chaque tâche identifie elle-même les valeurs envoyées à la file d’attente de notification.The notification queue can be used for multiple migration jobs at the same time, as each job will identify itself in values sent back to the notification queue.

Voici des exemples de tous les types d’événements enregistrés dans la file d’attente de rapports Azure :The following are examples of all event types logged into the Azure reporting queue:

Event:JobQueued JobId:845daca4-5529-4b0e-85ab-a603efee5b12 Time:09/29/2020 19:56:02.883 SiteId:48917234-de43-474a-9f1b-8d98ffa08425 DbId:8fd09323-b23f-430d-8957-213586ce3861 TotalRetryCount:0 MigrationType:None MigrationDirection:Import CorrelationId:c8d97e9f-802f-0000-ceac-44663834d510Event:JobQueued JobId:845daca4-5529-4b0e-85ab-a603efee5b12 Time:09/29/2020 19:56:02.883 SiteId:48917234-de43-474a-9f1b-8d98ffa08425 DbId:8fd09323-b23f-430d-8957-213586ce3861 TotalRetryCount:0 MigrationType:None MigrationDirection:Import CorrelationId:c8d97e9f-802f-0000-ceac-44663834d510

Event:JobPostponed JobId:845daca4-5529-4b0e-85ab-a603efee5b12 Time:09/29/2020 19:56:57.598 NextPickupTime:09/29/2020 20:16:57.519 SiteId:48917234-de43-474a-9f1b-8d98ffa08425 DbId:8fd09323-b23f-430d-8957-213586ce3861 JobsInQueue: TotalRetryCount:0 MigrationType:None MigrationDirection:Import CorrelationId:d5d97e9f-702c-0000-ceb9-354fefa5e9f6Event:JobPostponed JobId:845daca4-5529-4b0e-85ab-a603efee5b12 Time:09/29/2020 19:56:57.598 NextPickupTime:09/29/2020 20:16:57.519 SiteId:48917234-de43-474a-9f1b-8d98ffa08425 DbId:8fd09323-b23f-430d-8957-213586ce3861 JobsInQueue: TotalRetryCount:0 MigrationType:None MigrationDirection:Import CorrelationId:d5d97e9f-702c-0000-ceb9-354fefa5e9f6

Event:JobLogFileCreate JobId:071f9aad-36e6-4bef-9f09-40b5c7498ecd Time:09/29/2020 19:56:29.053 FileName:Import-071f9aad-36e6-4bef-9f09-40b5c7498ecd-1.log CorrelationId:22ca20ec-23de-468b-add3-4e52e90d3a68Event:JobLogFileCreate JobId:071f9aad-36e6-4bef-9f09-40b5c7498ecd Time:09/29/2020 19:56:29.053 FileName:Import-071f9aad-36e6-4bef-9f09-40b5c7498ecd-1.log CorrelationId:22ca20ec-23de-468b-add3-4e52e90d3a68

Event:JobStart JobId:071f9aad-36e6-4bef-9f09-40b5c7498ecd Time:09/29/2020 19:56:29.100 SiteId:48917234-de43-474a-9f1b-8d98ffa08425 WebId:36b66979-4a43-4b93-9b92-909c7186ff98 DBId:8fd09323-b23f-430d-8957-213586ce3861 FarmId:211e600c-f48d-4319-ba92-61150c8e8e8c ServerId:cfd27448-822a-420b-bcc8-4f39629b01bc SubscriptionId:51812136-3cba-482d-9696-532cddceab31 TotalRetryCount:0 MigrationType:None MigrationDirection:Import CorrelationId:c308c0ea-a7f5-4be9-acd4-1ebd39867434Event:JobStart JobId:071f9aad-36e6-4bef-9f09-40b5c7498ecd Time:09/29/2020 19:56:29.100 SiteId:48917234-de43-474a-9f1b-8d98ffa08425 WebId:36b66979-4a43-4b93-9b92-909c7186ff98 DBId:8fd09323-b23f-430d-8957-213586ce3861 FarmId:211e600c-f48d-4319-ba92-61150c8e8e8c ServerId:cfd27448-822a-420b-bcc8-4f39629b01bc SubscriptionId:51812136-3cba-482d-9696-532cddceab31 TotalRetryCount:0 MigrationType:None MigrationDirection:Import CorrelationId:c308c0ea-a7f5-4be9-acd4-1ebd39867434

Event:JobProgress JobId:845daca4-5529-4b0e-85ab-a603efee5b12 Time:09/29/2020 19:56:32.265 FilesCreated:15 BytesProcessed:45 ObjectsProcessed:217 TotalExpectedSPObjects:403 TotalErrors:0 TotalWarnings:0 TotalRetryCount:0 MigrationType:None MigrationDirection:Import WaitTimeOnSqlThrottlingMilliseconds:0 TotalDurationInMs:0 CpuDurationInMs:0 SqlDurationInMs:0 SqlQueryCount:0 CreatedOrUpdatedFileStatsBySize:{"0-1K":{"Count":15,"TotalSize":45,"TotalDownloadTime":251,"TotalCreationTime":6754}} ObjectsStatsByType:{"SPUser":{"Count":1,"TotalTime":289,"AccumulatedVersions":0,"ObjectsWithVersions":0},"SPFolder":{"Count":2,"TotalTime":144,"AccumulatedVersions":0,"ObjectsWithVersions":0},"SPDocumentLibrary":{"Count":1,"TotalTime":173,"AccumulatedVersions":0,"ObjectsWithVersions":0},"SPFile":{"Count":200,"TotalTime":6765,"AccumulatedVersions":0,"ObjectsWithVersions":0},"SPListItem":{"Count":14,"TotalTime":2111,"AccumulatedVersions":0,"ObjectsWithVersions":0}} TotalExpectedBytes:0 CorrelationId:ccd97e9f-a0cc-0000-ceb9-37a900bec68dEvent:JobProgress JobId:845daca4-5529-4b0e-85ab-a603efee5b12 Time:09/29/2020 19:56:32.265 FilesCreated:15 BytesProcessed:45 ObjectsProcessed:217 TotalExpectedSPObjects:403 TotalErrors:0 TotalWarnings:0 TotalRetryCount:0 MigrationType:None MigrationDirection:Import WaitTimeOnSqlThrottlingMilliseconds:0 TotalDurationInMs:0 CpuDurationInMs:0 SqlDurationInMs:0 SqlQueryCount:0 CreatedOrUpdatedFileStatsBySize:{"0-1K":{"Count":15,"TotalSize":45,"TotalDownloadTime":251,"TotalCreationTime":6754}} ObjectsStatsByType:{"SPUser":{"Count":1,"TotalTime":289,"AccumulatedVersions":0,"ObjectsWithVersions":0},"SPFolder":{"Count":2,"TotalTime":144,"AccumulatedVersions":0,"ObjectsWithVersions":0},"SPDocumentLibrary":{"Count":1,"TotalTime":173,"AccumulatedVersions":0,"ObjectsWithVersions":0},"SPFile":{"Count":200,"TotalTime":6765,"AccumulatedVersions":0,"ObjectsWithVersions":0},"SPListItem":{"Count":14,"TotalTime":2111,"AccumulatedVersions":0,"ObjectsWithVersions":0}} TotalExpectedBytes:0 CorrelationId:ccd97e9f-a0cc-0000-ceb9-37a900bec68d

Event:JobEnd JobId:16d658cf-ecd3-485f-9c9e-1ca268565e24 Time:09/29/2020 20:29:38.180 FilesCreated:200 BytesProcessed:600 ObjectsProcessed:403 TotalExpectedSPObjects:403 TotalErrors:0 TotalWarnings:0 TotalRetryCount:0 MigrationType:None MigrationDirection:Import WaitTimeOnSqlThrottlingMilliseconds:0 TotalDurationInMs:372294.0861 CpuDurationInMs:17351 SqlDurationInMs:98359 SqlQueryCount:1998 CreatedOrUpdatedFileStatsBySize:{"0-1K":{"Count":200,"TotalSize":600,"TotalDownloadTime":15448,"TotalCreationTime":275662}} ObjectsStatsByType:{"SPUser":{"Count":1,"TotalTime":44,"AccumulatedVersions":0,"ObjectsWithVersions":0},"SPFolder":{"Count":2,"TotalTime":108,"AccumulatedVersions":0,"ObjectsWithVersions":0},"SPDocumentLibrary":{"Count":1,"TotalTime":50,"AccumulatedVersions":0,"ObjectsWithVersions":0},"SPFile":{"Count":200,"TotalTime":293628,"AccumulatedVersions":0,"ObjectsWithVersions":0},"SPListItem":{"Count":200,"TotalTime":76541,"AccumulatedVersions":0,"ObjectsWithVersions":0}} TotalExpectedBytes:0 CorrelationId:59db7e9f-a003-0000-ceb9-300001119ee3Event:JobEnd JobId:16d658cf-ecd3-485f-9c9e-1ca268565e24 Time:09/29/2020 20:29:38.180 FilesCreated:200 BytesProcessed:600 ObjectsProcessed:403 TotalExpectedSPObjects:403 TotalErrors:0 TotalWarnings:0 TotalRetryCount:0 MigrationType:None MigrationDirection:Import WaitTimeOnSqlThrottlingMilliseconds:0 TotalDurationInMs:372294.0861 CpuDurationInMs:17351 SqlDurationInMs:98359 SqlQueryCount:1998 CreatedOrUpdatedFileStatsBySize:{"0-1K":{"Count":200,"TotalSize":600,"TotalDownloadTime":15448,"TotalCreationTime":275662}} ObjectsStatsByType:{"SPUser":{"Count":1,"TotalTime":44,"AccumulatedVersions":0,"ObjectsWithVersions":0},"SPFolder":{"Count":2,"TotalTime":108,"AccumulatedVersions":0,"ObjectsWithVersions":0},"SPDocumentLibrary":{"Count":1,"TotalTime":50,"AccumulatedVersions":0,"ObjectsWithVersions":0},"SPFile":{"Count":200,"TotalTime":293628,"AccumulatedVersions":0,"ObjectsWithVersions":0},"SPListItem":{"Count":200,"TotalTime":76541,"AccumulatedVersions":0,"ObjectsWithVersions":0}} TotalExpectedBytes:0 CorrelationId:59db7e9f-a003-0000-ceb9-300001119ee3

Event:JobDeleted JobId:071f9aad-36e6-4bef-9f09-40b5c7498ecd Time:09/29/2020 19:56:29.053 CorrelationId:22ca20ec-23de-468b-add3-4e52e90d3a68Event:JobDeleted JobId:071f9aad-36e6-4bef-9f09-40b5c7498ecd Time:09/29/2020 19:56:29.053 CorrelationId:22ca20ec-23de-468b-add3-4e52e90d3a68

Event:JobCancelled JobId:071f9aad-36e6-4bef-9f09-40b5c7498ecd Time:09/29/2020 19:58:29.053 TotalRetryCount:0 CancelledByUser:false MigrationType:None MigrationDirection:Import CorrelationId:22ca20ec-23de-468b-add3-4e52e90d3a68Event:JobCancelled JobId:071f9aad-36e6-4bef-9f09-40b5c7498ecd Time:09/29/2020 19:58:29.053 TotalRetryCount:0 CancelledByUser:false MigrationType:None MigrationDirection:Import CorrelationId:22ca20ec-23de-468b-add3-4e52e90d3a68

Event:JobError JobId:b427d8d7-2b91-4da0-aee5-4b5a5a5d867e Time: 02/05/2019 06:56:09.732 TotalRetryCount:0 MigrationType:None MigrationDirection:Import ObjectType:File Url:Shared Documents/file.pdf Id:fae7b4b0-2912-11e9-b0f3-7b554a52d6ab ErrorCode:-2147024816 ErrorType:Microsoft.SharePoint.SPException Message:ErrorMessage CorrelationId:d8e9bc9e-20e2-8000-aa83-48a62fc5ce75Event:JobError JobId:b427d8d7-2b91-4da0-aee5-4b5a5a5d867e Time: 02/05/2019 06:56:09.732 TotalRetryCount:0 MigrationType:None MigrationDirection:Import ObjectType:File Url:Shared Documents/file.pdf Id:fae7b4b0-2912-11e9-b0f3-7b554a52d6ab ErrorCode:-2147024816 ErrorType:Microsoft.SharePoint.SPException Message:ErrorMessage CorrelationId:d8e9bc9e-20e2-8000-aa83-48a62fc5ce75

Event:JobWarning JobId:b427d8d7-2b91-4da0-aee5-4b5a5a5d867e Time: 02/05/2019 06:56:09.732 TotalRetryCount:0 MigrationType:None MigrationDirection:Import ObjectType:File Url:Shared Documents/file.pdf Id:fae7b4b0-2912-11e9-b0f3-7b554a52d6ab ErrorCode:-2147024816 ErrorType:Microsoft.SharePoint.SPException Message:ErrorMessage CorrelationId:d8e9bc9e-20e2-8000-aa83-48a62fc5ce75Event:JobWarning JobId:b427d8d7-2b91-4da0-aee5-4b5a5a5d867e Time: 02/05/2019 06:56:09.732 TotalRetryCount:0 MigrationType:None MigrationDirection:Import ObjectType:File Url:Shared Documents/file.pdf Id:fae7b4b0-2912-11e9-b0f3-7b554a52d6ab ErrorCode:-2147024816 ErrorType:Microsoft.SharePoint.SPException Message:ErrorMessage CorrelationId:d8e9bc9e-20e2-8000-aa83-48a62fc5ce75

Event:FinishManifestFileUpload JobId:b427d8d7-2b91-4da0-aee5-4b5a5a5d867e Time:02/05/2019 06:56:09.732 ManifestFileName:Filename CorrelationId:d8e9bc9e-20e2-8000-aa83-48a62fc5ce75Event:FinishManifestFileUpload JobId:b427d8d7-2b91-4da0-aee5-4b5a5a5d867e Time:02/05/2019 06:56:09.732 ManifestFileName:Filename CorrelationId:d8e9bc9e-20e2-8000-aa83-48a62fc5ce75

Valeurs de retourReturn values

L’identificateur unique de la tâche de migration est renvoyé si la tâche est correctement mise en file d’attente, ou si elle échoue, une valeur null est renvoyée.The unique identifier for the migration job is returned if the job is successfully queued, or if unsuccessful, a null value will be returned. L’identificateur unique de travail de migration peut être utilisé pour interroger l’état de tâche de migration s’il est dans la file d’attente ou en utilisant la méthode GetMigrationJobStatus en cours de traitement.The migration job unique identifier can be used to query the migration job status while it is in the queue or being processed by using the GetMigrationJobStatus method.

Exemple :Example:

Guid MigrationJobId = TargetSite.CreateMigrationJob(
  TargetWebId,
  azureContainerSourceUri,
  azureContainerManifestUri,
  azureQueueReportUri);

GetMigrationJobStatusGetMigrationJobStatus

Cette méthode interroge la file d’attente concernant l’état du travail de migration spécifié.This method queries the queue status for the specified migration job. Il s’agit d’une vérification facultative après l’appel de la méthode CreateMigrationJob.It is an optional check after calling the CreateMigrationJob method. Une fois la tâche de migration terminée, il ne s’affichera plus dans la file d’attente et la file d’attente notification et/ou sortie de journal devra être vérifiée pour un statut détaillé.Once the migration job has completed, it will no longer show up in the queue and the notification queue and/or log output should be checked for detailed status.

SyntaxeSyntax

[ClientNS.ClientCallableMethod]
public SPMigrationJobState GetMigrationJobStatus(Guid MigrationJobId)

ParamètresParameters

IDId

Identificateur unique de la tâche de migration renvoyé par la méthode CreateMigrationJob.The unique identifier of the migration job returned from CreateMigrationJob method.

Valeurs de retourReturn values

L’état de tâche de migration est renvoyé à l’aide d’un objet SPMigrationJobState si la tâche est trouvée dans la file d’attente, ou si elle échoue, une valeur d’aucune (0) est renvoyée.The migration job status is returned using a SPMigrationJobState object if the job is found in the queue, or if unsuccessful, a value of none (0) will be returned.

ExempleExample

SPMigrationJobState CurrentJobState = TargetSite.GetMigrationJobStatus(MigrationJobId);

ÉnumérationsEnumerations

SPMigrationJobStateSPMigrationJobState

SPMigrationJobState est une énumération qui recense les états principaux possibles dans la file d’attente importation.SPMigrationJobState is an enumeration that tracks possible major states in the import queue.

MembersMembers

Nom du membreMember name DescriptionDescription
AucunNone La tâche de migration est actuellement inconnue de la file d’attente, soit par achèvement et suppression ou identificateur de travail non valide.Migration job is currently unknown to the queue, either through completion and removal, or invalid job identifier. Valeur = 0.Value=0.
En file d’attenteQueued La tâche de migration est connue actuellement par la file d’attente et n’est pas traitée.Migration job is currently known by the queue and not being processed. Valeur = 2.Value=2.
TraitementProcessing La tâche de migration est connue actuellement par la file d’attente et est en cours de traitement.Migration job is currently known by the queue and is being actively processed. Valeur = 4.Value=4.

Structure d’un pack d’importationImport Package Structure

La structure d’un pack est basée sur une version du schéma de pack de déploiement de contenu.Package structure is based on a constrained version of the Content Deployment package schema. La documentation pour le schéma complet d’origine est accessible sous docs.microsoft.com.Documentation for the original full schema can be found at docs.microsoft.com. Jusqu'à ce qu’elle soit publiée sur docs.microsoft.com, la structure est accessible dans ce document dans l’appendice.Until published on docs.microsoft.com, the constrained structure can be found in this document in the appendix.

Fichier XMLXML file Fichier de schémaSchema File DescriptionDescription
ExportSettings.xmlExportSettings.xml Schéma DeploymentExportSettingsDeploymentExportSettings Schema Fournit la validation du fichier ExportSettings.XML exporté dans le pack de migration de contenu.Provides validation for the ExportSettings.XML file exported into the content migration package. ExportSettings.XML effectue les opérations suivantes :ExportSettings.XML does the following:
-Contient les paramètres d’exportation spécifiés à l’aide de la classe SPExportSettings et autres classes qui font partie du modèle objet migration de contenu.- Contains the export settings specified by using the SPExportSettings class and other classes that are part of the content migration object model.
-Garantit que le processus d’importation suivant (sur le site cible migration) applique les directives spécifiées dans les paramètres d’exportation.- Ensures that the subsequent import process (at the migration target site) enforces the directives specified in the export settings.
-Tient à jour un catalogue de tous les objets exportés vers le pack de migration.- Maintains a catalog of all objects exported to the migration package.
LookupListMap.xmlLookupListMap.xml Schéma DeploymentLookupListMapDeploymentLookupListMap Schema Fournit la validation du fichier LookupListMap.XML exporté dans le pack de migration de contenu. LookupListMap.XML gère une liste de recherche simple qui enregistre références des éléments de liste SharePoint (élément de liste à élément de liste).Provides validation for the LookupListMap.XML file exported into the content migration package. LookupListMap.XML maintains a simple lookup list that records SharePoint list item (list item to list item) references.
Manifest.xmlManifest.xml Schéma DeploymentManifestDeploymentManifest Schema Fournit la validation du fichier Manifest.xml exporté dans le pack de migration de contenu.Provides validation for the Manifest.xml file that is exported into the content migration package. Fournit un manifeste complet contenant des listes du contenu et de la structure du site source.Provides a comprehensive manifest containing listings of both the contents and the structure of the source site. L'opération de migration utilise le fichier de manifeste afin de reconstituer le site source et ses composants lorsqu'il est importé vers le site de destination.The migration operation uses the manifest file to reconstitute the source site and its components when it is imported to the destination site.
Requirements.xmlRequirements.xml Schéma DeploymentRequirementsDeploymentRequirements Schema Fournit la validation du fichier Requirements.XML exporté dans le pack de migration de contenu.Provides validation for the Requirements.xml file exported into the content migration package. Requirements.xml gère une liste des conditions de déploiement sous la forme de configuration requise pour l'installation du côté de la destination de la migration, comme les définitions de fonctionnalité, les versions des modèles, les assemblys de composants WebPart, les modules linguistiques, etc.Requirements.xml maintains list of deployment requirements in the form of installation requirements on the migration target, such as feature definitions, template versions, Web Part assemblies, language packs, and so forth.
RootObjectMap.xmlRootObjectMap.xml Schéma DeploymentRootObjectMapDeploymentRootObjectMap Schema Fournit la validation du fichier RootObjectMap.xml exporté dans le pack de migration de contenu. RootObjectMap.xml gère une liste des mappages des objets (dépendants) secondaires, ce qui permet à la phase d’importation de l’opération de migration de placer correctement les objets dépendants par rapport aux emplacements des mappages objet racine.Provides validation for the RootObjectMap.xml file exported into the content migration package.RootObjectMap.xml maintains a list of mappings of secondary (dependent) objects, which allows the import phase of the migration operation to correctly place the dependent objects relative to the locations of the root object mappings.
SystemData.xmlSystemData.xml Schéma DeploymentSystemDataDeploymentSystemData Schema Fournit la validation du fichier SystemData.xml exporté dans le pack de migration de contenu. SystemData.xml effectue les opérations suivantes : collecte un large éventail de données du système de bas niveau. Enregistre le nombre et le nom des fichiers Manifest.xml (dans les cas où la migration utilise plusieurs manifestes).Provides validation for the SystemData.xml file exported into the content migration package.SystemData.xml does the following: Collects a variety of low-level system data. Records the number and names of Manifest.xml files (in cases where the migration uses multiple manifests).
UserGroupMap.XMLUserGroupMap.xml Schéma DeploymentUserGroupMapDeploymentUserGroupMap Schema Fournit la validation du fichier UserGroup.xml exporté dans le pack de migration de contenu. UserGroup.xml gère une liste d’utilisateurs et de groupes de sécurité utilisateur qui concerne la sécurité d’accès et les autorisations.Provides validation for the UserGroup.xml file exported into the content migration package. UserGroup.xml maintains a list of users and user security groups with respect to access security and permissions.
ViewformsList.xmlViewFormsList.xml Schéma DeploymentViewFormsListDeploymentViewFormsList Schema Fournit la validation du fichier ViewFormsList.xml exporté dans le pack de migration de contenu. ViewFormsList.xml gère une liste de composants WebPart et effectue le suivi si chacun d’eux a un affichage ou un formulaire.Provides validation for the ViewFormsList.xml file exported into the content migration package.ViewFormsList.xml maintains a list of Web Parts and tracks whether each is a view or form.

Structure du contenuContent structure

Le contenu de fichier qui est référencé dans le manifeste de la structure de pack doit être stocké dans une structure plate ou hiérarchique au sein du conteneur Store d’objets Blob Azure définie par le paramètre CreateMigrationJob azureContainerSourceUri.File content that is referenced within the manifest of the package structure must be stored in either a flat or hierarchical structure within the Azure Blob Store Container defined by the CreateMigrationJob’s azureContainerSourceUri parameter. Par exemple, les packs importation générés par un export de version légale ne seront pas hiérarchiques, et les fichiers seront stockés au niveau racine avec un motif comme ########.dat, où les symboles # sont des caractères hexadécimaux commençant à 0 et sans nom de fichier répété dans un pack.For example, import packages generated form a legacy version export will not be hierarchical, and will instead have all files stored at the root level with a pattern like ########.dat where the # symbols are hexadecimal characters starting at 0 and no file names are repeated within a package. Également, un package généré à partir d’un partage de fichiers peut avoir une hiérarchie de dossiers source et noms de dossier conservés dans la même hiérarchie.Alternately, a package generated from a file share can have the source folder hierarchy and file names preserved in the same hierarchy.

La condition requise pour la structure est que les références FileValue dans le Manifest.XML fichier doivent faire référence au nom exact et la hiérarchie physique stockées dans le contenu au sein de l’emplacement d’objets Blob Azure Store pour l’importation.The main requirement for the structure is that the FileValue references in the Manifest.XML file must refer to the exact name and physical hierarchy that the content is stored in within the Azure Blob Store location for import. Les noms de fichier de destination et hiérarchie des dossiers à partir de l’opération d’importation ne sont pas directement liés à la dénomination physique et hiérarchie et sont définis à la place via le fichier Manifest.XML.The destination file names and folder hierarchy from the import operation are not directly related to the physical naming and hierarchy and are instead defined through the Manifest.XML file.

ExportSettings.xmlExportSettings.XML

Le fichier ExportSettings.XML est supposé être à la racine du conteneur Store d’objets Blob Azure défini par le paramètre CreateMigrationJob azureContainerManifestUri.The ExportSettings.XML file is expected to be at the root of the Azure Blob Store Container defined by the CreateMigrationJob’s azureContainerManifestUri parameter. Ce fichier obligatoire est validé à l’aide de la contrainte DeploymentExportSettings.XSD, qui comporte des modifications limitées du schéma complet du pack 2013actuellement publié.This required file is validated using the constrained DeploymentExportSettings.XSD, which has some limited changes from current published full 2013 package schema.

La configuration requise principale qui est la valeur ExportSettings SiteUrl doit être renseignée avec une URL cohérente avec l’URL source utilisée pour le reste du pack importation.The main requirement is that the ExportSettings SiteUrl value must be populated with a URL consistent with the source URL used for the rest of the import package. Dans le cas de fichiers partagés en tant que source, l’URL serait déjà spécifiée pour être l’URL source dans le reste du pack, tandis qu’un pack généré via une opération d’exportation à un site source serait son URL de collection de site source d’origine.In the case of file shares as a source, the URL would be pre-specified to be the source URL in the rest of the package, whereas a package generated through an export operation at a source site would be its original source site collection URL.

LookupListMap.XMLLookupListMap.XML

Le fichier ExportSettings.XML est supposé être à la racine du conteneur Store d’objets Blob Azure défini par le paramètre CreateMigrationJob’s azureContainerManifestUri.The LookupListMap.XML file, if included, is expected to be at the root of the Azure Blob Store Container defined by the CreateMigrationJob’s azureContainerManifestUri parameter. Ce fichier obligatoire est validé à l’aide de la contrainte DeploymentLookupListMap.XSD, qui comporte des modifications limitées du schéma complet du pack 2013actuellement publié.This optional file is validated using the constrained DeploymentLookupListMap.XSD, which has no change from current published full 2013 package schema.

Étant donné qu’un pack d’importation pour la pipeline n’inclut pas la définition des champs ou des vues dans une liste ou bibliothèque de documents, le fichier LookupListMap.XML n’inclura normalement aucune nœuds enfants sous la racine et en tant que tel peut également être exclu du pack si non nécessaire, même si un avertissement peut être enregistré dans ce cas.Since an import package for the pipeline does not include defining fields or views on a list or document library, the LookupListMap.XML file will normally include no child nodes under the root and as such can also be excluded from the package if not required, although a warning may be logged in this case.

Manifest.XMLManifest.XML

Le fichier Manifest.XML est supposé être à la racine du conteneur Store d’objets Blob Azure défini par le paramètre CreateMigrationJob azureContainerManifestUri.All instances of the Manifest.XML file for a package are expected to be at the root of the Azure Blob Store Container defined by the CreateMigrationJob’s azureContainerManifestUri parameter. Ce fichier obligatoire est validé à l’aide de la contrainte DeploymentManifest.XSD, qui comporte des modifications majeures et réduction significative du schéma complet du pack 2013 actuellement publié.This required file is validated using the constrained DeploymentManifest.XSD, which has multiple major changes and significant reduction in types from current published full 2013 package schema.

Le Manifest.XML est le descripteur principal pour les métadonnées au sein du pack et fournit la hiérarchie/dossier/élément de liste, ainsi que des métadonnées pour les éléments, y compris les références de retour aux utilisateurs et groupes définies dans le fichier UserGroupMap.XML.The Manifest.XML is the primary descriptor for metadata within the package, and provides the list/folder/item hierarchy, along with metadata for the items including references back to users and groups defined in the UserGroupMap.XML file. Il peut y avoir plusieurs fichiers Manifest.XML (qui peuvent être identifiés à l’aide de noms de fichier différents pour les identifier de façon unique), et tous peuvent être trouvés par la pipeline d’importation via références au sein des entrées SystemData.XML ManifestFile du fichier.There may be more than one Manifest.XML file (which can be identified using different file names to uniquely identify them), and all are found by the import pipeline through references within the SystemData.XML file’s ManifestFile entries.

La configuration requise principale pour que Manifest.XML puisse être correctement importé dans la pipeline est que l’ID Web et ID de liste/ID de Document bibliothèque doit être cohérent avec l’emplacement cible.The main requirements for Manifest.XML to be able to successfully import through the pipeline is that the Web Id and Document Library ID/List ID be consistent with the target location. Si un ID Web utilisé ne correspond pas à l’emplacement cible, des erreurs se produisent, car le site web parent pour l’opération d’importation est introuvable.If a Web ID is used which doesn’t match the target location, errors will occur because the parent web for the import operation cannot be found.

De même, un ID de liste/ID bibliothèque document incorrect va empêcher l’importation dans la liste ou bibliothèque de documents cible.Likewise, an incorrect Document Library ID/List ID will prevent the importation into the target Document Library or List. Les ID ne doivent jamais être réutilisés au sein de la même collection de sites, pour que les packs similaires ne soient pas importés dans la même collection cible quel que soit le site web de destination.IDs should never be reused within the same site collection, so same packages should not be imported to the same target site collection regardless of the destination web.

Pour les fichiers et dossiers individuels dans la liste ou bibliothèque de documents, leurs identificateurs doivent être cohérents entre événements d’importation dans le même emplacement.For individual files and folders within the document library or list, their identifiers should be consistent between import events to the same location. Plus précisément, l’exécution d’une importation d’un formulaire de pack généré d’un partage de fichiers requiert initialement de générer de nouveaux GUID pour chaque fichier et dossier, ainsi que de faire correspondre les GUID pour les éléments de liste qui les représentent.Specifically, performing an import of a package generated from a file share would initially require generating new GUIDs for each file and folder, along with matching GUIDs for the list items that represent them. Par conséquent, exécuter une deuxième importation par rapport à la même cible en utilisant le même pack conserverait les mêmes ID, mais effectuer une deuxième importation par rapport à la même cible à l’aide d’un nouveau pack pour le même contenu entraînerait des conflits d’ID et importerait des erreurs pour tous les éléments en conflit.Therefore, performing a second import against the same target using the same package would keep the same IDs, but performing a second import against the same target using a new package for the same content would result in ID conflicts and import errors for all items in conflict.

Le package généré initialement à partir d’un partage de fichiers équivaut effectivement à un formulaire d’enregistrement pour les ID générés d’origine et peut potentiellement être utilisé comme référence pour le suivi de nouvelle génération de pack pour empêcher les conflits ID lorsque involontaires, et autoriser les ID pour assurer un remplacement suppression ou déplacement d’activités correct.The package generated initially from a file share is effectively a form of record for the original generated IDs and can potentially be used as a reference for follow up package generation to prevent ID collisions when unintended, and to allow like IDs to ensure correct overwrite, deletion or move activities.

Requirements.xmlRequirements.XML

Le fichier Requirements.XML est supposé être à la racine du conteneur Store d’objets Blob Azure défini par le paramètre CreateMigrationJob’s azureContainerManifestUri.The Requirements.XML file is expected to be at the root of the Azure Blob Store Container defined by the CreateMigrationJob’s azureContainerManifestUri parameter. Ce fichier obligatoire est validé à l’aide de la contrainte DeploymentLookupListMap.XSD, qui ne comporte pas de modifications du schéma complet du pack 2013actuellement publié.This optional file is validated using the constrained DeploymentRequirements.XSD, which has no change from current published full 2013 package schema.

Pour les fichiers partagés, cela ne devrait normalement inclure aucune nœuds enfants sous la racine, en donc peuvent également être exclus à partir du pack si non obligatoires, même si un avertissement est enregistré dans ce cas.For file shares this is expected to normally include no child nodes under the root and as such can also be excluded from the package if not required, although a warning will be logged in this case.

RootObjectMap.XMLRootObjectMap.XML

Le fichier RootObjectMap.XML est supposé être à la racine du conteneur Store d’objets Blob Azure défini par le paramètre CreateMigrationJob azureContainerManifestUri.The RootObjectMap.XML file is expected to be at the root of the Azure Blob Store Container defined by the CreateMigrationJob’s azureContainerManifestUri parameter. Ce fichier obligatoire est validé à l’aide de la contrainte DeploymentRootObjectMap.XSD, qui comporte des modifications limitées du schéma complet du pack 2013 actuellement publié.This required file is validated using the constrained DeploymentRootObjectMap.XSD, which has some limited changes from current published full 2013 package schema. Les plus courantes RootObject qui seront incluses seront un objet unique de type liste.The most common RootObject that will be included will be a single object of type List. L’Id pour cet élément doit être l’Id de liste pour la liste cible et le ParentWebID doit correspondre à l’Id du web cible parent contenant cette liste dans l’ordre pour la migration pour réussir.The Id for this item should be the List Id for the target list, and the ParentWebID should match the Id of the parent target web containing this list in order for migration to be successful. Les valeurs Id, WebUrl et l’Url de cet objet doivent également correspondre à la structure connexe disposée le Manifest.XML fichier.The Id, WebUrl and Url values of this object must also match the related structure laid out in the Manifest.XML file.

SystemData.xmlSystemData.XML

Le fichier SystemData.XML est supposé être à la racine du conteneur Store d’objets Blob Azure défini par le paramètre CreateMigrationJob azureContainerManifestUri.The SystemData.XML file is expected to be at the root of the Azure Blob Store Container defined by the CreateMigrationJob’s azureContainerManifestUri parameter. Ce fichier obligatoire est validé à l’aide de la contrainte DeploymentSystemData.XSD, qui ne comporte pas de modifications du schéma complet du pack 2013actuellement publié.This required file is validated using the constrained DeploymentSystemData.XSD, which has no change from current published full 2013 package schema.

L’ SchemaVersion information est prévue pour référencer la Build actuelle et la DatabaseVersion de la batterie cible, une Version de « 15.0.0.0 » et la SiteVersion valeur est censée toujours correspondre à la collection de sites cibles UIVersion (c'est-à-dire, communément cela sera « 15 »).The SchemaVersion information is expected to reference the current Build and DatabaseVersion of the target farm, a Version of “15.0.0.0”, and the SiteVersion value is expected to always match the target site collection UIVersion (i.e. most commonly this will be “15”). Chaque fichier Manifest.XML pour le pack est supposé être répertorié dans ce fichier dans les ManifestFile entrées.Each Manifest.XML file for the package is expected to be listed in this file within the ManifestFile entries.

Les SystemObjects qui définissent les objets dépendants qui doivent être conservés comme non modifiables par le code de migration doivent également être répertoriés ici pour garantir le comportement correct de l’opération d’importation.The SystemObjects that define dependent objects that should remain immutable by the migration code should also be listed here to ensure correct behavior of the import operation. Voici un exemple d’objets courants dans le fichier SystemObjects.XML à partir de l’importation d’un partage de fichiers, en notant que les ID sont susceptibles d’être différentes pour chaque pack, et les URL peuvent être différentes.The following is an example of the common objects in the SystemObjects.XML file from a file share based import, noting that the IDs are expected to be different for each package, and the URLs may be different.

Tableau 1 : Fichier d’exemple SystemData.XMLTable 1: Example SystemData.XML file

<?xml version="1.0" encoding="utf-8"?>
<SystemData xmlns="urn:deployment-systemdata-schema">
  <SchemaVersion Version="15.0.0.0" Build="16.0.3111.1200" DatabaseVersion="11552" SiteVersion="15" />
  <ManifestFiles>
    <ManifestFile Name="Manifest.xml" />
  </ManifestFiles>
  <SystemObjects>
    <SystemObject Id="34321c39-3254-4bd1-b749-c99e16d1f4ab" Type="Folder" Url="/personal/username" />
    <SystemObject Id="9efb9686-baab-432d-a192-858ac34c073f" Type="Web" Url="/personal/username" />
    <SystemObject Id="e8ec714f-91a0-4c6f-9926-08328c8b3e05" Type="List" Url="/personal/username/Documents/deleteme2" />
    <SystemObject Id="a05e1f95-5712-4cc2-958c-31cf0a2cfb62" Type="List" Url="/personal/username/_catalog/users" />
  </SystemObjects>
  <RootWebOnlyLists />
</SystemData>

UserGroupMap.XMLUserGroupMap.XML

Le fichier UserGroupMap.XML est supposé être à la racine du conteneur Store d’objets Blob Azure défini par le paramètre CreateMigrationJob azureContainerManifestUri.The UserGroupMap.XML file is expected to be at the root of the Azure Blob Store Container defined by the CreateMigrationJob’s azureContainerManifestUri parameter. Ce fichier obligatoire est validé à l’aide de la contrainte DeploymentSystemData.XSD, qui ne comporte pas de modifications du schéma complet du pack 2013 actuellement publié.This required file is validated using the constrained DeploymentUserGroupMap.XSD, which has no change from current published full 2013 package schema.

Le UserGroupMap.XML fichier ne peut pas contenir d’entrées utilisateur ou groupe, mais cette opération permet d’empêcher l’auteur ou des informations de sécurité d’être renseignés pendant l’importation et les avertissements seront enregistrés dans ce cas.The UserGroupMap.XML file may not contain any User or Group entries but doing so will prevent author or security information from being populated during import and warnings will be logged in this case. Les valeurs de connexion et d’identificateur de sécurité pour les utilisateurs doivent être ajustées pour correspondre aux valeurs dans SharePoint Online, ou si le compte n’existe plus, elles peuvent apparaître sous la forme IsDeleted = “true” pour empêcher les échecs de recherche et ralentissement supplémentaires pendant l’opération d’importation.Login and SID values for users must be either adjusted to match the values in SharePoint Online, or if the account no longer should exist can be listed as IsDeleted = “true” to prevent lookup failures and additional slowdown during the import operation.

ViewformsList.xmlViewFormsList.XML

Le fichier ViewForms.XML est supposé être à la racine du conteneur Store d’objets Blob Azure défini par le paramètre CreateMigrationJob azureContainerManifestUri.The ViewForms.XML file, if included, is expected to be at the root of the Azure Blob Store Container defined by the CreateMigrationJob’s azureContainerManifestUri parameter. Ce fichier obligatoire est validé à l’aide de la contrainte DeploymentViewFormsList.XSD, qui ne comporte pas de modifications du schéma complet du pack 2013 actuellement publié.This optional file is validated using the constrained DeploymentViewFormsList.XSD, which has no change from current published full 2013 package schema.

Étant donné qu’un pack d’importation pour la pipeline n’inclut pas la définition des champs ou des vues dans une liste ou bibliothèque de documents, le fichier ViewFormsList.XML n’inclura normalement aucune nœuds enfants sous la racine et en tant que tel peut également être exclu du pack si non nécessaire, même si un avertissement peut être enregistré dans ce cas.Since an import package for the pipeline does not include defining fields or views on a list or document library, the ViewFormsList.XML file will normally include no child nodes under the root and as such can also be excluded from the package if not required, although a warning may be logged in this case.

LoggingLogging

Les journaux créés par la pipeline d’importation doivent être analysés facilement par ordinateur avec comme objectif la possibilité de repérer quand et où les échecs se produisent, y compris les erreurs et avertissements, et indique au consommateur ou l’éditeur de logiciels indépendant où et pourquoi l’échec s’est produit.The logs that the import pipeline creates must be easily parsed by machine with a goal of being able to pinpoint when and where failures occur, including errors and warnings, and will tell the consumer or the ISV where and why the failure occurred.

Cela fait, les journaux créés seront copiés dans l’azureContainerManifestUri emplacement, tandis que le jeton SAS spécifié dans l’URI autorise l’accès d’écriture.Upon completion, these logs will be copied to the azureContainerManifestUri location as the SAS token specified in the URI allows write access. Les mêmes journaux de sortie sont également placés à l’emplacement « Journaux _catalogs/Maintenance » de la collection de sites cibles comme un fichier texte.The same output logs are also placed at the “_catalogs/Maintenance Logs” location of the target site collection as a text file. Les journaux seront copiés dans les emplacements de destination seulement une fois que la tâche a terminé et a été supprimée de la file d’attente.The logs will only be copied to the destination locations once the job has finished and removed from the queue.

Plusieurs types de journal pouvant être inclus tels que le journal d’importation complète, ainsi que les fichiers d’avertissement et d’erreur qui contiennent uniquement le sous-ensemble des avertissements ou des erreurs d’import.Several log types can be included such as the full import log, along with warning and error files that contain only the subset of import warnings or errors respectively. Les fichiers journaux ont des tampons uniques datetime et job id pour autoriser chaque événement d’importation à avoir un journal unique à de meilleures fins de débogage.Log files have unique datetime and job id stamps to allow each attempted import event to have a unique log for better debugging purposes.

Modifications pour les utilisateurs de l’option « Expédition de disque »Changes for those using the "Ship Disk" option

Pour utiliser l’API de Migration, vous devez disposer d’un conteneur de stockage temporaire dans Azure.To use the Migration API, you must have a temporary storage container in Azure. Lors du chargement des fichiers dans l’espace de stockage temporaire, une somme de contrôle est requise en tant que propriété sur chaque fichier.When uploading files into the temporary storage, a checksum is required as a property on every file. Pour les fichiers d’une taille supérieure à 15 Go, cette opération est effectuée en utilisant QuickXorHash (voir l’exemple ci-dessous).For files larger than 15GB, this is done using QuickXorHash (see example below). Pour les fichiers de taille inférieure ou égale à 2 Go, MD5 est requis en tant que propriété sur chaque fichier.For files 2 GB or smaller, MD5 is required as a property on every file.

Toutefois, lorsque de l’envoi de données sur disques durs, cette propriété n’est pas attribuée automatiquement.However, when shipping the data on hard drives this property doesn’t get assigned automatically. Pour contourner ce problème, nous avons permis à l’API de Migration d’autoriser la somme de contrôle pour chaque fichier dans le cadre du manifeste.As a work around, we have adapted the Migration API to allow the checksum to be passed for every file as part of the manifest. Ceci s’applique également aux valeurs IV lors du chiffrement des données.This also applies for IV values when encrypting the data.

Étant donné que la propriété MD5 est générée à la source plutôt qu’au moment du chargement dans Azure, Microsoft peut confirmer l’intégrité du fichier directement sur la MD5 source.Since the MD5 is generated at the source instead of at the upload time in Azure, Microsoft can confirm the integrity of the file directly against the source MD5.

Quels éléments sont stockés dans ces conteneurs d’objets blob Azure ?What is stored in those Azure Blob Containers?

L’API de migration a besoin du conteneur Azure pour le transfert du contenu et les rapports de journaux et de files d’attente. The Migration API requires the Azure Container for content passing and also for log and queue reporting. Il peut contenir les compartiments suivants :It can be split down as a summary as follows:

ContenuContent ManifesteManifest
Fichiers et dossiersFiles and folders Fichiers XMLXML files

Il y a deux nouveaux paramètres facultatifs dans manifest.xml :There are two new optional parameters in manifest.xml:

  • QuickXorHashQuickXorHash
  • MD5HashMD5Hash
  • InitializationVectorInitializationVector

Préparation du packPreparing the package

La méthode permettant d’appeler la tâche de migration ne change pas ; la seule chose à changer est la génération du pack.The method for calling the migration job doesn’t change; only the package generation needs to be changed.

Dans le conteneur de manifeste, un fichier s’appelle Manifest.xml.In the Manifest container one file is named Manifest.xml. Il existe 2 attributs facultatifs ajoutés au nœud du fichier : QuickXorHash, MD5Hash et InitializationVector.There are 2 optional attributes added to the file node: QuickXorHash,MD5Hash and InitializationVector.

Exemples de fichiers de plus de 15 Go :Example for files over 15 GB:

<?xml version="1.0" encoding="utf-8"?> 
<SPObjects xmlns="urn:deployment-manifest-schema"> 
  <SPObject Id="75be48d8-59a5-4558-8dd8-5eb2c4e94bc5" ObjectType="SPFolder" ParentId="d43a7f16-e50b-4591-861f-684e78e89e12" ParentWebId="2f887e64-876b-4fa7-bb03-0a9ca1cf3d33" ParentWebUrl="/" Url="/Shared Documents"> 
    <Folder Id="75be48d8-59a5-4558-8dd8-5eb2c4e94bc5" Url="Shared Documents" Name="Shared Documents" ParentFolderId="d43a7f16-e50b-4591-861f-684e78e89e12" ParentWebId="2f887e64-876b-4fa7-bb03-0a9ca1cf3d33" ParentWebUrl="/" ContainingDocumentLibrary="a69654d6-eb09-4638-aa6b-a7e8ff86f555" TimeCreated="2021-01-06T18:50:15" TimeLastModified="2021-01-06T18:50:15" SortBehavior="1" /> 
  </SPObject> 
  <SPObject Id="a69654d6-eb09-4638-aa6b-a7e8ff86f555" ObjectType="SPDocumentLibrary" ParentId="2f887e64-876b-4fa7-bb03-0a9ca1cf3d33" ParentWebId="2f887e64-876b-4fa7-bb03-0a9ca1cf3d33" ParentWebUrl="/" Url="/Shared Documents"> 
    <DocumentLibrary Id="a69654d6-eb09-4638-aa6b-a7e8ff86f555" BaseTemplate="DocumentLibrary" RootFolderId="75be48d8-59a5-4558-8dd8-5eb2c4e94bc5" RootFolderUrl="/Shared Documents" ParentWebId="2f887e64-876b-4fa7-bb03-0a9ca1cf3d33" ParentWebUrl="/" Title="Documents" HasUniqueRoleAssignments="true"> 
      <ContentTypes /> 
    </DocumentLibrary> 
  </SPObject> 
  <SPObject Id="aef2bb11-7ee8-4343-87cd-5938d260e647" ObjectType="SPFile" ParentId="75be48d8-59a5-4558-8dd8-5eb2c4e94bc5" ParentWebId="2f887e64-876b-4fa7-bb03-0a9ca1cf3d33" ParentWebUrl="/" Url="/Shared Documents/MyFile.txt"> 
    <File Url="Shared Documents/MyFile.txt" Id="aef2bb11-7ee8-4343-87cd-5938d260e647" ParentWebId="2f887e64-876b-4fa7-bb03-0a9ca1cf3d33" ParentWebUrl="/" Name="MyFile.txt" ListItemIntId="1" ListId="a69654d6-eb09-4638-aa6b-a7e8ff86f555" ParentId="75be48d8-59a5-4558-8dd8-5eb2c4e94bc5" TimeCreated="2021-01-06T18:43:38" TimeLastModified="2018-06-07T17:54:28" Version="1.0" FileValue="MyFile.txt" FileSize="17662712" Author="1" ModifiedBy="1" MD5Hash="qVBFIb8MJLzT5INrE4XcDQ==" Checksum="3k59aOUae2xygD5B/jtxY4x0Xko=" /> 
  </SPObject> 
  <SPObject Id="52e75f2f-e8d7-4c6d-bf06-3b98d8429e0f" ObjectType="SPListItem" ParentId="a69654d6-eb09-4638-aa6b-a7e8ff86f555" ParentWebId="2f887e64-876b-4fa7-bb03-0a9ca1cf3d33" ParentWebUrl="/" Url="/Shared Documents/MyFile.txt"> 
    <ListItem FileUrl="Shared Documents/MyFile.txt" DocType="File" ParentFolderId="75be48d8-59a5-4558-8dd8-5eb2c4e94bc5" Order="100" Id="52e75f2f-e8d7-4c6d-bf06-3b98d8429e0f" ParentWebId="2f887e64-876b-4fa7-bb03-0a9ca1cf3d33" ParentListId="a69654d6-eb09-4638-aa6b-a7e8ff86f555" Name="MyFile.txt" DirName="/Shared Documents" IntId="1" DocId="aef2bb11-7ee8-4343-87cd-5938d260e647" Version="1.0" Author="1" ModifiedBy="1" TimeLastModified="2018-06-07T17:54:28" TimeCreated="2021-01-06T18:43:38" ModerationStatus="Approved"> 
      <Fields /> 
    </ListItem> 
  </SPObject> 
</SPObjects> 

Exemples de fichiers de moins de 2 Go :Example for files under 2 GB:

<File … MD5Hash="CXPP/MWYxY87NjjnLZrFg==" InitializationVector="4WlC5zQK0r9s39LoB2w==" />

Meilleures pratiques et mentions spécialesBest Practices and Special Mentions

Taille du packPackage size

Même si l’API prend en charge les fichiers de 15 Go, nous vous recommandons des tailles de pack de jusqu'à 250 Mo ou 250 éléments (en fonction de celui que vous arrive en premier).Even if the API support 15GB files, we recommend package sizes of up to 250 MB OR 250 items (depending which one comes first). Si vous avez un fichier plus volumineux que la taille recommandée, vous devez alors l’envoyer dans son propre pack.If you have a file larger than that recommended size limit then you should send it in its own package. Le même s’applique aux versions ; chaque version est comptabilisée dans la limite de taille et nombre d’éléments.The same applies to versions; each version counts against the size limit and item count. En outre toutes les versions d’un fichier doivent se trouver dans le même pack.Additionally, all the versions of a file should be in the same package.

Taille des fichiersFile size

Actuellement le pipeline importation prend en charge les fichiers individuels de 15 Go de taille maximale.Currently, the import pipeline supports individual files of 15 GB maximum size.

Seulement les packs non compressés sont pris en chargeOnly un-compressed packages are supported

Le pipeline d’importation ne prend pas en charge les packs compressés.The import pipeline does not support compressed packages. Le contenu du fichier doit être stocké dans un conteneur de stockage Azure différent du manifeste et des fichiers XML descriptifs liés.The file content must be stored in a different Azure Storage container from the manifest and related descriptive XML files. Cette décision a été créée pour empêcher la surcharge liée à un temps de traitement aux deux extrémités de la migration (pour compresser et décompresser) et pour faciliter la création d’un pack et sa modification.This decision was made to prevent the overhead of processing time on both ends of the migration (to compress and decompress), and also to ease package creation and modification. La compression de fichiers individuels comme vers des archives zip est prise en charge dans la mesure où elles sont référencées dans le pack d’importation en tant qu’archive proprement dite, et pas en contenu.Compression of individual files such as into zip archives is supported as long as they are referenced in the import package as the archive itself, not the contents.

API prend en charge l’importation de plusieurs versions de fichierAPI supports import of multiple file versions

Les packs importation peuvent avoir des références à plusieurs versions d’un fichier principal et secondaire, jusqu'aux limites imposées au sein de SharePoint.Import packages can have references to multiple versions of a file, major and minor, up to regular limits imposed within SharePoint. Il est important que chaque version de ce fichier soit incluse dans le pack même si certaines des versions existent déjà dans SPO.It is important that each version of that file be included in the package even if some of the versions already exist in SPO.

API prend en charge la conservation des identificateursAPI supports preservation of identifiers

Les identificateurs utilisés au sein du pack importation servent explicitement à identifier le contenu pendant l’importation.The identifiers used within the import package explicitly are used during import to identify content. Cela permet la conservation des identificateurs existants pour le contenu d’un document bibliothèque dans un environnement source.This allows preservation of existing identifiers for document library contents from a source environment. Toutefois, il impose également une complexité lors de la création du pack importation ou sa transformation, qui rend obligatoire que le pack référence explicitement les identificateurs web et de liste cibles.However, it also imposes a complexity during import package creation or transformation that mandates that the package explicitly reference the target web and list identifiers. Les identificateurs de type de contenu, élément de fichier/dossier GUID et identificateurs entiers de liste élément sont tous conservés pendant l’importation.Content type identifiers, file/folder item GUIDs, and list item integer identifiers are all preserved during import. Si les identificateurs incorrects sont spécifiées dans le pack, l’importation échouera.If incorrect identifiers are specified in the package, import will fail.

Par ailleurs, en raison de la conservation identificateur, les événements importation peuvent potentiellement être effectués dans les itérations successives à l’aide de packs différents, permettant aux éléments un déplacement potentiel dans l’ emplacement si leurs identificateurs n’ont pas changé.Additionally, due to identifier preservation, import events can potentially be done in successive iterations using different packages, allowing items to potentially move in location if their identifiers have not changed.

Il s’agit d’un API remplacéThis is an overwrite API

Le pipeline d’importation prend en charge l’importation de données de contrôle de version sur des fichiers et des métadonnées d’élément de liste, mais depuis maintenant si vous envoyez un fichier, puis renvoyez le même fichier avec des modifications, le processus d’importation va supprimer et remplacer le fichier d’origine et toutes les versions, dont celles incluses dans la version actuelle du pack importé.The import pipeline does support import of versioning data on files and list item metadata, but as of now if you submit a file and then resubmit the same file with changes the import process will delete and replace the original and all versions with the ones included in the ones in the current package being imported.

Nous ne prenons pas en charge de scénario Active ActiveWe do not support Active-Active scenario

Cela signifie que nous prévoyons que le site cible reste non actif pour les utilisateurs jusqu'à ce que la migration soit terminée.This means we expect that the target site will remain non-active for users until the migration is over. La source peut être conservée dans un état de lecture écriture jusqu'à l’événement final de migration, comme méthode de réduction d’arrêt de service pour les utilisateurs finaux, mais une fois la migration terminée, il devrait y avoir un commutateur pour les utilisateurs pour commencer à utiliser leurs nouvelles destinations SPO et arrêter d’utiliser les registres précédents.The source may be kept in a read write state until the final migration event, as a method of reducing downtime for end users, but once the migration is complete there should be a switch for the users to start using their new SPO destinations and stop using the previous repository.

Autorisations dans AzurePermissions in Azure

Pour vous assurer immuabilité d’objets BLOB source, le pipeline importation accepte une clé SAS avec uniquement des indicateurs d’accès Lecture et Liste pour le conteneur de fichier.To ensure immutability of source blobs, the import pipeline will accept a SAS key with only the Read and List access flags set for the File container. De même, le pipeline importation nécessite une clé SAS avec accès Lecture, Liste et Écriture pour le conteneur de manifeste pour écrire les fichiers journaux à la fin de l’opération d’importation.Likewise, the import pipeline requires a SAS key with Read, List and Write access for the Manifest container so that we can write back log files at the end of the import operation. Si ces critères ne sont pas remplis, le pipeline le rejettera pendant la création du travail.If these criteria are not met, the pipeline will reject it during job creation.

Tous les fichiers dans Azure doivent avoir des instantanés créés pour importer correctementAll files in Azure must have snapshot created to import successfully

Pour empêcher la modification involontaire d’un fichier d’objets BLOB de la source, le pipeline d’importation importera uniquement les fichiers s’ils disposent d’un instantané créé pour eux dans Azure.To prevent unintended file modification of the source blobs, the import pipeline will only import files if they have a snapshot created for them within Azure. S’ils ne le font pas, le pipeline importation ignorera les fichiers dans cet état et déclarera des erreurs.If they do not, then the import pipeline will skip the files in this state and throw errors. Le pipeline d’importation utilise le dernier instantané du fichier disponible au moment de l’importation.The import pipeline will use the latest snapshot of the file available at the time of import.

Sécurité et chiffrementSecurity and encryption

Le pipeline importation utilise le modèle de sécurité de stockage Blob Azure en l’état.The import pipeline is using Azure Blob Storage security model as is. Cela signifie que nous ne ferons pas de traitement spécial pour ces conteneurs azure qui seraient différents de n’importe quel autre conteneur azure.This means we will not do any special treatment for those azure containers that would differentiate from any other azure containers. Par ailleurs, le pipeline importation n’accepte actuellement pas les clés de chiffrement pour le contenu à partir du client.Additionally, the import pipeline currently does not accept encryption keys for content from the customer. Tout contenu chiffré sera traité comme des fichiers opaques que SharePoint peut lister, mais non indexables, comme si les fichiers chiffrés ont été chargés à l’environnement via l’interface utilisateur.Any encrypted content will be treated as opaque files that SharePoint may list, but be unable to index, the same as if encrypted files were uploaded through the UI to the environment.

Événements et gestionnaires d’événementsEvents and event handlers

Le pipeline d’importation permet aux gestionnaires d’événements d’être référencés sur les éléments de liste, mais n’autorise pas la définition des gestionnaires d’événements au niveau de la liste pour l’instant.The import pipeline allows event handlers to be referenced on list items but doesn’t allow defining event handlers at the list level at this time. Le pipeline d’importation ne déclenche pas d’événements lorsque des éléments sont importés, afin que les gestionnaires d’événement existants ne soient pas déclenchés pas en raison de l’événement importation.The import pipeline does not fire events as items are imported, so existing event handlers will not fire due to the import event.

Résolution des utilisateursResolving Users

Si l’API de migration n’a pas pu apporter une résolution à l’utilisateur à l’aide de l’identifiant de connexion fourni dans le fichier UserGroup.xml et qu’aucun ID système n’est fourni, procédez comme suit :If the Migration API was unable to resolve a user using the login provided in the UserGroup.xml and no System ID is provided, then:

  1. Cet utilisateur est remplacé par le « Compte système » dans les métadonnées associées dans le package (auteur, éditeur, etc.).This user will be replaced by “System Account” in the associated metadata within the package ( author, editor etc.).
  2. Un avertissement est signalé dans ImportLogs – « Échec d’assurance utilisateur 'user@contoso.com' »A warning will be reported in the ImportLogs – “Failed to ensure user 'user@contoso.com'”

Si l’API de migration n’a pas pu apporter une résolution à l’utilisateur à l’aide de l’identifiant de connexion fourni dans le fichier UserGroup.xml et qu’un ID système est fourni (soit le SID pour l’utilisateur dans Active Directory sur site), procédez comme suit :If the migration API was unable to resolve a user using the login provided in the UserGroup.xml and the System ID is provided (which is the SID for the user in the on-premises AD), then:

  1. Un nouvel utilisateur supprimé avec la connexion et SystemId fourni est créé et il est utilisé dans les métadonnées associées dans le package.A new deleted user with the provided login and SystemId is created and is used in the associated metadata within the package.
  2. Un avertissement est signalé dans le ImportLogs-« a échoué pour récupérer les attributs utilisateur 'user@contoso.com' auprès du SiteUsers ; échec passé dans valeurs »A warning will be reported in the ImportLogs- “Failed to retrieve user 'user@contoso.com' attributes from the SiteUsers; falling back to passed in values”

AnnexesAppendices

Acronymes définisAcronyms Defined

AcronymeAcronym DéfinitionDefinition
BotBOT Travaux du minuteur Serveur SharePoint SharePoint server running timer jobs
CDBCDB Base de données contenu avec du contenu et des collections de sitesContent database, containing site collections and content
CFECFE Serveur de contenu de serveurs frontauxContent farm front end server
SPOSPO SharePoint OnlineSharePoint Online
ABSABS Stockage Blob AzureAzure Blob Storage

Ressources utilesHelpful Resources

Utilisation des structures de sécurité pack importationWorking with import package security structures

Cette section vous présente brièvement ce qui est inclus dans un pack d’exportation incluant une sécurité en ce qui concerne les autorisations.This section covers a brief overview of what is contained within an export package that includes security with regard to permissions. Cela peut autoriser le système afin de déterminer les abonnements groupes et utilisateurs ainsi que les rôles et affectations spécifiques (autorisations uniques définies au niveau de l’objet et de ses enfants, sauf si remplacés à un objet enfant approfondi).This can allow the system to determine user and group membership along with roles, and specific assignments (unique permissions set at the object level and its children unless overridden at a deeper child object).

Comment interpréter les identificateurs de sécurité dans les fichiers de packHow to interpret the security identifiers in the package files

Le fichier UserGroup.xml définit tous les utilisateurs et groupes dans les sites Web exportés.UserGroup.xml file defines all users and groups within the exported web(s). Les éléments au sein de ce fichier procèdent comme suit :The items within this file do the following:

  • Les objets utilisateur incluent les informations concernant des utilisateurs spécifiques, y compris l’identification d’un principe de sécurité spécifique comme un groupe de domaine ou non, connexion et base 64 codées SystemId (IDS) du principe de sécurité.User objects include the information about specific users, including identification of a specific security principle as a domain group or not, login, and the base 64 encoded SystemId (SID) of the security principle.
  • Les objets groupe incluent des informations sur les groupes spécifiques et la liste des membres directe de ce groupe.Group objects include the information about specific groups and the direct membership list of that group.
  • Les valeurs propriétaires d’objets de groupe et les valeurs UserId d’objets membre dans les objets de groupe mappent à d’autres valeurs Id d’autres utilisateurs ou groupes.Owner values on group objects and UserId values on member objects within group objects map to other Id values of other user or group objects respectively.

Tableau 2 : Utilisateurs et groupes annotés dans UserGroupMapTable 2: Users and Groups annotated in UserGroupMap

<UserGroupMap xmlns="urn:deployment-usergroupmap-schema">
  <Users>
    <User Id="1" Name="John Doe" Login="DOMAIN\JDoe" Email="DJoe@contoso.com"
    IsDomainGroup="false" IsSiteAdmin="true" SystemId="AQUAAAAAAAUVAAAAXSj1f9U62DVDVOAqToYSAA==" IsDeleted="false" Flags="0" />
    <User Id="2" Name="Jane Smith" Login="DOMAIN\JSmith" Email="jsmith@contoso.com"
    IsDomainGroup="false" IsSiteAdmin="true" SystemId="AQUAAAAAAAUVAAAAXSj1f9U62DVDVOAqdUwNAA==" IsDeleted="false" Flags="0" />
    …
  </Users>
  <Groups>
    <Group Id="3" Name="Temp Group" Description="A Temp Group" Owner="2" OwnerIsUser="true" OnlyAllowMembersViewMembership="true">
      <Member UserId="2" />
    </Group>
    <Group Id="4" Name="Temp Group 2" Description="Another Temp Group" Owner="2" OwnerIsUser="false" RequestToJoinLeaveEmailSetting="JSmith@contoso.com" OnlyAllowMembersViewMembership="true">
      <Member UserId="1" />
      <Member UserId="2" />
    </Group>
    …
  </Groups>
</UserGroupMap>

Manifest.XML contient des métadonnées relatives à tout le contenu dans les sites Web exportés.Manifest.xml contains the metadata about all the content within the exported web(s). Les éléments au sein de ce fichier procèdent comme suit :The items within this file do the following:

  • Les objets rôles incluent la liste des rôles définis sur le web.Roles objects include the list of defined roles on the web.
  • Les objets de rôle définissent le rôle individuel, y compris les ID, indicateurs masqués d’autorisations internes et affichent les informations.Role objects define the individual role, including ID, internal permissions rights mask flags and display information.
    • Les valeurs RoleId définissent les identificateurs des objets de rôle.RoleId values define the identifiers of the Role objects.
    • Valeurs PermMask contiennent les indicateurs masque de droits.PermMask values contain the rights mask flags.
  • Les objets RoleAssignments incluent la liste des autorisations uniques (RoleAssignment objets).RoleAssignments objects include the list of unique permissions (RoleAssignment objects).
  • Les objets RoleAssignment incluent la liste des objets d’affectation distinctes (le cas échéant).RoleAssignment objects include the list of distinct Assignment objects (if any).
  • Les objets individuels RoleAssignment contiennent l’appartenance réelle d’un utilisateur distinct ou groupe et leur rôle réel.Individual RoleAssignment objects contain the actual membership of one distinct user or group and their actual Role.
    • Les valeurs RoleId mappent aux valeurs RoleId des objets de rôle.RoleId values map to the RoleId values of the Role objects.
    • Les valeurs PrincipalId mappent aux valeurs d’Id des objets d’utilisateur ou groupe respectivement dans UserGroups.xml.PrincipalId values map to Id values of user or group objects respectively in UserGroups.xml.

Tableau 3 : Rôles et RoleAssignments annotés dans le manifesteTable 3: Roles and RoleAssignments annotated in manifest

<SPObjects xmlns="urn:deployment-manifest-schema">
  …
  <SPObject Id="0b3c1b13-b260-453c-ac8d-8053a537d610" ObjectType="DeploymentRoles" ParentId="203e30e2-1139-4adf-b545-e74235f105c2" ParentWebId="203e30a2-1139-4acf-b535-e74235f105c2" ParentWebUrl="/teams/temp">
    <Roles>
      <Role RoleId="1073751825" Title="Test Role" Description="This is a test role" PermMask="206292717568" Hidden="true" RoleOrder="160" Type="1" />
      <Role RoleId="1073751826" Title="Test Role 2" Description="This is another test role" PermMask="756052856929" Hidden="false" RoleOrder="128" Type="2" />
      …
    </Roles>
  </SPObject>
  <SPObject Id="373ea0ba-107a-4a78-9563-bc642f9ab14d" ObjectType="DeploymentRoleAssignments" ParentId="203e30e2-1139-4adf-b545-e74235f105c2" ParentWebId="203e30a2-1139-4acf-b535-e74235f105c2" ParentWebUrl="/teams/temp">
    <RoleAssignments>
      <RoleAssignment ScopeId="ffcab9b9-94ef-4701-e6d9-19a370760e1e" RoleDefWebId="203e11c2-1139-4abe-b534-e74235f106c2" RoleDefWebUrl="teams/temp" ObjectId="9f743aaf-65f9-473e-0c37-37f147960560" ObjectType="1" ObjectUrl="teams/temp/IWConvertedForms" AnonymousPermMask="0" />
      <RoleAssignment ScopeId="c3f564f3-62cd-4b25-8da4-2da7722402ab" RoleDefWebId="203e30a2-1139-4acf-b535-e74255e105c2" RoleDefWebUrl="teams/temp" ObjectId="2b9b0a32-51fb-4af8-a218-c90f63fd1de4" ObjectType="1" ObjectUrl="teams/temp/Relationships List" AnonymousPermMask="0">
        <Assignment RoleId="1073751825" PrincipalId="5" />
        <Assignment RoleId="1073751825" PrincipalId="6" />
        <Assignment RoleId="1073751826" PrincipalId="4" />
        <Assignment RoleId="1073751828" PrincipalId="1" />
      </RoleAssignment>
      …
    </RoleAssignments>
  </SPObject>
  …
</SPObjects>

Structures XSD contraintesConstrained XSD structures

Inclus ci-dessous sont les fichiers XSD utilisés pour la validation du pack dans le pipeline importation lorsqu’elle diffère de celle du schéma complet 2013 qui est accessible sur documentation officielle SharePoint.Included below are the XSD files used for package validation in the import pipeline, when different than the original 2013 full schema which can be found at official SharePoint documentation.

DeploymentExportSettings.XSDDeploymentExportSettings.XSD

Tableau 4 : Contrainte DeploymentExportSettings.XSDTable 4: Constrained DeploymentExportSettings.XSD

<?xml version="1.0" encoding="utf-8" ?>
<xs:schema targetNamespace="urn:deployment-exportsettings-schema" elementFormDefault="qualified" 
  xmlns="urn:deployment-exportsettings-schema" 
  xmlns:mstns="urn:deployment-exportsettings-schema" 
  xmlns:xs="http://www.w3.org/2001/XMLSchema">

  <!-- Guid SimpleType definition -->
  <xs:simpleType name="Guid">
    <xs:restriction base="xs:string"></xs:restriction>
  </xs:simpleType>

  <!-- Used for SPExportObjects -->
  <xs:simpleType name="SPDeploymentObjectType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Folder" />
      <xs:enumeration value="List" />
      <xs:enumeration value="ListItem" />
      <xs:enumeration value="File" />
    </xs:restriction>
  </xs:simpleType>

  <!-- Used for SPExportObjects -->
  <xs:simpleType name="SPIncludeDescendants">
    <xs:restriction base="xs:string">
      <xs:enumeration value="None" />
      <xs:enumeration value="Content" />
      <xs:enumeration value="All" />
    </xs:restriction>
  </xs:simpleType>

  <!-- From SPDeploymentSettings -->
  <xs:simpleType name="SPIncludeSecurity">
    <xs:restriction base="xs:string">
      <xs:enumeration value="None" />
      <xs:enumeration value="WssOnly" />
      <xs:enumeration value="All" />
    </xs:restriction>
  </xs:simpleType>

  <!-- From SPExportSettings -->
  <xs:simpleType name="SPIncludeVersions">
    <xs:restriction base="xs:string">
      <xs:enumeration value="LastMajor" />
      <xs:enumeration value="CurrentVersion" />
      <xs:enumeration value="LastMajorAndMinor" />
      <xs:enumeration value="All" />
    </xs:restriction>
  </xs:simpleType>

  <!-- From SPExportSettings -->
  <xs:simpleType name="SPExportMethodType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="ExportAll" />
      <xs:enumeration value="ExportChanges" />
    </xs:restriction>
  </xs:simpleType>

  <!-- This defines that the XML can contain 0-N instances of the -->
  <!-- SPExportObjects element -->
  <xs:complexType name="SPExportSettings">
    <xs:sequence>
      <xs:element name="ExportObjects" type="SPExportObjectCollection" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>

    <!-- SPDeploymentSettings -->
    <xs:attribute name="SiteUrl" type="xs:string" use="required" />
    <xs:attribute name="FileLocation" type="xs:string" />
    <xs:attribute name="BaseFileName" type="xs:string" />
    <xs:attribute name="IncludeSecurity" type="SPIncludeSecurity" />

    <!-- SPExportSettings -->
    <xs:attribute name="IncludeVersions" type="SPIncludeVersions" />
    <xs:attribute name="ExportMethod" type="SPExportMethodType" />
    <xs:attribute name="ExportChangeToken" type="xs:string" />
    <xs:attribute name="ExportPublicSchema" type="xs:boolean" default="true" />
    <xs:attribute name="ExportFrontEndFileStreams" type="xs:boolean" default="true" />
    <xs:attribute name="ExcludeDependencies" type="xs:boolean" />

    <xs:anyAttribute namespace="##any" processContents="skip" />
  </xs:complexType>

  <xs:complexType name="SPExportObjectCollection">
    <xs:sequence>
      <xs:element name="DeploymentObject" type="SPExportObject" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="SPExportObject">
    <!-- SPDeploymentObject -->
    <xs:attribute name="Id" type="Guid" />
    <xs:attribute name="Type" type="SPDeploymentObjectType" />
    <xs:attribute name="ParentId" type="Guid" />

    <!-- SPExportObject -->
    <xs:attribute name="Url" type="xs:string" />
    <xs:attribute name="ExcludeChildren" type="xs:boolean" />
    <xs:attribute name="IncludeDescendants" type="SPIncludeDescendants" />
    <xs:attribute name="ExportChangeToken" type="xs:string" />
  </xs:complexType>

  <!--This defines that the XML can contain 0-N instances of the ExportSettings element-->
  <xs:element name="ExportSettings" type="SPExportSettings" />
</xs:schema>

DeploymentLookupListMap.XSDDeploymentLookupListMap.XSD

Il n’existe aucune modification du schéma pack complet 2013 actuel.There is no change from current published full 2013 package schema.

DeploymentManifest.XSDDeploymentManifest.XSD

Tableau 5 : Contrainte DeploymentManifest.XSDTable 5: Constrained DeploymentManifest.XSD
<?xml version="1.0" encoding="utf-8" ?>
<xs:schema targetNamespace="urn:deployment-manifest-schema" elementFormDefault="qualified" 
  xmlns="urn:deployment-manifest-schema" 
  xmlns:mstns="urn:deployment-manifest-schema" 
  xmlns:xs="http://www.w3.org/2001/XMLSchema">

  <!-- From CoreDefinitions.xsd -->
  <xs:simpleType name="TRUEFALSE">
    <xs:restriction base="xs:string">
      <xs:enumeration value="TRUE" />
      <xs:enumeration value="FALSE" />
      <xs:enumeration value="true" />
      <xs:enumeration value="false" />
    </xs:restriction>
  </xs:simpleType>

  <!-- Guid SimpleType definition -->
  <xs:simpleType name="Guid">
    <xs:restriction base="xs:string"></xs:restriction>
  </xs:simpleType>

  <!-- SPGenericObjectCollection definition -->
  <xs:complexType name="SPGenericObjectCollection">
    <xs:sequence>
      <xs:element name="SPObject" type="SPGenericObject" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>

  <!-- Generic complex Type definition that wraps a Sharepoint top-level element -->
  <xs:complexType name="SPGenericObject">
    <xs:sequence>
      <xs:choice minOccurs="0" maxOccurs="1">
        <xs:element name="List" type="SPList" />
        <xs:element name="DocumentLibrary" type="SPDocumentLibrary" />
        <xs:element name="ListItem" type="SPListItem" />
        <xs:element name="Folder" type="SPFolder" />
        <xs:element name="File" type="SPFile" />
        <xs:element name="ContentType" type="SPContentType" />
        <xs:element name="UserX" type="DeploymentUserX" />
        <xs:element name="GroupX" type="DeploymentGroupX" />
        <xs:element name="Roles" type="DeploymentRoles" />
        <xs:element name="RoleX" type="DeploymentRoleX" />
        <xs:element name="RoleAssignments" type="DeploymentRoleAssignments" />
        <xs:element name="RoleAssignmentX" type="DeploymentRoleAssignmentX" />
      </xs:choice>
    </xs:sequence>

    <xs:attribute name="ObjectType" type="SPObjectType" />
    <xs:attribute name="Id" type="Guid" />
    <xs:attribute name="ParentId" type="Guid" />
    <xs:attribute name="Name" type="xs:string" />
    <xs:attribute name="IsDeleted" type="xs:boolean" />
    <xs:attribute name="IsSiteRename" type="xs:boolean" />
    <xs:attribute name="ParentWebId" type="Guid" />
    <xs:attribute name="ParentWebUrl" type="xs:string" use="optional" />
    <xs:attribute name="ContentTypeId" type="xs:string" use ="optional" />
    <xs:attribute name="Url" type="xs:string" />
  </xs:complexType>

  <xs:simpleType name="SPDictionaryEntryValueType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="String" />
      <xs:enumeration value="Integer" />
      <xs:enumeration value="Time" />
      <xs:enumeration value="StringVector" />
      <xs:enumeration value="Boolean" />
      <xs:enumeration value="FileSystemTime" />
      <xs:enumeration value="IntVector" />
      <xs:enumeration value="Double" />
      <xs:enumeration value="LongText" />
      <xs:enumeration value="Empty" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="SPDictionaryEntryAccess">
    <xs:restriction base="xs:string">
      <xs:enumeration value="ReadOnly" />
      <xs:enumeration value="ReadWrite" />
    </xs:restriction>
  </xs:simpleType>

  <!-- Enumeration of all the top-level serialized Sharepoint Types -->
  <xs:simpleType name="SPObjectType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="SPList" />
      <xs:enumeration value="SPDocumentLibrary" />
      <xs:enumeration value="SPListItem" />
      <xs:enumeration value="SPFolder" />
      <xs:enumeration value="SPFile" />
      <xs:enumeration value="SPContentType" />
      <xs:enumeration value="SPDocumentTemplate" />
      <xs:enumeration value="DeploymentUserX" />
      <xs:enumeration value="DeploymentGroupX" />
      <xs:enumeration value="DeploymentRoles" />
      <xs:enumeration value="DeploymentRoleX" />
      <xs:enumeration value="DeploymentRoleAssignments" />
      <xs:enumeration value="DeploymentRoleAssignmentX" />
    </xs:restriction>
  </xs:simpleType>

  <!-- Enumeration of all the non-top level serialized Sharepoint Types -->
  <xs:simpleType name="OtherObjectType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="SPFileVersion" />
      <xs:enumeration value="SPListEvent" />
      <xs:enumeration value="SPListItemVersion" />
      <xs:enumeration value="SPModerationInfo" />
    </xs:restriction>
  </xs:simpleType>

  <!-- DeploymentRole definition -->
  <xs:complexType name="DeploymentRole">
    <xs:attribute name="RoleId" type="xs:string" use="required" />
    <xs:attribute name="Title" type="xs:string" use="required" />
    <xs:attribute name="Description" type="xs:string" use="optional" />
    <xs:attribute name="PermMask" type="xs:string" use="required" />
    <xs:attribute name="Hidden" type="xs:boolean" use="required" />
    <xs:attribute name="RoleOrder" type="xs:string" use="optional" />
    <xs:attribute name="Type" type="xs:string" use="optional" />
  </xs:complexType>

  <!-- DeploymentRoles definition -->
  <xs:complexType name="DeploymentRoles">
    <xs:sequence>
      <xs:element name="Role" type="DeploymentRole" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>

  <!-- DeploymentAssignment definition -->
  <xs:complexType name="DeploymentAssignment">
    <xs:attribute name="RoleId" type="xs:string" use="required" />
    <xs:attribute name="PrincipalId" type="xs:string" use="required" />
  </xs:complexType>

  <!-- DeploymentRoleAssignment Definition -->
  <xs:complexType name="DeploymentRoleAssignment">
    <xs:sequence>
      <xs:element name="Assignment" type="DeploymentAssignment" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>

    <xs:attribute name="ScopeId" type="xs:string" use="required" />
    <xs:attribute name="RoleDefWebId" type="xs:string" use="required" />
    <xs:attribute name="RoleDefWebUrl" type="xs:string" use="required" />
    <xs:attribute name="ObjectId" type="xs:string" use="required" />
    <xs:attribute name="ObjectType" type="xs:string" use="required" />
    <xs:attribute name="ObjectUrl" type="xs:string" use="required" />
    <xs:attribute name="AnonymousPermMask" type="xs:string" />
  </xs:complexType>

  <xs:complexType name="DeploymentRoleAssignments">
    <xs:sequence>
      <xs:element name="RoleAssignment" type="DeploymentRoleAssignment" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>

  <!-- SPProperty definition -->
  <xs:complexType name="DictionaryEntry">
    <xs:attribute name="Name" type="xs:string" use="required" />
    <xs:attribute name="Value" type="xs:string" use="optional" />
    <xs:attribute name="Value2" type="xs:string" use="optional" />
    <xs:attribute name="Id" type="Guid" use="optional" />
    <xs:attribute name="Type" type="SPDictionaryEntryValueType" default="String" use="optional" />
    <xs:attribute name="Access" type="SPDictionaryEntryAccess" default="ReadWrite" use="optional" />
  </xs:complexType>

  <!-- Dictionary definition -->
  <xs:complexType name="Dictionary">
    <xs:sequence>
      <xs:element name="Property" type="DictionaryEntry" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>

  <!-- SPAttachment definition -->
  <xs:complexType name="SPAttachment">
    <xs:sequence>
      <xs:element name="Properties" type="Dictionary" minOccurs="0" />
    </xs:sequence>

    <xs:attribute name="Name" type="xs:string" />
    <xs:attribute name="DirName" type="xs:string" />
    <xs:attribute name="Url" type="xs:string" />
    <xs:attribute name="Id" type="Guid" />
    <xs:attribute name="ParentWebId" type="Guid" />

    <!-- Map to file on disk -->
    <xs:attribute name="FileValue" type="xs:string" />

    <xs:attribute name="MetaInfo" type="xs:string" use="optional" />

    <xs:attribute name="Author" type="xs:string" use="optional" />
    <xs:attribute name="ModifiedBy" type="xs:string" use="optional" />
    <xs:attribute name="TimeCreated" type="xs:dateTime" use="optional" />
    <xs:attribute name="TimeLastModified" type="xs:dateTime" use="optional" />

    <!-- Case where it fails at export time but too late to ignore -->
    <xs:attribute name="FailureMessage" type="xs:string" use="optional" />
  </xs:complexType>

  <!-- SPAttachmentCollection definition -->
  <xs:complexType name="SPAttachmentCollection">
    <xs:sequence>
      <xs:element name="Attachment" type="SPAttachment" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>

  <!-- SPLink definition -->
  <xs:complexType name="SPLink">
    <xs:sequence></xs:sequence>
    <xs:attribute name="TargetId" type="Guid" use="required" />
    <xs:attribute name="TargetUrl" type="xs:string" use="required" />
    <xs:attribute name="IsDirty" type="xs:boolean" use="required" />
    <xs:attribute name="WebPartId" type="Guid" use="optional" />
    <xs:attribute name="LinkNumber" type="xs:int" use="optional" />
    <xs:attribute name="Type" type="xs:unsignedByte" use="optional" />
    <xs:attribute name="Security" type="xs:unsignedByte" use="optional" />
    <xs:attribute name="Dynamic" type="xs:unsignedByte" use="optional" />
    <xs:attribute name="ServerRel" type="xs:boolean" use="optional" />
    <xs:attribute name="Level" type="xs:unsignedByte" use="optional" />
    <xs:attribute name="Search" type="xs:string" use="optional" />
  </xs:complexType>

  <!-- SPLinkCollection definition -->
  <xs:complexType name="SPLinkCollection">
    <xs:sequence>
      <xs:element name="Link" type="SPLink" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>

  <!-- AnonymousState definition -->
  <xs:simpleType name="AnonymousState">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Disabled" />
      <xs:enumeration value="Enabled" />
      <xs:enumeration value="On" />
    </xs:restriction>
  </xs:simpleType>

  <!-- SPModerationStatusType definition -->
  <xs:simpleType name="SPModerationStatusType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Approved" />
      <xs:enumeration value="Denied" />
      <xs:enumeration value="Pending" />
      <xs:enumeration value="Draft" />
      <xs:enumeration value="Scheduled" />
    </xs:restriction>
  </xs:simpleType>

  <!-- SPModerationInformation definition -->
  <xs:complexType name="SPModerationInformation">
    <xs:attribute name="Comment" type="xs:string" />
    <xs:attribute name="ModerationStatus" type="SPModerationStatusType" />
  </xs:complexType>

  <!-- SPBaseType definition -->
  <xs:simpleType name="SPBaseType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="UnspecifiedBaseType" />
      <xs:enumeration value="GenericList" />
      <xs:enumeration value="DocumentLibrary" />
      <xs:enumeration value="Unused" />
      <xs:enumeration value="DiscussionBoard" />
      <xs:enumeration value="Survey" />
      <xs:enumeration value="Issue" />
    </xs:restriction>
  </xs:simpleType>

  <!-- SPListTemplateType definition -->
  <xs:simpleType name="SPListTemplateType">
    <xs:restriction base="xs:string"></xs:restriction>
  </xs:simpleType>

  <!-- DraftVisibilityType definition -->
  <xs:simpleType name="DraftVisibilityType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Reader" />
      <xs:enumeration value="Author" />
      <xs:enumeration value="Approver" />
    </xs:restriction>
  </xs:simpleType>

  <!-- SPEventHostType definition -->
  <xs:simpleType name="SPEventHostType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Site" />
      <xs:enumeration value="Web" />
      <xs:enumeration value="List" />
      <xs:enumeration value="ListItem" />
      <xs:enumeration value="ContentType" />
      <xs:enumeration value="Feature" />
    </xs:restriction>
  </xs:simpleType>

  <!-- SPEventReceiverSynchronization definition -->
  <xs:simpleType name="SPEventReceiverSynchronization">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Default" />
      <xs:enumeration value="Synchronous" />
      <xs:enumeration value="Asynchronous" />
    </xs:restriction>
  </xs:simpleType>

  <!-- SPEventReceiverType definition -->
  <xs:simpleType name="SPEventReceiverType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="ItemAdding" />
      <xs:enumeration value="ItemUpdating" />
      <xs:enumeration value="ItemDeleting" />
      <xs:enumeration value="ItemCheckingIn" />
      <xs:enumeration value="ItemCheckingOut" />
      <xs:enumeration value="ItemUncheckingOut" />
      <xs:enumeration value="ItemAttachmentAdding" />
      <xs:enumeration value="ItemAttachmentDeleting" />
      <xs:enumeration value="ItemFileMoving" />
      <xs:enumeration value="ItemVersionDeleting" />
      <xs:enumeration value="FieldAdding" />
      <xs:enumeration value="FieldUpdating" />
      <xs:enumeration value="FieldDeleting" />
      <xs:enumeration value="ListAdding" />
      <xs:enumeration value="ListDeleting" />
      <xs:enumeration value="SiteDeleting" />
      <xs:enumeration value="WebDeleting" />
      <xs:enumeration value="WebMoving" />
      <xs:enumeration value="WebAdding" />
      <xs:enumeration value="GroupAdding" />
      <xs:enumeration value="GroupUpdating" />
      <xs:enumeration value="GroupDeleting" />
      <xs:enumeration value="GroupUserAdding" />
      <xs:enumeration value="GroupUserDeleting" />
      <xs:enumeration value="RoleDefinitionAdding" />
      <xs:enumeration value="RoleDefinitionUpdating" />
      <xs:enumeration value="RoleDefinitionDeleting" />
      <xs:enumeration value="RoleAssignmentAdding" />
      <xs:enumeration value="RoleAssignmentDeleting" />
      <xs:enumeration value="InheritanceBreaking" />
      <xs:enumeration value="InheritanceResetting" />
      <xs:enumeration value="ItemAdded" />
      <xs:enumeration value="ItemUpdated" />
      <xs:enumeration value="ItemDeleted" />
      <xs:enumeration value="ItemCheckedIn" />
      <xs:enumeration value="ItemCheckedOut" />
      <xs:enumeration value="ItemUncheckedOut" />
      <xs:enumeration value="ItemAttachmentAdded" />
      <xs:enumeration value="ItemAttachmentDeleted" />
      <xs:enumeration value="ItemFileMoved" />
      <xs:enumeration value="ItemFileConverted" />
      <xs:enumeration value="ItemFileTransformed" />
      <xs:enumeration value="ItemVersionDeleted" />
      <xs:enumeration value="FieldAdded" />
      <xs:enumeration value="FieldUpdated" />
      <xs:enumeration value="FieldDeleted" />
      <xs:enumeration value="ListAdded" />
      <xs:enumeration value="ListDeleted" />
      <xs:enumeration value="SiteDeleted" />
      <xs:enumeration value="WebDeleted" />
      <xs:enumeration value="WebMoved" />
      <xs:enumeration value="WebProvisioned" />
      <xs:enumeration value="WebRestored" />
      <xs:enumeration value="GroupAdded" />
      <xs:enumeration value="GroupUpdated" />
      <xs:enumeration value="GroupDeleted" />
      <xs:enumeration value="GroupUserAdded" />
      <xs:enumeration value="GroupUserDeleted" />
      <xs:enumeration value="RoleDefinitionAdded" />
      <xs:enumeration value="RoleDefinitionUpdated" />
      <xs:enumeration value="RoleDefinitionDeleted" />
      <xs:enumeration value="RoleAssignmentAdded" />
      <xs:enumeration value="RoleAssignmentDeleted" />
      <xs:enumeration value="InheritanceBroken" />
      <xs:enumeration value="InheritanceReset" />
      <xs:enumeration value="EmailReceived" />
      <xs:enumeration value="ContextEvent" />
      <xs:enumeration value="InvalidReceiver" />
      <xs:enumeration value="WorkflowCompleted" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="DefaultItemOpen">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Browser" />
      <xs:enumeration value="PreferClient" />
    </xs:restriction>
  </xs:simpleType>

  <!-- SPList definition -->
  <xs:complexType name="SPList">
    <xs:sequence >
      <xs:choice minOccurs="0" maxOccurs="11">
        <xs:element name="ContentTypes" type="SPContentTypeCollection" minOccurs="0" maxOccurs="1" />
        <xs:element name="DeletedContentTypes" type="ListDeletedContentTypes" minOccurs="0" maxOccurs="1" />
      </xs:choice>
    </xs:sequence>

    <xs:attribute name="Id" type="Guid" use="required" />
    <xs:attribute name="Title" type="xs:string" use="required" />

    <xs:attribute name="RootFolderId" type="Guid" />
    <xs:attribute name="RootFolderUrl" type="xs:string" use="required" />
    <xs:attribute name="ParentWebId" type="Guid" use="required" />
    <xs:attribute name="ParentWebUrl" type="xs:string" use="optional" />

    <xs:attribute name="BaseType" type="SPBaseType" />
    <xs:attribute name="BaseTemplate" type="SPListTemplateType" use="required" />
  </xs:complexType>

  <xs:complexType name="SPFieldCollection" mixed="true">
    <xs:sequence minOccurs="0" maxOccurs="unbounded">
      <xs:element name="FieldRef" type="SPFieldLink" minOccurs="0" maxOccurs="unbounded" />
      <xs:element name="Field" type="SPField" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="SPField">
    <xs:sequence>
      <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="skip" />
    </xs:sequence>
    <xs:attribute name="ID" type="Guid" />
    <xs:attribute name="FieldId" type="Guid" use="optional" />
    <xs:attribute name="Name" type="xs:string" />
    <xs:attribute name="Value" type="xs:string" />
    <xs:attribute name="DisplayName" type="xs:string" />
    <xs:attribute name="RowOrdinal" type="xs:int" />
    <xs:attribute name="RowOrdinal2" type="xs:int" use="optional" />
    <xs:attribute name="Type" type="xs:string" />
    <xs:attribute name="ColName" type="xs:string" />
    <xs:attribute name="ColName2" type="xs:string" use="optional" />
    <xs:attribute name="Title" type="xs:string" use="optional" />
    <xs:attribute name="Description" type="xs:string" use="optional" />
    <xs:attribute name="DefaultValue" type="xs:string" use="optional" />
    <xs:attribute name="DefaultFormula" type="xs:string" use="optional" />
    <xs:attribute name="FromBaseType" type="xs:string" use="optional" />
    <xs:attribute name="Sealed" type="xs:string" />
    <xs:attribute name="CanToggleHidden" type="xs:string" use="optional" />
    <xs:attribute name="DisplaySize" type="xs:string" use="optional" />
    <xs:attribute name="Required" type="xs:string" use="optional" />
    <xs:attribute name="ReadOnly" type="xs:string" use="optional" />
    <xs:attribute name="Hidden" type="xs:string" use="optional" />
    <xs:attribute name="Direction" type="xs:string" use="optional" />
    <xs:attribute name="IMEMode" type="xs:string" use="optional" />
    <xs:attribute name="SortableBySchema" type="xs:string" use="optional" />
    <xs:attribute name="Sortable" type="xs:string" use="optional" />
    <xs:attribute name="FilterableBySchema" type="xs:string" use="optional" />
    <xs:attribute name="Filterable" type="xs:string" use="optional" />
    <xs:attribute name="FilterableNoRecurrenceBySchema" type="xs:string" use="optional" />
    <xs:attribute name="FilterableNoRecurrence" type="xs:string" use="optional" />
    <xs:attribute name="Reorderable" type="xs:string" use="optional" />
    <xs:attribute name="Format" type="xs:string" use="optional" />
    <xs:attribute name="FillInChoice" type="xs:string" use="optional" />
    <xs:attribute name="SchemaXml" type="xs:string" use="optional" />
    <xs:attribute name="JSLink" type="xs:string" use="optional" />
    <xs:attribute name="CAMLRendering" type="xs:string" use="optional" />
    <xs:attribute name="ServerRender" type="xs:string" use="optional" />
    <xs:attribute name="ListItemMenu" type="xs:string" use="optional" />
    <xs:attribute name="ListItemMenuAllowed" type="xs:string" use="optional" />
    <xs:attribute name="LinkToItem" type="xs:string" use="optional" />
    <xs:attribute name="LinkToItemAllowed" type="xs:string" use="optional" />
    <xs:attribute name="CalloutMenu" type="xs:string" use="optional" />
    <xs:attribute name="CalloutMenuAllowed" type="xs:string" use="optional" />
    <!-- Label definition  -->
    <xs:attribute name="ListDefaultCompliancetagWrittenTime" type="xs:dateTime" use="optional" />
    <xs:attribute name="ListDefaultComplianceTagUserId" type="xs:int" use="optional" />
    <!-- ListDefaultComplianceFlags is a Flags dependes on the Label, if the Label has Keep or KeepAndDelete ( that will have the 0x01 bit set). If the Label is a record label, that will have 0x01 and 0x04 set -->
    <xs:attribute name="ListDefaultComplianceFlags" type="xs:int" use="optional" />
    <xs:attribute name="ListDefaultComplianceTag" type="xs:string" use="optional" />
    <!-- end of Label definition  -->
    <xs:anyAttribute namespace="##any" processContents="skip" />
  </xs:complexType>

  <!-- FieldDataCollection definition -->
  <xs:complexType name="FieldDataCollection">
    <xs:sequence>
      <xs:element name="Field" type="DictionaryEntry" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>

  <!-- SPEventReceiverDefinitionCollection definition -->
  <xs:complexType name="SPEventReceiverDefinitionCollection">
    <xs:sequence>
      <xs:element name="EventReceiver" type="SPEventReceiverDefinition" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>

  <!-- SPEventReceiverDefinition definition -->
  <xs:complexType name="SPEventReceiverDefinition">
    <xs:attribute name="Id" type="Guid" use="required" />
    <xs:attribute name="Name" type="xs:string" use="required" />
    <xs:attribute name="WebId" type="Guid" use="required" />
    <xs:attribute name="HostId" type="Guid" use="required" />
    <xs:attribute name="HostType" type="SPEventHostType" use="required" />
    <xs:attribute name="Synchronization" type="SPEventReceiverSynchronization" use="optional" />
    <xs:attribute name="Type" type="SPEventReceiverType" use="required" />
    <xs:attribute name="SequenceNumber" type="xs:int" use="required" />
    <xs:attribute name="Url" type="xs:string" use="optional" />
    <xs:attribute name="Assembly" type="xs:string" use="optional" />
    <xs:attribute name="Class" type="xs:string" use="optional" />
    <xs:attribute name="SolutionId" type="Guid" use="optional" />
    <xs:attribute name="Data" type="xs:string" use="optional" />
    <xs:attribute name="Filter" type="xs:string" use="optional" />
    <xs:attribute name="Credential" type="xs:int" use="optional" />
    <xs:attribute name="ItemId" type="xs:int" use="optional" />
  </xs:complexType>

  <!-- ListDeletedContentTypes definition -->
  <xs:complexType name="ListDeletedContentTypes">
    <xs:sequence>
      <xs:element name="DeletedContentType" type="DeletedContentType" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>

  <!-- DeletedContentType definition -->
  <xs:complexType name="DeletedContentType">
    <xs:attribute name="ContentTypeId" type="xs:string" use="required" />
  </xs:complexType>

  <!-- SPDocumentLibrary definition -->
  <xs:complexType name="SPDocumentLibrary">
    <xs:complexContent>
      <xs:extension base="SPList">
        <xs:attribute name="DocumentTemplateUrl" type="xs:string" />
        <xs:attribute name="IsCatalog" type="xs:boolean" />
        <xs:attribute name="ThumbnailSize" type="xs:int" />
        <xs:attribute name="WebImageHeight" type="xs:int" />
        <xs:attribute name="WebImageWidth" type="xs:int" />
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <!-- SPFolder definition -->
  <xs:complexType name="SPFolder">
    <xs:sequence>
      <xs:element name="Properties" type="Dictionary" minOccurs="0" />
    </xs:sequence>
    <xs:attribute name="Id" type="Guid" />
    <xs:attribute name="Name" type="xs:string" />
    <xs:attribute name="Url" type="xs:string" />
    <xs:attribute name="ParentFolderId" type="Guid" />
    <xs:attribute name="ParentWebId" type="Guid" />
    <xs:attribute name="ParentWebUrl" type="xs:string" use="optional" />
    <xs:attribute name="ContainingDocumentLibrary" type="Guid" />
    <xs:attribute name="WelcomePageUrl" type="xs:string" use="optional" />
    <xs:attribute name="WelcomePageParameters" type="xs:string" use="optional" />
    <xs:attribute name="ListItemIntId" type="xs:int" use="optional" />
    <xs:attribute name="Author" type="xs:string" use="optional" />
    <xs:attribute name="ModifiedBy" type="xs:string" use="optional" />
    <xs:attribute name="TimeCreated" type="xs:dateTime" use="optional" />
    <xs:attribute name="TimeLastModified" type="xs:dateTime" use="optional" />
    <xs:attribute name="ProgId" type="xs:string" use="optional" />
    <xs:attribute name="SortBehavior" type="xs:string" use="optional" />
  </xs:complexType>

  <!-- SPFileVersion Collection definition -->
  <xs:complexType name="SPFileVersionCollection">
    <xs:sequence>
      <xs:element name="File" type="SPFile" minOccurs="1" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>

  <!-- SPListItemVersion Collection definition -->
  <xs:complexType name="SPListItemVersionCollection">
    <xs:sequence>
      <xs:element name="ListItem" type="SPListItem" minOccurs="1" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>

  <!-- SPFileVersionEvent Collection definition -->
  <xs:complexType name="SPFileVersionEventCollection">
    <xs:sequence>
      <xs:element name="VersionEvent" type="SPFileVersionEvent" minOccurs="1" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="SPFileVersionEvent">
    <xs:attribute name="Id" type="xs:int" />
    <xs:attribute name="UIVersion" type="xs:int" />
    <xs:attribute name="Type" type="xs:int" />
    <xs:attribute name="Time" type="xs:dateTime" />
    <xs:attribute name="UserId" type="xs:int" />
  </xs:complexType>

  <!-- SPFile definition -->
  <xs:complexType name="SPFile">
    <xs:sequence>
      <xs:element name="Properties" type="Dictionary" minOccurs="0" />
      <xs:element name="Versions" type="SPFileVersionCollection" minOccurs="0" maxOccurs="1" />
      <xs:element name="Links" type="SPLinkCollection" minOccurs="0" maxOccurs="1" />
      <xs:element name="EventReceivers" type="SPEventReceiverDefinitionCollection" minOccurs="0" maxOccurs="1" />
      <xs:element name="VersionEvents" type="SPFileVersionEventCollection" minOccurs="0" maxOccurs="1" />
    </xs:sequence>

    <xs:attribute name="Name" type="xs:string" />
    <xs:attribute name="Id" type="Guid" />
    <xs:attribute name="Url" type="xs:string" />
    <xs:attribute name="ListItemIntId" type="xs:int" />
    <xs:attribute name="InDocumentLibrary" type="xs:boolean" />

    <xs:attribute name="ParentWebId" type="Guid" />
    <xs:attribute name="ParentWebUrl" type="xs:string" />

    <xs:attribute name="ParentId" type="Guid" />
    <xs:attribute name="ListId" type="Guid" use="optional" />

    <!-- Map to file on disk -->
    <xs:attribute name="FileValue" type="xs:string" use="optional" />

    <xs:attribute name="CheckinComment" type="xs:string" use="optional" />
    <xs:attribute name="Version" type="xs:string" use="optional" default="1.0" />

    <xs:attribute name="Author" type="xs:string" use="optional" />
    <xs:attribute name="ModifiedBy" type="xs:string" use="optional" />
    <xs:attribute name="TimeCreated" type="xs:dateTime" use="optional" />
    <xs:attribute name="TimeLastModified" type="xs:dateTime" use="optional" />

    <!-- Case where it fails at export time but too late to ignore -->
    <xs:attribute name="FailureMessage" type="xs:string" use="optional" />

    <!-- Setup Path Information -->
    <xs:attribute name="IsGhosted" type="xs:boolean" use="optional" />
    <xs:attribute name="SetupPath" type="xs:string" use="optional" />
    <xs:attribute name="SetupPathUser" type="xs:string" use="optional" />
    <!-- Use: 2, 3, 4 OR 15 -->
    <xs:attribute name="SetupPathVersion" type="xs:byte" default="15" />

    <xs:anyAttribute namespace="##any" processContents="skip" />
  </xs:complexType>

  <!-- Doc Type of List Item -->
  <xs:simpleType name="ListItemDocType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="File" />
      <xs:enumeration value="Folder" />
      <xs:enumeration value="Unknown" />
    </xs:restriction>
  </xs:simpleType>

  <!-- SPListItem definition -->
  <xs:complexType name="SPListItem">
    <xs:sequence>
      <xs:choice minOccurs="0" maxOccurs="5">
        <xs:element name="Fields" type="SPFieldCollection" minOccurs="0" maxOccurs="1" />
        <xs:element name="Versions" type="SPListItemVersionCollection" minOccurs="0" maxOccurs="1" />
        <xs:element name="Attachments" type="SPAttachmentCollection" minOccurs="0" maxOccurs="1" />
        <xs:element name="Links" type="SPLinkCollection" minOccurs="0" maxOccurs="1" />
        <xs:element name="EventReceivers" type="SPEventReceiverDefinitionCollection" minOccurs="0" maxOccurs="1" />
      </xs:choice>
    </xs:sequence>

    <xs:attribute name="Name" type="xs:string" />
    <xs:attribute name="DirName" type="xs:string" />
    <xs:attribute name="FileUrl" type="xs:string" use="optional" />
    <xs:attribute name="Version" type="xs:string" use="optional" default="1.0" />
    <xs:attribute name="Id" type="Guid" />
    <xs:attribute name="IntId" type="xs:int" />
    <xs:attribute name="DocId" type="Guid" use="optional" />

    <xs:attribute name="Author" type="xs:string" use="optional" />
    <xs:attribute name="ModifiedBy" type="xs:string" use="optional" />
    <xs:attribute name="TimeCreated" type="xs:dateTime" use="optional" />
    <xs:attribute name="TimeLastModified" type="xs:dateTime" use="optional" />

    <xs:attribute name="ParentWebId" type="Guid" />
    <xs:attribute name="ParentListId" type="Guid" />
    <xs:attribute name="ParentFolderId" type="Guid" use="optional" />

    <xs:attribute name="ModerationStatus" type="SPModerationStatusType" use="optional" />
    <xs:attribute name="ModerationComment" type="xs:string" use="optional" />
    <xs:attribute name="ContentTypeId" type="xs:string" />
    <xs:attribute name="ProgId" type="xs:string" use="optional" />
    <xs:attribute name="Order" type="xs:float" use="optional" />
    <xs:attribute name="ThreadIndex" type="xs:string" use="optional" />
    <xs:attribute name="UserSolutionActivated" type="xs:boolean" use="optional" />
    <xs:attribute name="DocType" type="ListItemDocType" default="File" />

    <!-- UserInfo -->
    <xs:attribute name="UserLoginName" type="xs:string" use="optional" />
    <xs:attribute name="GroupName" type="xs:string" use="optional" />

    <!-- Case where it fails at export time but too late to ignore -->
    <xs:attribute name="FailureMessage" type="xs:string" use="optional" />

    <xs:anyAttribute namespace="##any" processContents="skip" />
  </xs:complexType>

  <xs:complexType name="SPFieldLink">
    <xs:attribute name="Name" type="xs:string" />
    <xs:attribute name="ID" type="Guid" use="optional" />
    <xs:attribute name="Customization" type="xs:string" use="optional" />
    <xs:attribute name="Default" type="xs:string" use="optional" />
    <xs:attribute name="ColName" type="xs:string" use="optional" />
    <xs:attribute name="ColName2" type="xs:string" use="optional" />
    <xs:attribute name="RowOrdinal" type="xs:int" use="optional" />
    <xs:attribute name="RowOrdinal2" type="xs:int" use="optional" />

    <xs:attribute name="Hidden" type="TRUEFALSE" use="optional" />
    <xs:attribute name="Required" type="TRUEFALSE" use="optional" />
    <xs:attribute name="Explicit" type="xs:string" use="optional" />
    <xs:attribute name="ShowInNewForm" type="xs:string" use="optional" />
    <xs:attribute name="ShowInEditForm" type="xs:string" use="optional" />
    <xs:attribute name="DisplayName" type="xs:string" use="optional" />
    <xs:attribute name="Node" type="xs:string" use="optional" />

    <xs:anyAttribute namespace="##any" processContents="skip" />
  </xs:complexType>

  <xs:complexType name="SPXmlDocumentCollection">
    <xs:sequence >
      <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="skip" />
    </xs:sequence>
    <xs:anyAttribute namespace="##any" processContents="skip" />
  </xs:complexType>

  <xs:complexType name="SPContentType">
    <xs:sequence>
      <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="skip" />
    </xs:sequence>

    <xs:attribute name="ID" type="Guid" />
    <xs:attribute name="Name" type="xs:string" />
    <xs:attribute name="Scope" type="xs:string" />
    <xs:attribute name="NextChildByte" type="xs:short" />
    <xs:attribute name="ParentWebId" type="Guid" />
    <xs:attribute name="ListId" type="Guid" use="optional" />
    <xs:attribute name="Description" type="xs:string" use="optional" />
    <xs:attribute name="Hidden" type="TRUEFALSE" use="optional" />
    <xs:attribute name="ReadOnly" type="TRUEFALSE" use="optional" />
    <xs:attribute name="Group" type="xs:string" use="optional" />
    <xs:attribute name="PushDownChanges" type="xs:boolean" use="optional" />
    <xs:attribute name="RequireClientRenderingOnNew" type="xs:string" use="optional" />

    <xs:anyAttribute namespace="##any" processContents="skip" />
  </xs:complexType>

  <xs:complexType name="SPContentTypeRef">
    <xs:sequence>
      <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="skip" />
    </xs:sequence>

    <xs:attribute name="ID" type="Guid" />

    <xs:anyAttribute namespace="##any" processContents="skip" />
  </xs:complexType>

  <xs:complexType name="SPContentTypeFolder">
    <xs:attribute name="TargetName" type="xs:string" />

    <xs:anyAttribute namespace="##any" processContents="skip" />
  </xs:complexType>

  <xs:complexType name="SPContentTypeCollection">
    <xs:sequence>
      <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##any" processContents="skip" />
    </xs:sequence>
  </xs:complexType>

  <!--This defines that the XML can contain 0-N instances of the SPGenericObject element-->
  <xs:element name="SPObjects" type="SPGenericObjectCollection"></xs:element>
</xs:schema>

DeploymentRequirements.XSDDeploymentRequirements.XSD

Il n’existe aucune modification du schéma pack complet 2013 actuel.There is no change from current published full 2013 package schema.

DeploymentRootObjectMap.XSDDeploymentRootObjectMap.XSD

Tableau 6 : Contrainte DeploymentRootObjectMap.XSDTable 6: Constrained DeploymentRootObjectMap.XSD

<?xml version="1.0" encoding="utf-8" ?>
<xs:schema targetNamespace="urn:deployment-rootobjectmap-schema" elementFormDefault="qualified" 
  xmlns="urn:deployment-rootobjectmap-schema" 
  xmlns:mstns="urn:deployment-rootobjectmap-schema" 
  xmlns:xs="http://www.w3.org/2001/XMLSchema">

  <!-- Guid SimpleType definition -->
  <xs:simpleType name="Guid">
    <xs:restriction base="xs:string"></xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="SPDeploymentObjectType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Folder" />
      <xs:enumeration value="List" />
      <xs:enumeration value="ListItem" />
      <xs:enumeration value="File" />
    </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="SPRootObject">
    <xs:attribute name="Id" type="Guid" />
    <xs:attribute name="Type" type="SPDeploymentObjectType" />
    <xs:attribute name="ParentId" type="Guid" />
    <xs:attribute name="WebUrl" type="xs:string" />
    <xs:attribute name="Url" type="xs:string" />
    <xs:attribute name="IsDependency" type="xs:boolean" />
  </xs:complexType>

  <xs:complexType name="SPRootObjects">
    <xs:sequence>
      <xs:element name="RootObject" type="SPRootObject" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>

  <xs:element name="RootObjects" type="SPRootObjects" />
</xs:schema>

DeploymentSystemData.XSDDeploymentSystemData.XSD

Il n’existe aucune modification du schéma pack complet 2013 actuel.There is no change from current published full 2013 package schema.

DeploymentUserGroupMap.XSDDeploymentUserGroupMap.XSD

Il n’existe aucune modification du schéma pack complet 2013 actuel.There is no change from current published full 2013 full 2013 package schema.

DeploymentViewFormsList.XSDDeploymentViewFormsList.XSD

Il n’existe aucune modification du schéma pack complet 2013 actuel.There is no change from current published full 2013 package schema.

Exemple : utilisation de la fonction REST pour appeler l’APISample: Using REST to call the API

https://{site_url}/_api/site/CreateMigrationJobEncrypted

{
  "options": {
    "AES256CBCKey": "000000000000000000000000000000000000000000000000000000="
  },
  "gWebId": "00000000-0000-0000-0000-000000000000",
  "azureContainerSourceUri": "https://<spam><spam>tenant.blob.core.windows.net:443/00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000<spam><spam>=rw",
  "azureContainerManifestUri": "https://<spam><spam>tenant.blob.core.windows.net:443/00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000<spam><spam>=rw"
}

En ce qui concerne le conteneur :For the container:

https://{site_url}/_api/site/ProvisionMigrationContainers

Notes

L’API Migration n’est actuellement pas disponible pour les utilisateurs d’Office 365 géré par 21Vianet en Chine.The Migration API is not available for users of Office 365 operated by 21Vianet in China. Il n’est pas disponible pour les utilisateurs d’Office 365 utilisant le cloud allemand proposé par le tiers de confiance pour les données Deutsche Telekom.It is also not available for users of Office 365 with the German cloud using the data trustee, German Telekom. Toutefois, il est pris en charge pour les utilisateurs situés en Allemagne dont les données ne sont pas stockées dans le centre de données allemand.However, it is supported for users in Germany whose data location is not in the German data center.