NAME
Types::XMLSchema - XMLSchema compatible Moose types library
VERSION
version 0.01
SYNOPSIS
package
My::Class;
use
Moose;
has
'string'
=> (
is
=>
'rw'
,
isa
=> XsString );
has
'boolean'
=> (
is
=>
'rw'
,
isa
=> XsBoolean );
has
'byte'
=> (
is
=>
'rw'
,
isa
=> XsByte );
has
'short'
=> (
is
=>
'rw'
,
isa
=> XsShort );
has
'int'
=> (
is
=>
'rw'
,
isa
=> XsInt );
has
'long'
=> (
is
=>
'rw'
,
isa
=> XsLong,
coerce
=> 1 );
has
'integer'
=> (
is
=>
'rw'
,
isa
=> XsInteger,
coerce
=> 1 );
has
'float'
=> (
is
=>
'rw'
,
isa
=> XsFloat,
coerce
=> 1 );
has
'double'
=> (
is
=>
'rw'
,
isa
=> XsDouble,
coerce
=> 1 );
has
'decimal'
=> (
is
=>
'rw'
,
isa
=> XsDecimal,
coerce
=> 1 );
has
'duration'
=> (
is
=>
'rw'
,
isa
=> XsDuration,
coerce
=> 1 );
has
'datetime'
=> (
is
=>
'rw'
,
isa
=> XsDateTime,
coerce
=> 1 );
has
'time'
=> (
is
=>
'rw'
,
isa
=> XsTime,
coerce
=> 1 );
has
'date'
=> (
is
=>
'rw'
,
isa
=> XsDate,
coerce
=> 1 );
has
'gYearMonth'
=> (
is
=>
'rw'
,
isa
=> XsGYearMonth,
coerce
=> 1 );
has
'gYear'
=> (
is
=>
'rw'
,
isa
=> XsGYear,
coerce
=> 1 );
has
'gMonthDay'
=> (
is
=>
'rw'
,
isa
=> XsGMonthDay,
coerce
=> 1 );
has
'gDay'
=> (
is
=>
'rw'
,
isa
=> XsGDay,
coerce
=> 1 );
has
'gMonth'
=> (
is
=>
'rw'
,
isa
=> XsGMonth,
coerce
=> 1 );
has
'base64Binary'
=> (
is
=>
'rw'
,
isa
=> XsBase64Binary,
coerce
=> 1 );
has
'anyURI'
=> (
is
=>
'rw'
,
isa
=> XsAnyURI,
coerce
=> 1 );
has
'nonPositiveInteger'
=> (
is
=>
'rw'
,
isa
=> XsNonPositiveInteger,
coerce
=> 1 );
has
'positiveInteger'
=> (
is
=>
'rw'
,
isa
=> XsPositiveInteger,
coerce
=> 1 );
has
'nonNegativeInteger'
=> (
is
=>
'rw'
,
isa
=> XsNonNegativeInteger,
coerce
=> 1 );
has
'negativeInteger'
=> (
is
=>
'rw'
,
isa
=> XsNegativeInteger,
coerce
=> 1 );
has
'unsignedByte'
=> (
is
=>
'rw'
,
isa
=> XsUnsignedByte );
has
'unsignedShort'
=> (
is
=>
'rw'
,
isa
=> XsUnsignedShort );
has
'unsignedInt'
=> (
is
=>
'rw'
,
isa
=> XsUnsignedInt );
has
'unsignedLong'
=> (
is
=>
'rw'
,
isa
=> XsUnsignedLong,
coerce
=> 1 );
Then, elsewhere:
my
$object
= My::Class->new(
string
=>
'string'
,
decimal
=> Math::BigFloat->new(20.12),
duration
=> DateTime->now - DateTime->(
year
=> 1990),
base64Binary
=> IO::File->new($0),
);
DESCRIPTION
This class provides a number of XMLSchema compatible types for your Moose classes.
TYPES
XsString
has
'string'
=> (
is
=>
'rw'
,
isa
=> XsString
);
A wrapper around built-in Str.
XsInteger
has
'integer'
=> (
is
=>
'rw'
,
isa
=> XsInteger,
coerce
=> 1
);
A Math::BigInt object. Set to coerce from Int/Str.
This is defined in XSchema to be an arbitrary size integer.
XsPositiveInteger
has
'positiveInteger'
=> (
is
=>
'rw'
,
isa
=> XsPositiveInteger,
coerce
=> 1,
);
A Math::BigInt object. Set to coerce from Int/Str.
This is defined in XSchema to be an arbitrary size integer greater than zero.
XsNonPositiveInteger
has
'nonPositiveInteger'
=> (
is
=>
'rw'
,
isa
=> XsNonPositiveInteger,
coerce
=> 1,
);
A Math::BigInt object. Set to coerce from Int/Str.
This is defined in XSchema to be an arbitrary size integer less than or equal to zero.
XsNegativeInteger
has
'negativeInteger'
=> (
is
=>
'rw'
,
isa
=> XsNegativeInteger,
coerce
=> 1,
);
A Math::BigInt object. Set to coerce from Int/Str.
This is defined in XSchema to be an arbitrary size integer less than zero.
XsNonNegativeInteger
has
'nonPositiveInteger'
=> (
is
=>
'rw'
,
isa
=> XsNonNegativeInteger,
coerce
=> 1,
);
A Math::BigInt object. Set to coerce from Int/Str.
This is defined in XSchema to be an arbitrary size integer greater than or equal to zero.
XsLong
has
'long'
=> (
is
=>
'rw'
,
isa
=> XsLong,
coerce
=> 1,
);
A 64-bit Integer. Represented as a Math::Bigint object, but limited to the 64-bit (signed) range. Set to coerce from Int/Str.
XsUnsignedLong
has
'unsignedLong'
=> (
is
=>
'rw'
,
isa
=> XsUnsignedLong,
coerce
=> 1,
);
A 64-bit Integer. Represented as a Math::Bigint object, but limited to the 64-bit (unsigned) range. Set to coerce from Int/Str.
XsInt
has
'int'
=> (
is
=>
'rw'
,
isa
=> XsInt
);
A 32-bit integer. Represented natively.
XsUnsignedInt
has
'unsignedInt'
=> (
is
=>
'rw'
,
isa
=> XsUnsignedInt
);
A 32-bit integer. Represented natively.
XsShort
has
'short'
=> (
is
=>
'rw'
,
isa
=> XsShort
);
A 16-bit integer. Represented natively.
XsUnsignedShort
has
'unsignedShort'
=> (
is
=>
'rw'
,
isa
=> XsUnsignedShort
);
A 16-bit integer. Represented natively.
XsByte
has
'byte'
=> (
is
=>
'rw'
,
isa
=> XsByte
);
An 8-bit integer. Represented natively.
XsUnsignedByte
has
'unsignedByte'
=> (
is
=>
'rw'
,
isa
=> XsUnsignedByte
);
An 8-bit integer. Represented natively.
XsBoolean
has
'boolean'
=> (
is
=>
'rw'
,
isa
=> XsBoolean
);
A wrapper around built-in Bool.
XsFloat
has
'float'
=> (
is
=>
'rw'
,
isa
=> XsFloat,
coerce
=> 1,
);
A single-precision 32-bit Float. Represented as a Math::BigFloat object, but limited to the 32-bit range. Set to coerce from Num/Str.
XsDouble
has
'double'
=> (
is
=>
'rw'
,
isa
=> XsDouble,
coerce
=> 1,
);
A double-precision 64-bit Float. Represented as a Math::BigFloat object, but limited to the 64-bit range. Set to coerce from Num/Str.
XsDecimal
has
'decimal'
=> (
is
=>
'rw'
,
isa
=> XsDecimal,
coerce
=> 1,
);
Any base-10 fixed-point number. Represented as a Math::BigFloat object. Set to coerce from Num/Str.
XsDuration
has
'duration'
=> (
is
=>
'rw'
,
isa
=> XsDuration,
coerce
=> 1,
);
A wrapper around Str. If you enable coerce you can pass a DateTime::Duration object.
XsDateTime
has
'datetime'
=> (
is
=>
'rw'
,
isa
=> XsDateTime,
coerce
=> 1
);
A wrapper around Str. If you enable coerce you can pass a DateTime object.
XsTime
has
'time'
=> (
is
=>
'rw'
,
isa
=> XsTime,
coerce
=> 1
);
A wrapper around Str. If you enable coerce you can pass a DateTime object.
XsDate
has
'date'
=> (
is
=>
'rw'
,
isa
=> XsDate,
coerce
=> 1
);
A wrapper around Str. If you enable coerce you can pass a DateTime object.
XsGYearMonth
has
'gYearMonth'
=> (
is
=>
'rw'
,
isa
=> XsGYearMonth,
coerce
=> 1
);
A wrapper around Str. If you enable coerce you can pass a DateTime object or a ArrayRef of two integers.
XsGYear
has
'gYear'
=> (
is
=>
'rw'
,
isa
=> XsGYear,
coerce
=> 1
);
A wrapper around Str. If you enable coerce you can pass a DateTime object.
XsGMonthDay
has
'gMonthDay'
=> (
is
=>
'rw'
,
isa
=> XsGMonthDay,
coerce
=> 1
);
A wrapper around Str. If you enable coerce you can pass a DateTime object or a ArrayRef of two integers.
XsGDay
has
'gDay'
=> (
is
=>
'rw'
,
isa
=> XsGDay,
coerce
=> 1
);
A wrapper around Str. If you enable coerce you can pass a DateTime object or Int eg. 24.
XsGMonth
has
'gMonth'
=> (
is
=>
'rw'
,
isa
=> XsGMonth,
coerce
=> 1
);
A wrapper around Str. If you enable coerce you can pass a DateTime object or Int eg. 10.
XsBase64Binary
has
'base64Binary'
=> (
is
=>
'rw'
,
isa
=> XsBase64Binary,
coerce
=> 1
);
A wrapper around Str. If you enable coerce you can pass a IO::Handle object - the content of the file will be encoded to UTF-8 before encoding with base64.
XsAnyURI
has
'anyURI'
=> (
is
=>
'rw'
,
isa
=> XsAnyURI,
coerce
=> 1
);
A wrapper around Str. If you enable coerce you can pass a URI object.
SEE ALSO
Enable attributes coercion automatically with
AUTHOR
Alex J. G. Burzyński <ajgb@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2012 by Alex J. G. Burzyński <ajgb@cpan.org>.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.