[ismrmrd] 174/281: moving Java XML API to the matlab package

Ghislain Vaillant ghisvail-guest at moszumanska.debian.org
Wed Jan 14 20:01:11 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 29434c918764809d11a22e97747779242f01053a
Author: Joseph Naegele <joseph.naegele at gmail.com>
Date:   Wed Aug 28 18:02:32 2013 -0400

    moving Java XML API to the matlab package
    
    the jar file containing the ISMRMRD XML header API is now built
    using only cmake commands, making the process cross-platform compatible.
---
 CMakeLists.txt                   |   5 +-
 cmake/FindJava.cmake             | 212 +++++++++++++++++++++++++++++++++++++++
 matlab/+ismrmrd/IsmrmrdDataset.m |   8 +-
 matlab/+ismrmrd/XMLHeader.m      |   6 +-
 matlab/+ismrmrd/example.m        |   6 +-
 matlab/+ismrmrd/includejar.m     |   6 ++
 matlab/CMakeLists.txt            |  72 +++++++++++++
 matlab/XMLString.java            |  42 ++++++++
 matlab/cfg.jxb                   |  10 ++
 9 files changed, 354 insertions(+), 13 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index d0c1158..9d0de14 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -36,9 +36,6 @@ target_link_libraries(dummy ${XERCESC_LIBRARIES})
 # Add library ismrmrd
 add_library(ismrmrd SHARED ismrmrd_hdf5.cpp)
 
