The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

xDT::Parser - A Parser for xDT files.

VERSION

Version 1.06

SYNOPSIS

Can be used to open xdt files and strings, and to iterate over contained objects.

    use xDT::Parser;

    my $parser = xDT::Parser->new();
    # or
    my $parser = xDT::Parser->new(record_type_config => $config);
    # or
    my $parser = xDT::Parser->new(
        record_type_config => xDT::Parser::build_config_from_xml($xml_file)
    );
    # or
    my $parser = xDT::Parser->new(
        record_type_config => JSON::Parser::read_json($json_file)
    );

    # A record type configuration can be provided via xml file or arrayref and can be used to add
    # metadata (like accessor string or labels) to each record type.

    $parser->open(file => $xdt_file);     # read from file
    # or
    $parser->open(string => $xdt_string); # read from string

    while (my $object = $parser->next_object) {  # iterate xdt objects
        # ...
    }

    $parser->close(); # close the file handle

ATTRIBUTES

fh

FileHandle to the currently open file.

record_type_config

The RecordType configurations.

e.g.:

    [{
        "id": "0201",
        "length": "9",
        "type": "num",
        "accessor": "bsnr",
        "labels": {
            "en": "BSNR",
            "de": "BSNR"
        }
    }]

SUBROUTINES/METHODS

open

$parser->open(file => 'example.gdt'); $parser->open(string => $xdt_string);

Open a file or string with the parser. If both file and string are given, the string will be ignored. More information about the file format can be found at http://search.cpan.org/dist/xDT-RecordType/.

close

Closes the parsers filehandle

next_object

Returns the next object from xDT.

build_config_from_xml

Extracts metadata for a given record type id from a XML config file, if a file was given. Otherwise id and accessor are set to the given id and all other attributes are undef.

XML::Simple must be installed in order to use this method.

Format of the XML config file:

    <RecordTypes>
        <RecordType id="theId" length="theLength" type="theType" accessor="theAccessor">
            <label lang="en">TheEnglishLabel</label>
            <label lang="de">TheGermanLabel</label>
            <!-- more labels -->
        </RecordType>
        <!-- more record types -->
    </RecordTypes>

AUTHOR

Christoph Beger, <christoph.beger at medizin.uni-leipzig.de>