NAME¶
TM::Serializable::XTM - Topic Maps, trait for parsing and dumping XTM instances.
SYNOPSIS¶
# this is not an end-user package
# see the source in TM::Materialized::XTM how this can be used
DESCRIPTION¶
This trait provides parsing and dumping functionality for XTM instances.
- Version 1.0 : <http://www.topicmaps.org/xtm/index.html>
- Version 1.1 : <http://www.jtc1sc34.org/repository/0495.htm>
- Version 2.0 : http://www.isotopicmaps.org/sam/sam-xtm/
<http://www.isotopicmaps.org/sam/sam-xtm/>
Limitations¶
- •
- only a single <topicMap> is allowed in one instance, there is no
support for multiple maps per document
- •
- only a single scope is allowed for (base)names, occurrences and
associations.
- •
- In XTM 1.1 you cannot host XML content in occurrences.
- •
- No reification support in 1.0 or 1.1.
- •
- This package does not make any use of item identifiers.
- •
- Relative URIs are NOT made absolute via the base URI where the map
is loaded from. This may NOT be what a user ultimately wants. Also all URI
canonicalization is skipped.
- •
- The "xlink:type" attribute is completely ignored.
TODOs¶
- •
- <mergeMap> is handled in 1.0, 1.1, but any scoping topic is ignored.
This is related to the above.
- •
- At this stage, you can only include other XTM instances with
<mergeMap>, not AsTMa= or LTM. This may be fixed in the future.
- •
- No variants are serialized or deserialized.
- •
- Reification of topic map item is NOT supported.
- •
- "isa" and "is-subclass-of" associations which are
scoped (or reified) are not handled special yet.
- •
- Suppress trivia might also suppress homepage << occurrence
assertions.
- •
- Relative URLs in "mergeMap" are not made absolute.
INTERFACE¶
Methods¶
- deserialize
- This method takes an XTM string and tries to parse it. It will raise an
exception on parse error. The if a "version" attribute exists,
then the value
- serialize
- This method serializes the map object into XTM notation and returns the
resulting string. It will raise an exception if the object contains
constructs that XTM cannot represent. The result is a standard Perl
string, so you may need to force it into a particular encoding.
The method understands a number of key/value pair parameters:
- "omit_trivia" (default: 0)
- This option suppresses the output of topics without any
characteristics.
- "version" (default: 2.0)
- This option controls whether XTM 1.0 or XTM 2.0 (default) is
generated.
SEE ALSO¶
TM, TM::Serializable
Copyright 200[78] Alexander Zangerl, Robert Barta.
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