[ismrmrd] 169/281: updating Java XML bindings for newest schema version.

Ghislain Vaillant ghisvail-guest at moszumanska.debian.org
Wed Jan 14 20:01:10 UTC 2015


This is an automated email from the git hooks/post-receive script.

ghisvail-guest pushed a commit to annotated tag ismrmrd0.5
in repository ismrmrd.

commit 0f7dd648e6be31a8514929a39ce737a3d0a5275d
Author: Joseph Naegele <joseph.naegele at gmail.com>
Date:   Fri Aug 23 11:42:57 2013 -0400

    updating Java XML bindings for newest schema version.
---
 bindings/java/XMLString.java    | 32 +++++++++++++++++-------
 examples/java/ismrmrd_test.java | 55 ++++++++++++++++++++++++-----------------
 2 files changed, 55 insertions(+), 32 deletions(-)

diff --git a/bindings/java/XMLString.java b/bindings/java/XMLString.java
index d215e1d..8038712 100644
--- a/bindings/java/XMLString.java
+++ b/bindings/java/XMLString.java
@@ -1,6 +1,8 @@
 package org.ismrm.ismrmrd.xmlhdr;
 
 import javax.xml.bind.*;
+import javax.xml.namespace.QName;
+import javax.xml.transform.stream.*;
 import java.io.StringReader;
 import java.io.StringWriter;
 
@@ -8,21 +10,33 @@ import java.io.StringWriter;
 public class XMLString {
     public static IsmrmrdHeader StringToIsmrmrdHeader(String xmlstring) throws javax.xml.bind.JAXBException
     {
-        JAXBContext jc = JAXBContext.newInstance(IsmrmrdHeader.class);
-        Unmarshaller u  = jc.createUnmarshaller();
+        JAXBContext jaxbContext = JAXBContext.newInstance(IsmrmrdHeader.class);
+
+        Unmarshaller unmarshaller  = jaxbContext.createUnmarshaller();
+
         StringReader reader = new StringReader(xmlstring);
-        IsmrmrdHeader hdr = (IsmrmrdHeader) u.unmarshal(reader);
-        return hdr;
+
+        JAXBElement<IsmrmrdHeader> root = unmarshaller.unmarshal(new StreamSource(reader), IsmrmrdHeader.class);
+
+        return root.getValue();
     }
 
     public static String IsmrmrdHeaderToString(IsmrmrdHeader header) throws javax.xml.bind.JAXBException
     {
-        JAXBContext jc = JAXBContext.newInstance(IsmrmrdHeader.class);
-        Marshaller m = jc.createMarshaller();
-        m.setProperty(Marshaller.JAXB_SCHEMA_LOCATION, "http://www.ismrm.org/ISMRMRD ismrmrd.xsd");
-        m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
+        JAXBContext jaxbContext = JAXBContext.newInstance(IsmrmrdHeader.class);
+
+        Marshaller marshaller = jaxbContext.createMarshaller();
+
+        marshaller.setProperty(Marshaller.JAXB_SCHEMA_LOCATION, "http://www.ismrm.org/ISMRMRD ismrmrd.xsd");
+        marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
+
         StringWriter writer = new StringWriter();
-        m.marshal(header, writer);
+
+        QName qname = new QName("http://www.ismrm.org/ISMRMRD", "ismrmrdHeader");
+        JAXBElement<IsmrmrdHeader> root = new JAXBElement(qname, IsmrmrdHeader.class, header);
+
+        marshaller.marshal(root, writer);
+
         return writer.toString();
     }
 }
diff --git a/examples/java/ismrmrd_test.java b/examples/java/ismrmrd_test.java
index 07177ac..85b9fb7 100644
--- a/examples/java/ismrmrd_test.java
+++ b/examples/java/ismrmrd_test.java
@@ -5,42 +5,51 @@ public class ismrmrd_test {
 
     public static void main(String argv[]) {
         // Load the ISMRMRD JNI library
-	try {
-	    JNILibLoader.load();
-	}
-	catch (java.net.URISyntaxException e) {
-	    System.err.println("JNI Library failed to load: " + e.getMessage());
+        try {
+            JNILibLoader.load();
+        }
+        catch (java.net.URISyntaxException e) {
+            System.err.println("JNI Library failed to load: " + e.getMessage());
             System.exit(1);
-	}
-	
-	String filename = "";
-	if (argv.length == 1) {
-	    filename = argv[0];
-	}
-	else {
-	    System.err.println("Give me a filename.");
+        }
+
+        String filename = "";
+        if (argv.length == 1) {
+            filename = argv[0];
+        }
+        else {
+            System.err.println("Give me a filename.");
             System.exit(1);
-	}
-     
+        }
+
         IsmrmrdDataset f = new IsmrmrdDataset(filename, "/dataset");
         String xmlstring = f.readHeader();
-        System.out.println("The XML Header");
+
         System.out.println(xmlstring);
 
-	IsmrmrdHeader hdr = new IsmrmrdHeader();;
-	try {
-	    hdr = XMLString.StringToIsmrmrdHeader(xmlstring);
-	}
-	catch (javax.xml.bind.JAXBException e){
-	    System.err.println("XML Header could not be parsed." + e.getMessage());
+        IsmrmrdHeader hdr = new IsmrmrdHeader();
+        try {
+            hdr = XMLString.StringToIsmrmrdHeader(xmlstring);
+        } catch (javax.xml.bind.JAXBException e) {
+            System.err.format("XML Header could not be parsed.%n%s", e.getMessage());
             System.exit(1);
-	}
+        }
+
         long freq = hdr.getExperimentalConditions().getH1ResonanceFrequencyHz();
         System.out.format("%n%n The resonance frequency is %d.%n", freq);
 
         long nacq = f.getNumberOfAcquisitions();
         System.out.format("%n%n The number of Acquisitions is %d.%n", nacq);
 
+        String xmlcopy = "";
+        try {
+            xmlcopy = XMLString.IsmrmrdHeaderToString(hdr);
+        } catch (javax.xml.bind.JAXBException e) {
+            System.err.format("XML Header could not be generated.%n%s", e.getMessage());
+            System.exit(1);
+        }
+
+        System.out.println(xmlcopy);
     }
 
 }

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/ismrmrd.git



More information about the debian-science-commits mailing list