The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

SOAP::WSDL::XSD::Typelib::Element - element base clase

SYNOPSIS

This example creates a class for this XML schema definition:

 <element name="MyElement" type="xsd:string" nillable="1"
   minOccurs="1" maxOccurs="1"/>

 package MyElement;
 use strict;
 use Class::Std::Storable;
 use base (
    'SOAP::WSDL::XSD::Typelib::Element',
    'SOAP::WSDL::XSD::Typelib::Builtin::string',
 );

 __PACKAGE__->__set_name('MyElementName');
 __PACKAGE__->__set_nillable(1);
 __PACKAGE__->__set_minOccurs(1);
 __PACKAGE__->__set_maxOccurs(1);
 __PACKAGE__->__set_ref(0);

Now we create this XML schema definition type class:

 <element name="MyElement2" ref="tns:MyElement"/>
 
 package MyElement2;
 use strict;
 use Class::Std::Storable;
 use base (
    'SOAP::WSDL::XSD::Typelib::Element',
    'MyElement'
 );

 __PACKAGE__->__set_name('MyElementName');
 __PACKAGE__->__set_nillable(0);
 __PACKAGE__->__set_ref(1);
 

NOTES

  • type="Foo"

    Implemented via inheritance.

  • ref="Foo"

    Implemented via inheritance, too. Calling

    __PACKAGE__->__set_ref(1) is highly encouraged, though it has no effect yet - it will probably be needed for serialization to XML Schema definitions some day.

BUGS AND LIMITATIONS

  • minOccurs maxOccurs not implemented

    These attributes are not yet supported, though they may be set as class properties via __PACKAGE__->__set_FOO methods.

  • 'http://www.w3.org/2001/XMLSchema-instance prefix is hardcoded

    The prefix for 'http://www.w3.org/2001/XMLSchema-instance (used as namespace for the {http://www.w3.org/2001/XMLSchema-instance}nil="true" attribute is hardcoded as 'xsi'.

    You should definitly provide your XML envelope generator with the same prefix namespace combination (Default for SOAP::WSDL::Envelope).