Uno dei requisiti principali per conseguire la persistenza di dati di termine lunga è la capacità di muovere dei dati tra i sistemi di archiving o, nella lingua dello SNIA XAM (Metodo di Accesso aLLUNGABILE) la descrizione, movendo XSets tra XSystems.
Lo XAM v1.0 la descrizione sostiene questo requisito fornendo il sostegno per Xsets di esportare ed importare. Specifica i metodi che è usato esportare uno XSet da uno XSystem, lo XSet risultante i dati canonici scambiano il formato (il pacchetto) ed i metodi che è usato importare uno Xset in uno Xsystem.
Questo palo presume che lei conoscono un poco bene XAM e come programmare a quella descrizione che usa Giava. Si concentra sul formato e sul contenuto dello XSet il pacchetto di formato canonico che consiste in due parti principali: un documento di XML che descrive le linee di condotta, le proprietà ed i ruscelli di uno o più XSets hanno seguito dalla rappresentazione binaria dei ruscelli.
Il formato di pacchetto si conforma al 2005 W3C XML-BINARIO Ottimizzato Imballa (XOP) la raccomandazione. Per citare dalla raccomandazione:
XOP definisce un meccanismo di serializzazione di scopo generale per lo XML Infoset con il contenuto binario che è non solo applicabile a SAPONE ed a MIMO che imballa, ma a qualunque XML Infoset e qualunque meccanismo che imballa.
Se lei è poco conosciuto con XOP e la maggior parte delle persone sono, un articolo da Andrey Butov nell'il 2005 dicembre questione di Dobb di Dottore’s Diario ha contenuto una buona introduzione.
Più di uno XSet può essere contenuto in un pacchetto. Comunque la realizzazione di riferimento di SDK DI XAM di corrente sostiene solo uno XSet. Il documento di XML (ALIAS il manifesto di XSet) è uno XML valido e benfatto documenta di chi elemento di radice è lo xsets. Può essere analizzato e può essere manipolato usando XSLT e gli altri attrezzi di XML. Annettere B del documento di Architettura di XAM contiene una Definizione di Schema di XML (XSD) per il manifesto di XSet.
Per studiare il formato di pacchetto in più dettaglio, ho scritto una piccola domanda di Giava ha chiamato StoreHelloWorld che crea un nuovo XSet che contiene due XStreams. Il primo Xstream contiene il codice di fonte per il programma di HelloWorld.Giava onnipresente. Il secondo XStream contiene l'HelloWorld.Classe di oggetto binaria codificato a base64 e con un tipo di MIMO di application/base64. Normalmente lei non dovrebbe codificare uno XStream ma mostrando dei file binari in un blog è problematico e quindi la soluzione.
È qui il codice di fonte per StoreHelloWorld. Giava di importazione. l'io. BufferedOutputStream; Giava di importazione. l'io. BufferedInputStream; Giava di importazione. l'io. BufferedReader; Giava di importazione. l'io. il File; Giava di importazione. l'io. FileInputStream; Giava di importazione. l'io. FileOutputStream; Giava di importazione. l'io. FileNotFoundException; Giava di importazione. l'io. FileWriter; Giava di importazione. l'io. IOException; Giava di importazione. l'io. InputStreamReader; Giava di importazione. l'io. InputStream;

























