[ismrmrd] 143/177: Working on making matlab api compatible with v1.0
Ghislain Vaillant
ghisvail-guest at moszumanska.debian.org
Wed Jan 14 20:02:12 UTC 2015
This is an automated email from the git hooks/post-receive script.
ghisvail-guest pushed a commit to annotated tag v1.1.0.beta.1
in repository ismrmrd.
commit 4f0d5484bdbddc1893f12eef736acfab9d9ca8b4
Author: Souheil Inati <souheil.inati at nih.gov>
Date: Wed Oct 15 22:48:58 2014 -0400
Working on making matlab api compatible with v1.0
---
CMakeLists.txt | 4 +-
libsrc/dataset.c | 9 +-
matlab/+ismrmrd/+util/hdf5_datatypes.m | 133 ++++++++++++------------
matlab/+ismrmrd/+util/includejar.m | 15 ---
matlab/+ismrmrd/AcquisitionHeader.m | 1 -
matlab/+ismrmrd/{IsmrmrdDataset.m => Dataset.m} | 38 ++-----
matlab/CMakeLists.txt | 74 -------------
matlab/XMLString.java | 42 --------
matlab/cfg.jxb | 10 --
9 files changed, 86 insertions(+), 240 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index f3ab8ea..694fa82 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -198,9 +198,11 @@ enable_testing()
add_subdirectory(doc)
add_subdirectory(examples/c)
add_subdirectory(utilities)
-#add_subdirectory(matlab)
#add_subdirectory(bindings)
+# install the matlab api
+install(DIRECTORY matlab DESTINATION share/ismrmrd)
+
# Create package
string(TOLOWER ${PROJECT_NAME} PROJECT_NAME_LOWER)
include(${ISMRMRD_CMAKE_DIR}/ismrmrd_cpack.cmake)
diff --git a/libsrc/dataset.c b/libsrc/dataset.c
index b9b087e..9c3bdea 100644
--- a/libsrc/dataset.c
+++ b/libsrc/dataset.c
@@ -283,7 +283,7 @@ static hid_t get_hdf5type_acquisitionheader(void) {
datatype = H5Tcreate(H5T_COMPOUND, sizeof(ISMRMRD_AcquisitionHeader));
h5status = H5Tinsert(datatype, "version", HOFFSET(ISMRMRD_AcquisitionHeader, version), H5T_NATIVE_UINT16);
h5status = H5Tinsert(datatype, "flags", HOFFSET(ISMRMRD_AcquisitionHeader, flags), H5T_NATIVE_UINT64);
- h5status = H5Tinsert(datatype, " measurement_uid", HOFFSET(ISMRMRD_AcquisitionHeader, measurement_uid), H5T_NATIVE_UINT32);
+ h5status = H5Tinsert(datatype, "measurement_uid", HOFFSET(ISMRMRD_AcquisitionHeader, measurement_uid), H5T_NATIVE_UINT32);
h5status = H5Tinsert(datatype, "scan_counter", HOFFSET(ISMRMRD_AcquisitionHeader, scan_counter), H5T_NATIVE_UINT32);
h5status = H5Tinsert(datatype, "acquisition_time_stamp", HOFFSET(ISMRMRD_AcquisitionHeader, acquisition_time_stamp), H5T_NATIVE_UINT32);
@@ -345,7 +345,8 @@ static hid_t get_hdf5type_acquisition(void) {
vartype = get_hdf5type_float();
vlvartype = H5Tvlen_create(vartype);
h5status = H5Tinsert(datatype, "traj", HOFFSET(HDF5_Acquisition, traj), vlvartype);
- vartype = get_hdf5type_complexfloat();
+ /* Store acquisition data as an array of floats */
+ vartype = get_hdf5type_float();
vlvartype = H5Tvlen_create(vartype);
h5status = H5Tinsert(datatype, "data", HOFFSET(HDF5_Acquisition, data), vlvartype);
@@ -369,7 +370,7 @@ static hid_t get_hdf5type_imageheader(void) {
h5status = H5Tinsert(datatype, "version", HOFFSET(ISMRMRD_ImageHeader, version), H5T_NATIVE_UINT16);
h5status = H5Tinsert(datatype, "data_type", HOFFSET(ISMRMRD_ImageHeader, data_type), H5T_NATIVE_UINT16);
h5status = H5Tinsert(datatype, "flags", HOFFSET(ISMRMRD_ImageHeader, flags), H5T_NATIVE_UINT64);
- h5status = H5Tinsert(datatype, " measurement_uid", HOFFSET(ISMRMRD_ImageHeader, measurement_uid), H5T_NATIVE_UINT32);
+ h5status = H5Tinsert(datatype, "measurement_uid", HOFFSET(ISMRMRD_ImageHeader, measurement_uid), H5T_NATIVE_UINT32);
arraydims[0] = 3;
vartype = H5Tarray_create2(H5T_NATIVE_UINT16, 1, arraydims);
h5status = H5Tinsert(datatype, "matrix_size", HOFFSET(ISMRMRD_ImageHeader, matrix_size), vartype);
@@ -962,7 +963,7 @@ int ismrmrd_append_acquisition(const ISMRMRD_Dataset *dset, const ISMRMRD_Acquis
hdf5acq[0].head = acq->head;
hdf5acq[0].traj.len = acq->head.number_of_samples * acq->head.trajectory_dimensions;
hdf5acq[0].traj.p = acq->traj;
- hdf5acq[0].data.len = acq->head.number_of_samples * acq->head.active_channels;
+ hdf5acq[0].data.len = 2 * acq->head.number_of_samples * acq->head.active_channels;
hdf5acq[0].data.p = acq->data;
/* Write it */
diff --git a/matlab/+ismrmrd/+util/hdf5_datatypes.m b/matlab/+ismrmrd/+util/hdf5_datatypes.m
index 2562d08..5aa8a41 100644
--- a/matlab/+ismrmrd/+util/hdf5_datatypes.m
+++ b/matlab/+ismrmrd/+util/hdf5_datatypes.m
@@ -3,7 +3,7 @@ classdef hdf5_datatypes
% ISMRMRD HDF5 file
% The names, types, layout and offsets consistent with that generated
-% by the C++ API. See the note at the bottom of the file for how to
+% by the C API. See the note at the bottom of the file for how to
% do this.
properties
@@ -83,31 +83,31 @@ classdef hdf5_datatypes
end
function b = getType_AcquisitionHeader()
- b = H5T.create ('H5T_COMPOUND', 360);
+ b = H5T.create ('H5T_COMPOUND', 340);
H5T.insert(b, 'version', 0, 'H5T_NATIVE_UINT16');
H5T.insert(b, 'flags', 2, 'H5T_NATIVE_UINT64');
H5T.insert(b, 'measurement_uid', 10, 'H5T_NATIVE_UINT32');
H5T.insert(b, 'scan_counter', 14, 'H5T_NATIVE_UINT32');
H5T.insert(b, 'acquisition_time_stamp', 18, 'H5T_NATIVE_UINT32');
H5T.insert(b, 'physiology_time_stamp', 22, H5T.array_create('H5T_NATIVE_UINT32',[3]));
- H5T.insert(b, 'number_of_samples', 54, 'H5T_NATIVE_UINT16');
- H5T.insert(b, 'available_channels', 56, 'H5T_NATIVE_UINT16');
- H5T.insert(b, 'active_channels', 58, 'H5T_NATIVE_UINT16');
- H5T.insert(b, 'channel_mask', 60, H5T.array_create('H5T_NATIVE_UINT64',[16]));
- H5T.insert(b, 'discard_pre', 188, 'H5T_NATIVE_UINT16');
- H5T.insert(b, 'discard_post', 190, 'H5T_NATIVE_UINT16');
- H5T.insert(b, 'center_sample', 192, 'H5T_NATIVE_UINT16');
- H5T.insert(b, 'encoding_space_ref', 194, 'H5T_NATIVE_UINT16');
- H5T.insert(b, 'trajectory_dimensions', 196, 'H5T_NATIVE_UINT16');
- H5T.insert(b, 'sample_time_us', 198, 'H5T_NATIVE_FLOAT');
- H5T.insert(b, 'position', 202, H5T.array_create('H5T_NATIVE_FLOAT',[3]));
- H5T.insert(b, 'read_dir', 214, H5T.array_create('H5T_NATIVE_FLOAT',[3]));
- H5T.insert(b, 'phase_dir', 226, H5T.array_create('H5T_NATIVE_FLOAT',[3]));
- H5T.insert(b, 'slice_dir', 238, H5T.array_create('H5T_NATIVE_FLOAT',[3]));
- H5T.insert(b, 'patient_table_position', 250, H5T.array_create('H5T_NATIVE_FLOAT',[3]));
- H5T.insert(b, 'idx', 262, ismrmrd.util.hdf5_datatypes.getType_EncodingCounters);
- H5T.insert(b, 'user_int', 296, H5T.array_create('H5T_NATIVE_INT32',[8]));
- H5T.insert(b, 'user_float', 328, H5T.array_create('H5T_NATIVE_FLOAT',[8]));
+ H5T.insert(b, 'number_of_samples', 34, 'H5T_NATIVE_UINT16');
+ H5T.insert(b, 'available_channels', 36, 'H5T_NATIVE_UINT16');
+ H5T.insert(b, 'active_channels', 38, 'H5T_NATIVE_UINT16');
+ H5T.insert(b, 'channel_mask', 40, H5T.array_create('H5T_NATIVE_UINT64',[16]));
+ H5T.insert(b, 'discard_pre', 168, 'H5T_NATIVE_UINT16');
+ H5T.insert(b, 'discard_post', 170, 'H5T_NATIVE_UINT16');
+ H5T.insert(b, 'center_sample', 172, 'H5T_NATIVE_UINT16');
+ H5T.insert(b, 'encoding_space_ref', 174, 'H5T_NATIVE_UINT16');
+ H5T.insert(b, 'trajectory_dimensions', 176, 'H5T_NATIVE_UINT16');
+ H5T.insert(b, 'sample_time_us', 178, 'H5T_NATIVE_FLOAT');
+ H5T.insert(b, 'position', 182, H5T.array_create('H5T_NATIVE_FLOAT',[3]));
+ H5T.insert(b, 'read_dir', 194, H5T.array_create('H5T_NATIVE_FLOAT',[3]));
+ H5T.insert(b, 'phase_dir', 206, H5T.array_create('H5T_NATIVE_FLOAT',[3]));
+ H5T.insert(b, 'slice_dir', 218, H5T.array_create('H5T_NATIVE_FLOAT',[3]));
+ H5T.insert(b, 'patient_table_position', 230, H5T.array_create('H5T_NATIVE_FLOAT',[3]));
+ H5T.insert(b, 'idx', 242, ismrmrd.util.hdf5_datatypes.getType_EncodingCounters);
+ H5T.insert(b, 'user_int', 276, H5T.array_create('H5T_NATIVE_INT32',[8]));
+ H5T.insert(b, 'user_float', 308, H5T.array_create('H5T_NATIVE_FLOAT',[8]));
end
function b = getType_Acquisition()
@@ -116,56 +116,61 @@ classdef hdf5_datatypes
traj = H5T.vlen_create(ismrmrd.util.hdf5_datatypes.getType_float());
data = H5T.vlen_create(ismrmrd.util.hdf5_datatypes.getType_float());
- b = H5T.create ('H5T_COMPOUND', 392);
+ b = H5T.create ('H5T_COMPOUND', 376);
H5T.insert(b, 'head', 0, head);
- H5T.insert(b, 'traj', 360, traj);
- H5T.insert(b, 'data', 376, data);
+ H5T.insert(b, 'traj', 344, traj);
+ H5T.insert(b, 'data', 360, data);
end
end % Methods (Static)
end
-% Generate a dataset using the C++ utilities and run
+% Generate a dataset using the C utilities and run
% h5ls -a -v testdata/dataset/data
% This produces something the following output
-%"head" +0 struct {
-% "version" +0 native unsigned short
-% "flags" +2 native unsigned long
-% "measurement_uid" +10 native unsigned int
-% "scan_counter" +14 native unsigned int
-% "acquisition_time_stamp" +18 native unsigned int
-% "physiology_time_stamp" +22 [3] native unsigned int
-% "number_of_samples" +54 native unsigned short
-% "available_channels" +56 native unsigned short
-% "active_channels" +58 native unsigned short
-% "channel_mask" +60 [16] native unsigned long
-% "discard_pre" +188 native unsigned short
-% "discard_post" +190 native unsigned short
-% "center_sample" +192 native unsigned short
-% "encoding_space_ref" +194 native unsigned short
-% "trajectory_dimensions" +196 native unsigned short
-% "sample_time_us" +198 native float
-% "position" +202 [3] native float
-% "read_dir" +214 [3] native float
-% "phase_dir" +226 [3] native float
-% "slice_dir" +238 [3] native float
-% "patient_table_position" +250 [3] native float
-% "idx" +262 struct {
-% "kspace_encode_step_1" +0 native unsigned short
-% "kspace_encode_step_2" +2 native unsigned short
-% "average" +4 native unsigned short
-% "slice" +6 native unsigned short
-% "contrast" +8 native unsigned short
-% "phase" +10 native unsigned short
-% "repetition" +12 native unsigned short
-% "set" +14 native unsigned short
-% "segment" +16 native unsigned short
-% "user" +18 [8] native unsigned short
-% } 34 bytes
-% "user_int" +296 [8] native int
-% "user_float" +328 [8] native float
-%} 360 bytes
-%"traj" +360 variable length of native float
-%"data" +376 variable length of native float
-%} 392 bytes
+% Chunks: {1} 376 bytes
+% Storage: 96256 logical bytes, 96256 allocated bytes, 100.00% utilization
+% Type: struct {
+% "head" +0 struct {
+% "version" +0 native unsigned short
+% "flags" +2 native unsigned long
+% "measurement_uid" +10 native unsigned int
+% "scan_counter" +14 native unsigned int
+% "acquisition_time_stamp" +18 native unsigned int
+% "physiology_time_stamp" +22 [3] native unsigned int
+% "number_of_samples" +34 native unsigned short
+% "available_channels" +36 native unsigned short
+% "active_channels" +38 native unsigned short
+% "channel_mask" +40 [16] native unsigned long
+% "discard_pre" +168 native unsigned short
+% "discard_post" +170 native unsigned short
+% "center_sample" +172 native unsigned short
+% "encoding_space_ref" +174 native unsigned short
+% "trajectory_dimensions" +176 native unsigned short
+% "sample_time_us" +178 native float
+% "position" +182 [3] native float
+% "read_dir" +194 [3] native float
+% "phase_dir" +206 [3] native float
+% "slice_dir" +218 [3] native float
+% "patient_table_position" +230 [3] native float
+% "idx" +242 struct {
+% "kspace_encode_step_1" +0 native unsigned short
+% "kspace_encode_step_2" +2 native unsigned short
+% "average" +4 native unsigned short
+% "slice" +6 native unsigned short
+% "contrast" +8 native unsigned short
+% "phase" +10 native unsigned short
+% "repetition" +12 native unsigned short
+% "set" +14 native unsigned short
+% "segment" +16 native unsigned short
+% "user" +18 [8] native unsigned short
+% } 34 bytes
+% "user_int" +276 [8] native int
+% "user_float" +308 [8] native float
+% } 340 bytes
+% "traj" +344 variable length of
+% native float
+% "data" +360 variable length of
+% native float
+% } 376 bytes
diff --git a/matlab/+ismrmrd/+util/includejar.m b/matlab/+ismrmrd/+util/includejar.m
deleted file mode 100644
index dcaa62e..0000000
--- a/matlab/+ismrmrd/+util/includejar.m
+++ /dev/null
@@ -1,15 +0,0 @@
-function includejar()
-% Set the javaclasspath to be able to load the xml header bits
-
- % Path to the jar file
- fpath = mfilename('fullpath');
- [pathstr, name, ext] = fileparts(fpath);
- jar = fullfile(pathstr, 'ismrmrd-matlab.jar');
-
- % Only add if it's not already on our path
- jpath = javaclasspath('-all');
- if ~any(strcmp(jar,jpath))
- javaaddpath(jar);
- end
-
-end
diff --git a/matlab/+ismrmrd/AcquisitionHeader.m b/matlab/+ismrmrd/AcquisitionHeader.m
index 7ed8957..4a68ef7 100644
--- a/matlab/+ismrmrd/AcquisitionHeader.m
+++ b/matlab/+ismrmrd/AcquisitionHeader.m
@@ -381,7 +381,6 @@ classdef AcquisitionHeader < handle
bytes(off:off+3,p) = typecast(obj.measurement_uid(p) ,'uint8'); off=off+4;
bytes(off:off+3,p) = typecast(obj.scan_counter(p) ,'uint8'); off=off+4;
bytes(off:off+3,p) = typecast(obj.acquisition_time_stamp(p),'uint8'); off=off+4;
- % The C struct has padding because of the 5 unused physio time stamps
bytes(off:off+11,p) = typecast(obj.physiology_time_stamp(:,p) ,'uint8'); off=off+12;
bytes(off:off+1,p) = typecast(obj.number_of_samples(p) ,'uint8'); off=off+2;
bytes(off:off+1,p) = typecast(obj.available_channels(p) ,'uint8'); off=off+2;
diff --git a/matlab/+ismrmrd/IsmrmrdDataset.m b/matlab/+ismrmrd/Dataset.m
similarity index 87%
rename from matlab/+ismrmrd/IsmrmrdDataset.m
rename to matlab/+ismrmrd/Dataset.m
index 6ca12e8..142e8a4 100644
--- a/matlab/+ismrmrd/IsmrmrdDataset.m
+++ b/matlab/+ismrmrd/Dataset.m
@@ -1,19 +1,16 @@
-classdef IsmrmrdDataset
+classdef Dataset
properties
fid = -1;
filename = '';
datapath = '';
xmlpath = '';
- xmlhdr = [];
htypes = [];
end
methods
- function obj = IsmrmrdDataset(filename,groupname)
- % add the ismrmrd jar to the javaclasspath
- ismrmrd.util.includejar();
+ function obj = Dataset(filename,groupname)
% Set the hdf types
obj.htypes = ismrmrd.util.hdf5_datatypes;
@@ -47,34 +44,18 @@ classdef IsmrmrdDataset
% group does not exist, create it
group_id = H5G.create(obj.fid, grouppath, 0);
H5G.close(group_id);
- % create a default xml header object
- %obj.xmlhdr = ismrmrd.XMLHeader();
- obj.xmlhdr = org.ismrm.ismrmrd.IsmrmrdHeader();
- else
- % group exists, read the xml header
- %obj.xmlhdr = ismrmrd.XMLHeader().stringToHeader(obj.readxml());
- obj.xmlhdr = org.ismrm.ismrmrd.XMLString.StringToIsmrmrdHeader(obj.readxml());
end
H5P.close(lapl_id);
end
function obj = close(obj)
- % synchronize the xml header
- obj.writexml(obj.xmlstring());
% close the file
H5F.close(obj.fid);
end
-
- function xmlstring = xmlstring(obj)
- % convert xmlhdr to a string
- %xmlstring = ismrmrd.XMLHeader.headerToString(obj.xmlhdr);
- xmlstring = org.ismrm.ismrmrd.XMLString.IsmrmrdHeaderToString(obj.xmlhdr);
- end
function xmlstring = readxml(obj)
% Check if the XML header exists
- % TODO: set it's value to the default
lapl_id=H5P.create('H5P_LINK_ACCESS');
if (H5L.exists(obj.fid,obj.xmlpath,lapl_id) == 0)
error('No XML header found.');
@@ -182,23 +163,22 @@ classdef IsmrmrdDataset
space = H5D.get_space(dset);
% Get the size
- H5S.get_simple_extent_dims(space);
[~,dims,~] = H5S.get_simple_extent_dims(space);
nacq = dims(1);
% Create a mem_space for reading
if (stop >= start)
- offset = [start-1 0];
- dims = [stop-start+1 1];
- mem_space = H5S.create_simple(2,dims,[]);
+ offset = [start-1];
+ dims = [stop-start+1];
+ mem_space = H5S.create_simple(1,dims,[]);
else
- offset = [0 0];
- dims = [nacq 1];
- mem_space = H5S.create_simple(2,dims,[]);
+ offset = [0];
+ dims = [nacq];
+ mem_space = H5S.create_simple(1,dims,[]);
end
% Read the desired acquisitions
- H5S.select_hyperslab(space,'H5S_SELECT_SET',offset,[1 1],[1 1],dims);
+ H5S.select_hyperslab(space,'H5S_SELECT_SET',offset,[1],[1],dims);
d = H5D.read(dset, obj.htypes.T_Acquisition, ...
mem_space, space, 'H5P_DEFAULT');
diff --git a/matlab/CMakeLists.txt b/matlab/CMakeLists.txt
deleted file mode 100644
index 5548b73..0000000
--- a/matlab/CMakeLists.txt
+++ /dev/null
@@ -1,74 +0,0 @@
-find_package(Java)
-
-if (NOT JAVA_FOUND)
- message(STATUS "Java (xjc) Not Found - Not generating XML bindings")
-else (NOT JAVA_FOUND)
-
- set(ISMRMRD_SCHEMA "${ISMRMRD_SCHEMA_DIR}/ismrmrd.xsd")
- set(ISMRMRD_JAR "${CMAKE_CURRENT_BINARY_DIR}/ismrmrd-matlab.jar")
- set(ISMRMRD_PACKAGE "org/ismrm/ismrmrd")
- set(ISMRMRD_PACKAGE_PATH "${CMAKE_CURRENT_BINARY_DIR}/${ISMRMRD_PACKAGE}")
-
- set(XML_STRING "XMLString")
- set(XML_STRING_JAVA "XMLString.java")
-
- set(XJC_CONFIG "cfg.jxb")
- file (COPY ${XJC_CONFIG} DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
-
- file (MAKE_DIRECTORY ${ISMRMRD_PACKAGE_PATH})
- file (COPY ${XML_STRING_JAVA} DESTINATION ${ISMRMRD_PACKAGE_PATH})
-
- foreach (class
- ${XML_STRING}
- AccelerationFactorType
- ExperimentalConditionsType
- MeasurementInformationType
- TrajectoryDescriptionType
- AcquisitionSystemInformationType
- FieldOfViewMm
- ObjectFactory
- TrajectoryType
- CalibrationModeType
- InterleavingDimensionType
- ParallelImagingType
- UserParameterBase64Type
- IsmrmrdHeader
- ReferencedImageSequence
- UserParameterDoubleType
- Encoding
- LimitType
- SequenceParametersType
- UserParameterLongType
- UserParameterStringType
- EncodingLimitsType
- StudyInformationType
- UserParameters
- EncodingSpaceType
- MatrixSize
- SubjectInformationType
- MeasurementDependencyType
- package-info
- )
- list (APPEND ISMRMRD_XJC_SOURCES "${ISMRMRD_PACKAGE}/${class}.java")
- list (APPEND ISMRMRD_XJC_CLASSES "${ISMRMRD_PACKAGE}/${class}.class")
- endforeach()
-
- add_custom_command(
- OUTPUT ${ISMRMRD_JAR}
- COMMAND ${Java_XJC_EXECUTABLE} -quiet -b ${XJC_CONFIG} ${ISMRMRD_SCHEMA}
- COMMAND ${Java_JAVAC_EXECUTABLE} ${ISMRMRD_XJC_SOURCES}
- COMMAND ${Java_JAR_EXECUTABLE} cf ${ISMRMRD_JAR} ${ISMRMRD_XJC_CLASSES}
- WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
- COMMENT "Generating ISMRMRD XML bindings..." VERBATIM
- DEPENDS ${ISMRMRD_SCHEMA} ${XML_STRING_JAVA}
- )
-
- # make a fake target called 'xxx.jar' that will be built
- # when you type make and depends on the file 'xxx.jar'
- add_custom_target(ismrmrd-matlab-jar ALL DEPENDS ${ISMRMRD_JAR})
-endif(NOT JAVA_FOUND)
-
-install(DIRECTORY +ismrmrd
- DESTINATION ${ISMRMRD_INSTALL_MATLAB_DIR})
-install(FILES ${ISMRMRD_JAR}
- DESTINATION ${ISMRMRD_INSTALL_MATLAB_DIR}/+ismrmrd/+util)
diff --git a/matlab/XMLString.java b/matlab/XMLString.java
deleted file mode 100644
index 39127ca..0000000
--- a/matlab/XMLString.java
+++ /dev/null
@@ -1,42 +0,0 @@
-package org.ismrm.ismrmrd;
-
-import javax.xml.bind.*;
-import javax.xml.namespace.QName;
-import javax.xml.transform.stream.*;
-import java.io.StringReader;
-import java.io.StringWriter;
-
-
-public class XMLString {
- public static IsmrmrdHeader StringToIsmrmrdHeader(String xmlstring) throws javax.xml.bind.JAXBException
- {
- JAXBContext jaxbContext = JAXBContext.newInstance(IsmrmrdHeader.class);
-
- Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
-
- StringReader reader = new StringReader(xmlstring);
-
- 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 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();
-
- 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/matlab/cfg.jxb b/matlab/cfg.jxb
deleted file mode 100644
index 696f66d..0000000
--- a/matlab/cfg.jxb
+++ /dev/null
@@ -1,10 +0,0 @@
-<jxb:bindings version="1.0"
- xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
- xmlns:xs="http://www.w3.org/2001/XMLSchema"
- xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
- jxb:extensionBindingPrefixes="xjc">
- <jxb:bindings>
- <jxb:globalBindings localScoping="toplevel">
- </jxb:globalBindings>
- </jxb:bindings>
-</jxb:bindings>
--
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