NAME
SOAP::WSDL::XSD::Typelib::SimpleType - simpleType base class
DESCRIPTION
This module implements a base class for designing simple type classes modelling XML Schema simpleType definitions.
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 inheritanceuse 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 inheritanceuse 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);
How to write your own simple type
Writing a simple type class is easy - all you have to do is setting up the base classes correctly.
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::SimpleTypeSOAP::WSDL::XSD::Typelib::Builtin::list # derive by listThe::List::ItemType::Class # list itemTypeThe::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).
- •
-
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 outSOAP::WSDL::XSD::Typelib::SimpleType::restriction # derive by restrictionThe::Restriction::Base::Class # restriction baseThe::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.
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.
- •
-
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 $