Progettazione e buone pratiche del formato file OpenXml
Domanda
La gente,
Abbiamo usato le API OpenXml presenti in System.IO.Packaging per creare un file di pacchetto che contiene alcuni file Xml / Binary, quindi il pacchetto è strutturato come di seguito:
Package/
-/DataFolder1/an xml file.xml
-/DataFolder2/another xml file.xml
-/Bin/other binar files
Questo è stato usato per la versione 1.0 dell'applicazione e sta andando abbastanza bene.
Siamo nella fase di pianificazione di V2 anticipando i seguenti cambiamenti nella struttura del pacchetto:
-
potrebbero essere presenti file aggiuntivi nel pacchetto
-
potrebbero esserci delle modifiche nello schema Xml dei file esistenti (esempio ... nuovi nodi)
- potrebbero esserci delle modifiche nello schema Xml dei file esistenti (esempio ... rimozione di nodi o modifica del tipo di dati)
Gradirei qualsiasi consiglio basato sull'esperienza di vita reale che affronti la calcolabilità indietro / avanti tra i formati di file e l'applicazione stessa, in modo che sia l'applicazione che il suo formato di file possano evolversi indipendentemente l'uno dall'altro.
Soluzione
Senza conoscere ulteriormente l'applicazione è difficile consigliarti. Tuttavia, è possibile gestire diverse versioni dell'XML personalizzato aggiungendo un attributo contenente il numero di versione o - se si sono verificate importanti modifiche nello schema - modificando lo spazio dei nomi per contenere un nuovo numero di versione.
Se vuoi dare un'occhiata a come OpenXML stesso gestisce il controllo delle versioni e l'estensibilità, ti suggerisco di leggere la Parte 5 della specifica OpenXML:
Office Open XML - Parte 5: Compatibilità ed estensibilità del markup