logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

SOAP::WSDL::XSD::Typelib::SimpleType - simpleType base class

Author

       Martin Kutter <martin.kutter fen-net.de>

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.

Description

       This module implements a base class for designing simple type classes modelling XML Schema simpleType
       definitions.

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::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).

       •   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.

Name

       SOAP::WSDL::XSD::Typelib::SimpleType - simpleType base class

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 $

perl v5.36.0                                       2022-10-14             SOAP::WSDL::XSD...lib::SimpleType(3pm)

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
           );

See Also