-# Process the MATLAB files
-file(GLOB MatlabMFiles ${CMAKE_SOURCE_DIR}/matlab/+ismrmrd/*.m)
-
 #The findHDF5.cmake does not work very well on Windows, let's help it out
 IF(WIN32)
 	SET(HDF5_LIB_DIR ${HDF5_INCLUDE_DIR}/../lib)
@@ -60,10 +57,10 @@ INSTALL(FILES schema/ismrmrd.xsd ${XSDS_SOURCES} DESTINATION schema)
 INSTALL(FILES cmake/FindIsmrmrd.cmake cmake/FindFFTW3.cmake cmake/FindXSD.cmake
         cmake/FindXercesC.cmake cmake/FindNumPy.cmake DESTINATION cmake)
 INSTALL(TARGETS ismrmrd DESTINATION lib)
-INSTALL(FILES ${MatlabMFiles} DESTINATION matlab/+ismrmrd)
 
 add_subdirectory(examples/c++)
 add_subdirectory(utilities)
 add_subdirectory(tests)
 add_subdirectory(doc)
+add_subdirectory(matlab)
 add_subdirectory(bindings)
diff --git a/cmake/FindJava.cmake b/cmake/FindJava.cmake
new file mode 100644
index 0000000..4d6f888
--- /dev/null
+++ b/cmake/FindJava.cmake
@@ -0,0 +1,212 @@
+# - Find Java
+# This module finds if Java is installed and determines where the
+# include files and libraries are. This code sets the following
+# variables:
+#
+#  Java_JAVA_EXECUTABLE    = the full path to the Java runtime
+#  Java_JAVAC_EXECUTABLE   = the full path to the Java compiler
+#  Java_JAVAH_EXECUTABLE   = the full path to the Java header generator
+#  Java_JAVADOC_EXECUTABLE = the full path to the Java documention generator
+#  Java_XJC_EXECUTABLE     = the full path to the Java JAXB generator
+#  Java_JAR_EXECUTABLE     = the full path to the Java archiver
+#  Java_VERSION_STRING     = Version of the package found (java version), eg. 1.6.0_12
+#  Java_VERSION_MAJOR      = The major version of the package found.
+#  Java_VERSION_MINOR      = The minor version of the package found.
+#  Java_VERSION_PATCH      = The patch version of the package found.
+#  Java_VERSION_TWEAK      = The tweak version of the package found (after '_')
+#  Java_VERSION            = This is set to: $major.$minor.$patch(.$tweak)
+#
+# The minimum required version of Java can be specified using the
+# standard CMake syntax, e.g. find_package(Java 1.5)
+#
+# NOTE: ${Java_VERSION} and ${Java_VERSION_STRING} are not guaranteed to be
+# identical. For example some java version may return:
+# Java_VERSION_STRING = 1.5.0_17
+# and
+# Java_VERSION        = 1.5.0.17
+#
+# another example is the Java OEM, with:
+# Java_VERSION_STRING = 1.6.0-oem
+# and
+# Java_VERSION        = 1.6.0
+#
+# For these components the following variables are set:
+#
+#  Java_FOUND                    - TRUE if all components are found.
+#  Java_INCLUDE_DIRS             - Full paths to all include dirs.
+#  Java_LIBRARIES                - Full paths to all libraries.
+#  Java_<component>_FOUND        - TRUE if <component> is found.
+#
+# Example Usages:
+#  find_package(Java)
+#  find_package(Java COMPONENTS Runtime)
+#  find_package(Java COMPONENTS Development)
+#
+
+#=============================================================================
+# Copyright 2002-2009 Kitware, Inc.
+# Copyright 2009-2011 Mathieu Malaterre <mathieu.malaterre at gmail.com>
+#
+# Distributed under the OSI-approved BSD License (the "License");
+# see accompanying file Copyright.txt for details.
+#
+# This software is distributed WITHOUT ANY WARRANTY; without even the
+# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+# See the License for more information.
+#=============================================================================
+# (To distribute this file outside of CMake, substitute the full
+#  License text for the above reference.)
+
+# The HINTS option should only be used for values computed from the system.
+set(_JAVA_HINTS
+  "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\2.0;JavaHome]/bin"
+  "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.9;JavaHome]/bin"
+  "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.8;JavaHome]/bin"
+  "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.7;JavaHome]/bin"
+  "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.6;JavaHome]/bin"
+  "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.5;JavaHome]/bin"
+  "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.4;JavaHome]/bin"
+  "[HKEY_LOCAL_MACHINE\\SOFTWARE\\JavaSoft\\Java Development Kit\\1.3;JavaHome]/bin"
+  $ENV{JAVA_HOME}/bin
+  )
+# Hard-coded guesses should still go in PATHS. This ensures that the user
+# environment can always override hard guesses.
+set(_JAVA_PATHS
+  /usr/lib/java/bin
+  /usr/share/java/bin
+  /usr/local/java/bin
+  /usr/local/java/share/bin
+  /usr/java/j2sdk1.4.2_04
+  /usr/lib/j2sdk1.4-sun/bin
+  /usr/java/j2sdk1.4.2_09/bin
+  /usr/lib/j2sdk1.5-sun/bin
+  /opt/sun-jdk-1.5.0.04/bin
+  )
+find_program(Java_JAVA_EXECUTABLE
+  NAMES java
+  HINTS ${_JAVA_HINTS}
+  PATHS ${_JAVA_PATHS}
+)
+
+if(Java_JAVA_EXECUTABLE)
+    execute_process(COMMAND ${Java_JAVA_EXECUTABLE} -version
+      RESULT_VARIABLE res
+      OUTPUT_VARIABLE var
+      ERROR_VARIABLE var # sun-java output to stderr
+      OUTPUT_STRIP_TRAILING_WHITESPACE
+      ERROR_STRIP_TRAILING_WHITESPACE)
+    if( res )
+      if(${Java_FIND_REQUIRED})
+        message( FATAL_ERROR "Error executing java -version" )
+      else()
+        message( STATUS "Warning, could not run java --version")
+      endif()
+    else()
+      # extract major/minor version and patch level from "java -version" output
+      # Tested on linux using
+      # 1. Sun / Sun OEM
+      # 2. OpenJDK 1.6
+      # 3. GCJ 1.5
+      # 4. Kaffe 1.4.2
+      if(var MATCHES "java version \"[0-9]+\\.[0-9]+\\.[0-9_.]+.*\".*")
+        # This is most likely Sun / OpenJDK, or maybe GCJ-java compat layer
+        string( REGEX REPLACE ".* version \"([0-9]+\\.[0-9]+\\.[0-9_.]+.*)\".*"
+                "\\1" Java_VERSION_STRING "${var}" )
+      elseif(var MATCHES "java full version \"kaffe-[0-9]+\\.[0-9]+\\.[0-9_]+\".*")
+        # Kaffe style
+        string( REGEX REPLACE "java full version \"kaffe-([0-9]+\\.[0-9]+\\.[0-9_]+).*"
+                "\\1" Java_VERSION_STRING "${var}" )
+      else()
+        if(NOT Java_FIND_QUIETLY)
+          message(WARNING "regex not supported: ${var}. Please report")
+        endif()
+      endif()
+      string( REGEX REPLACE "([0-9]+).*" "\\1" Java_VERSION_MAJOR "${Java_VERSION_STRING}" )
+      string( REGEX REPLACE "[0-9]+\\.([0-9]+).*" "\\1" Java_VERSION_MINOR "${Java_VERSION_STRING}" )
+      string( REGEX REPLACE "[0-9]+\\.[0-9]+\\.([0-9]+).*" "\\1" Java_VERSION_PATCH "${Java_VERSION_STRING}" )
+      # warning tweak version can be empty:
+      string( REGEX REPLACE "[0-9]+\\.[0-9]+\\.[0-9]+[_\\.]?([0-9]*).*$" "\\1" Java_VERSION_TWEAK "${Java_VERSION_STRING}" )
+      if( Java_VERSION_TWEAK STREQUAL "" ) # check case where tweak is not defined
+        set(Java_VERSION ${Java_VERSION_MAJOR}.${Java_VERSION_MINOR}.${Java_VERSION_PATCH})
+      else()
+        set(Java_VERSION ${Java_VERSION_MAJOR}.${Java_VERSION_MINOR}.${Java_VERSION_PATCH}.${Java_VERSION_TWEAK})
+      endif()
+    endif()
+
+endif()
+
+
+find_program(Java_JAR_EXECUTABLE
+  NAMES jar
+  HINTS ${_JAVA_HINTS}
+  PATHS ${_JAVA_PATHS}
+)
+
+find_program(Java_JAVAC_EXECUTABLE
+  NAMES javac
+  HINTS ${_JAVA_HINTS}
+  PATHS ${_JAVA_PATHS}
+)
+
+find_program(Java_XJC_EXECUTABLE
+  NAMES xjc
+  HINTS ${_JAVA_HINTS}
+  PATHS ${_JAVA_PATHS}
+)
+
+find_program(Java_JAVAH_EXECUTABLE
+  NAMES javah
+  HINTS ${_JAVA_HINTS}
+  PATHS ${_JAVA_PATHS}
+)
+
+find_program(Java_JAVADOC_EXECUTABLE
+  NAMES javadoc
+  HINTS ${_JAVA_HINTS}
+  PATHS ${_JAVA_PATHS}
+)
+
+include(FindPackageHandleStandardArgs)
+if(Java_FIND_COMPONENTS)
+  foreach(component ${Java_FIND_COMPONENTS})
+    # User just want to execute some Java byte-compiled
+    if(component STREQUAL "Runtime")
+      find_package_handle_standard_args(Java
+        REQUIRED_VARS Java_JAVA_EXECUTABLE
+        VERSION_VAR Java_VERSION
+        )
+    elseif(component STREQUAL "Development")
+      find_package_handle_standard_args(Java
+        REQUIRED_VARS Java_JAVA_EXECUTABLE Java_JAR_EXECUTABLE Java_JAVAC_EXECUTABLE
+                      Java_XJC_EXECUTABLE Java_JAVAH_EXECUTABLE Java_JAVADOC_EXECUTABLE
+        VERSION_VAR Java_VERSION
+        )
+    else()
+      message(FATAL_ERROR "Comp: ${component} is not handled")
+    endif()
+    set(Java_${component}_FOUND TRUE)
+  endforeach()
+else()
+  # Check for everything
+  find_package_handle_standard_args(Java
+    REQUIRED_VARS Java_JAVA_EXECUTABLE Java_JAR_EXECUTABLE Java_JAVAC_EXECUTABLE
+                  Java_XJC_EXECUTABLE Java_JAVAH_EXECUTABLE Java_JAVADOC_EXECUTABLE
+    VERSION_VAR Java_VERSION
+    )
+endif()
+
+
+mark_as_advanced(
+  Java_JAVA_EXECUTABLE
+  Java_JAR_EXECUTABLE
+  Java_JAVAC_EXECUTABLE
+  Java_XJC_EXECUTABLE
+  Java_JAVAH_EXECUTABLE
+  Java_JAVADOC_EXECUTABLE
+  )
+
+# LEGACY
+set(JAVA_RUNTIME ${Java_JAVA_EXECUTABLE})
+set(JAVA_ARCHIVE ${Java_JAR_EXECUTABLE})
+set(JAVA_COMPILE ${Java_JAVAC_EXECUTABLE})
+
diff --git a/matlab/+ismrmrd/IsmrmrdDataset.m b/matlab/+ismrmrd/IsmrmrdDataset.m
index c3e0f5b..8427543 100644
--- a/matlab/+ismrmrd/IsmrmrdDataset.m
+++ b/matlab/+ismrmrd/IsmrmrdDataset.m
@@ -11,6 +11,8 @@ classdef IsmrmrdDataset
     methods
 
         function obj = IsmrmrdDataset(filename,groupname)
+            % add the ismrmrd jar to the javaclasspath
+            ismrmrd.includejar();
 
             % If the file exists, open it for read/write
             % otherwise, create it
@@ -43,12 +45,12 @@ classdef IsmrmrdDataset
                 H5G.close(group_id);
                 % create a default xml header object
                 %obj.xmlhdr = ismrmrd.XMLHeader();
-                obj.xmlhdr = org.ismrm.ismrmrd.xmlhdr.IsmrmrdHeader();
+                obj.xmlhdr = org.ismrm.ismrmrd.IsmrmrdHeader();
             else
                 % group exists, read the xml header
                 % and create a new convert it to an xml header object
                 %obj.xmlhdr = ismrmrd.XMLHeader().stringToHeader(obj.readxml());
-                obj.xmlhdr = org.ismrm.ismrmrd.xmlhdr.XMLString.StringToIsmrmrdHeader(obj.readxml());
+                obj.xmlhdr = org.ismrm.ismrmrd.XMLString.StringToIsmrmrdHeader(obj.readxml());
             end
             H5P.close(lapl_id);
 
@@ -57,7 +59,7 @@ classdef IsmrmrdDataset
         function obj = close(obj)
             % synchronize the xml header
             %xmlstring = ismrmrd.XMLHeader.headerToString(obj.xmlhdr);
-            xmlstring = org.ismrm.ismrmrd.xmlhdr.XMLString.IsmrmrdHeaderToString(obj.xmlhdr);
+            xmlstring = org.ismrm.ismrmrd.XMLString.IsmrmrdHeaderToString(obj.xmlhdr);
             obj.writexml(xmlstring);
             % close the file
             H5F.close(obj.fid);
diff --git a/matlab/+ismrmrd/XMLHeader.m b/matlab/+ismrmrd/XMLHeader.m
index eca3ebc..f58f8ae 100644
--- a/matlab/+ismrmrd/XMLHeader.m
+++ b/matlab/+ismrmrd/XMLHeader.m
@@ -4,12 +4,12 @@ classdef XMLHeader
 
         function obj = XMLHeader(xmlstr)
 
-            obj.factory = org.ismrm.ismrmrd.xmlhdr.ObjectFactory(); 
+            obj.factory = org.ismrm.ismrmrd.ObjectFactory();
         end
 
         function hdr = fromString(obj,xmlstring)
             import javax.xml.bind.*
-            jc = JAXBContext.newInstance('org.ismrm.ismrmrd.xmlhdr', obj.factory.getClass().getClassLoader());
+            jc = JAXBContext.newInstance('org.ismrm.ismrmrd', obj.factory.getClass().getClassLoader());
             u  = jc.createUnmarshaller();
             jstr = java.lang.String(xmlstring);
             hdr = u.unmarshal(java.io.ByteArrayInputStream(jstr.getBytes()));
@@ -18,7 +18,7 @@ classdef XMLHeader
 
         function xmlstring = toString(obj)
             import javax.xml.bind.*
-            jc = JAXBContext.newInstance('org.ismrm.ismrmrd.xmlhdr', obj.factory.getClass().getClassLoader());
+            jc = JAXBContext.newInstance('org.ismrm.ismrmrd', obj.factory.getClass().getClassLoader());
             m  = jc.createMarshaller();
             m.setProperty(Marshaller.JAXB_SCHEMA_LOCATION, 'http://www.ismrm.org/ISMRMD ismrmrd.xsd');
 
diff --git a/matlab/+ismrmrd/example.m b/matlab/+ismrmrd/example.m
index ee8ca7a..84c5051 100644
--- a/matlab/+ismrmrd/example.m
+++ b/matlab/+ismrmrd/example.m
@@ -17,10 +17,10 @@ ah.position = [3.14, 3.14, 3.14]
 
 a = ismrmrd.Acquisition();
 a.head = ah;
-a.data = (1:512)
+a.data = (1:512);
 a.traj = (1:3);
 
-i.appendAcquisition(a)
+i.appendAcquisition(a);
 
 % Write the dataset
 i.close();
@@ -29,7 +29,7 @@ i.close();
 i = ismrmrd.IsmrmrdDataset(filename, 'dataset')
 
 % Read the dataset
-nacq = i.getNumberOfAcquisitions()
+nacq = i.getNumberOfAcquisitions();
 a = i.readAcquisition(1);
 
 h = a.head;
diff --git a/matlab/+ismrmrd/includejar.m b/matlab/+ismrmrd/includejar.m
new file mode 100644
index 0000000..8c01859
--- /dev/null
+++ b/matlab/+ismrmrd/includejar.m
@@ -0,0 +1,6 @@
+function includejar()
+    fpath = mfilename('fullpath');
+    [pathstr, name, ext] = fileparts(fpath);
+    jar = fullfile(pathstr, 'ismrmrd-matlab.jar');
+    javaaddpath(jar);
+end
diff --git a/matlab/CMakeLists.txt b/matlab/CMakeLists.txt
new file mode 100644
index 0000000..78632b3
--- /dev/null
+++ b/matlab/CMakeLists.txt
@@ -0,0 +1,72 @@
+find_package(Java)
+
+if (NOT JAVA_FOUND)
+    message(STATUS "Java (xjc) Not Found - Not generating XML bindings")
+else (NOT JAVA_FOUND)
+
+    set(ISMRMRD_SCHEMA ${CMAKE_SOURCE_DIR}/schema/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
+        DicomParametersType
+        IsmrmrdHeader
+        ReferencedImageSequence
+        UserParameterDoubleType
+        Encoding
+        LimitType
+        SequenceParametersType
+        UserParameterLongType
+        EncodingLimitsType
+        MRImageModule
+        StudyInformationType
+        UserParameters
+        EncodingSpaceType
+        MatrixSize
+        SubjectInformationType
+        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 matlab)
+INSTALL(FILES ${ISMRMRD_JAR} DESTINATION matlab/+ismrmrd)
diff --git a/matlab/XMLString.java b/matlab/XMLString.java
new file mode 100644
index 0000000..39127ca
--- /dev/null
+++ b/matlab/XMLString.java
@@ -0,0 +1,42 @@
+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
new file mode 100644
index 0000000..696f66d
--- /dev/null
+++ b/matlab/cfg.jxb
@@ -0,0 +1,10 @@
+<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