Sleepycat::XmlValue.3pm

Langue: en

Version: 2008-10-21 (fedora - 06/07/09)

Section: 3 (Bibliothèques de fonctions)

NAME

XmlValue - A Perl interface to the DbXml XmlValue Class

SYNOPSIS

     use Sleepycat::DbXml;
 
     my $v = new XmlValue()
     my $v = new XmlValue(VALUE);
     my $v = new XmlValue(TYPE, VALUE);
 
     my $type = $v->getType();
     my $type = $v->getTypeName();
     my $uri  = $v->getTypeURI();
 
     my $boolean  = $v->isNull;
     my $boolean  = $v->isType(TYPE);
     my $boolean  = $v->isBoolean();
     my $boolean  = $v->isNumber();
     my $boolean  = $v->isString();
     my $boolean  = $v->isNode();
     my $boolean  = $v->isBinary();
 
     my $boolean  = $v->asBoolean();
     my $number   = $v->asNumber();
     my $string   = $v->asString();
     my $document = $v->asDocument();
     my $document = $v->asBinary();
 
     my $reader   = $v->asEventReader();
     $v->equals($v2);
 
     # Node traversal
     my $string   = $v->getNodeName() ;
     my $string   = $v->getNodeValue() ;
     my $string   = $v->getNamespaceURI() ;
     my $string   = $v->getPrefix() ;
     my $string   = $v->getLocalName() ;
     my $type     = $v->getNodeType() ;
     my $xmlvalue = $v->getParentNode() ;
     my $xmlvalue = $v->getFirstChild() ;
     my $xmlvalue = $v->getLastChild() ;
     my $xmlvalue = $v->getPreviousSibling() ;
     my $xmlvalue = $v->getNextSibling() ;
     my $xmlvalue = $v->getAttributes() ;
     my $xmlvalue = $v->getOwnerElement();
 
 

DESCRIPTION

CONFORMANCE to C++ API

The Perl interface to XMlValue is identical to the C++ API, apart from the following
1.
No Perl interface is provided to the asNode method.
2.
Addition of getTypeName method.
3.
The Node traversal methods are implemented but untested at present.

Constructor

The constructor for XmlValue can take one of the following three forms:
     my $value = new XmlValue() ;
     my $value = new XmlValue(VALUE);
     my $value = new XmlValue(TYPE, VALUE);
 
 

The first form, with no parameters, will create an empty XmlValue.

The second, with one parameter, creates and initialises an XmlValue of type XmlValue::STRING. Value can be an XMlDocument object, another XmlValue object or a simple Perl scalar.

The third form creates and initialises an XmlValue of the specified type.

The TYPE parameter can be one of the following

     XmlValue::NONE 
     XmlValue::NODE 
     XmlValue::ANY_SIMPLE_TYPE 
     XmlValue::ANY_URI 
     XmlValue::BASE_64_BINARY 
     XmlValue::BOOLEAN 
     XmlValue::DATE 
     XmlValue::DATE_TIME 
     XmlValue::DAY_TIME_DURATION 
     XmlValue::DECIMAL 
     XmlValue::DOUBLE 
     XmlValue::DURATION 
     XmlValue::FLOAT 
     XmlValue::G_DAY 
     XmlValue::G_MONTH 
     XmlValue::G_MONTH_DAY 
     XmlValue::G_YEAR 
     XmlValue::G_YEAR_MONTH 
     XmlValue::HEX_BINARY 
     XmlValue::NOTATION 
     XmlValue::QNAME 
     XmlValue::STRING 
     XmlValue::TIME 
     XmlValue::YEAR_MONTH_DURATION 
     XmlValue::UNTYPED_ATOMIC 
     XmlValue::BINARY
 
 

The VALUE parameter is the value you want stored in the XmlValue object.

XmlValue objects are overloaded to allow convenient access to their contents. Stringification of an XmlValue object or comparison of one (or more) XmValue objects will automagically result in the asString method being called.

