view m-toolbox/classes/+utils/@mysql/getXdoc.m @ 0:f0afece42f48

Import.
author Daniele Nicolodi <nicolodi@science.unitn.it>
date Wed, 23 Nov 2011 19:22:13 +0100
parents
children
line wrap: on
line source

% GETXDOC retrieves an object with given id from the LTPDA
% repository specified by the input database connection. The object is
% converted from its XML text format to an Xdoc. This can then be converted
% into an object using the appropriate object constructor.
%
% Usage: xdoc = getXdoc(conn, id)
%
% Inputs:
%         conn - a database connection object
%         id   - the object id
%
% Outputs:
%         xdoc - an Xdoc representation of the object.
%
% M Hewitson 30-08-07
%
% $Id: getXdoc.m,v 1.3 2010/01/22 12:46:08 ingo Exp $
%
%

function xdoc = getXdoc(conn, id)

  error('### Obsolete as of LTPDA version 2.2. Replaced my the utils class jmysql (utils.jmysql.%s)', mfilename());

  try
    curs    = exec(conn, sprintf('select xml from objs where id="%d"', id));
    curs    = fetch(curs);
    objTxt  = char([curs.Data{1}].');
    close(curs);
  catch
    error('### Unable to read xml for ID %d. Server returned %s', id, curs.Message);
  end

  if ~isempty(objTxt) && ~strcmp(objTxt(:), 'No Data')
    % convert to Java string
    str = java.lang.String(objTxt);
    % open stream on this string
    stream = java.io.StringBufferInputStream(str);
    % make parser
    builder = javax.xml.parsers.DocumentBuilderFactory.newInstance.newDocumentBuilder;

    xdoc = builder.parse(stream);
  else
    xdoc = [];
  end

end