TM::Serializable::JTM.3pm

Langue: en

Version: 2010-04-10 (ubuntu - 24/10/10)

Section: 3 (Bibliothèques de fonctions)

NAME

TM::Serializable::JTM - Topic Maps trait for reading/writing JSON Topic Map instances.

SYNOPSIS

   # NOTE: this is not an end-user package,
   # see TM::Materialized::JTM for common application patterns
 
   # reading JSON/YAML:
   my $tm=TM->new(...);
   Class::Trait->apply($tm,"TM::Serializable::JTM");
   $tm->deserialize($jsondata);
 
   # writing JSON/YAML:
   # ...a map $tm is instantiated somehow
 
   Class::Trait->apply($tm,"TM::Serializable::JTM");
   my $yamltext=$tm->serialize(format=>"yaml");
 
 

DESCRIPTION

This trait provides functionality for reading and writing Topic Maps in JTM (JSON Topic Map) format, as defined here: <http://www.cerny-online.com/jtm/1.0/>.

Limitations:

Variants are not supported by TM.
Reification of basenames, occurrences and roles is not supported by TM.
Multiple scopes are not supported by TM.

INTERFACE

Methods

deserialize
This method take a string and parses JTM content from it. It will raise an exception on any parsing error. On success, it will return the map object.

The method understands one key/value parameter pair:

format (choices: "json", "yaml")

This option controls whether the JTM is expected to be in JSON format or in YAML (which is a superset of JSON).

If no format parameter is given but the TM::Materialized::JTM trait is used, then the format is inherited from there; otherwise the default is "json".

serialize
This method serializes the map object in JTM notation and returns the result as a string.

The method understands one key/value parameter pair:

format (choices: "json", "yaml")

This option controls whether the JTM result should be created in the JSON format or in YAML (which is a superset of JSON).

If no format parameter is given but the TM::Materialized::JTM trait is used, then the format is inherited from there; otherwise the default is "json".

SEE ALSO

TM, TM::Serializable

AUTHOR INFORMATION

Copyright 2010, Alexander Zangerl, All rights reserved.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. http://www.perl.com/perl/misc/Artistic.html