The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

XML::SRS - Shared Registry System XML Protocol

SYNOPSIS

 my $create = XML::SRS::Domain::Create->new(
          action_id => "thinkbig.co.nz-create-".time(),
          domain_name => "thinkbig.co.nz",
          term => 12,
          delegate => 1,
          contact_registrant => {
               name => "Robert Muldoon",
               email => 'get.drunk.and.call.a.snap.election@gmail.com',
               address => {
                    address1 => "57 Mount Pleasant St",
                    address2 => "Burbia",
                    city => "Ohai",
                    region => "Southland",
                    cc => "NZ",
               },
               phone => {
                    cc => "64",
                    ndc => "4",
                    subscriber => "499 2267",
               },
          },
          nameservers => [qw( ns1.registrar.net.nz ns2.registrar.net.nz )],
         );

  my $xml_request = $create->to_xml;

DESCRIPTION

This module is an implementation of the XML protocol used by the .nz registry. This protocol was developed in 2002, using what were considered stable XML standard methods at the time, such as SGML DTD. This compares to the now de-facto standard, EPP (RFC3730, friends and updates), which was developed using XML Schema and XML Namespaces. As such, the SRS protocol as a stable standard far pre-dates EPP, which took a further 2 years to reach 1.0 status.

WARNING: SITE^WMODULE UNDER CONSTRUCTION

The classes which are present, while enough to be able to parse the protocol specification, are not fixed in API terms until they are documented and tested. Please consider any attribute which is not yet at least documented to be under review and subject to rename. This is thought to lead to a clearer implementation than fixing attribute names to the somewhat random (though well-known) names used in the XML. Use of sub BUILDARGS { } to allow either may be considered; patches welcome.

Similarly with undocumented portions of the implementation. If you would like to make sure that the code you write against it doesn't need rewriting, please send a patch/pull request!

This module currently implements the XML part of the protocol only; converting this into the HTTPS POST, with PGP signature, is still TO-DO.

GLOBALS

There is currently a $XML::SRS::PROTOCOL_VERSION variable which includes the version of the SRS protocol parsed by the module. Currently, the ability to parse more than one version at a time is not supported, so in the event of registry protocol version changes, you will need to upgrade the version of XML::SRS in lock-step for any new functionality. This global is not exported.

SOURCE, SUBMISSIONS, SUPPORT

Source code is available from Catalyst:

  git://git.catalyst.net.nz/XML-SRS.git

And Github:

  git://github.com/catalyst/XML-SRS.git

Please see the file SubmittingPatches for information on preferred submission formats.

Suggested avenues for support:

SEE ALSO

For the 0.01 release, there is little documentation of how to use the classes, and the implemented portion of the protocol has a particular focus towards a particular use case, which initially will not include core registry functions such as adminstering domains. That being said, as you can see in the example, it is already possible to create DomainCreate messages.

Implementation, tests and documentation will be expanded as the module is put to use. This module is provided as a preview release.

AUTHOR AND LICENCE

Development commissioned by NZ Registry Services, and carried out by Catalyst IT - http://www.catalyst.net.nz/

Copyright 2009, 2010, NZ Registry Services. This module is licensed under the Artistic License v2.0, which permits relicensing under other Free Software licenses.