Methods


my $type = $v->getType()


my $type = $v->getType()

Returns the numeric representation of the type of the XmlValue. The value returned will match one of the the TYPE constants defined in the constructor section, above.

my $type = $v->getTypeName()


my $type = $v->getTypeName()

Returns a string representation of the type of the XmlValue. The string returned will match one of the the TYPE constants defined in the constructor section, above.

my $uri = $v->getType()


my $uri = $v->getType()

return the URI for the type.

my $boolean = $v->isNull


my $boolean = $v->isNull

Returns true if $v is null, otherwize returns false.

my $boolean = $v->isBoolean()


my $boolean = $v->isBoolean()

Returns true if $v has type XmlValue::BOOLEAN, otherwise returns false.

The $context parameter is optional, but if present must be a valid XmlQueryContext object.

my $boolean = $v->isNumber();


my $boolean = $v->isNumber();

Returns true if $v has type XmlValue::NUMBER, otherwise returns false.

my $boolean = $v->isString();


my $boolean = $v->isString();

Returns true if $v has type XmlValue::STRING, otherwise returns false.

my $boolean = $v->isNode();


my $boolean = $v->isNode();

Returns true if $v has type XmlValue::NODE, otherwise returns false.

my $boolean = $v->asBoolean();


my $boolean = $v->asBoolean();

Returns the value of the XmlValue as a Boolean.

my $number = $v->asNumber();


my $number = $v->asNumber();

Returns the value of the XmlValue as a Number.

my $string = $v->asString();


my $string = $v->asString();

Returns the value of the XmlValue as a String.

my $document = $v->asDocument();


my $document = $v->asDocument();

Returns the value of the XmlValue as a Document.

$v->equals($v2);


$v->equals($v2);

Returns true if $v and $v2 represrnt the same value.

my $string = $v->getNodeName() ;


my $string = $v->getNodeName() ;


my $string = $v->getNodeValue() ;


my $string = $v->getNodeValue() ;


my $string = $v->getNamespaceURI() ;


my $string = $v->getNamespaceURI() ;


my $string = $v->getPrefix() ;


my $string = $v->getPrefix() ;


my $string = $v->getLocalName() ;


my $string = $v->getLocalName() ;


my $type = $v->getNodeType() ;


my $type = $v->getNodeType() ;


my $xmlvalue = $v->getParentNode() ;


my $xmlvalue = $v->getParentNode() ;


my $xmlvalue = $v->getFirstChild() ;


my $xmlvalue = $v->getFirstChild() ;


my $xmlvalue = $v->getLastChild() ;


my $xmlvalue = $v->getLastChild() ;


my $xmlvalue = $v->getPreviousSibling() ;


my $xmlvalue = $v->getPreviousSibling() ;


my $xmlvalue = $v->getNextSibling() ;


my $xmlvalue = $v->getNextSibling() ;


my $xmlvalue = $v->getAttributes() ;


my $xmlvalue = $v->getAttributes() ;


my $xmlvalue = $v->getOwnerElement();


my $xmlvalue = $v->getOwnerElement();

EXAMPLES

     use strict;
     use warnings;
 
     use DbXml;
 
     my $mgr = new XMlManager();
 
     # Create an empty object
     my $value1 = new XmlValue ;
 
     # Create and initialise a string
     my $value2 = new XmlValue("alpha");
 
     # Create and initialise another string
     my $value3 = new XmlValue(XmlValue::STRING, "beta");
 
     # Create and initialise a number
     my $value4 = new XmlValue(XmlValue::DECIMAL, 42);
 
     print "value2 contains " . $value2->asString() . "\n" ;
 
     # Same as above using overloaded stringification XmlValue
     print "value2 contains $value2"\n" ;
 
     print "value4 is a DECIMAL\n"
         if $value4->getType == XmlValue::DECIMAL ;
 
 

NOTES

SEE ALSO

AUTHOR

Paul Marquess