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

Revision history for Syndication::NewsML

v0.10 - Released to CPAN 14 Feb 2002

- internals: separated classes out into more than one file

- getXXXList now returns a real array when called in an array context NOTE this may break some code, notably function calls like myRoutine($newscomp->getNewsItemList) will now be passed an array rather than an array reference. Sorry bout that, but remember this is pre-release software you're working with...

- greatly enhanced examples/NewsMLParser.pl

v0.09 - 13 feb 2002 (unreleased)

- fixed bug that didn't allow multiple Party elements

- fixed bug: dies when asking for an attribute that doesn't exist

- added AFP example file

- added IPTC topic files (we don't use them yet, though)

v0.08 - Released to CPAN 16 Jan 2002

- A three-byte change (initialising a variable) which makes the test suite pass... sorry about that guys!

v0.07 - Released to CPAN 11 Jan 2002

- Added some generic methods to Syndication::NewsML::Node (and therefore all object classes): + getXML -- return the current tag and all its children as an XML tree + getContent -- same as above, but ignores the current container element (which means the resulting string may not be well-formed XML) + getText updated to get text of all children (bug fix) + getAllText -- return text in all child elements with no sanity checking, so you can even call this on the NewsML root element to retrieve all text in a document

v0.06 - 1 Nov 2001 (unreleased)

- Enhanced examples/NewsMLParser.pl: now recurses through all NewsComponents. It's almost useful!

- Made auto routines handle undefined elements/attributes better: now returns undef rather than croaks. Calling a method of an undef class still dies, though: that's Perl, there's nothing I can do about it -- so test your return codes.

v0.05 - Released to CPAN 11 Oct 2001

- Fixed faulty call to all parent _init functions in Syndication::NewsML::Node which meant the calls to parent _init classes could be removed... thanks to Duncan Cameron <dcameron@bcs.org.uk> for the tip, which allowed me to get rid of 285 lines of crappy code!

- Introduced better error reporting for calling getXXX when you should be calling getXXXList (for elements that could be "zero or more" or "one or more")

- Found and fixed a few minor mismatches between the module and the DTD

- added resolveTopicRef to Origin and Party nodes, which uses the findReference method to get the Topic node referred by a #reference in Origin's Href and Party's Topic attributes. See tests and examples for usage.

- added some "helper functions" to grab metadata directly from a NewsComponent node, rather than having to delve into the metadata structure to pull out simple items like copyright date and news provider. This is the first step down the path of creating a simpler API for NewsML access.

- Filled out more of t/4_reuters.t test and examples/NewsMLParser.pl

v0.04 - Released to CPAN, 26 Sep 2001

- Added resolveTopicSet, resolveTopicSetDescription to FormalNameNode These routines allow the user to, given a Status node or something else with a FormalName/Vocabulary pair, automatically look up a related TopicSet and get its information. Note that this only works for locally referenced TopicSets (ie in the same document referred by a Duid). The annotated DTD specifies an algorithm to use when the TopicSet can't be found locally -- I haven't implemented it yet.

- Added References package including findReference method. Not tested for external references yet.

- Added getElementByEuid and getElementByDuid methods. These methods can be used on any tag that inherits IdNode -- ie nearly all of them.

 Unfortunately the above methods only return a DOM element, not a NewsMLish
 object. Perhaps I can use the tag name to construct them?

- Added DOMUtils class with two methods to begin with: findElementByAttribute(node, attr, value): starting at "node", walk the tree and return the node that has attribute "attr" with value "value". getRootNode(node) follow the path up from "node" and return a reference to the <NewsML> node at the top of the tree.

- Added getDatePerl method to date elements: converts ISO8601 date/time format into internal Perl date/time format. Always returns date/time in UTC (it's easy to then use Perl localtime() to get a representation in another timezone). (Note: it may be useful to include a getOriginalTimeZone() or something as we're destroying a bit of information here: namely the timezone under which the story was filed / sent) Elements that can use this are: DateAndTime, FirstCreated, ThisRevisionCreated, DateId

- Updated examples/NewsMLParser to use getNewsItemList -- forgot to fix in 0.03

- Changed all references of News::NewsML to Syndication::NewsML

- Added getTagName method to all Nodes

- Added getPath method to all Nodes

v0.03, released 16 Sep 2001

- Released to newsml@yahoogroups.com mailing list only.