Une des conditions clés pour atteindre la persistence de données à long terme est la capacité à déplacer des données entre archiver des systèmes ou, dans la langue du SNIA XAM (Méthode d'Accès eXTENSIBLE) la spécification, déplaçant XSets entre XSystems.
Le XAM v1.0 spécification soutient cette condition en fournant le soutien pour Xsets d'exportation et importation. Il spécifie les méthodes qui sont utilisées exporter un XSet d'un XSystem, le XSet résultant les données canoniales échangent le format (le packet) et les méthodes qui sont utilisées importer un Xset dans un Xsystem.
Cette poste suppose que vous êtes un peu familier avec XAM et comment programmer à cette Java d'utilisation de spécification. Il se fixe sur le format et sur le contenu du XSet le packet de format canonial qui consiste en deux parties principales : un document de XML qui décrit les politiques, les propriétés et les ruisseaux d'un ou plus de XSets a suivi par la représentation binaire des ruisseaux.
Le format de packet est conforme au 2005 W3C XML-BINAIRE A Optimisé l'Emballage (XOP) la recommandation. Pour citer de la recommandation :
XOP définit un mécanisme d'adaptation en feuilleton de but général pour le XML Infoset avec le contenu binaire qui est non seulement applicable à SAVON et MIME qui emballe, mais à n'importe quel XML Infoset et n'importe quel mécanisme d'emballage.
Si vous êtes inconnu avec XOP, et la plupart des gens sont, un article par Andrey Butov dans le problème le 2005 décembre de Dobb de Médecin’s Journal a contenu une bonne introduction.
Plus qu'un XSet peut être contenu dans un packet. Cependant l'implémentation de référence de SDK DE XAM de courant soutient seulement un XSet. Le document de XML (ALIAS le manifeste de XSet) est un document de XML valide et bien-formé dont l'élément fondamental est xsets. Il peut être analysé et peut être manipulé utilisant XSLT et les autres outils de XML. Annexer B du document d'Architecture de XAM contient un Schéma Définition XML (XSD) pour le manifeste de XSet.
Pour étudier le format de packet dans plus de détail, j'ai écrit à une petite application de Java a appelé StoreHelloWorld qui crée un nouveau XSet contient deux XStreams. Le premier Xstream contient le code source pour le programme de HelloWorld.Java ubiquiste. Le deuxième XStream contient la HelloWorld.Classe d'objet binaire codée à base64 et avec un type de MIME d'application/base64. Normalement vous ne devriez pas coder un XStream mais affichant des fichiers binaires dans un blog est problématique et donc la solution de contournement.
Voici le code source pour StoreHelloWorld. Java d'importation. io. BufferedOutputStream ; Java d'importation. io. BufferedInputStream ; Java d'importation. io. BufferedReader ; Java d'importation. io. le Dossier ; Java d'importation. io. FileInputStream ; Java d'importation. io. FileOutputStream ; Java d'importation. io. FileNotFoundException ; Java d'importation. io. FileWriter ; Java d'importation. io. IOException ; Java d'importation. io. InputStreamReader ; importer Java. io. InputStream ;

























