cstar / atom-validation-for-ejabberd-xml
- Source
- Commits
- Network (0)
- Issues (0)
- Downloads (0)
- Wiki (1)
- Graphs
-
Branch:
master
| name | age | message | |
|---|---|---|---|
| |
README | Mon Jan 12 04:32:59 -0800 2009 | |
| |
atom.erl | Mon Jan 12 04:32:59 -0800 2009 | |
| |
node_atom.erl | Fri Jan 09 06:22:48 -0800 2009 | |
| |
sam.atom | Fri Jan 09 05:16:52 -0800 2009 | |
| |
tim.atom | Fri Jan 09 05:16:52 -0800 2009 |
README
= atom_ejabberd = This bit of code is designed to validate pubsub (http://xmpp.org/extensions/xep-0060.html) atom (http://www.ietf.org/rfc/rfc4287.txt) entry payload. == USAGE == atom:check(Payload) returns valid | {invalid, first_error_message} Payload is an ejabberd xmlelement tuple. Also included is a node_atom enforcing atom. You need to have the xml and xml_stream modules from ejabberd in your BEAM path for parsing. https://svn.process-one.net/ejabberd/trunk/src/xml_stream.erl https://svn.process-one.net/ejabberd/trunk/src/xml.erl == Building == Do it manually with erlc. I may provide a build script someday. == Notes == It only checks entries and not feeds. It is designed as a server component that receives entries for publishing. Namespaces should be handled well as long as atom itself is the base namespace. (no <atom:entry>) == A volontary step away from the atom spec == I have decided not to check for atom:author, even though the entry is not in a feed, as XMPP pubsub makes it pretty clear who's actually publishing. == TODO == There are few bits and pieces not implemented yet. For instance : - dates are not validated - IRI are not checked as being valid - emails are not validated either - atom:source is weakly checked (it just accepts it as is) - better handle the namespacing / provide an extension hook to check foreign namespaces Integrate with https://svn.process-one.net/ejabberd-modules/atom_pubsub/trunk/ build script == Testing == The EUnit unit tests provide good coverage. sam.atom and tim.atom are sample entries from Sam Ruby and Tim Bray's atom feed. I used them for testing (check out atom:check_entry() ) == License == Licensed under the EPL == Author == Eric Cestari <eric+atom@ohmforce.com> Website : http://www.cestari.info
