SOAP::...leType(3pm)
β¨ SOAP::WSDL::XSD::Typelib::SimpleType β¨
okay so bestie, welcome to SOAP::WSDL::XSD::Typelib::SimpleType β the Perl module (documented in User Contributed Perl Documentation) that's literally the base class for building simple type classes that model XML Schema simpleType definitions. π
πΈ NAME πΈ
SOAP::WSDL::XSD::Typelib::SimpleType β the simpleType base class. yes, that's the whole name, she's booked and busy. π
π¦ DESCRIPTION π¦
This module implements a base class for designing simple type classes that model XML Schema simpleType definitions. it's giving scaffolding, it's giving foundation, it's giving "inherit from me and thank me later". π
β¨ SYNOPSIS β¨
# example simpleType derived by restriction
# XSD would be:
# <simpleType name="MySimpleType">
# <restriction base="xsd:string" />
# </simpleType>
package MySimpleType;
use Class::Std::Fast::Storable constructor => 'none';
# restriction base implemented via inheritance
use SOAP::WSDL::XSD::Typelib::Builtin;
use SOAP::WSDL::XSD::Typelib::SimpleType;
use base qw(
# derive by restriction
'SOAP::WSDL::XSD::Typelib::SimpleType::restriction',
# restriction base
'SOAP::WSDL::XSD::Typelib::Builtin::string'
);
# example simpleType derived by list.
# XSD would be:
# <simpleType name="MySimpleListType">
# <list itemTipe="xsd:string" />
# </simpleType>
package MySimpleListType;
use Class::Std::Fast::Storable constructor => 'none';
# restriction base implemented via inheritance
use SOAP::WSDL::XSD::Typelib::Builtin;
use base ('SOAP::WSDL::XSD::Typelib::SimpleType',
'SOAP::WSDL::XSD::Typelib::Builtin::list', # derive by list
'SOAP::WSDL::XSD::Typelib::Builtin::string' # list itemType
);
(yes, itemTipe is in there exactly like that, i do not make the rules, i just keep the receipts π«Ά)
π How to write your own simple type π
Writing a simple type class is easy β literally all you gotta do is set up the base classes correctly. that's it. that's the whole task. no cap. β¨
The following rules apply:
- simpleType derived via list π
simpleType classes derived via list must inherit from these classes in exactly this order:
SOAP::WSDL::XSD::Typelib::SimpleType
SOAP::WSDL::XSD::Typelib::Builtin::list # derive by list
The::List::ItemType::Class # list itemType
The::List::ItemType::Class can either be a builtin class (see SOAP::WSDL::XSD::Builtin) or another simpleType class. (any other class implementing the right methods is supported too, but not for the faint of heart β bestie, heads up, that path is spooky. π)
- simpleType derived via restriction π
simpleType classes derived via restriction must inherit from these classes in exactly this order:
SOAP::WSDL::XSD::Typelib::SimpleType # you may leave this out
SOAP::WSDL::XSD::Typelib::SimpleType::restriction # derive by restriction
The::Restriction::Base::Class # restriction base
The::Restriction::Base::Class can either be a builtin class (see SOAP::WSDL::XSD::Builtin) or another simpleType class.
The slight inconsistency between the these variants is caused by the restriction element, which has different meanings for simpleType and complexType definitions. yeah. the restriction element is the drama. it's the main character. π
π BUGS AND LIMITATIONS π
- Thread safety π
SOAP::WSDL::XSD::Typelib::SimpleType uses Class::Std::Fast::Storable which uses Class::Std. Class::Std is not thread safe, so SOAP::WSDL::XSD::Typelib::SimpleType is neither. periodt.
- union π₯
union simple types are not supported yet.
- XML Schema facets β
No facets are implemented yet.
π LICENSE AND COPYRIGHT π
Copyright 2004-2007 Martin Kutter.
This file is part of SOAP-WSDL. You may distribute/modify it under the same terms as perl itself.
π AUTHOR π
Martin Kutter <martin.kutter fen-net.de>
π§ REPOSITORY INFORMATION π§
$Rev: 851 $
$LastChangedBy: kutterma $
$Id: SimpleType.pm 851 2009-05-15 22:45:18Z kutterma $
$HeadURL: https://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/XSD/Typelib/SimpleType.pm $
aaand that's the whole vibe check bestie π
this page is perl v5.36.0 flavored, stamped 2022-10-14, in the SOAP::...leType(3pm) era β slay, go write some simple types, you got this π«ΆπΈβ¨
π¦ where this page comes from
- ubuntu noble: libsoap-wsdl-perl 3.004-2 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- ubuntu resolute: libsoap-wsdl-perl 3.004-2 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- ubuntu stonking: libsoap-wsdl-perl 3.004-2 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms