Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
XML::Namespace(3)     User Contributed Perl Documentation    XML::Namespace(3)

NAME
       XML::Namespace -	Simple support for XML Namespaces

SYNOPSIS
	Example	1: using XML::Namespace	objects

	   use XML::Namespace;

	   my $xsd = XML::Namespace->new('http://www.w3.org/2001/XMLSchema#');

	   # explicit access via the uri() method
	   print $xsd->uri();		# http://www.w3.org/2001/XMLSchema#
	   print $xsd->uri('integer');	# http://www.w3.org/2001/XMLSchema#integer

	   # implicit access through AUTOLOAD method
	   print $xsd->integer;		# http://www.w3.org/2001/XMLSchema#integer

	Example	2: importing XML::Namespace objects

	   use XML::Namespace
	       xsd => 'http://www.w3.org/2001/XMLSchema#',
	       rdf => 'http://www.w3.org/1999/02/22-rdf-syntax-ns#';

	   # xsd and rdf are imported subroutines that return
	   # XML::Namespace objects which can be used as above

	   print xsd->uri('integer');	# http://www.w3.org/2001/XMLSchema#integer
	   print xsd->integer;		# http://www.w3.org/2001/XMLSchema#integer

DESCRIPTION
       This module implements a	simple object for representing XML Namespaces
       in Perl.	 It provides little more than some syntactic sugar for your
       Perl programs, saving you the bother of typing lots of long-winded
       URIs.  It was inspired by the Class::RDF::NS module distributed as part
       of Class::RDF.

   Using XML::Namespace	Objects
       First load the XML::Namespace module.

	   use XML::Namespace;

       Then create an XML::Namespace object.

	   my $xsd = XML::Namespace->new('http://www.w3.org/2001/XMLSchema#');

       Then use	the uri() method to return an absolute URI from	a relative
       path.

	   print $xsd->uri('integer'); # http://www.w3.org/2001/XMLSchema#integer

       Alternately, use	the AUTOLOAD method to map method calls	to the uri()
       method.

	   print $xsd->integer;	       # http://www.w3.org/2001/XMLSchema#integer

   Importing XML::Namespace Objects
       When you	"use" the XML::Namespace module, you can specify a list	of
       namespace definitions.

	   use XML::Namespace
	       xsd => 'http://www.w3.org/2001/XMLSchema#',
	       rdf => 'http://www.w3.org/1999/02/22-rdf-syntax-ns#';

       This defines the	"xsd" and "rdf"	subroutines and	exports	them into the
       calling package.	 The subroutines simply	return XML::Namespace objects
       initialised with	the relevant namespace URIs.

	   print xsd->uri('integer');  # http://www.w3.org/2001/XMLSchema#integer
	   print xsd->integer;	       # http://www.w3.org/2001/XMLSchema#integer

   Overloaded Stringification Method
       The XML::Namespace module overloads the stringification operator	to
       return the namespace URI.

	   my $xsd = XML::Namespace->new('http://www.w3.org/2001/XMLSchema#');

	   print $xsd;		 # http://www.w3.org/2001/XMLSchema#

METHODS
   new($uri)
       Constructor method which	creates	a new XML::Namespace object.  It
       expects a single	argument denoting the URI that the namespace is	to
       represent.

	   use XML::Namespace;

	   my $xsd = XML::Namespace->new('http://www.w3.org/2001/XMLSchema#');

   uri($path)
       When called without arguments, this method returns the URI of the
       namespace object, as defined by the argument passed to the new()
       constructor method.

	   $xsd->uri();		 # http://www.w3.org/2001/XMLSchema#

       An argument can be passed to indicate a path relative to	the namespace
       URI.  The method	returns	a simple concatenation of the namespace	URI
       and the relative	path argument.

	   $xsd->uri('integer'); # http://www.w3.org/2001/XMLSchema#integer

   import($name,$uri,$name,$uri,...)
       This method is provided to work with the	Exporter mechanism.  It
       expects a list of "($name, $uri)" pairs as arguments.  It creates
       XML::Namespace objects and accessor subroutines that are	then exported
       to the caller's package.

       Although	not intended for manual	invocation, there's nothing to stop
       you from	doing it.

	   use XML::Namespace;

	   XML::Namespace->import( xsd => 'http://www.w3.org/2001/XMLSchema#' );

	   xsd()->integer;   # http://www.w3.org/2001/XMLSchema#integer

       Note that the parentheses are required when accessing this subroutine.

	   xsd()->integer;     # Good
	   xsd->integer;       # Bad

       Unlike those that are defined automatically by the Importer, Perl
       doesn't know anything about these subroutines at	compile	time.  Without
       the parentheses,	Perl will think	you're trying to call the "integer"
       method on an unknown "xsd" package and you'll see an error like:

	   Can't locate	object method "integer"	via package "xsd"

       That's why it's better to define	your namespaces	when you load the
       XML::Namespace module.

	   use XML::Namespace
	       xsd => 'http://www.w3.org/2001/XMLSchema#';

	   xsd->integer;       # Good

   AUTOLOAD
       The module defines an AUTOLOAD method that maps all other method	calls
       to the uri() method.  Thus, the following return	the same value.

	   $xsd->uri('integer'); # http://www.w3.org/2001/XMLSchema#integer
	   $xsd->integer;	 # http://www.w3.org/2001/XMLSchema#integer

AUTHOR
       Andy Wardley <mailto:abw@cpan.org>

VERSION
       This is version 0.02 of XML::Namespace.

COPYRIGHT
       Copyright (C) 2005 Andy Wardley.	 All Rights Reserved.

       This module is free software; you can redistribute it and/or modify it
       under the same terms as Perl itself.

SEE ALSO
       The Class::RDF::NS module, distributed as part of Class::RDF, provided
       the inspiration for the module.	XML::Namespace essentially does	the
       same thing, albeit in a slightly	different way.	It's also available as
       a stand-alone module for	use in places unrelated	to RDF.

       The XML::NamespaceFactory module	also implements	similar	functionality
       to XML::Namespace, but instead uses the JClark notation (e.g.
       "{http://foo.org/ns/}title").

perl v5.24.1			  2005-08-22		     XML::Namespace(3)

NAME | SYNOPSIS | DESCRIPTION | METHODS | AUTHOR | VERSION | COPYRIGHT | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=XML::Namespace&sektion=3&manpath=FreeBSD+12.0-RELEASE+and+Ports>

home | help