NAME
XML::NewsML_G2 - generate NewsML-G2 news items
VERSION
0.2.0
INSTALLATION
To install this module, run the following commands:
perl Build.PL
./Build
./Build test
./Build install
SYNOPSIS
use XML::NewsML_G2;
my $ni = XML::NewsML_G2::News_Item_Text->new(%args);
my $writer = XML::NewsML_G2::Writer_2_15(news_item => $ni);
my $dom = $writer->create_dom();
DESCRIPTION
This module tries to implement the creation of XML files conforming to
the NewsML-G2 specification as published by the IPTC. It does not aim to
implement the complete standard, but to cover the most common use cases
in a best-practice manner.
For the full specification of the format, visit
http://www.iptc.org/site/News_Exchange_Formats/NewsML-G2/. For a quick
introduction, you might prefer the Quick Start Guides.
CURRENT STATUS
The implementation currently supports text, picture, video, audio,
graphics, as well as multimedia packages and slideshows.
Version 2.15 is the latest version of the standard supported by this
software, and should be your first choice. Using versions 2.9 and 2.12
is deprecated, and support for it will beremoved in future releases.
Draft version 2.17 is unsupported, but will evolve into 2.18 when it is
finalised.
SCHEMES AND CATALOGS
Before starting to use schemes or catalogs with this module, read the
chapter 13 of the NewsML-G2 implementation guide. Go on, do it now. I'll
wait.
You don't need to use either schemes or catalogs in order to use this
module, unless you are required to do so by the NewsML-G2 standard (e.g.
the `service' attribute). If you specify a value for such an attribute
and don't add a corresponding scheme, creating the DOM tree will die.
For all attributes where a scheme is not required by the standard, you
can start without specifying anything. In that case, a `literal'
attribute will be created, with the value you specified in the `qcode'
attribute. For instance:
my $org = XML::NewsML_G2::Organisation->new(name => 'Google', qcode => 'gogl');
$ni->add_organisation($org);
will result in this output:
Google
If the qcodes used in your organisation instances are part of a
controlled vocabulary, you can convey this information by creating a
XML::NewsML_G2::Scheme instance, specifying a custom, unique `uri' for
your vocabulary, and registering it with the
XML::NewsML_G2::Scheme_Manager:
my $os = XML::NewsML_G2::Scheme->new(alias => 'xyzorg',
uri => 'http://xyz.org/cv/org');
my $sm = XML::NewsML_G2::Scheme_Manager->new(org => $os);
The output will now contain an inline catalog with your scheme:
and the literal will be replaced by a qcode:
Google
If you have multiple schemes, you can package them together into a
single catalog, which you publish on your website. Simply specify the
URL of the catalog when creating the XML::NewsML_G2::Scheme instance:
my $os = XML::NewsML_G2::Scheme->new(alias => 'xyzorg',
catalog => 'http://xyz.org/catalog_1.xml');
and the inline catalog will be replaced with a link:
API
Main Classes
XML::NewsML_G2::News_Item
XML::NewsML_G2::News_Item_Text
XML::NewsML_G2::News_Item_Audio
XML::NewsML_G2::News_Item_Picture
XML::NewsML_G2::News_Item_Video
XML::NewsML_G2::News_Item_Graphics
XML::NewsML_G2::News_Message
XML::NewsML_G2::Package_Item
XML::NewsML_G2::AnyItem
Scheme Handling
XML::NewsML_G2::Scheme
XML::NewsML_G2::Scheme_Manager
Classes for Structured Data Attributes
XML::NewsML_G2::Service
XML::NewsML_G2::Video
XML::NewsML_G2::Media_Topic
XML::NewsML_G2::Topic
XML::NewsML_G2::Genre
XML::NewsML_G2::Provider
XML::NewsML_G2::Desk
XML::NewsML_G2::Location
XML::NewsML_G2::Organisation
XML::NewsML_G2::Product
XML::NewsML_G2::Group
XML::NewsML_G2::Picture
XML::NewsML_G2::Graphics
XML::NewsML_G2::Audio
XML::NewsML_G2::Copyright_Holder
XML::NewsML_G2::Icon
Writer Classes and Roles
XML::NewsML_G2::Writer
XML::NewsML_G2::Writer::News_Item
XML::NewsML_G2::Writer::News_Message
XML::NewsML_G2::Writer::Package_Item
XML::NewsML_G2::Role::Writer
XML::NewsML_G2::Role::Writer_2_9
XML::NewsML_G2::Role::Writer_2_12
XML::NewsML_G2::Role::Writer_2_15
XML::NewsML_G2::Role::Writer_2_17
XML::NewsML_G2::Role::Writer::News_Item_Text
XML::NewsML_G2::Role::Writer::News_Item_Audio
XML::NewsML_G2::Role::Writer::News_Message
XML::NewsML_G2::Role::Writer::News_Item_Picture
XML::NewsML_G2::Role::Writer::Package_Item
XML::NewsML_G2::Role::Writer::News_Item_Video
XML::NewsML_G2::Role::Writer::News_Item_Graphics
Type Definitions
XML::NewsML_G2::Types
Utility Roles
XML::NewsML_G2::Role::HasQCode
XML::NewsML_G2::Role::Remote
XML::NewsML_G2::Role::RemoteVisual
XML::NewsML_G2::Role::RemoteAudible
DEPENDENCIES
Moose, XML::LibXML, DateTime, DateTime::Format::XSD, UUID::Tiny,
Module::Runtime
BUGS AND LIMITATIONS
No bugs have been reported.
Please report any bugs or feature requests to
`bug-xml-newsml_g2@rt.cpan.org', or through the web interface at
https://rt.cpan.org/Public/Dist/Display.html?Name=XML-NewsML_G2.
Be aware that the API for this module *will* change with each upcoming
release.
SEE ALSO
XML::NewsML - Simple interface for creating NewsML documents
AUTHORS
Philipp Gortan `'
Mario Paumann `'
Christian Eder `'
Stefan Hrdlicka `'
LICENCE AND COPYRIGHT
Copyright (c) 2013-2014, APA-IT. All rights reserved.
This module is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2 of the License, or (at your
option) any later version.
This module is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
Public License for more details.
You should have received a copy of the GNU General Public License along
with this module. If not, see http://www.gnu.org/licenses/.